diff --git a/businessservice/.gitignore b/businessservice/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a2a3040aa86debfd8826d9c2b5c816314c17d9fe --- /dev/null +++ b/businessservice/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### 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/ + +### VS Code ### +.vscode/ diff --git a/businessservice/.mvn/wrapper/MavenWrapperDownloader.java b/businessservice/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000000000000000000000000000000000000..e76d1f3241d38db9b28f05133823bbed1ad289ff --- /dev/null +++ b/businessservice/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed 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. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/businessservice/.mvn/wrapper/maven-wrapper.jar b/businessservice/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054 Binary files /dev/null and b/businessservice/.mvn/wrapper/maven-wrapper.jar differ diff --git a/businessservice/.mvn/wrapper/maven-wrapper.properties b/businessservice/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..642d572ce90e5085986bdd9c9204b9404f028084 --- /dev/null +++ b/businessservice/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/businessservice/lib/spring-security-acl/5.2.1.RELEASE/spring-security-acl-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-acl/5.2.1.RELEASE/spring-security-acl-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..ae9bacd957d7b9517484bb334c2dd9af4b5b8044 Binary files /dev/null and b/businessservice/lib/spring-security-acl/5.2.1.RELEASE/spring-security-acl-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-aspects/5.2.1.RELEASE/spring-security-aspects-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-aspects/5.2.1.RELEASE/spring-security-aspects-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..db29f119cbd45d86219f57f352ba6dc4d5eee17d Binary files /dev/null and b/businessservice/lib/spring-security-aspects/5.2.1.RELEASE/spring-security-aspects-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-cas/5.2.1.RELEASE/spring-security-cas-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-cas/5.2.1.RELEASE/spring-security-cas-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..e5631c8fb3e5526260c8019ca67a637653879bff Binary files /dev/null and b/businessservice/lib/spring-security-cas/5.2.1.RELEASE/spring-security-cas-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-config/5.2.1.RELEASE/spring-security-config-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-config/5.2.1.RELEASE/spring-security-config-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..54b6127cabdf526edbf604a20e45954736397d04 Binary files /dev/null and b/businessservice/lib/spring-security-config/5.2.1.RELEASE/spring-security-config-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-core/5.2.1.RELEASE/spring-security-core-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-core/5.2.1.RELEASE/spring-security-core-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..02bf0f2e0c8b733e81c4e53da8b90f019734d87e Binary files /dev/null and b/businessservice/lib/spring-security-core/5.2.1.RELEASE/spring-security-core-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-crypto/5.2.1.RELEASE/spring-security-crypto-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-crypto/5.2.1.RELEASE/spring-security-crypto-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..35dee368a0d0d0bfaaf20bca48925412ffbb48a1 Binary files /dev/null and b/businessservice/lib/spring-security-crypto/5.2.1.RELEASE/spring-security-crypto-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-ldap/5.2.1.RELEASE/spring-security-ldap-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-ldap/5.2.1.RELEASE/spring-security-ldap-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..c0dfe4666e68fb8f8a400d3c4115c9a71fbc3d81 Binary files /dev/null and b/businessservice/lib/spring-security-ldap/5.2.1.RELEASE/spring-security-ldap-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-messaging/5.2.1.RELEASE/spring-security-messaging-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-messaging/5.2.1.RELEASE/spring-security-messaging-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..c5626b1f52e96e9d8e3b998537074a05b938618a Binary files /dev/null and b/businessservice/lib/spring-security-messaging/5.2.1.RELEASE/spring-security-messaging-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-oauth2-core/5.2.1.RELEASE/spring-security-oauth2-core-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-oauth2-core/5.2.1.RELEASE/spring-security-oauth2-core-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..a46fcb6fba8f246b2259e4e88008c58e86b3c531 Binary files /dev/null and b/businessservice/lib/spring-security-oauth2-core/5.2.1.RELEASE/spring-security-oauth2-core-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-oauth2-resource-server/5.2.1.RELEASE/spring-security-oauth2-resource-server-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-oauth2-resource-server/5.2.1.RELEASE/spring-security-oauth2-resource-server-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..d9f548e83f44650208eae4757782e96a8e41b224 Binary files /dev/null and b/businessservice/lib/spring-security-oauth2-resource-server/5.2.1.RELEASE/spring-security-oauth2-resource-server-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-openid/5.2.1.RELEASE/spring-security-openid-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-openid/5.2.1.RELEASE/spring-security-openid-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..b298846403d5bc1adbe501350c1930d521b5a679 Binary files /dev/null and b/businessservice/lib/spring-security-openid/5.2.1.RELEASE/spring-security-openid-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-remoting/5.2.1.RELEASE/spring-security-remoting-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-remoting/5.2.1.RELEASE/spring-security-remoting-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..2be170b575d611d9fb26b20901c99a3508842aea Binary files /dev/null and b/businessservice/lib/spring-security-remoting/5.2.1.RELEASE/spring-security-remoting-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-taglibs/5.2.1.RELEASE/spring-security-taglibs-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-taglibs/5.2.1.RELEASE/spring-security-taglibs-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..d5ed99745396017b2a52abca1c9485a99ff7e839 Binary files /dev/null and b/businessservice/lib/spring-security-taglibs/5.2.1.RELEASE/spring-security-taglibs-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-test/5.2.1.RELEASE/spring-security-test-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-test/5.2.1.RELEASE/spring-security-test-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..825e72dad2e3401b3e6e9cad0290748fcc0fd69d Binary files /dev/null and b/businessservice/lib/spring-security-test/5.2.1.RELEASE/spring-security-test-5.2.1.RELEASE.jar differ diff --git a/businessservice/lib/spring-security-web/5.2.1.RELEASE/spring-security-web-5.2.1.RELEASE.jar b/businessservice/lib/spring-security-web/5.2.1.RELEASE/spring-security-web-5.2.1.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..4c0e21f434d13e629ed4935ccfb1192509be883d Binary files /dev/null and b/businessservice/lib/spring-security-web/5.2.1.RELEASE/spring-security-web-5.2.1.RELEASE.jar differ diff --git a/businessservice/mvnw b/businessservice/mvnw new file mode 100644 index 0000000000000000000000000000000000000000..a16b5431b4c3cab50323a3f558003fd0abd87dad --- /dev/null +++ b/businessservice/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/businessservice/mvnw.cmd b/businessservice/mvnw.cmd new file mode 100644 index 0000000000000000000000000000000000000000..c8d43372c986d97911cdc21bd87e0cbe3d83bdda --- /dev/null +++ b/businessservice/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/businessservice/pom.xml b/businessservice/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..71cb92f77770ac5ec202efdaa48021c0679f276f --- /dev/null +++ b/businessservice/pom.xml @@ -0,0 +1,184 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.2.5.RELEASE + + + com.team7.happycommunity + businessservice + 0.0.1-SNAPSHOT + businessservice + Demo project for Spring Boot + + + 1.8 + + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.swagger + swagger-annotations + + + io.swagger + swagger-models + + + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + io.swagger + swagger-annotations + 1.5.21 + + + io.swagger + swagger-models + 1.5.21 + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.2.10 + + + com.qiniu + qiniu-java-sdk + [7.2.0, 7.2.99] + + + com.google.code.gson + gson + 2.8.6 + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + 2.2.2.RELEASE + + + org.springframework.boot + spring-boot-starter-amqp + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-web + + + mysql + mysql-connector-java + runtime + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.1 + + + com.fasterxml.jackson.core + jackson-databind + 2.9.8 + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.2.10 + + + com.aliyun + aliyun-java-sdk-core + 4.0.3 + + + org.springframework.session + spring-session-data-redis + 2.2.2.RELEASE + + + org.springframework.boot + spring-boot-starter-data-jdbc + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + org.springframework.boot + spring-boot-starter-cache + 2.2.5.RELEASE + + + + + com.sun.mail + jakarta.mail + 1.6.4 + + + org.aspectj + aspectjweaver + 1.9.5 + + + + com.alibaba + druid-spring-boot-starter + 1.1.18 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + org.apache.hadoop + hadoop-common + 2.7.2 + + + org.springframework + spring-context + 5.2.4.RELEASE + + + org.springframework.session + spring-session-data-redis + 2.2.2.RELEASE + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/BusinessserviceApplication.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/BusinessserviceApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..1a097888331c5cbef26fe7359a5e1bb16db3e90e --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/BusinessserviceApplication.java @@ -0,0 +1,49 @@ +package com.team7.happycommunity.businessservice; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; + +import org.springframework.cloud.netflix.eureka.EnableEurekaClient; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@SpringBootApplication +@MapperScan("com.team7.happycommunity.businessservice.dao") +@EnableCaching//开启声明式缓存 +@EnableRedisHttpSession +@EnableEurekaClient + +public class BusinessserviceApplication { + + public static void main(String[] args) { + SpringApplication.run(BusinessserviceApplication.class, args); + } + + @Bean + public RedisCacheConfiguration redisCacheConfiguration(){ + RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig(); + configuration = configuration.serializeValuesWith(RedisSerializationContext. + SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); + return configuration; + } + //RedisConnectionFactory对象是Spring工厂负责创建的,注入的过程中,Spring工厂 + //会根据bean的类型进行自动注入 + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory){ + RedisTemplate template = new RedisTemplate(); + template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); + template.setKeySerializer(new StringRedisSerializer()); + template.setConnectionFactory(factory); + return template; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/CommonResult.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/CommonResult.java new file mode 100644 index 0000000000000000000000000000000000000000..57e5fd98d314afea8a80afbec0671f2da8672541 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/CommonResult.java @@ -0,0 +1,108 @@ +package com.team7.happycommunity.businessservice.common; + + +import java.io.Serializable; + +public class CommonResult implements Serializable { + + //状态码 + private Long code; + //提示消息 + private String message; + //响应数据 + private T data; + + public CommonResult(){} + public CommonResult(Long code,String message){ + this.code = code; + this.message = message; + } + + public CommonResult(Long code ,String message,T data){ + this.code = code; + this.message = message; + this.data = data; + } + + /** + * 响应成功的结果 + * @return 状态码 200 + */ + public static CommonResult success(){ + return new CommonResult(ResultUtil.SUCCESS.getCode(),ResultUtil.SUCCESS.getMessage()); + } + + public static CommonResult success(String message){ + return new CommonResult(ResultUtil.SUCCESS.getCode(),message); + } + + public static CommonResult success(T data){ + return new CommonResult(ResultUtil.SUCCESS.getCode(),ResultUtil.SUCCESS.getMessage(),data); + } + public static CommonResult success(String message,T data){ + return new CommonResult(ResultUtil.SUCCESS.getCode(),message,data); + } + + /** + * 响应失败 + * @return 状态码500 + */ + public static CommonResult failed(){ + return new CommonResult(ResultUtil.FAILED.getCode(),ResultUtil.FAILED.getMessage()); + } + + public static CommonResult failed(String message){ + return new CommonResult(ResultUtil.FAILED.getCode(),message); + } + /** + * 参数验证失败 + * @return 状态码 400 + */ + public static CommonResult valetateFailed(){ + return new CommonResult(ResultUtil.VALIDATE_FAILED.getCode(),ResultUtil.VALIDATE_FAILED.getMessage()); + } + public static CommonResult valetateFailed(String msg){ + return new CommonResult(ResultUtil.VALIDATE_FAILED.getCode(),msg); + } + + /** + * 未认证 + * @return 状态码401 + */ + public static CommonResult unathorizedFailed(){ + return new CommonResult(ResultUtil.UNAUTORIED.getCode(), ResultUtil.UNAUTORIED.getMessage()); + } + + /** + * 未授权 + * @return 状态码403 + */ + public static CommonResult forbiddenFailed(){ + return new CommonResult(ResultUtil.FORBIDDEN.getCode(),ResultUtil.FORBIDDEN.getMessage()); + } + + public Long getCode() { + return code; + } + + public void setCode(Long code) { + this.code = code; + } + + 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; + } + +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/LoginToken.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/LoginToken.java new file mode 100644 index 0000000000000000000000000000000000000000..a6b39caafd0d5792641256043aac6939822c7381 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/LoginToken.java @@ -0,0 +1,37 @@ +package com.team7.happycommunity.businessservice.common; + + + +import java.io.Serializable; + +//@Component + +public class LoginToken implements Serializable { + private String username; + private String token; + private Integer userId; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/OrderStatus.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/OrderStatus.java new file mode 100644 index 0000000000000000000000000000000000000000..0a7b1f1324c511e19a8b6132bce00d70dcec9ef2 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/OrderStatus.java @@ -0,0 +1,10 @@ +package com.team7.happycommunity.businessservice.common; + +public enum OrderStatus { + ONE,TWO,THREE,FOUE,FIVE,SIX,SEVEN,EIGHT; + + OrderStatus() { + } + + +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/ResultUtil.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/ResultUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..f2c37354dade7596c338c58ec96b92d0666dffbf --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/common/ResultUtil.java @@ -0,0 +1,32 @@ +package com.team7.happycommunity.businessservice.common; + +public enum ResultUtil { + SUCCESS(200L,"操作成功"), + FAILED(500L,"操作失败"), + VALIDATE_FAILED(400L,"参数验证失败"), + UNAUTORIED(401L,"未认证或token过期"), + FORBIDDEN(403L,"未授权"); + private Long code; + private String message; + + private ResultUtil(Long code,String message){ + this.code = code; + this.message = message; + } + + public Long getCode() { + return code; + } + + public void setCode(Long code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/RabbitMQConfig.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/RabbitMQConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..f5138fd14f7e8ca58d825632ded48e7910643776 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/RabbitMQConfig.java @@ -0,0 +1,62 @@ +package com.team7.happycommunity.businessservice.config; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.core.TopicExchange; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.HashMap; +import java.util.Map; + +@Configuration +public class RabbitMQConfig { + + @Bean + public Queue queue(){ + Map map=new HashMap<>(); + map.put("x-dead-letter-exchange","phone_code_dead_exchange"); + map.put("x-dead-letter-routing-key","phone.code.dead"); + map.put("x-message-ttl",30000); + return new Queue("phone_code_queue",true,false,false,map); + } + @Bean + public TopicExchange topicExchange(){ + return new TopicExchange("phone_code_exchange"); + } + @Bean + public Binding queueBingToExchange(){ + return BindingBuilder.bind(queue()).to(topicExchange()).with("phone.#"); + } + @Bean + public Queue DeadQueue(){ + return new Queue("phone_code_dead_queue",true,false,false); + } + @Bean + public TopicExchange topicDeadExchange(){ + return new TopicExchange("phone_code_dead_exchange"); + } + @Bean + public Binding queueBingToExchangeDead(){ + return BindingBuilder.bind(DeadQueue()).to(topicDeadExchange()).with("phone.code.dead"); + } + + /** + * 对款订单的 + * @return + */ + @Bean + public Queue queue2(){ + + return new Queue("refund_code_queue",true,false,false); + } + @Bean + public TopicExchange topicExchange2(){ + return new TopicExchange("refund_code_exchange"); + } + @Bean + public Binding queueBingToExchange2(){ + return BindingBuilder.bind(queue2()).to(topicExchange2()).with("refund.#"); + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/Swagger2Config.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/Swagger2Config.java new file mode 100644 index 0000000000000000000000000000000000000000..c27dd73a2aae0d0e1ab51b1d85d6e49c44e71620 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/Swagger2Config.java @@ -0,0 +1,18 @@ +package com.team7.happycommunity.businessservice.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@EnableSwagger2 +@Configuration +public class Swagger2Config { + + @Bean + public Docket decket(){ + return new Docket(DocumentationType.SWAGGER_2); + } + +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/WebMvcConfig.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/WebMvcConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..0b4e6d4980674992ee6b5c8d670c5269e6d43b27 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/config/WebMvcConfig.java @@ -0,0 +1,38 @@ +package com.team7.happycommunity.businessservice.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebMvcConfig implements WebMvcConfigurer { + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addViewController("/").setViewName("/index"); + registry.addViewController("/index").setViewName("/index"); + registry.addViewController("/register2").setViewName("/register2"); + registry.addViewController("/bussinessFirstPage").setViewName("/bussinessFirstPage"); + registry.addViewController("/serviceDetails").setViewName("/serviceDetails"); + registry.addViewController("/add_service").setViewName("/add_service"); + registry.addViewController("/myCenter").setViewName("/myCenter"); + registry.addViewController("/my_sz").setViewName("/my_sz"); + registry.addViewController("/bussinessImage").setViewName("/bussinessImage"); + registry.addViewController("/index2").setViewName("/index2"); + registry.addViewController("/total_order").setViewName("/total_order"); + registry.addViewController("/my-indent-dfh").setViewName("/my-indent-dfh"); + registry.addViewController("/OrderDetails").setViewName("/OrderDetails"); + registry.addViewController("/book_order").setViewName("/book_order"); + registry.addViewController("/accounts_order").setViewName("/accounts_order"); + registry.addViewController("/handled_in_order").setViewName("/handled_in_order"); + registry.addViewController("/finish_order").setViewName("/finish_order"); + registry.addViewController("/await_evaluate_order").setViewName("/await_evaluate_order"); + } + +// //配置静态资源映射 +// @Override +// public void addResourceHandlers(ResourceHandlerRegistry registry) { +// registry.addResourceHandler("/carousel/img/**") +// .addResourceLocations("file:e:/upload/carousel/img/"); +// } +} diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/AreainfoController.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/AreainfoController.java similarity index 44% rename from personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/AreainfoController.java rename to businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/AreainfoController.java index 87cfaf9239864487a6fc5b7f7ee319a714d9d0bc..b7a9d357cc1bded858b9ea03103252f26274d9e5 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/AreainfoController.java +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/AreainfoController.java @@ -1,8 +1,11 @@ -package com.team7.happycommunity.personcentor.controller; +package com.team7.happycommunity.businessservice.controller; -import com.team7.happycommunity.personcentor.entity.Areainfo; -import com.team7.happycommunity.personcentor.service.AreainfoService; -import org.springframework.web.bind.annotation.*; +import com.team7.happycommunity.businessservice.entity.Areainfo; +import com.team7.happycommunity.businessservice.service.AreainfoService; +import io.swagger.annotations.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @@ -10,10 +13,11 @@ import javax.annotation.Resource; * 小区信息表(Areainfo)表控制层 * * @author makejava - * @since 2020-03-23 14:46:47 + * @since 2020-03-27 14:24:46 */ @RestController @RequestMapping("areainfo") +@Api(tags="小区信息管理接口") public class AreainfoController { /** * 服务对象 @@ -28,6 +32,10 @@ public class AreainfoController { * @return 单条数据 */ @GetMapping("selectOne") + @ApiOperation(value = "查询小区信息") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "id",value = "用户id",required = true), + }) public Areainfo selectOne(Integer id) { return this.areainfoService.queryById(id); } diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/BusinessImageController.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/BusinessImageController.java new file mode 100644 index 0000000000000000000000000000000000000000..af7bf38e4943212a269f66ffb2392b4187a8b1a4 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/BusinessImageController.java @@ -0,0 +1,73 @@ +package com.team7.happycommunity.businessservice.controller; + +import com.team7.happycommunity.businessservice.common.CommonResult; +import com.team7.happycommunity.businessservice.entity.BusinessImage; +import com.team7.happycommunity.businessservice.service.BusinessImageService; +import com.team7.happycommunity.businessservice.util.QiniuUploadUtil; +import io.swagger.annotations.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.UUID; + +/** + * (BusinessImage)表控制层 + * + * @author makejava + * @since 2020-03-25 20:07:28 + */ +@RestController +@RequestMapping("businessImage") +@Api(tags="商家图片管理接口") +public class BusinessImageController { + /** + * 服务对象 + */ + @Resource + private BusinessImageService businessImageService; + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public BusinessImage selectOne(Integer id) { + return this.businessImageService.queryById(id); + } + + + /** + * 图片上传或者修改 + * @param file 图片 + * @param userId 用户id + * @return + */ + @PostMapping("/uploadHead") + @ResponseBody + @ApiOperation(value = "图片上传或者修改",notes = "前端要提交的参数名称:file图片,userId是用户id") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "file",value = "图片",required = true), + @ApiImplicitParam(name = "userId",value = "用户id",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "上传成功"), + @ApiResponse(code = 500,message = "上传失败") + }) + public CommonResult uploadHead(MultipartFile file,Integer userId){ + String name= UUID.randomUUID().toString().replace("_",""); + try { + String url = new QiniuUploadUtil().upload(name, file.getBytes()); + businessImageService.uploadHead(url,userId); + return CommonResult.success("上传成功"); + } catch (IOException e) { + e.printStackTrace(); + return CommonResult.failed("上传失败"); + } + + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/BusinessInfoController.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/BusinessInfoController.java new file mode 100644 index 0000000000000000000000000000000000000000..3a2a3709463a33708a4e8759decda2608f5e8aed --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/BusinessInfoController.java @@ -0,0 +1,468 @@ +package com.team7.happycommunity.businessservice.controller; + +import com.team7.happycommunity.businessservice.common.CommonResult; +import com.team7.happycommunity.businessservice.common.LoginToken; +import com.team7.happycommunity.businessservice.entity.*; +import com.team7.happycommunity.businessservice.exception.LoginException; +import com.team7.happycommunity.businessservice.exception.MailboxStatusException; +import com.team7.happycommunity.businessservice.service.AreainfoService; +import com.team7.happycommunity.businessservice.service.BusinessInfoService; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; + +/** + * (BusinessInfo)表控制层 + * + * @author makejava + * @since 2020-03-25 20:07:27 + */ +@RestController +@RequestMapping("businessInfo") +@Api(tags="商家信息管理接口") +public class BusinessInfoController { + /** + * 服务对象 + */ + @Resource + private BusinessInfoService businessInfoService; + /** + * 小区信息 + */ + @Resource + private AreainfoService areainfoService; + + @Autowired + private HttpServletRequest request; + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public BusinessInfo selectOne(Integer id) { + return this.businessInfoService.queryById(id); + } + /** + * + * @param text 登录的手机号或者邮箱 + * @param password 密码 + * @return + */ + @RequestMapping("/subLogin") + @ResponseBody + @ApiOperation(value = "用户登录",notes = "前端要提交的参数名称:text登录的手机号或者邮箱,password是用户密码") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "text",value = "登录的手机号或者邮箱",required = true), + @ApiImplicitParam(name = "password",value = "密码",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "登录成功"), + @ApiResponse(code = 500,message = "登录失败") + }) + public CommonResult login(String text, String password) throws Exception { + + if(text==null||password==null){ + return CommonResult.failed("账号或密码不能为空"); + } + try { + businessInfoService.login(text,password); + } catch (LoginException e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + return CommonResult.success("登录成功"); + } + + /** + * 邮箱注册 + * @param user + * @return + */ + @PostMapping("/mailboxRegister") + @ResponseBody + + public CommonResult mailboxRegister(BusinessInfo user){ + //1.搜索邮箱,邮箱不存在或邮箱状态不为0 + boolean flag=businessInfoService.queryMailbox(user.getMailbox()); + // 2.发送邮件,存储邮箱,并将mailbox_status状态改为1,并随机生成一个code邮箱令牌,并存储到数据库 + if(flag){ + try { + businessInfoService.register(user); + return CommonResult.success("邮件发送成功,请激活"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("邮箱不正确"); + } + }else{ + return CommonResult.failed("邮箱已被注册"); + } + } + + /** + * 验证码发送 + * @param phone 手机号码 + * @param resetCode 密码重置参数,1密码重置,短信登录,0注册 + * @return + */ + @PostMapping("/phoneRegister") + @ResponseBody + @ApiOperation(value = "验证码发送",notes = "前端要提交的参数名称:phone是手机号码,resetCode是密码重置参数,1密码重置,短信登录,0注册") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "phone",value = "手机号码",required = true), + @ApiImplicitParam(name = "resetCode",value = "密码重置参数,1密码重置,短信登录,0注册",required = false) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "验证码发送成功"), + @ApiResponse(code = 500,message = "验证码发送失败") + }) + public CommonResult phoneRegister(String phone,String resetCode){ + if (phone==null||phone.equals("")){ + return CommonResult.failed("请输入手机号"); + } + + try { + businessInfoService.phoneRegister(phone,resetCode); + return CommonResult.success("验证码发送成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } + + /** + * 验证码校正 + * @param phone 电话号码 + * @param code 验证码 + * @return + */ + @PostMapping("/codeCheck") + @ResponseBody + @ApiOperation(value = "验证码校正",notes = "前端要提交的参数名称:phone是手机号码,code是验证码,password是用户密码") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "phone",value = "手机号码",required = true), + @ApiImplicitParam(name = "code",value = "验证码",required = true), + @ApiImplicitParam(name = "password",value = "密码",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "注册成功"), + @ApiResponse(code = 500,message = "注册失败") + }) + public CommonResult codeCheck(String phone,String code,String password){ + try { + businessInfoService.codeCheck(code,phone); + BusinessInfo info=new BusinessInfo(); + info.setStatus(0); + info.setPassword(password); + info.setCellPhNumber(phone); + //进行账号和密码保存 + BusinessInfo businessInfo = businessInfoService.insert(info); + return CommonResult.success("注册成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } + + /** + * 添加个人信息 + * @param user + * @return + */ + @PostMapping("/addInfo") + @ResponseBody + @ApiOperation(value = "添加个人信息",notes = "前端要提交的参数名称:user 是用户信息") + @ApiResponses(value = { + @ApiResponse(code = 200,message = "添加成功"), + @ApiResponse(code = 500,message = "添加失败") + }) + public CommonResult addInfo(@RequestBody BusinessInfo user){ + try { + businessInfoService.updateByCellPhNumber(user); + return CommonResult.success(); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("添加失败,请联系管理员"); + } + } + /** + * 修改邮箱状态 + * @param code 邮箱的令牌 + * @return + */ + @GetMapping("/activate") + @ResponseBody + + public ModelAndView activate(String code){ + //激活邮箱 + ModelAndView mv=new ModelAndView(); + try { + businessInfoService.updateMailboxStatus(code); + mv.setViewName("mailboxRegisterMessage"); + return mv; + }catch (MailboxStatusException e){ + e.printStackTrace(); + }catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 密码修改 + * @param cellPhNumber 手机号码 + * @param password 新密码 + * @return + */ + @PostMapping("/resetPassword") + @ApiOperation(value = "密码修改") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "cellPhNumber",value = "手机号码",required = true), + @ApiImplicitParam(name = "password",value = "新密码",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "修改成功"), + @ApiResponse(code = 500,message = "修改失败") + }) + public CommonResult resetPasswordByPhone(String cellPhNumber,String password){ + if (password==null){ + return CommonResult.failed("密码不能为空"); + } + try { + businessInfoService.updatePasswordByCellPhNumber(cellPhNumber,password); + return CommonResult.success("修改成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("修改失败"); + } + } + + /** + * 根据个人的id查询个人信息 + * @return + */ + @GetMapping("/queruyPersonageInfo") + @ApiOperation(value = "查询个人信息") + public MyCenter queruyPersonageInfo(){ + String userId = request.getHeader("userId"); + Integer value = Integer.valueOf(userId); + MyCenter myCenter=businessInfoService.queruyPersonageInfo(value); + if (myCenter==null){ + myCenter=businessInfoService.queruyPersonageInfo2(value); + } + + return myCenter; + } + /** + * 根据个人的id查询商家拥有的订单数 + * @return + */ + @GetMapping("/orderSum") + @ApiOperation(value = "查询商家拥有的订单数") + public MyCenter orderSum(){ + String userId = request.getHeader("userId"); + Integer value = Integer.valueOf(userId); + MyCenter myCenter=businessInfoService.queruyOrderSum(value); + if (myCenter==null){ + myCenter=new MyCenter(); + myCenter.setOrderSum(0); + } + return myCenter; + } + + /** + * 根据个人的id查询商家拥有的预订单数 + * @return + */ + @GetMapping("/bookOrederSum") + @ApiOperation(value = "查询商家拥有的预订单数") + public MyCenter bookOrederSum(){ + String userId = request.getHeader("userId"); + Integer value = Integer.valueOf(userId); + MyCenter myCenter=businessInfoService.bookOrederSum(value,0); + if (myCenter==null){ + myCenter=new MyCenter(); + myCenter.setBookOrederSum(0); + } + return myCenter; + } + + /** + * 根据登录的商家查询其个人信息 + * @return + */ + @GetMapping("/queryByUserId") + @ApiOperation(value = "查询商家查询其个人信息") + public BusinessInfoAreainfo queryByUserId(){ + String userId = request.getHeader("userId"); + Integer value = Integer.valueOf(userId); + BusinessInfoAreainfo infoareainfo=new BusinessInfoAreainfo(); + BusinessInfo businessInfo=businessInfoService.queryById(value); + Areainfo areainfo=areainfoService.queryById(businessInfo.getPlotId()); + infoareainfo.setBusinessInfo(businessInfo); + infoareainfo.setAreainfo(areainfo); + return infoareainfo; + } + + @GetMapping("/noteSubLogin") + @ApiOperation(value = "查询商家个人信息") + public BusinessInfoAreainfo noteSubLogin( ){ + String userId = request.getHeader("userId"); + Integer value = Integer.valueOf(userId); + BusinessInfoAreainfo infoareainfo=new BusinessInfoAreainfo(); + BusinessInfo businessInfo=businessInfoService.queryById(value); + Areainfo areainfo=areainfoService.queryById(businessInfo.getPlotId()); + infoareainfo.setBusinessInfo(businessInfo); + infoareainfo.setAreainfo(areainfo); + return infoareainfo; + } + + + /** + * 短信登录 + * @param phone 电话号码 + * @param code 验证码 + * @return + */ + @PostMapping("/noteLogn") + @ResponseBody + @ApiOperation(value = "短信登录") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "phone",value = "电话号码",required = true), + @ApiImplicitParam(name = "code",value = "验证码",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "登录成功"), + @ApiResponse(code = 500,message = "登录失败") + }) + public CommonResult noteLogn(String phone,String code){ + + try { + businessInfoService.codeCheck(code,phone); + BusinessInfo businessInfo= businessInfoService.queryByPhone(phone); + if(businessInfo==null){ + return CommonResult.failed("账号未注册,请先注册"); + } + System.out.println("businessInfo"+businessInfo); + LoginToken loginToken=new LoginToken(); + loginToken.setUserId(businessInfo.getId()); + loginToken.setUsername(businessInfo.getName()); + return CommonResult.success("登录成功",loginToken); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } + + /** + * 查询收益 + * @param userId 根据用户id + * @return + */ + @GetMapping("/queryIncome") + @ApiOperation(value = "查询收益") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "userId",value = "用户id",required = true), + }) + public String queryIncome(Integer userId){ + String money=businessInfoService.queryIncome(userId); + if(money==null||money.equals("0")){ + money="0"; + } + return money; + } + + /** + * 根据用户的id修改昵称 + * @param info 用户信息 + * @return + */ + @RequestMapping("/alterUserInfo") + @ApiOperation(value = "根据用户的id修改昵称") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "areaAddress",value = "小区地址",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "修改成功"), + @ApiResponse(code = 500,message = "修改失败") + }) + public CommonResult alterUserInfo(BusinessInfo info,String areaAddress){ + if(info.getId()==null){ + return CommonResult.failed("用户未登录"); + } + + try { + businessInfoService.update(info); + if(areaAddress!=null&&!areaAddress.equals("")){ + BusinessInfo info1 = businessInfoService.queryById(info.getId()); + if(info1.getPlotId()!=null&&!info1.getPlotId().equals("")){ + Areainfo areainfo=new Areainfo(); + areainfo.setAreaAddress(areaAddress); + areainfo.setId(info1.getId()); + //修改数据 + areainfoService.update(areainfo); + }else{ + //插入一条新数据 + Areainfo areainfo=new Areainfo(); + areainfo.setAreaAddress(areaAddress); + areainfoService.insert(areainfo); + } + } + return CommonResult.success("修改成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("修改失败"); + } + } + + + /** + * 修改手机号 + * @param phone 电话号码 + * @param code 验证码 + * @param userId 用户id + * @return + */ + @PostMapping("/alterPhone") + @ResponseBody + @ApiOperation(value = "修改手机号") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "phone",value = "手机号码",required = true), + @ApiImplicitParam(name = "code",value = "验证码",required = true), + @ApiImplicitParam(name = "userId",value = "用户id",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "修改成功"), + @ApiResponse(code = 500,message = "修改失败") + }) + public CommonResult alterPhone(String phone,String code,Integer userId){ + if(userId==null||userId.equals("")){ + return CommonResult.failed("用户未登录"); + } + try { + businessInfoService.codeCheck(code,phone); + BusinessInfo info=new BusinessInfo(); + info.setCellPhNumber(phone); + info.setId(userId); + businessInfoService.update(info); + return CommonResult.success("修改成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/PpPayserviceController.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/PpPayserviceController.java new file mode 100644 index 0000000000000000000000000000000000000000..e9621c365bfa722e9133c1c188e9725bc5e1405c --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/PpPayserviceController.java @@ -0,0 +1,218 @@ +package com.team7.happycommunity.businessservice.controller; + +import com.team7.happycommunity.businessservice.common.CommonResult; +import com.team7.happycommunity.businessservice.entity.*; +import com.team7.happycommunity.businessservice.service.PpPayserviceService; +import com.team7.happycommunity.businessservice.service.ServiceImgService; +import com.team7.happycommunity.businessservice.util.QiniuUploadUtil; +import io.swagger.annotations.*; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import sun.misc.BASE64Decoder; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * (PpPayservice)表控制层 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +@RestController +@RequestMapping("ppPayservice") +@Api(tags="服务接口") +public class PpPayserviceController { + /** + * 服务对象 + */ + @Resource + private PpPayserviceService ppPayserviceService; + + @Resource + private HttpServletRequest request; + + @Resource + private RedisTemplate redisTemplate; + + @Resource + private ServiceImgService serviceImgService; + + + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public PpPayservice selectOne(Integer id) { + return this.ppPayserviceService.queryById(id); + } + + /** + * 数据上传,商家发布服务 + * @param ppPayservice 发布服务的信息, + * @param + * @return + */ + @PostMapping("/addService") + @ResponseBody + @ApiOperation(value = "商家发布服务") + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "发布成功"), + @ApiResponse(code = 500,message = "发布失败") + }) + public CommonResult addService(PpPayservice ppPayservice){ + + + String userId = request.getHeader("userId"); + try { + //存储登录的商家id + ppPayservice.setShopid(Integer.valueOf(userId)); + //存储服务类型 + ppPayservice.setServiceType(0); + //保存服务 + PpPayservice insert = ppPayserviceService.insert(ppPayservice); + + List hashList = redisTemplate.opsForHash().values(userId+""); + ArrayList list=new ArrayList(); + ServiceImg img=new ServiceImg(); + for (Object o : hashList) { + System.out.println(o); + img.setImg(String.valueOf(o)); + img.setServiceid(insert.getId()); + list.add(img); + } + //使用foreach插入多条数据 + //redisTemplate.opsForHash().delete(userId+""); + serviceImgService.insertList(list); + //返回添加的服务id + return CommonResult.success("发布成功"); + } catch (Exception e){ + e.printStackTrace(); + return CommonResult.failed("发布失败"); + } + } + + /** + * 查询商家的所有收益 + * @param userId 商家id + * @return + */ + @RequestMapping("/queryEarnByUserId") + @ResponseBody + @ApiOperation(value = "查询商家的所有收益") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "userId",value = "商家id",required = true), + }) + + public List queryEarnByUserId(Integer userId){ + try { + List list=ppPayserviceService.queryEarnByUserId(userId); + System.out.println(list); + return list; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + + } + + /** + * 查询商家发布的服务,并根据时间排序 + * @param userId 用户id + * @return + */ + @GetMapping("/queryServicedByUserId") + @ApiOperation(value = "查询商家发布的服务") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "page",value = "页数",required = true), + @ApiImplicitParam(name = "limit",value = "每页条数",required = true) + }) + public PageInfo> queryServicedByUserId(Integer userId, Integer page, Integer limit){ + + + //查询总条数 + Integer count=ppPayserviceService.queryCountByUserId(userId); + if (page==null||page.equals("")||page<=0){ + page=1; + } + if(page>count/limit){ + page =(int)Math.ceil(count /Double.valueOf(limit)) ; + } + if (limit==null||limit.equals("")){ + limit=3; + } + Integer start=(page-1)*limit; + + List list=ppPayserviceService.queryServicedByUserId(start,limit,userId); + PageInfo> info=new PageInfo>(list); + info.setLimit(limit); + info.setPage(page); + info.setCount(count); + return info; + } + + /** + * 修改服务状态或删除服务 + * @param status 服务状态,当传输值为2时,删除服务 + * @param id 服务的id + * @return + */ + @GetMapping("/alterStatus") + @ApiOperation(value = "修改服务状态或删除服务") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "status",value = "登录的手机号或者邮箱",required = true), + @ApiImplicitParam(name = "id",value = "用户id",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "修改成功"), + @ApiResponse(code = 500,message = "修改失败") + }) + public CommonResult alterStatus(Integer status,Integer id){ + try { + //删除服务 + if(status==2){ + ppPayserviceService.deleteById(id); + //根据服务的id删除服务的图片 + serviceImgService.deleteByServiceId(id); + } + if(status==0||status==1){ + //修改服务的状态 + ppPayserviceService.updateStatusById(status,id); + } + return CommonResult.success("修改成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("修改失败"); + } + + } + + /** + * 根据服务的id查询服务的详细信息 + * @param id 服务id + * @return 服务详情 + */ + @GetMapping("/queryDetailsById") + @ApiOperation(value = "查询服务的详细信息") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "id",value = "用户id",required = true) + }) + public PpPayservice queryDetailsById(Integer id){ + return ppPayserviceService.queryDetailsById(id); + } + + public static void main(String[] args) { + System.out.println(Math.ceil(10/Double.valueOf(3))); + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/ServiceImgController.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/ServiceImgController.java new file mode 100644 index 0000000000000000000000000000000000000000..ee96b59243b8a3df9ef133ea278c018472c42157 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/ServiceImgController.java @@ -0,0 +1,97 @@ +package com.team7.happycommunity.businessservice.controller; + +import com.team7.happycommunity.businessservice.common.CommonResult; +import com.team7.happycommunity.businessservice.entity.BusinessImage; +import com.team7.happycommunity.businessservice.entity.ServiceImg; +import com.team7.happycommunity.businessservice.service.ServiceImgService; +import com.team7.happycommunity.businessservice.util.QiniuUploadUtil; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import sun.misc.BASE64Decoder; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +/** + * (ServiceImg)表控制层 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +@RestController +@RequestMapping("serviceImg") +@Api(tags="服务图片接口") +public class ServiceImgController { + /** + * 服务对象 + */ + @Resource + private ServiceImgService serviceImgService; + + @Autowired + RedisTemplate redisTemplate; + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public ServiceImg selectOne(Integer id) { + return this.serviceImgService.queryById(id); + } + + + + /** + * 图片上传 + * @param imgBase + * @return + */ + @PostMapping("/upload") + @ApiOperation(value = "图片上传") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "imgBase",value = "图片",required = true), + @ApiImplicitParam(name = "userId",value = "用户id",required = true) + }) + public CommonResult upload(String imgBase,Integer userId){ + byte[] b1 = null; + BASE64Decoder decoder = new BASE64Decoder(); + try{ + if (imgBase.indexOf("data:image/jpeg;base64,") != -1) { + b1 = decoder.decodeBuffer(imgBase.replaceAll("data:image/jpeg;base64,", "")); + } else { + if (imgBase.indexOf("data:image/png;base64,") != -1) { + b1 = decoder.decodeBuffer(imgBase.replaceAll("data:image/png;base64,", "")); + } else { + b1 = decoder.decodeBuffer(imgBase.replaceAll("data:image/jpg;base64,", "")); + } + } + for (int i = 0; i < b1.length; ++i) { + if (b1[i] < 0) {// 调整异常数据 + b1[i] += 256; + } + } + }catch(Exception e){ + e.printStackTrace(); + } + //添加图片url; + String name = UUID.randomUUID().toString().replace("_", ""); + try { + String upload = new QiniuUploadUtil().upload(name, b1); + System.out.println("uploaduploadupload"+upload); + redisTemplate.opsForHash().put(userId+"",UUID.randomUUID(),upload); + redisTemplate.expire(userId+"", 10, TimeUnit.MINUTES); //设置超时时间10秒 第三个参数控制时间单位,详情查看TimeUnit + + } catch (Exception e) { + e.printStackTrace(); + } + return CommonResult.success("1"); + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/ServiceOrderController.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/ServiceOrderController.java new file mode 100644 index 0000000000000000000000000000000000000000..cbdc6d8bfe0f8fffc414fb8641b5629472060a03 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/controller/ServiceOrderController.java @@ -0,0 +1,180 @@ +package com.team7.happycommunity.businessservice.controller; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.team7.happycommunity.businessservice.common.CommonResult; +import com.team7.happycommunity.businessservice.entity.OrderClassify; +import com.team7.happycommunity.businessservice.entity.OrderDetails; +import com.team7.happycommunity.businessservice.entity.ServiceOrder; +import com.team7.happycommunity.businessservice.service.ServiceOrderService; +import io.swagger.annotations.*; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.relational.core.sql.In; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * (ServiceOrder)表控制层 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +@RestController +@RequestMapping("serviceOrder") +@Api(tags="服务订单接口") +public class ServiceOrderController { + /** + * 服务对象 + */ + @Resource + private ServiceOrderService serviceOrderService; + + @Resource + private HttpServletRequest request; + + @Autowired + private RabbitTemplate rabbitTemplate; + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public ServiceOrder selectOne(Integer id) { + return this.serviceOrderService.queryById(id); + } + + /** + * 根据商家id和交易状态查询商家的订单 + * @return + */ + @GetMapping("/queryOrderByUserIdAndStatus") + @ApiOperation(value = "查询商家的订单") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "status",value = "订单状态",required = true), + @ApiImplicitParam(name = "limit",value = "条数",required = false), + @ApiImplicitParam(name = "page",value = "页数",required = false) + }) + public PageInfo queryOrderByUserIdAndStatus(Integer status,Integer limit,Integer page){ + System.out.println("statusstatusstatusstatus"+status); + String userId = request.getHeader("userId"); + + if (limit==null){ + limit=2; + } + if(page==null){ + page=1; + } + PageHelper.startPage(page,limit); + List list = serviceOrderService.queryOrderByUserIdAndStatus(Integer.valueOf(userId), status); + PageInfo pageInfo=new PageInfo(list); + + + return pageInfo; + } + + /** + * 根据订单的id和订单状态修改订单状态 + * @param status 订单状态 + * @param id 订单的id + * @return + */ + @GetMapping("/alertStatus") + @ApiOperation(value = "根据订单的id和订单状态修改订单状态") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "status",value = "修改后的订单状态",required = true), + @ApiImplicitParam(name = "id",value = "订单的id",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "修改成功"), + @ApiResponse(code = 500,message = "修改失败") + }) + public CommonResult alertStatus(Integer status,Integer id){ + //订单退款修改状态流程 + if (status==1){ + try { + Map map=new HashMap(); + map.put("id",id); + map.put("status",status); + //完成相应退款 + + rabbitTemplate.convertAndSend("refund_code_exchange","refund."+id, map); + System.out.println("退款完成"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + + return CommonResult.success(); + } + //其他流程 + try { + serviceOrderService.updateById(id,status); + return CommonResult.success(); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } + + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询 + * @param orderId + * @return + */ + @GetMapping("/queryOrder") + @ApiOperation(value = "查询订单详情") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "orderId",value = "订单id",required = true) + }) + public OrderDetails queryOrder(Integer orderId){ + return serviceOrderService.queryOrder(orderId); + } + + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询(此次查询服务的图片) + * @param orderId 订单号id + * @return + */ + @GetMapping("/queryImage") + @ApiOperation(value = "查询服务的图片") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "orderId",value = "订单id",required = true) + }) + public OrderDetails queryImage(Integer orderId){ + List orderDetails=serviceOrderService.queryImage(orderId); + if(orderDetails.isEmpty()){ + return null; + } + return orderDetails.get(0); + } + + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询(此次查询服务的评论) + * @param orderId 定点杆号id + * @return + */ + @GetMapping("/evaluate") + @ApiOperation(value = "查询服务的评论") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "orderId",value = "订单id",required = true) + }) + public List evaluate(Integer orderId){ + + return serviceOrderService.evaluate(orderId); + } + + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/AreainfoDao.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/AreainfoDao.java new file mode 100644 index 0000000000000000000000000000000000000000..5ad898da86e16ed4615b68f42e0716c996fc6225 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/AreainfoDao.java @@ -0,0 +1,65 @@ +package com.team7.happycommunity.businessservice.dao; + +import com.team7.happycommunity.businessservice.entity.Areainfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 小区信息表(Areainfo)表数据库访问层 + * + * @author makejava + * @since 2020-03-27 14:24:46 + */ +public interface AreainfoDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Areainfo queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param areainfo 实例对象 + * @return 对象列表 + */ + List queryAll(Areainfo areainfo); + + /** + * 新增数据 + * + * @param areainfo 实例对象 + * @return 影响行数 + */ + int insert(Areainfo areainfo); + + /** + * 修改数据 + * + * @param areainfo 实例对象 + * @return 影响行数 + */ + int update(Areainfo areainfo); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/BusinessImageDao.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/BusinessImageDao.java new file mode 100644 index 0000000000000000000000000000000000000000..cb1d4a9d4f429003f6ee1ad1e07c2e3e5a3e65f4 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/BusinessImageDao.java @@ -0,0 +1,65 @@ +package com.team7.happycommunity.businessservice.dao; + +import com.team7.happycommunity.businessservice.entity.BusinessImage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * (BusinessImage)表数据库访问层 + * + * @author makejava + * @since 2020-03-25 20:07:28 + */ +public interface BusinessImageDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + BusinessImage queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param businessImage 实例对象 + * @return 对象列表 + */ + List queryAll(BusinessImage businessImage); + + /** + * 新增数据 + * + * @param businessImage 实例对象 + * @return 影响行数 + */ + int insert(BusinessImage businessImage); + + /** + * 修改数据 + * + * @param businessImage 实例对象 + * @return 影响行数 + */ + int update(BusinessImage businessImage); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/BusinessInfoDao.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/BusinessInfoDao.java new file mode 100644 index 0000000000000000000000000000000000000000..b59d235cf9789e47b423ba438d78f2c432ed6b60 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/BusinessInfoDao.java @@ -0,0 +1,132 @@ +package com.team7.happycommunity.businessservice.dao; + +import com.team7.happycommunity.businessservice.entity.BusinessInfo; +import com.team7.happycommunity.businessservice.entity.MyCenter; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * (BusinessInfo)表数据库访问层 + * + * @author makejava + * @since 2020-03-25 20:07:26 + */ +public interface BusinessInfoDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + BusinessInfo queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param businessInfo 实例对象 + * @return 对象列表 + */ + List queryAll(BusinessInfo businessInfo); + + /** + * 新增数据 + * + * @param businessInfo 实例对象 + * @return 影响行数 + */ + int insert(BusinessInfo businessInfo); + + /** + * 修改数据 + * + * @param businessInfo 实例对象 + * @return 影响行数 + */ + int update(BusinessInfo businessInfo); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + /** + * 根据邮箱查询商家信息 + * @param text + * @return + */ + BusinessInfo queryByMailbox(String text); + + /** + * 根据手机号查询个人信息 + * @param text + * @return + */ + BusinessInfo queryByPhoneNumer(String text); + + /** + * 根据令牌修改邮箱状态 + * @param code 令牌 + * @param mailboxStatus 邮箱状态 + */ + void updateMailboxStatusByCode(@Param("code") String code, @Param("mailboxStatus") int mailboxStatus); + + void updatePasswordByCellPhNumber(@Param("cellPhNumber") String cellPhNumber, @Param("password") String password); + + /** + * 根据个人的id查询个人信息,当商家有头像时 + * @param userId 商家的id + * @return + */ + MyCenter queruyPersonageInfo(Integer userId); + /** + * 根据个人的id查询个人信息,当商家没有头像时 + * @param userId 商家的id + * @return + */ + MyCenter queruyPersonageInfo2(Integer userId); + /** + * 根据个人的id查询商家拥有的订单数 + * @return + */ + MyCenter queruyOrderSum(int i); + + /** + * 根据个人的id查询商家拥有的预订单数 + * @param userId 商家id + * @param status 订单状态 + * @return + */ + MyCenter bookOrederSum(@Param("userId") Integer userId, @Param("status")Integer status); + /** + * 根据电话号码更新所有的数据 + * @param user + */ + void updateByCellPhNumber(BusinessInfo user); + + /** + * 通过电话号码查询用户信息 + * @param phone + * @return + */ + BusinessInfo queryByPhone(@Param("cellPhNumber") String phone); + /** + * 查询收益 + * @param userId 根据用户id + * @return + */ + String queryIncome(Integer userId); +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/EvaluateServiceDao.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/EvaluateServiceDao.java new file mode 100644 index 0000000000000000000000000000000000000000..99621bf1186c7c8ccff6c92bc07516f3147ee696 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/EvaluateServiceDao.java @@ -0,0 +1,66 @@ +package com.team7.happycommunity.businessservice.dao; + +import com.team7.happycommunity.businessservice.entity.EvaluateService; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * (EvaluateService)表数据库访问层 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +public interface EvaluateServiceDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + EvaluateService queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param evaluateService 实例对象 + * @return 对象列表 + */ + List queryAll(EvaluateService evaluateService); + + /** + * 新增数据 + * + * @param evaluateService 实例对象 + * @return 影响行数 + */ + int insert(EvaluateService evaluateService); + + /** + * 修改数据 + * + * @param evaluateService 实例对象 + * @return 影响行数 + */ + int update(EvaluateService evaluateService); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/PpPayserviceDao.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/PpPayserviceDao.java new file mode 100644 index 0000000000000000000000000000000000000000..a893a59eb2c22a08cf0fa165caa849b2b9f5f1d6 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/PpPayserviceDao.java @@ -0,0 +1,101 @@ +package com.team7.happycommunity.businessservice.dao; + +import com.team7.happycommunity.businessservice.entity.EarnIng; +import com.team7.happycommunity.businessservice.entity.PpPayservice; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * (PpPayservice)表数据库访问层 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +public interface PpPayserviceDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + PpPayservice queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param ppPayservice 实例对象 + * @return 对象列表 + */ + List queryAll(PpPayservice ppPayservice); + + /** + * 新增数据 + * + * @param ppPayservice 实例对象 + * @return 影响行数 + */ + int insert(PpPayservice ppPayservice); + + /** + * 修改数据 + * + * @param ppPayservice 实例对象 + * @return 影响行数 + */ + int update(PpPayservice ppPayservice); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + /** + * 查询商家所有的收益 + * @param userId + * @return + */ + List queryEarnByUserId(Integer userId); + /** + * 根据用户查询商家已发布的服务 + * + * @param start 开始查询的条数 + * @param limit 查几条 + * @param userId 用户id + * @return + */ + List queryServicedByUserId(@Param("start") Integer start, @Param("limit")Integer limit, @Param("userId")Integer userId); + /** + * 根据服务的id修改服务的状态 + * @param status 修改后的服务状态 + * @param id 服务的id + */ + void updateStatusById(@Param("status") Integer status, @Param("id")Integer id); + /** + * 根据服务的id查询服务的详细信息 + * @param id 服务id + * @return 服务详情 + */ + PpPayservice queryDetailsById(Integer id); + + /** + * 根据用户的id,查询发布的总条数 + * @param userId + * @return + */ + Integer queryCountByUserId(Integer userId); +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/ServiceImgDao.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/ServiceImgDao.java new file mode 100644 index 0000000000000000000000000000000000000000..ac3d1e12a588d5689ad8828221b1dc63501e06b5 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/ServiceImgDao.java @@ -0,0 +1,78 @@ +package com.team7.happycommunity.businessservice.dao; + +import com.team7.happycommunity.businessservice.entity.ImgUrlService; +import com.team7.happycommunity.businessservice.entity.ServiceImg; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * (ServiceImg)表数据库访问层 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +public interface ServiceImgDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + ServiceImg queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param serviceImg 实例对象 + * @return 对象列表 + */ + List queryAll(ServiceImg serviceImg); + + /** + * 新增数据 + * + * @param serviceImg 实例对象 + * @return 影响行数 + */ + int insert(ServiceImg serviceImg); + + /** + * 修改数据 + * + * @param serviceImg 实例对象 + * @return 影响行数 + */ + int update(ServiceImg serviceImg); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + /** + * 根据服务的id上传多张图片 + * @param list + * + */ + void insertList( List list); + /** + * 删除服务id对应的图片 + * @param id + */ + void deleteByServiceId(Integer id); + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/ServiceOrderDao.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/ServiceOrderDao.java new file mode 100644 index 0000000000000000000000000000000000000000..b01642455f349da5a45b473fa1403ec7968f9ef6 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/dao/ServiceOrderDao.java @@ -0,0 +1,99 @@ +package com.team7.happycommunity.businessservice.dao; + +import com.team7.happycommunity.businessservice.entity.OrderClassify; +import com.team7.happycommunity.businessservice.entity.OrderDetails; +import com.team7.happycommunity.businessservice.entity.ServiceOrder; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * (ServiceOrder)表数据库访问层 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +public interface ServiceOrderDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + ServiceOrder queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param serviceOrder 实例对象 + * @return 对象列表 + */ + List queryAll(ServiceOrder serviceOrder); + + /** + * 新增数据 + * + * @param serviceOrder 实例对象 + * @return 影响行数 + */ + int insert(ServiceOrder serviceOrder); + + /** + * 修改数据 + * + * @param serviceOrder 实例对象 + * @return 影响行数 + */ + int update(ServiceOrder serviceOrder); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + /** + * 查询订单 + * @param userId 商家id + * @param status 订单状态 + * @return + */ + List queryOrderByUserIdAndStatus(@Param("userId") Integer userId, @Param("status")Integer status); + /** + * 根据订单的id和订单状态修改订单状态 + * @param status + * @param id + * @return + */ + void updateById(@Param("id") Integer id, @Param("status") Integer status); + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询 + * @param orderId 定单号id + * @return + */ + OrderDetails queryOrder(Integer orderId); + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询(此次查询服务的图片) + * @param orderId 订单号id + * @return + */ + List queryImage(Integer orderId); + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询(此次查询服务的评论) + * @param orderId 定点杆号id + * @return + */ + List evaluate(Integer orderId); +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/Areainfo.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/Areainfo.java new file mode 100644 index 0000000000000000000000000000000000000000..c7077d47e941cef770960bb92d3117c9d1792489 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/Areainfo.java @@ -0,0 +1,59 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * 小区信息表(Areainfo)实体类 + * + * @author makejava + * @since 2020-03-27 14:24:46 + */ +@ApiModel(value = "小区信息表") +public class Areainfo implements Serializable { + private static final long serialVersionUID = -86983646885762501L; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "小区名称") + private String areaName; + @ApiModelProperty(value = "小区地址") + private String areaAddress; + @ApiModelProperty(value = "详细信息") + private String detail1; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getAreaAddress() { + return areaAddress; + } + + public void setAreaAddress(String areaAddress) { + this.areaAddress = areaAddress; + } + + public String getDetail1() { + return detail1; + } + + public void setDetail1(String detail1) { + this.detail1 = detail1; + } + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessImage.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessImage.java new file mode 100644 index 0000000000000000000000000000000000000000..c1b7a638550bb78a906d6207ad1236c750948af1 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessImage.java @@ -0,0 +1,59 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * (BusinessImage)实体类 + * + * @author makejava + * @since 2020-03-25 20:07:28 + */ +@ApiModel(value = "商家图片实体类") +public class BusinessImage implements Serializable { + private static final long serialVersionUID = 797230701489261839L; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "商家id") + private Integer businessInfoId; + @ApiModelProperty(value = "商家url") + private String url; + @ApiModelProperty(value = "图片类型") + private Integer type; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getBusinessInfoId() { + return businessInfoId; + } + + public void setBusinessInfoId(Integer businessInfoId) { + this.businessInfoId = businessInfoId; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessInfo.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..a9cec1d6a11f84d9ec33e571abac23881d9e78a9 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessInfo.java @@ -0,0 +1,239 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.util.Date; +import java.io.Serializable; + +/** + * (BusinessInfo)实体类 + * + * @author makejava + * @since 2020-03-25 20:07:24 + */ +@ApiModel(value = "商家信息实体类") +public class BusinessInfo implements Serializable { + private static final long serialVersionUID = -76729269658911894L; + + @ApiModelProperty(value = "id") + private Integer id; + + @ApiModelProperty(value = "身份证") + private String idNumber; + @ApiModelProperty(value = "手机号") + private String cellPhNumber; + @ApiModelProperty(value = "密码") + private String password; + @ApiModelProperty(value = "姓名") + private String name; + @ApiModelProperty(value = "性别") + private Integer sex; + @ApiModelProperty(value = "昵称") + private String nickname; + @ApiModelProperty(value = "邮箱") + private String mailbox; + @ApiModelProperty(value = "小区id") + private Integer plotId; + @ApiModelProperty(value = "标签") + private String tag; + @ApiModelProperty(value = "邮箱状态") + private Integer mailboxStatus; + @ApiModelProperty(value = "邮箱的令牌") + private String code; + @ApiModelProperty(value = "盐") + private String passwordSalt; + @ApiModelProperty(value = "账户创建时间") + private Date createTime; + @ApiModelProperty(value = "是否认证") + private String authentication; + @ApiModelProperty(value = "申请认证时间") + private Date authTime; + /** + * 账号状态 0 未通过审核 1通过审核 + */ + @ApiModelProperty(value = "账号状态") + private Integer status; + @ApiModelProperty(value = "商家地址") + private String address; + @ApiModelProperty(value = "商家介绍") + private String introduce; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getIdNumber() { + return idNumber; + } + + public void setIdNumber(String idNumber) { + this.idNumber = idNumber; + } + + public String getCellPhNumber() { + return cellPhNumber; + } + + public void setCellPhNumber(String cellPhNumber) { + this.cellPhNumber = cellPhNumber; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getSex() { + return sex; + } + + public void setSex(Integer sex) { + this.sex = sex; + } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public String getMailbox() { + return mailbox; + } + + public void setMailbox(String mailbox) { + this.mailbox = mailbox; + } + + public Integer getPlotId() { + return plotId; + } + + public void setPlotId(Integer plotId) { + this.plotId = plotId; + } + + public String getTag() { + return tag; + } + + public void setTag(String tag) { + this.tag = tag; + } + + public Integer getMailboxStatus() { + return mailboxStatus; + } + + public void setMailboxStatus(Integer mailboxStatus) { + this.mailboxStatus = mailboxStatus; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getPasswordSalt() { + return passwordSalt; + } + + public void setPasswordSalt(String passwordSalt) { + this.passwordSalt = passwordSalt; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getAuthentication() { + return authentication; + } + + public void setAuthentication(String authentication) { + this.authentication = authentication; + } + + public Date getAuthTime() { + return authTime; + } + + public void setAuthTime(Date authTime) { + this.authTime = authTime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getIntroduce() { + return introduce; + } + + public void setIntroduce(String introduce) { + this.introduce = introduce; + } + + @Override + public String toString() { + return "BusinessInfo{" + + "id=" + id + + ", idNumber='" + idNumber + '\'' + + ", cellPhNumber='" + cellPhNumber + '\'' + + ", password='" + password + '\'' + + ", name='" + name + '\'' + + ", sex=" + sex + + ", nickname='" + nickname + '\'' + + ", mailbox='" + mailbox + '\'' + + ", plotId=" + plotId + + ", tag='" + tag + '\'' + + ", mailboxStatus=" + mailboxStatus + + ", code='" + code + '\'' + + ", passwordSalt='" + passwordSalt + '\'' + + ", createTime=" + createTime + + ", authentication='" + authentication + '\'' + + ", authTime=" + authTime + + ", status=" + status + + ", address='" + address + '\'' + + ", introduce='" + introduce + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessInfoAreainfo.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessInfoAreainfo.java new file mode 100644 index 0000000000000000000000000000000000000000..eebaa9d2143ea2e413da40634e7086577159fe3b --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/BusinessInfoAreainfo.java @@ -0,0 +1,29 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +@ApiModel(value = "商家信息地址实体类") +public class BusinessInfoAreainfo implements Serializable{ + @ApiModelProperty(value = "商家信息") + private BusinessInfo businessInfo; + @ApiModelProperty(value = "商家地址信息") + private Areainfo areainfo; + + public BusinessInfo getBusinessInfo() { + return businessInfo; + } + + public void setBusinessInfo(BusinessInfo businessInfo) { + this.businessInfo = businessInfo; + } + + public Areainfo getAreainfo() { + return areainfo; + } + + public void setAreainfo(Areainfo areainfo) { + this.areainfo = areainfo; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/EarnIng.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/EarnIng.java new file mode 100644 index 0000000000000000000000000000000000000000..d1d6f5e4cf9d210af56471b587fe046849e3ac1b --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/EarnIng.java @@ -0,0 +1,50 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +import java.util.Date; +@ApiModel(value = "商家收益实体类") +public class EarnIng implements Serializable { + @ApiModelProperty(value = "价格") + private String payprice; + @ApiModelProperty(value = "服务名称") + private String payname; + @ApiModelProperty(value = "服务id") + private Integer serviceid ; + @ApiModelProperty(value = "服务时间") + private Date endtime; + + public String getPayprice() { + return payprice; + } + + public void setPayprice(String payprice) { + this.payprice = payprice; + } + + public String getPayname() { + return payname; + } + + public void setPayname(String payname) { + this.payname = payname; + } + + public Integer getServiceid() { + return serviceid; + } + + public void setServiceid(Integer serviceid) { + this.serviceid = serviceid; + } + + public Date getEndtime() { + return endtime; + } + + public void setEndtime(Date endtime) { + this.endtime = endtime; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/EvaluateService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/EvaluateService.java new file mode 100644 index 0000000000000000000000000000000000000000..33dddf7ff4b460ced7c1e01e49d0a899e71f5014 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/EvaluateService.java @@ -0,0 +1,71 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * (EvaluateService)实体类 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +@ApiModel(value = "服务评价实体类") +public class EvaluateService implements Serializable { + private static final long serialVersionUID = -67118356778642889L; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "服务id") + private Integer serviceid; + @ApiModelProperty(value = "评价内容") + private String evalute; + /** + * 评论用户 + */ + private Integer userid; + + private String busReply; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getServiceid() { + return serviceid; + } + + public void setServiceid(Integer serviceid) { + this.serviceid = serviceid; + } + + public String getEvalute() { + return evalute; + } + + public void setEvalute(String evalute) { + this.evalute = evalute; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + public String getBusReply() { + return busReply; + } + + public void setBusReply(String busReply) { + this.busReply = busReply; + } + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ImgUrlService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ImgUrlService.java new file mode 100644 index 0000000000000000000000000000000000000000..a5b8537d404a7be7ae54e08c75f15e70437f1464 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ImgUrlService.java @@ -0,0 +1,29 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +@ApiModel(value = "图片实体类") +public class ImgUrlService implements Serializable { + @ApiModelProperty(value = "图片链接") + private String imgUrl; + @ApiModelProperty(value = "id") + private Integer id; + + public String getImgUrl() { + return imgUrl; + } + + public void setImgUrl(String imgUrl) { + this.imgUrl = imgUrl; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/MyCenter.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/MyCenter.java new file mode 100644 index 0000000000000000000000000000000000000000..50032c7dcec544571c5fbf7ba47b5a436b4588d6 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/MyCenter.java @@ -0,0 +1,54 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +@ApiModel(value = "个人中心实体类") +public class MyCenter implements Serializable { + @ApiModelProperty(value = "图片链接") + private String url; + @ApiModelProperty(value = "信息") + private String name; + //订单数 + @ApiModelProperty(value = "订单数") + private Integer orderSum; + + //预约数 + @ApiModelProperty(value = "bookOrederSum") + private Integer bookOrederSum; + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getOrderSum() { + return orderSum; + } + + public void setOrderSum(Integer orderSum) { + this.orderSum = orderSum; + } + + public Integer getBookOrederSum() { + return bookOrederSum; + } + + + public void setBookOrederSum(int bookOrederSum) { + this.bookOrederSum = bookOrederSum; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/OrderClassify.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/OrderClassify.java new file mode 100644 index 0000000000000000000000000000000000000000..3ea5dbde7b727f9505fc8dca2d2d2aa344081ac6 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/OrderClassify.java @@ -0,0 +1,70 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +@ApiModel(value = "订单分类实体类") +public class OrderClassify implements Serializable { + @ApiModelProperty(value = "订单号") + private String ordernumber; + @ApiModelProperty(value = "订单图片") + private String img; + @ApiModelProperty(value = "订单名称") + private String payname; + @ApiModelProperty(value = "订单价格") + private String payprice; + @ApiModelProperty(value = "订单状态") + private Integer status; + //订单id + @ApiModelProperty(value = "订单id") + private Integer id; + + public String getOrdernumber() { + return ordernumber; + } + + public void setOrdernumber(String ordernumber) { + this.ordernumber = ordernumber; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + + public String getPayname() { + return payname; + } + + public void setPayname(String payname) { + this.payname = payname; + } + + public String getPayprice() { + return payprice; + } + + public void setPayprice(String payprice) { + this.payprice = payprice; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/OrderDetails.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/OrderDetails.java new file mode 100644 index 0000000000000000000000000000000000000000..327ad8b508263dbd75ebcb9b6a6b82dd7643671e --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/OrderDetails.java @@ -0,0 +1,154 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +import java.util.Date; +@ApiModel(value = "订单详细信息实体类") +public class OrderDetails implements Serializable { + @ApiModelProperty(value = "订单状态") + private Integer status; + @ApiModelProperty(value = "订单下单时间") + private Date starttime; + @ApiModelProperty(value = "订单支付时间") + private Date endtime; + @ApiModelProperty(value = "订单号") + private String ordernumber; + //订单id + @ApiModelProperty(value = "订单id") + private Integer id; + + private String name; + private String areaName; + private String areaAddress; + private String servicecontext; + private String payprice; + private String payname; + //0-支付宝,1-微信,2-现金 + private Integer payway; + private String img; + private String evalute; + + private String cellPhNumber; + + public String getCellPhNumber() { + return cellPhNumber; + } + + public void setCellPhNumber(String cellPhNumber) { + this.cellPhNumber = cellPhNumber; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Date getStarttime() { + return starttime; + } + + public void setStarttime(Date starttime) { + this.starttime = starttime; + } + + public Date getEndtime() { + return endtime; + } + + public void setEndtime(Date endtime) { + this.endtime = endtime; + } + + public String getOrdernumber() { + return ordernumber; + } + + public void setOrdernumber(String ordernumber) { + this.ordernumber = ordernumber; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getAreaAddress() { + return areaAddress; + } + + public void setAreaAddress(String areaAddress) { + this.areaAddress = areaAddress; + } + + public String getServicecontext() { + return servicecontext; + } + + public void setServicecontext(String servicecontext) { + this.servicecontext = servicecontext; + } + + public String getPayprice() { + return payprice; + } + + public void setPayprice(String payprice) { + this.payprice = payprice; + } + + public String getPayname() { + return payname; + } + + public void setPayname(String payname) { + this.payname = payname; + } + + public Integer getPayway() { + return payway; + } + + public void setPayway(Integer payway) { + this.payway = payway; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + + public String getEvalute() { + return evalute; + } + + public void setEvalute(String evalute) { + this.evalute = evalute; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/PageInfo.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/PageInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..b58bb41cb98227b3cb1d09b16ba4e01922578858 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/PageInfo.java @@ -0,0 +1,52 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import org.springframework.data.relational.core.sql.In; + +import java.io.Serializable; + +public class PageInfo implements Serializable { + + private T list; + private Integer page; + + private Integer limit; + + private Integer count;//总条数 + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public PageInfo(T list) { + this.list = list; + } + + public T getList() { + return list; + } + + public void setList(T list) { + this.list = list; + } + + public Integer getPage() { + return page; + } + + public void setPage(Integer page) { + this.page = page; + } + + public Integer getLimit() { + return limit; + } + + public void setLimit(Integer limit) { + this.limit = limit; + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/PpPayservice.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/PpPayservice.java new file mode 100644 index 0000000000000000000000000000000000000000..8917d1af3ad552e6210f3e28929e97e93f06b828 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/PpPayservice.java @@ -0,0 +1,199 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +import java.util.List; + +/** + * (PpPayservice)实体类 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +@ApiModel(value = "服务实体类") +public class PpPayservice implements Serializable { + private static final long serialVersionUID = -99092034779783807L; + @ApiModelProperty(value = "服务订单") + private ServiceOrder serviceOrder; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "物业id") + private Integer propertyid; + @ApiModelProperty(value = "商家id") + private Integer shopid; + @ApiModelProperty(value = "服务名称") + private String payname; + @ApiModelProperty(value = "服务金额") + private String payprice; + @ApiModelProperty(value = "服务时间") + private String paytime; + @ApiModelProperty(value = "服务状态") + private Integer status; + + private String icon; + @ApiModelProperty(value = "服务类型") + private Integer serviceType; + @ApiModelProperty(value = "商家信息") + private BusinessInfo businessInfo; + + public BusinessInfo getBusinessInfo() { + return businessInfo; + } + + public void setBusinessInfo(BusinessInfo businessInfo) { + this.businessInfo = businessInfo; + } + + public PpPayservice() { + } + @ApiModelProperty(value = "服务图片") + private List img; + @ApiModelProperty(value = "用户id") + private Integer userId;//用户id + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public ServiceOrder getServiceOrder() { + return serviceOrder; + } + + public void setServiceOrder(ServiceOrder serviceOrder) { + this.serviceOrder = serviceOrder; + } + + public PpPayservice(ServiceOrder serviceOrder, Integer id, Integer propertyid, Integer shopid, String payname, String payprice, String paytime, Integer status, String icon, Integer serviceType, BusinessInfo businessInfo, List img, Integer userId, Integer payway, String servicecontext) { + this.serviceOrder = serviceOrder; + this.id = id; + this.propertyid = propertyid; + this.shopid = shopid; + this.payname = payname; + this.payprice = payprice; + this.paytime = paytime; + this.status = status; + this.icon = icon; + this.serviceType = serviceType; + this.businessInfo = businessInfo; + this.img = img; + this.userId = userId; + this.payway = payway; + this.servicecontext = servicecontext; + } + + /** + * 支付方式 + */ + private Integer payway; + /** + * 服务描述 + */ + private String servicecontext; + + public List getImg() { + return img; + } + + public void setImg(List img) { + this.img = img; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getPropertyid() { + return propertyid; + } + + public void setPropertyid(Integer propertyid) { + this.propertyid = propertyid; + } + + public Integer getShopid() { + return shopid; + } + + public void setShopid(Integer shopid) { + this.shopid = shopid; + } + + public String getPayname() { + return payname; + } + + public void setPayname(String payname) { + this.payname = payname; + } + + public String getPayprice() { + return payprice; + } + + public void setPayprice(String payprice) { + this.payprice = payprice; + } + + public String getPaytime() { + return paytime; + } + + public void setPaytime(String paytime) { + this.paytime = paytime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public Integer getServiceType() { + return serviceType; + } + + public void setServiceType(Integer serviceType) { + this.serviceType = serviceType; + } + + public Integer getPayway() { + return payway; + } + + public void setPayway(Integer payway) { + this.payway = payway; + } + + public String getServicecontext() { + return servicecontext; + } + + public void setServicecontext(String servicecontext) { + this.servicecontext = servicecontext; + } + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ServiceImg.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ServiceImg.java new file mode 100644 index 0000000000000000000000000000000000000000..ccaefcd36d0bc22f3cb1b320a2ed4d1c045f81ae --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ServiceImg.java @@ -0,0 +1,49 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * (ServiceImg)实体类 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +@ApiModel(value = "服务图片信息实体类") +public class ServiceImg implements Serializable { + private static final long serialVersionUID = -11738348509337658L; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "服务id") + private Integer serviceid; + @ApiModelProperty(value = "图片链接") + private String img; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getServiceid() { + return serviceid; + } + + public void setServiceid(Integer serviceid) { + this.serviceid = serviceid; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ServiceOrder.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ServiceOrder.java new file mode 100644 index 0000000000000000000000000000000000000000..43e98b61ddfa5b21d203fb59f30a2aa8ae9dd1eb --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/entity/ServiceOrder.java @@ -0,0 +1,116 @@ +package com.team7.happycommunity.businessservice.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +import java.util.Date; + +/** + * (ServiceOrder)实体类 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +@ApiModel(value = "服务订单实体类") +public class ServiceOrder implements Serializable { + private static final long serialVersionUID = -86406737992191330L; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "服务id") + private Integer serviceid; + @ApiModelProperty(value = "被服务者id") + private Integer userid; + @ApiModelProperty(value = "开始时间") + private Date starttime; + @ApiModelProperty(value = "结束时间") + private Date endtime; + @ApiModelProperty(value = "订单状态") + private Integer status; + @ApiModelProperty(value = "订单号") + private String ordernumber; + @ApiModelProperty(value = "服务") + private PpPayservice ppPayservice; + + public ServiceOrder(Integer id, Integer serviceid, Integer userid, Date starttime, Date endtime, Integer status, String ordernumber) { + this.id = id; + this.serviceid = serviceid; + this.userid = userid; + this.starttime = starttime; + this.endtime = endtime; + this.status = status; + this.ordernumber = ordernumber; + } + + public ServiceOrder() { + } + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public PpPayservice getPpPayservice() { + return ppPayservice; + } + + public void setPpPayservice(PpPayservice ppPayservice) { + this.ppPayservice = ppPayservice; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getServiceid() { + return serviceid; + } + + public void setServiceid(Integer serviceid) { + this.serviceid = serviceid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + public Date getStarttime() { + return starttime; + } + + public void setStarttime(Date starttime) { + this.starttime = starttime; + } + + public Date getEndtime() { + return endtime; + } + + public void setEndtime(Date endtime) { + this.endtime = endtime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getOrdernumber() { + return ordernumber; + } + + public void setOrdernumber(String ordernumber) { + this.ordernumber = ordernumber; + } + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/LoginException.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/LoginException.java new file mode 100644 index 0000000000000000000000000000000000000000..1b513f14150c84da1e9489b6966db79e297d8953 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/LoginException.java @@ -0,0 +1,24 @@ +package com.team7.happycommunity.businessservice.exception; + +public class LoginException extends RuntimeException { + + public LoginException() { + super(); + } + + public LoginException(String message) { + super(message); + } + + public LoginException(String message, Throwable cause) { + super(message, cause); + } + + public LoginException(Throwable cause) { + super(cause); + } + + protected LoginException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/MailboxStatusException.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/MailboxStatusException.java new file mode 100644 index 0000000000000000000000000000000000000000..45d77ecc110b68b6eafc4f357bf8c48ac8fbb8e5 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/MailboxStatusException.java @@ -0,0 +1,24 @@ +package com.team7.happycommunity.businessservice.exception; + +public class MailboxStatusException extends RuntimeException{ + + public MailboxStatusException() { + super(); + } + + public MailboxStatusException(String message) { + super(message); + } + + public MailboxStatusException(String message, Throwable cause) { + super(message, cause); + } + + public MailboxStatusException(Throwable cause) { + super(cause); + } + + protected MailboxStatusException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/RegisterException.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/RegisterException.java new file mode 100644 index 0000000000000000000000000000000000000000..075cae4680a326d71ec2632e773fd3cfc98d5c5d --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/RegisterException.java @@ -0,0 +1,23 @@ +package com.team7.happycommunity.businessservice.exception; + +public class RegisterException extends RuntimeException { + public RegisterException() { + super(); + } + + public RegisterException(String message) { + super(message); + } + + public RegisterException(String message, Throwable cause) { + super(message, cause); + } + + public RegisterException(Throwable cause) { + super(cause); + } + + protected RegisterException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/UpdatePasswordException.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/UpdatePasswordException.java new file mode 100644 index 0000000000000000000000000000000000000000..e718be38fa1cb5fb984ad2ef5784b738a714ffb3 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/exception/UpdatePasswordException.java @@ -0,0 +1,24 @@ +package com.team7.happycommunity.businessservice.exception; + +public class UpdatePasswordException extends RuntimeException { + + public UpdatePasswordException() { + super(); + } + + public UpdatePasswordException(String message) { + super(message); + } + + public UpdatePasswordException(String message, Throwable cause) { + super(message, cause); + } + + public UpdatePasswordException(Throwable cause) { + super(cause); + } + + protected UpdatePasswordException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/mq/PhoneCode.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/mq/PhoneCode.java new file mode 100644 index 0000000000000000000000000000000000000000..f25abb1d7b28ea52c63579ec6f5091b76e0d20c9 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/mq/PhoneCode.java @@ -0,0 +1,47 @@ +package com.team7.happycommunity.businessservice.mq; + +import com.rabbitmq.client.Channel; +import com.team7.happycommunity.businessservice.util.SendSms; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.support.AmqpHeaders; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.messaging.handler.annotation.Headers; +import org.springframework.messaging.handler.annotation.Payload; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.Map; + +@Service +public class PhoneCode { + + @Autowired + private RedisTemplate redisTemplate; + + @Autowired + private SendSms sendSms; + @Value("${smsCode}") + private String smsCode; + @Value("${param}") + private String param; + @RabbitHandler + @RabbitListener(queues = "phone_code_queue") + public void processPay(@Payload Map msg, Channel channel, @Headers Map headers){ + String phone = (String) msg.get("phone"); + String code = (String)msg.get("code"); + //调用阿里云地址,发送短信 + sendSms.sms(phone,smsCode,param.replace("[value]",code)); + //签收 + Long tag=(Long)headers.get(AmqpHeaders.DELIVERY_TAG); + try { + channel.basicAck(tag,false); + } catch (IOException e) { + e.printStackTrace(); + } + } + + +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/mq/RefundCode.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/mq/RefundCode.java new file mode 100644 index 0000000000000000000000000000000000000000..0ac39ad5feca5a96f89ddd3a78e06935222d429f --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/mq/RefundCode.java @@ -0,0 +1,44 @@ +package com.team7.happycommunity.businessservice.mq; + +import com.rabbitmq.client.Channel; +import com.team7.happycommunity.businessservice.service.ServiceOrderService; +import com.team7.happycommunity.businessservice.util.SendSms; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.support.AmqpHeaders; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.messaging.handler.annotation.Headers; +import org.springframework.messaging.handler.annotation.Payload; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.Map; + +@Service +public class RefundCode { + + @Resource + private ServiceOrderService serviceOrderService; + + + @RabbitHandler + @RabbitListener(queues = "refund_code_queue") + public void processPay(@Payload Map msg, Channel channel, @Headers Map headers){ + Integer id = (Integer) msg.get("id"); + Integer status = (Integer)msg.get("status"); + //修改状态 + serviceOrderService.updateById(id,status); + //签收 + Long tag=(Long)headers.get(AmqpHeaders.DELIVERY_TAG); + try { + channel.basicAck(tag,false); + } catch (IOException e) { + e.printStackTrace(); + } + } + + +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/AreainfoService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/AreainfoService.java new file mode 100644 index 0000000000000000000000000000000000000000..2bf99371198ede7991399c165de9f8e016849873 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/AreainfoService.java @@ -0,0 +1,56 @@ +package com.team7.happycommunity.businessservice.service; + +import com.team7.happycommunity.businessservice.entity.Areainfo; + +import java.util.List; + +/** + * 小区信息表(Areainfo)表服务接口 + * + * @author makejava + * @since 2020-03-27 14:24:46 + */ +public interface AreainfoService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Areainfo queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param areainfo 实例对象 + * @return 实例对象 + */ + Areainfo insert(Areainfo areainfo); + + /** + * 修改数据 + * + * @param areainfo 实例对象 + * @return 实例对象 + */ + Areainfo update(Areainfo areainfo); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/BusinessImageService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/BusinessImageService.java new file mode 100644 index 0000000000000000000000000000000000000000..5ad920677ccde8780fa079d55f9304e08307f26a --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/BusinessImageService.java @@ -0,0 +1,61 @@ +package com.team7.happycommunity.businessservice.service; + +import com.team7.happycommunity.businessservice.entity.BusinessImage; +import java.util.List; + +/** + * (BusinessImage)表服务接口 + * + * @author makejava + * @since 2020-03-25 20:07:28 + */ +public interface BusinessImageService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + BusinessImage queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param businessImage 实例对象 + * @return 实例对象 + */ + BusinessImage insert(BusinessImage businessImage); + + /** + * 修改数据 + * + * @param businessImage 实例对象 + * @return 实例对象 + */ + BusinessImage update(BusinessImage businessImage); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + /** + * 上传用户头像或者修改用户头像 + * @param url 链接 + * @param userId 用户的id + */ + void uploadHead(String url, Integer userId); +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/BusinessInfoService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/BusinessInfoService.java new file mode 100644 index 0000000000000000000000000000000000000000..35a9153b4e76692623705eab5130f79a95c87159 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/BusinessInfoService.java @@ -0,0 +1,146 @@ +package com.team7.happycommunity.businessservice.service; + +import com.team7.happycommunity.businessservice.entity.BusinessInfo; +import com.team7.happycommunity.businessservice.entity.MyCenter; + +import java.util.List; + +/** + * (BusinessInfo)表服务接口 + * + * @author makejava + * @since 2020-03-25 20:07:27 + */ +public interface BusinessInfoService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + BusinessInfo queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param businessInfo 实例对象 + * @return 实例对象 + */ + BusinessInfo insert(BusinessInfo businessInfo) throws Exception; + + /** + * 修改数据 + * + * @param businessInfo 实例对象 + * @return 实例对象 + */ + BusinessInfo update(BusinessInfo businessInfo); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + /** + * 登录 + * @param text + * @param password + */ + void login(String text, String password) throws Exception; + + /** + * 根据邮箱账号查询 + * @param mailbox + * @return + */ + boolean queryMailbox(String mailbox); + + /** + * 邮箱注册 + * @param user + */ + void register(BusinessInfo user); + /** + * 手机号码注册,密码重置 + * @param phone 手机号码 + * @param resetCode 密码重置参数,1密码重置,短信登录,0注册 + * @return + */ + void phoneRegister(String phone, String resetCode); + /** + * 验证码校正 + * @param phone 电话号码 + * @param code 验证码 + * @return + */ + void codeCheck(String code, String phone); + /** + * 修改邮箱状态 + * @param code 邮箱的令牌 + * @return + */ + void updateMailboxStatus(String code); + /** + * 重置密码 + * @param cellPhNumber 手机号码 + * @param password 密码 + */ + void updatePasswordByCellPhNumber(String cellPhNumber, String password) throws Exception; + + /** + * 根据个人的id查询个人信息,当商家有头像时 + * @param i 商家的id + * @return + */ + MyCenter queruyPersonageInfo(Integer i); + /** + * 根据个人的id查询个人信息,当商家没有头像时 + * @param i 商家的id + * @return + */ + MyCenter queruyPersonageInfo2(Integer i); + /** + * 根据个人的id查询商家拥有的订单数 + * @return + */ + MyCenter queruyOrderSum(int i); + + /** + * 根据个人的id查询商家拥有的订单数 + * @param userId + * @param status 订单状态 + * @return + */ + MyCenter bookOrederSum(Integer userId, Integer status); + + /** + * 根据电话号码更新所有的数据 + * @param user + */ + void updateByCellPhNumber(BusinessInfo user); + + /** + * 通过电话号码查询用户信息 + * @param phone + * @return + */ + BusinessInfo queryByPhone(String phone); + /** + * 查询收益 + * @param userId 根据用户id + * @return + */ + String queryIncome(Integer userId); +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/EvaluateServiceService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/EvaluateServiceService.java new file mode 100644 index 0000000000000000000000000000000000000000..9d9abe3c262d765a5bb400843f6db028c92cd7b4 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/EvaluateServiceService.java @@ -0,0 +1,56 @@ +package com.team7.happycommunity.businessservice.service; + +import com.team7.happycommunity.businessservice.entity.EvaluateService; + +import java.util.List; + +/** + * (EvaluateService)表服务接口 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +public interface EvaluateServiceService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + EvaluateService queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param evaluateService 实例对象 + * @return 实例对象 + */ + EvaluateService insert(EvaluateService evaluateService); + + /** + * 修改数据 + * + * @param evaluateService 实例对象 + * @return 实例对象 + */ + EvaluateService update(EvaluateService evaluateService); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/PpPayserviceService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/PpPayserviceService.java new file mode 100644 index 0000000000000000000000000000000000000000..82655e70bf9d6d87544ab8d3ac1264279acec52a --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/PpPayserviceService.java @@ -0,0 +1,93 @@ +package com.team7.happycommunity.businessservice.service; + +import com.team7.happycommunity.businessservice.entity.EarnIng; +import com.team7.happycommunity.businessservice.entity.PpPayservice; + +import java.util.List; + +/** + * (PpPayservice)表服务接口 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +public interface PpPayserviceService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + PpPayservice queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param ppPayservice 实例对象 + * @return 实例对象 + */ + PpPayservice insert(PpPayservice ppPayservice); + + /** + * 修改数据 + * + * @param ppPayservice 实例对象 + * @return 实例对象 + */ + PpPayservice update(PpPayservice ppPayservice); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + /** + * 查询商家所有的收益 + * @param userId 用户id + * @return + */ + List queryEarnByUserId(Integer userId); + + /** + * 根据用户查询商家已发布的服务 + * + * @param start 开始查询的条数 + * @param limit 查几条 + * @param userId 用户id + * @return + */ + List queryServicedByUserId(Integer start, Integer limit, Integer userId); + + /** + * 根据服务的id修改服务的状态 + * @param status 修改后的服务状态 + * @param id 服务的id + */ + void updateStatusById(Integer status, Integer id); + /** + * 根据服务的id查询服务的详细信息 + * @param id 服务id + * @return 服务详情 + */ + PpPayservice queryDetailsById(Integer id); + + /** + * 根据用户的id,查询发布的总条数 + * @param userId + * @return + */ + Integer queryCountByUserId(Integer userId); +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/ServiceImgService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/ServiceImgService.java new file mode 100644 index 0000000000000000000000000000000000000000..660f7897bbca3f7cc65dd1b69e2055c17839c68a --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/ServiceImgService.java @@ -0,0 +1,71 @@ +package com.team7.happycommunity.businessservice.service; + +import com.team7.happycommunity.businessservice.entity.ImgUrlService; +import com.team7.happycommunity.businessservice.entity.ServiceImg; + +import java.util.List; + +/** + * (ServiceImg)表服务接口 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +public interface ServiceImgService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + ServiceImg queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param serviceImg 实例对象 + * @return 实例对象 + */ + ServiceImg insert(ServiceImg serviceImg); + + /** + * 修改数据 + * + * @param serviceImg 实例对象 + * @return 实例对象 + */ + ServiceImg update(ServiceImg serviceImg); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + /** + * 根据服务的id上传多张图片 + * @param list + * + */ + void insertList(List list); + + /** + * 删除服务id对应的图片 + * @param id + */ + void deleteByServiceId(Integer id); + + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/ServiceOrderService.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/ServiceOrderService.java new file mode 100644 index 0000000000000000000000000000000000000000..901a857b3f6c80e5733cc0bfcb779f47bbe8470b --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/ServiceOrderService.java @@ -0,0 +1,90 @@ +package com.team7.happycommunity.businessservice.service; + +import com.team7.happycommunity.businessservice.entity.OrderClassify; +import com.team7.happycommunity.businessservice.entity.OrderDetails; +import com.team7.happycommunity.businessservice.entity.ServiceOrder; + +import java.util.List; + +/** + * (ServiceOrder)表服务接口 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +public interface ServiceOrderService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + ServiceOrder queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param serviceOrder 实例对象 + * @return 实例对象 + */ + ServiceOrder insert(ServiceOrder serviceOrder); + + /** + * 修改数据 + * + * @param serviceOrder 实例对象 + * @return 实例对象 + */ + ServiceOrder update(ServiceOrder serviceOrder); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + /** + * 查询订单 + * @param userId 商家id + * @param status 订单状态 + * @return + */ + List queryOrderByUserIdAndStatus(Integer userId, Integer status); + /** + * 根据订单的id和订单状态修改订单状态 + * @param status + * @param id + * @return + */ + void updateById(Integer id, Integer status); + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询 + * @param orderId 定单号id + * @return + */ + OrderDetails queryOrder(Integer orderId); + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询(此次查询服务的图片) + * @param orderId 订单号id + * @return + */ + List queryImage(Integer orderId); + /** + * 根据订单id查询订单详情,本次查询分三次sql语句查询(此次查询服务的评论) + * @param orderId 定点杆号id + * @return + */ + List evaluate(Integer orderId); +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/AreainfoServiceImpl.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/AreainfoServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..31ae6a444504a8aa7c58b70c5dc1dde6a6d8b0d0 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/AreainfoServiceImpl.java @@ -0,0 +1,79 @@ +package com.team7.happycommunity.businessservice.service.impl; + +import com.team7.happycommunity.businessservice.dao.AreainfoDao; +import com.team7.happycommunity.businessservice.entity.Areainfo; +import com.team7.happycommunity.businessservice.service.AreainfoService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 小区信息表(Areainfo)表服务实现类 + * + * @author makejava + * @since 2020-03-27 14:24:46 + */ +@Service("areainfoService") +public class AreainfoServiceImpl implements AreainfoService { + @Resource + private AreainfoDao areainfoDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public Areainfo queryById(Integer id) { + return this.areainfoDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.areainfoDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param areainfo 实例对象 + * @return 实例对象 + */ + @Override + public Areainfo insert(Areainfo areainfo) { + this.areainfoDao.insert(areainfo); + return areainfo; + } + + /** + * 修改数据 + * + * @param areainfo 实例对象 + * @return 实例对象 + */ + @Override + public Areainfo update(Areainfo areainfo) { + this.areainfoDao.update(areainfo); + return this.queryById(areainfo.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.areainfoDao.deleteById(id) > 0; + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/BusinessImageServiceImpl.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/BusinessImageServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..09671e677faf0c8e3523f41e531514a83545823c --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/BusinessImageServiceImpl.java @@ -0,0 +1,100 @@ +package com.team7.happycommunity.businessservice.service.impl; + +import com.team7.happycommunity.businessservice.entity.BusinessImage; +import com.team7.happycommunity.businessservice.dao.BusinessImageDao; +import com.team7.happycommunity.businessservice.entity.ServiceImg; +import com.team7.happycommunity.businessservice.service.BusinessImageService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (BusinessImage)表服务实现类 + * + * @author makejava + * @since 2020-03-25 20:07:28 + */ +@Service("businessImageService") +public class BusinessImageServiceImpl implements BusinessImageService { + @Resource + private BusinessImageDao businessImageDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public BusinessImage queryById(Integer id) { + return this.businessImageDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.businessImageDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param businessImage 实例对象 + * @return 实例对象 + */ + @Override + public BusinessImage insert(BusinessImage businessImage) { + this.businessImageDao.insert(businessImage); + return businessImage; + } + + /** + * 修改数据 + * + * @param businessImage 实例对象 + * @return 实例对象 + */ + @Override + public BusinessImage update(BusinessImage businessImage) { + this.businessImageDao.update(businessImage); + return this.queryById(businessImage.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.businessImageDao.deleteById(id) > 0; + } + + @Override + public void uploadHead(String url, Integer userId){ + //查询该用户是否有头像 + //1.用户没有头像,插入数据 + BusinessImage img=new BusinessImage(); + img.setBusinessInfoId(userId); + img.setType(0); + List businessImages = businessImageDao.queryAll(img); + if(businessImages==null||businessImages.size()==0){ + //上传头像 + img.setUrl(url); + businessImageDao.insert(img); + return; + } + //2.用户已有头像,修改数据 + img.setUrl(url); + img.setId(businessImages.get(0).getId()); + businessImageDao.update(img); + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/BusinessInfoServiceImpl.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/BusinessInfoServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..607314d2b76d3231718eb0f19e04e09c55f08580 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/BusinessInfoServiceImpl.java @@ -0,0 +1,265 @@ +package com.team7.happycommunity.businessservice.service.impl; + +import com.team7.happycommunity.businessservice.entity.BusinessInfo; +import com.team7.happycommunity.businessservice.dao.BusinessInfoDao; +import com.team7.happycommunity.businessservice.entity.MyCenter; +import com.team7.happycommunity.businessservice.exception.LoginException; +import com.team7.happycommunity.businessservice.exception.MailboxStatusException; +import com.team7.happycommunity.businessservice.exception.RegisterException; +import com.team7.happycommunity.businessservice.service.BusinessInfoService; +import com.team7.happycommunity.businessservice.util.MailUtils; +import com.team7.happycommunity.businessservice.util.Md5Util; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.*; +import java.util.concurrent.TimeUnit; + +/** + * (BusinessInfo)表服务实现类 + * + * @author makejava + * @since 2020-03-25 20:07:27 + */ +@Service("businessInfoService") +public class BusinessInfoServiceImpl implements BusinessInfoService { + @Resource + private BusinessInfoDao businessInfoDao; + + @Value("${website}") + private String website; + @Value("${port}") + private String port; + + @Autowired + private RedisTemplate redisTemplate; + + @Autowired + private HttpServletRequest request; + @Autowired + private RabbitTemplate rabbitTemplate; + @Resource + private HttpServletResponse response; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public BusinessInfo queryById(Integer id) { + return this.businessInfoDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.businessInfoDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param businessInfo 实例对象 + * @return 实例对象 + */ + @Override + public BusinessInfo insert(BusinessInfo businessInfo) throws Exception { + //密码加密 + if(businessInfo.getPassword()!=null&&businessInfo.getPassword()!="") + businessInfo.setPassword(Md5Util.encodeByMd5(businessInfo.getPassword())); + int insert = this.businessInfoDao.insert(businessInfo); + businessInfo.setId(insert); + return businessInfo; + } + + /** + * 修改数据 + * + * @param businessInfo 实例对象 + * @return 实例对象 + */ + @Override + public BusinessInfo update(BusinessInfo businessInfo) { + this.businessInfoDao.update(businessInfo); + return this.queryById(businessInfo.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.businessInfoDao.deleteById(id) > 0; + } + + @Override + public void login(String text, String password) throws Exception { + BusinessInfo user =null; + if(text.contains("@")){ + //为邮箱 + user=businessInfoDao.queryByMailbox(text); + if(user.getMailboxStatus()!=0){ + throw new LoginException("账号不存在"); + } + + + }else{ + user=businessInfoDao.queryByPhoneNumer(text); + } + if(user == null){ + throw new LoginException("账号不存在"); + } + + String realPassword = Md5Util.encodeByMd5(password); + if (!user.getPassword().equals(realPassword)){ + throw new LoginException("密码不存在"); + } + //保存用户名到cookie和redis中,存活时间24小时,原理,客户端发送cookie过来,我取出来值name,看redis中是否有cookie的值,有则登录, + //无,则提醒用户登录; + // request.getSession(); + Cookie c=new Cookie("name"+user.getName(),user.getName()); + //cookie存活时间24小时 + c.setMaxAge(60*60*24); + c.setPath("/"); //根据个人的不用,在不同功能的路径下创建 + response.addCookie(c); + //存储到redis中, + //2.将验证码保存到redis中 + redisTemplate.boundValueOps("name"+user.getName()).set(user.getName()); + redisTemplate.boundValueOps("name"+user.getName()).expire(24, TimeUnit.HOURS);//24小时过期 + } + + @Override + public boolean queryMailbox(String mailbox) { + BusinessInfo user = businessInfoDao.queryByMailbox(mailbox); + if(user==null||user.getMailboxStatus()!=0){ + return true; + } + return false; + } + + @Override + public void register(BusinessInfo user) { + // 发送邮件,存储邮箱,并将mailbox_status状态改为1,并随机生成一个code邮箱令牌,并存储到数据库,密码加密 + //1.生成一个UUID数字 + String code = UUID.randomUUID().toString().replace("_",""); + user.setCode(code); + String content="点击激活"; + MailUtils.sendMail(user.getMailbox(),content,"幸福小区邀请您注册,请点击链接"); + //2.进行密码加密 + try { + String password = Md5Util.encodeByMd5(user.getPassword()); + user.setPassword(password); + } catch (Exception e) { + e.printStackTrace(); + } + //邮箱状态 + user.setMailboxStatus(1); + //存储 + businessInfoDao.insert(user); + } + + @Override + public void phoneRegister(String cellPhNumber,String resetCode ) { + //判断手机号是否被注册 + if(resetCode==null||!resetCode.equals("1")){ + BusinessInfo user = businessInfoDao.queryByPhoneNumer(cellPhNumber); + if(user!=null){ + throw new RegisterException("手机号已经被注册"); + } + } + //1.生成一个六位验证码 + Random random=new Random(); + int code = random.nextInt(999999); + if(code<100000){ + code=code+100000; + } + //2.将验证码保存到redis中 + redisTemplate.boundValueOps("code_"+cellPhNumber).set(code+""); + redisTemplate.boundValueOps("code_"+cellPhNumber).expire(5, TimeUnit.MINUTES);//5分钟过期 + //3.将验证码发送到mq + Map map=new HashMap<>(); + map.put("phone",cellPhNumber); + map.put("code",code+""); + rabbitTemplate.convertAndSend("phone_code_exchange","phone."+cellPhNumber, map); + } + @Override + public void codeCheck(String code, String phone) { + //1.校验 + String sysCode = (String)redisTemplate.boundValueOps("code_" + phone).get(); + if(sysCode==null){ + throw new RegisterException("验证码过期或未发送"); + } + if(!sysCode.equals(code)){ + throw new RegisterException("验证码不正确"); + } + } + @Override + public void updateMailboxStatus(String code) { + BusinessInfo user=new BusinessInfo(); + user.setCode(code); + List personUsers = businessInfoDao.queryAll(user); + if(personUsers==null||personUsers.size()==0){ + throw new MailboxStatusException("激活码不正确"); + } + //1.修改邮箱状态 + businessInfoDao.updateMailboxStatusByCode(code,0); + } + + @Override + public void updatePasswordByCellPhNumber(String cellPhNumber, String password) throws Exception { + businessInfoDao.updatePasswordByCellPhNumber(cellPhNumber,Md5Util.encodeByMd5(password)); + } + @Override + public MyCenter queruyPersonageInfo(Integer userId){ + return businessInfoDao.queruyPersonageInfo(userId); + } + + @Override + public MyCenter queruyPersonageInfo2(Integer userId){ + return businessInfoDao.queruyPersonageInfo2(userId); + } + + @Override + public MyCenter queruyOrderSum(int i){ + return businessInfoDao.queruyOrderSum(i); + } + + @Override + public MyCenter bookOrederSum(Integer userId, Integer status){ + return businessInfoDao.bookOrederSum(userId,status); + } + + @Override + public void updateByCellPhNumber(BusinessInfo user){ + businessInfoDao.updateByCellPhNumber(user); + } + + @Override + public BusinessInfo queryByPhone(String phone){ + return businessInfoDao.queryByPhone(phone); + } + + @Override + public String queryIncome(Integer userId){ + return businessInfoDao.queryIncome(userId); + } + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/EvaluateServiceServiceImpl.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/EvaluateServiceServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..926d35bf083e6f4740b7e9fb24645afa3714ea90 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/EvaluateServiceServiceImpl.java @@ -0,0 +1,79 @@ +package com.team7.happycommunity.businessservice.service.impl; + +import com.team7.happycommunity.businessservice.dao.EvaluateServiceDao; +import com.team7.happycommunity.businessservice.entity.EvaluateService; +import com.team7.happycommunity.businessservice.service.EvaluateServiceService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (EvaluateService)表服务实现类 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +@Service("evaluateServiceService") +public class EvaluateServiceServiceImpl implements EvaluateServiceService { + @Resource + private EvaluateServiceDao evaluateServiceDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public EvaluateService queryById(Integer id) { + return this.evaluateServiceDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.evaluateServiceDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param evaluateService 实例对象 + * @return 实例对象 + */ + @Override + public EvaluateService insert(EvaluateService evaluateService) { + this.evaluateServiceDao.insert(evaluateService); + return evaluateService; + } + + /** + * 修改数据 + * + * @param evaluateService 实例对象 + * @return 实例对象 + */ + @Override + public EvaluateService update(EvaluateService evaluateService) { + this.evaluateServiceDao.update(evaluateService); + return this.queryById(evaluateService.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.evaluateServiceDao.deleteById(id) > 0; + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/PpPayserviceServiceImpl.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/PpPayserviceServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6f813d86bae2fa49e309e93ecc45767533937810 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/PpPayserviceServiceImpl.java @@ -0,0 +1,105 @@ +package com.team7.happycommunity.businessservice.service.impl; + +import com.team7.happycommunity.businessservice.dao.PpPayserviceDao; +import com.team7.happycommunity.businessservice.entity.EarnIng; +import com.team7.happycommunity.businessservice.entity.PpPayservice; +import com.team7.happycommunity.businessservice.service.PpPayserviceService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (PpPayservice)表服务实现类 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +@Service("ppPayserviceService") +public class PpPayserviceServiceImpl implements PpPayserviceService { + @Resource + private PpPayserviceDao ppPayserviceDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public PpPayservice queryById(Integer id) { + return this.ppPayserviceDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.ppPayserviceDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param ppPayservice 实例对象 + * @return 实例对象 + */ + @Override + public PpPayservice insert(PpPayservice ppPayservice) { + this.ppPayserviceDao.insert(ppPayservice); + return ppPayservice; + } + + /** + * 修改数据 + * + * @param ppPayservice 实例对象 + * @return 实例对象 + */ + @Override + public PpPayservice update(PpPayservice ppPayservice) { + this.ppPayserviceDao.update(ppPayservice); + return this.queryById(ppPayservice.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.ppPayserviceDao.deleteById(id) > 0; + } + + @Override + public List queryEarnByUserId(Integer userId){ + return ppPayserviceDao.queryEarnByUserId(userId); + } + + @Override + public List queryServicedByUserId(Integer start, Integer limit, Integer userId){ + return ppPayserviceDao.queryServicedByUserId(start,limit,userId); + } + + @Override + public void updateStatusById(Integer status, Integer id){ + ppPayserviceDao.updateStatusById(status,id); + } + + @Override + public PpPayservice queryDetailsById(Integer id){ + return ppPayserviceDao.queryDetailsById(id); + } + + @Override + public Integer queryCountByUserId(Integer userId){ + return ppPayserviceDao.queryCountByUserId(userId); + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/ServiceImgServiceImpl.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/ServiceImgServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0bd8aac0d1c5e0dd5196baf36dc6874d232b0b69 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/ServiceImgServiceImpl.java @@ -0,0 +1,92 @@ +package com.team7.happycommunity.businessservice.service.impl; + +import com.team7.happycommunity.businessservice.dao.ServiceImgDao; +import com.team7.happycommunity.businessservice.entity.ImgUrlService; +import com.team7.happycommunity.businessservice.entity.ServiceImg; +import com.team7.happycommunity.businessservice.service.ServiceImgService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (ServiceImg)表服务实现类 + * + * @author makejava + * @since 2020-03-26 21:40:52 + */ +@Service("serviceImgService") +public class ServiceImgServiceImpl implements ServiceImgService { + @Resource + private ServiceImgDao serviceImgDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public ServiceImg queryById(Integer id) { + return this.serviceImgDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.serviceImgDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param serviceImg 实例对象 + * @return 实例对象 + */ + @Override + public ServiceImg insert(ServiceImg serviceImg) { + this.serviceImgDao.insert(serviceImg); + return serviceImg; + } + + /** + * 修改数据 + * + * @param serviceImg 实例对象 + * @return 实例对象 + */ + @Override + public ServiceImg update(ServiceImg serviceImg) { + this.serviceImgDao.update(serviceImg); + return this.queryById(serviceImg.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.serviceImgDao.deleteById(id) > 0; + } + @Override + public void insertList(List list){ + this.serviceImgDao.insertList(list); + } + + @Override + public void deleteByServiceId(Integer id){ + this.serviceImgDao.deleteByServiceId(id); + } + + + +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/ServiceOrderServiceImpl.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/ServiceOrderServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..24f4e462be4202f2a334a2931f3c0196ffb41213 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/service/impl/ServiceOrderServiceImpl.java @@ -0,0 +1,105 @@ +package com.team7.happycommunity.businessservice.service.impl; + +import com.team7.happycommunity.businessservice.dao.ServiceOrderDao; +import com.team7.happycommunity.businessservice.entity.OrderClassify; +import com.team7.happycommunity.businessservice.entity.OrderDetails; +import com.team7.happycommunity.businessservice.entity.ServiceOrder; +import com.team7.happycommunity.businessservice.service.ServiceOrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (ServiceOrder)表服务实现类 + * + * @author makejava + * @since 2020-03-28 10:41:54 + */ +@Service("serviceOrderService") +public class ServiceOrderServiceImpl implements ServiceOrderService { + @Resource + private ServiceOrderDao serviceOrderDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public ServiceOrder queryById(Integer id) { + return this.serviceOrderDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.serviceOrderDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param serviceOrder 实例对象 + * @return 实例对象 + */ + @Override + public ServiceOrder insert(ServiceOrder serviceOrder) { + this.serviceOrderDao.insert(serviceOrder); + return serviceOrder; + } + + /** + * 修改数据 + * + * @param serviceOrder 实例对象 + * @return 实例对象 + */ + @Override + public ServiceOrder update(ServiceOrder serviceOrder) { + this.serviceOrderDao.update(serviceOrder); + return this.queryById(serviceOrder.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.serviceOrderDao.deleteById(id) > 0; + } + @Override + public List queryOrderByUserIdAndStatus(Integer userId, Integer status){ + return serviceOrderDao.queryOrderByUserIdAndStatus(userId, status); + } + + @Override + public void updateById(Integer id, Integer status){ + serviceOrderDao.updateById(id, status); + } + + @Override + public OrderDetails queryOrder(Integer orderId) { + return serviceOrderDao.queryOrder(orderId); + } + + @Override + public List queryImage(Integer orderId) { + return serviceOrderDao.queryImage(orderId); + } + + @Override + public List evaluate(Integer orderId) { + return serviceOrderDao.evaluate(orderId); + } +} \ No newline at end of file diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/CookieUtils.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/CookieUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..cc8a207b13ac3ea3226dd42f606518ea10aecd2a --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/CookieUtils.java @@ -0,0 +1,38 @@ +package com.team7.happycommunity.businessservice.util; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; + +/** + * 获取用户名 + */ +@Component +public class CookieUtils { + + @Autowired + private HttpServletRequest request; + + @Autowired + private RedisTemplate redisTemplate; + + public String getName(){ + Cookie[] cookies = request.getCookies(); + if(cookies!=null){ + for(Cookie cook:cookies){ + String value = cook.getValue(); + String name = cook.getName(); + String RedisName = (String)redisTemplate.boundValueOps(name).get(); + if (RedisName!=null&&RedisName.equals(value)){ + return RedisName; + } + } + } + return null; + } + +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/MailUtils.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/MailUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..fa3ca309bdb85a7a8dc28a876760042af9631d8a --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/MailUtils.java @@ -0,0 +1,86 @@ +package com.team7.happycommunity.businessservice.util; + +import javax.mail.*; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import java.util.Properties; + +/** + * 发邮件工具类 + */ +public final class MailUtils { + private static final String USER = ""; // 发件人称号,同邮箱地址 + //使用POP3/SMTP服务的授权码 + private static final String PASSWORD = ""; // 如果是qq邮箱可以使户端授权码,或者登录密码 + + /** + * + * @param to 收件人邮箱 + * @param text 邮件正文 + * @param title 标题 + */ + /* 发送验证信息的邮件 */ + + /** + * + * @param to 发送地址 + * @param text 发送内容 + * @param title 发送标题 + * @return + */ + public static boolean sendMail(String to, String text, String title){ + try { + final Properties props = new Properties(); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.host", "smtp.qq.com"); + + // 发件人的账号 + props.put("mail.user", USER); + //发件人的密码 + props.put("mail.password", PASSWORD); + + // 构建授权信息,用于进行SMTP进行身份验证 + Authenticator authenticator = new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + // 用户名、密码 + String userName = props.getProperty("mail.user"); + String password = props.getProperty("mail.password"); + return new PasswordAuthentication(userName, password); + } + }; + // 使用环境属性和授权信息,创建邮件会话 + Session mailSession = Session.getInstance(props, authenticator); + // 创建邮件消息 + MimeMessage message = new MimeMessage(mailSession); + // 设置发件人 + String username = props.getProperty("mail.user"); + InternetAddress form = new InternetAddress(username); + message.setFrom(form); + + // 设置收件人 + InternetAddress toAddress = new InternetAddress(to); + message.setRecipient(Message.RecipientType.TO, toAddress); + + // 设置邮件标题 + message.setSubject(title); + + // 设置邮件的内容体 + message.setContent(text, "text/html;charset=UTF-8"); + // 发送邮件 + Transport.send(message); + return true; + }catch (Exception e){ + e.printStackTrace(); + } + return false; + } + + public static void main(String[] args) throws Exception { // 做测试用 + MailUtils.sendMail("1406135540@qq.com","你好,这是一封测试邮件,无需回复。","测试邮件"); + System.out.println("发送成功"); + } + + + +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/Md5Util.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/Md5Util.java new file mode 100644 index 0000000000000000000000000000000000000000..b55af0adecd782a980c818f3ce79a42ec2b9482c --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/Md5Util.java @@ -0,0 +1,66 @@ +package com.team7.happycommunity.businessservice.util; + +import java.security.MessageDigest; + +/** + * 写一个MD5算法,运行结果与MySQL的md5()函数相同 + * 将明文密码转成MD5密码 + * 123456->e10adc3949ba59abbe56e057f20f883e + */ +public final class Md5Util { + private Md5Util(){} + /** + * 将明文密码转成MD5密码 + */ + public static String encodeByMd5(String password) throws Exception{ + //Java中MessageDigest类封装了MD5和SHA算法,今天我们只要MD5算法 + MessageDigest md5 = MessageDigest.getInstance("MD5"); + //调用MD5算法,即返回16个byte类型的值 + byte[] byteArray = md5.digest(password.getBytes()); + //注意:MessageDigest只能将String转成byte[],接下来的事情,由我们程序员来完成 + return byteArrayToHexString(byteArray); + } + /** + * 将byte[]转在16进制字符串 + */ + private static String byteArrayToHexString(byte[] byteArray) { + StringBuffer sb = new StringBuffer(); + //遍历 + for(byte b : byteArray){//16次 + //取出每一个byte类型,进行转换 + String hex = byteToHexString(b); + //将转换后的值放入StringBuffer中 + sb.append(hex); + } + return sb.toString(); + } + /** + * 将byte转在16进制字符串 + */ + private static String byteToHexString(byte b) {//-31转成e1,10转成0a,。。。 + //将byte类型赋给int类型 + int n = b; + //如果n是负数 + if(n < 0){ + //转正数 + //-31的16进制数,等价于求225的16进制数 + n = 256 + n; + } + //商(14),数组的下标 + int d1 = n / 16; + //余(1),数组的下标 + int d2 = n % 16; + //通过下标取值 + return hex[d1] + hex[d2]; + } + private static String[] hex = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}; + /** + * 测试 + */ + public static void main(String[] args) throws Exception{ + String password = "123456"; + String passwordMD5 = Md5Util.encodeByMd5(password); + System.out.println(password); + System.out.println(passwordMD5); + } +} diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/QiniuUploadUtil.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/QiniuUploadUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..773d9e5c5649f2e8656a570d407dfe8e4567699f --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/QiniuUploadUtil.java @@ -0,0 +1,45 @@ +package com.team7.happycommunity.businessservice.util; + +import com.google.gson.Gson; +import com.qiniu.http.Response; +import com.qiniu.storage.Configuration; +import com.qiniu.storage.Region; +import com.qiniu.storage.UploadManager; +import com.qiniu.storage.model.DefaultPutRet; +import com.qiniu.util.Auth; + +import java.util.Date; + +public class QiniuUploadUtil { + + private static final String accessKey = "4g3yhrqRdZrSmDzobCwKlKLPCVMkt0X5l8ah52L1"; + private static final String secretKey = "TAsmCWOeGIO8Va9WjlcpMuexoEE-f-fXTiC4MaCi"; + private static final String bucket = "psrson-centor"; + private static final String prix = "http://q7fucxp9q.bkt.clouddn.com/"; + private UploadManager manager; + + public QiniuUploadUtil() { + //初始化基本配置 + Configuration cfg = new Configuration(Region.region2()); + //创建上传管理器 + manager = new UploadManager(cfg); + } + + //文件名 = key + //文件的byte数组 + public String upload(String imgName , byte [] bytes) { + Auth auth = Auth.create(accessKey, secretKey); + //构造覆盖上传token + String upToken = auth.uploadToken(bucket,imgName); + try { + Response response = manager.put(bytes, imgName, upToken); + DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); + //返回请求地址 + return prix+putRet.key+"?t="+new Date().getTime(); + } catch (Exception ex) { + ex.printStackTrace(); + } + return null; + } +} + diff --git a/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/SendSms.java b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/SendSms.java new file mode 100644 index 0000000000000000000000000000000000000000..366e56495c641566586f009bd464484291243d22 --- /dev/null +++ b/businessservice/src/main/java/com/team7/happycommunity/businessservice/util/SendSms.java @@ -0,0 +1,56 @@ +package com.team7.happycommunity.businessservice.util; + +import com.aliyuncs.CommonRequest; +import com.aliyuncs.CommonResponse; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.exceptions.ClientException; +import com.aliyuncs.exceptions.ServerException; +import com.aliyuncs.http.MethodType; +import com.aliyuncs.profile.DefaultProfile; + +import com.team7.happycommunity.businessservice.common.CommonResult; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +@Component +public class SendSms { + + @Value("${accessKeyId}") + private String accessKeyId; + + @Value("${accessKeySecret}") + private String accessKeySecret; + /** + * + * @param phone 发送的电话号码 + * @param smsCode 发送的模板 + * @param param 参数 + * @return + */ + public CommonResult sms(String phone, String smsCode, String param ) { + DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); + IAcsClient client = new DefaultAcsClient(profile); + + CommonRequest request = new CommonRequest(); + request.setMethod(MethodType.POST); + request.setDomain("dysmsapi.aliyuncs.com"); + request.setVersion("2017-05-25"); + request.setAction("SendSms"); + request.putQueryParameter("RegionId", "cn-hangzhou"); + request.putQueryParameter("PhoneNumbers", phone); + request.putQueryParameter("SignName", "幸福小区"); + request.putQueryParameter("TemplateCode", smsCode); + request.putQueryParameter("TemplateParam", param); + try { + CommonResponse response = client.getCommonResponse(request); + return CommonResult.success("发送成功"); + } catch (ServerException e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } catch (ClientException e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/businessservice/src/main/resources/application.properties b/businessservice/src/main/resources/application.properties new file mode 100644 index 0000000000000000000000000000000000000000..ef671ab7cbd3c25b9213e2caaa7a0fd243ae4d0d --- /dev/null +++ b/businessservice/src/main/resources/application.properties @@ -0,0 +1,6 @@ +accessKeyId= +accessKeySecret= +smsCode= +param={"code":"[value]"} +website=localhost +port=80 \ No newline at end of file diff --git a/businessservice/src/main/resources/application.yml b/businessservice/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..0e6f089fa56bea64949a273d976d2f3a6afdcf92 --- /dev/null +++ b/businessservice/src/main/resources/application.yml @@ -0,0 +1,48 @@ +spring: + datasource: + username: develop + password: 20200322 + url: jdbc:mysql://106.12.148.100:3307/happycommunity?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8 + driver-class-name: com.mysql.jdbc.Driver + redis: + host: localhost + port: 6379 + rabbitmq: + port: 5672 + username: admin + password: 123 + virtual-host: /myhost + host: 192.168.43.112 + listener: + simple: + acknowledge-mode: manual + prefetch: 10 + thymeleaf: + cache: false + mvc: + date-format: yyyy-MM-dd + jackson: + date-format: yyyy-MM-dd + time-zone: GMT+8 + application: + name: businessservice +mybatis: + mapper-locations: classpath:mapper/*.xml + configuration: + map-underscore-to-camel-case: true + +pagehelper: + #params: pageNum=currentPage,pageSize=pageSize + reasonable: true + support-methods-arguments: true + helper-dialect: mysql +logging: + level: + com.team7.happycommunity.businessservice.dao: debug + +server: + port: 9889 +eureka: + client: + service-url: + defaultZone: http://localhost:8761/eureka diff --git a/businessservice/src/main/resources/mapper/AreainfoDao.xml b/businessservice/src/main/resources/mapper/AreainfoDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..84bfe79ef1152eb061b49816ea4f31eadef73362 --- /dev/null +++ b/businessservice/src/main/resources/mapper/AreainfoDao.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.areainfo(area_name, area_address, detail1) + values (#{areaName}, #{areaAddress}, #{detail1}) + + + + + update happycommunity.areainfo + + + area_name = #{areaName}, + + + area_address = #{areaAddress}, + + + detail1 = #{detail1}, + + + where id = #{id} + + + + + delete from happycommunity.areainfo where id = #{id} + + \ No newline at end of file diff --git a/businessservice/src/main/resources/mapper/BusinessImageDao.xml b/businessservice/src/main/resources/mapper/BusinessImageDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..361569a582a5f255c143d1d47c3a0b28472ead90 --- /dev/null +++ b/businessservice/src/main/resources/mapper/BusinessImageDao.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.business_image(business_info_id, url, type) + values (#{businessInfoId}, #{url}, #{type}) + + + + + update happycommunity.business_image + + + business_info_id = #{businessInfoId}, + + + url = #{url}, + + + type = #{type}, + + + where id = #{id} + + + + + delete from happycommunity.business_image where id = #{id} + + + \ No newline at end of file diff --git a/businessservice/src/main/resources/mapper/BusinessInfoDao.xml b/businessservice/src/main/resources/mapper/BusinessInfoDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..eacc0cf6f58dcf31523abb70a205ed3b45b66abb --- /dev/null +++ b/businessservice/src/main/resources/mapper/BusinessInfoDao.xml @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.business_info(id_number, cell_ph_number, password, name, sex, nickname, mailbox, plot_id, tag, mailbox_status, code, password_salt, create_time, authentication, auth_time, status, address, introduce) + values (#{idNumber}, #{cellPhNumber}, #{password}, #{name}, #{sex}, #{nickname}, #{mailbox}, #{plotId}, #{tag}, #{mailboxStatus}, #{code}, #{passwordSalt}, #{createTime}, #{authentication}, #{authTime}, #{status}, #{address}, #{introduce}) + + + + + update happycommunity.business_info + + + id_number = #{idNumber}, + + + cell_ph_number = #{cellPhNumber}, + + + password = #{password}, + + + name = #{name}, + + + sex = #{sex}, + + + nickname = #{nickname}, + + + mailbox = #{mailbox}, + + + plot_id = #{plotId}, + + + tag = #{tag}, + + + mailbox_status = #{mailboxStatus}, + + + code = #{code}, + + + password_salt = #{passwordSalt}, + + + create_time = #{createTime}, + + + authentication = #{authentication}, + + + auth_time = #{authTime}, + + + status = #{status}, + + + address = #{address}, + + + introduce = #{introduce}, + + + where id = #{id} + + + + + delete from happycommunity.business_info where id = #{id} + + + + + + UPDATE business_info set mailbox_status=#{mailboxStatus} where code=#{code} + + + + UPDATE business_info set password=#{password} where cell_ph_number=#{cellPhNumber} + + + + + + + + + + update happycommunity.business_info + + + id_number = #{idNumber}, + + + name = #{name}, + + + sex = #{sex}, + + + nickname = #{nickname}, + + + mailbox = #{mailbox}, + + + plot_id = #{plotId}, + + + tag = #{tag}, + + + mailbox_status = #{mailboxStatus}, + + + code = #{code}, + + + password_salt = #{passwordSalt}, + + + create_time = #{createTime}, + + + authentication = #{authentication}, + + + auth_time = #{authTime}, + + + status = #{status}, + + + address = #{address}, + + + introduce = #{introduce}, + + + where cell_ph_number = #{cellPhNumber} + + + + + + \ No newline at end of file diff --git a/businessservice/src/main/resources/mapper/EvaluateServiceDao.xml b/businessservice/src/main/resources/mapper/EvaluateServiceDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..5d2f96bae0b857c591325a649bcdbfd68ef217a9 --- /dev/null +++ b/businessservice/src/main/resources/mapper/EvaluateServiceDao.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.evaluate_service(serviceid, evalute, userid, bus_reply) + values (#{serviceid}, #{evalute}, #{userid}, #{busReply}) + + + + + update happycommunity.evaluate_service + + + serviceid = #{serviceid}, + + + evalute = #{evalute}, + + + userid = #{userid}, + + + bus_reply = #{busReply}, + + + where id = #{id} + + + + + delete from happycommunity.evaluate_service where id = #{id} + + + \ No newline at end of file diff --git a/businessservice/src/main/resources/mapper/PpPayserviceDao.xml b/businessservice/src/main/resources/mapper/PpPayserviceDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..2b539dfa9d9e0ac9ff93a22d0ab55e751b676e8a --- /dev/null +++ b/businessservice/src/main/resources/mapper/PpPayserviceDao.xml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.pp_payservice(propertyid, shopid, payname, payprice, paytime, status, icon, service_type, payway, servicecontext) + values (#{propertyid}, #{shopid}, #{payname}, #{payprice}, #{paytime}, #{status}, #{icon}, #{serviceType}, #{payway}, #{servicecontext}) + + + + + update happycommunity.pp_payservice + + + propertyid = #{propertyid}, + + + shopid = #{shopid}, + + + payname = #{payname}, + + + payprice = #{payprice}, + + + paytime = #{paytime}, + + + status = #{status}, + + + icon = #{icon}, + + + service_type = #{serviceType}, + + + payway = #{payway}, + + + servicecontext = #{servicecontext}, + + + where id = #{id} + + + + + delete from happycommunity.pp_payservice where id = #{id} + + + + + + + UPDATE pp_payservice set status=#{status} where id=#{id} + + + + + + \ No newline at end of file diff --git a/businessservice/src/main/resources/mapper/ServiceImgDao.xml b/businessservice/src/main/resources/mapper/ServiceImgDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..c4c11aa34041b3efdf56aeeeadaa9ffc5235043d --- /dev/null +++ b/businessservice/src/main/resources/mapper/ServiceImgDao.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.service_img(serviceid, img) + values (#{serviceid}, #{img}) + + + + + update happycommunity.service_img + + + serviceid = #{serviceid}, + + + img = #{img}, + + + where id = #{id} + + + + + delete from happycommunity.service_img where id = #{id} + + + insert into happycommunity.service_img(serviceid, img) VALUES + + (#{rm.serviceid},#{rm.img}) + + + + + delete from happycommunity.service_img where serviceid = #{id} + + \ No newline at end of file diff --git a/businessservice/src/main/resources/mapper/ServiceOrderDao.xml b/businessservice/src/main/resources/mapper/ServiceOrderDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..113cdc90ba065704c5be7412951203b653fbb7c0 --- /dev/null +++ b/businessservice/src/main/resources/mapper/ServiceOrderDao.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.service_order(serviceid, userid, starttime, endtime, status, ordernumber) + values (#{serviceid}, #{userid}, #{starttime}, #{endtime}, #{status}, #{ordernumber}) + + + + + update happycommunity.service_order + + + serviceid = #{serviceid}, + + + userid = #{userid}, + + + starttime = #{starttime}, + + + endtime = #{endtime}, + + + status = #{status}, + + + ordernumber = #{ordernumber}, + + + where id = #{id} + + + + + delete from happycommunity.service_order where id = #{id} + + + + + + update happycommunity.service_order SET status = #{status} where id=#{id} + + + + + \ No newline at end of file diff --git a/businessservice/src/test/java/com/team7/happycommunity/businessservice/BusinessserviceApplicationTests.java b/businessservice/src/test/java/com/team7/happycommunity/businessservice/BusinessserviceApplicationTests.java new file mode 100644 index 0000000000000000000000000000000000000000..9095c7626f56752d6cdafcdc7724496ad62a27d1 --- /dev/null +++ b/businessservice/src/test/java/com/team7/happycommunity/businessservice/BusinessserviceApplicationTests.java @@ -0,0 +1,13 @@ +package com.team7.happycommunity.businessservice; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class BusinessserviceApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/communityservice/pom.xml b/communityservice/pom.xml index 2fb8b72b714e518890918324ec50e1d6fe8da9f2..8e45ebd330efe945de0dd1a31a0b215e49a92a6a 100644 --- a/communityservice/pom.xml +++ b/communityservice/pom.xml @@ -95,6 +95,23 @@ 1.2.62 + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.2.10 + + + + + + + + + org.springframework.boot + spring-boot-starter-data-redis + + diff --git a/communityservice/src/main/java/com/woniu/CommunityserviceApplication.java b/communityservice/src/main/java/com/woniu/CommunityserviceApplication.java index 6c5880e62ad90a36fde3d49a99dd5d3723ec11bd..f5113044fc0ca22236a55cd9a7aeed017df70048 100644 --- a/communityservice/src/main/java/com/woniu/CommunityserviceApplication.java +++ b/communityservice/src/main/java/com/woniu/CommunityserviceApplication.java @@ -3,11 +3,15 @@ package com.woniu; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @MapperScan(value = "com.woniu.dao") @EnableEurekaClient //开启eureka客户端 +@EnableScheduling //开启定时器 +@EnableCaching //开启缓存 public class CommunityserviceApplication { public static void main(String[] args) { diff --git a/communityservice/src/main/java/com/woniu/config/RedisConfig.java b/communityservice/src/main/java/com/woniu/config/RedisConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..ad7a80b1ba0ccac9c46b00f092998ab18c3187a2 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/config/RedisConfig.java @@ -0,0 +1,34 @@ +package com.woniu.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +public class RedisConfig { + @Bean + public RedisCacheConfiguration redisCacheConfiguration(){ + RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig(); + configuration = configuration.serializeKeysWith(RedisSerializationContext + .SerializationPair.fromSerializer(new StringRedisSerializer())) + .serializeValuesWith(RedisSerializationContext + .SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); + return configuration; + } + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory){ + RedisTemplate r = new RedisTemplate(); + r.setConnectionFactory(factory); + r.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); + r.setHashKeySerializer(new StringRedisSerializer()); + r.setValueSerializer(new GenericJackson2JsonRedisSerializer()); + r.setKeySerializer(new StringRedisSerializer()); + return r; + } +} diff --git a/communityservice/src/main/java/com/woniu/controller/ActivityController.java b/communityservice/src/main/java/com/woniu/controller/ActivityController.java index 2473c05abfc0f67ac4333efcbf7a4deb86b2d729..5d5247c374956949d1b46ec5b61e6d75edeed673 100644 --- a/communityservice/src/main/java/com/woniu/controller/ActivityController.java +++ b/communityservice/src/main/java/com/woniu/controller/ActivityController.java @@ -3,6 +3,7 @@ package com.woniu.controller; import com.alibaba.fastjson.JSONArray; import com.woniu.dto.ActivityDetail; import com.woniu.dto.ActivityPost; +import com.woniu.dto.MyActivityPost; import com.woniu.result.CommonResult; import com.woniu.service.ActivityService; import org.springframework.beans.factory.annotation.Autowired; @@ -53,6 +54,7 @@ public class ActivityController { @RequestMapping("/activitySave") @ResponseBody public CommonResult ActivitySave(@RequestBody String activity){ + System.out.println("*******--------"); try { //转化成真实的值 String act = URLDecoder.decode(activity,"UTF-8"); @@ -84,6 +86,19 @@ public class ActivityController { return CommonResult.success(activityDetail); } + /** + * 获取指定活动id的所有活动人 + * @param activityId + * @return + */ + @GetMapping("/myactivity") + @ResponseBody + public CommonResult myactivity(Integer activityId){ + System.out.println(activityId); + List activityUsers = activityService.findUserById(activityId); + return CommonResult.success(activityUsers); + } + /** * 保存指定用户到活动报名表 * @param activityId @@ -94,8 +109,26 @@ public class ActivityController { @ResponseBody public CommonResult signUp(Integer activityId,Integer userId){ System.out.println(activityId+":"+userId); - activityService.saveSignUp(activityId,userId); - return CommonResult.success("报名成功"); + String coNum = activityService.saveSignUp(activityId,userId); + return CommonResult.success(coNum); + } + + /** + * 更改申请活动的用户状态为已参加活动 + * @param activityId + * @param userId + * @return + */ + @PutMapping("/updateSignUp") + @ResponseBody + public CommonResult updateSignUp(Integer activityId,Integer userId){ + System.out.println(activityId+":"+userId); + int count = activityService.updateSignUp(activityId,userId); + if (count>0){ + return CommonResult.success("已添加该用户"); + }else{ + return CommonResult.failed("添加失败"); + } } /** @@ -109,7 +142,7 @@ public class ActivityController { public CommonResult noSignUp(Integer activityId,Integer userId){ System.out.println(activityId+":"+userId); activityService.deleteById(activityId,userId); - return CommonResult.success("取消成功"); + return CommonResult.success("成功"); } /** @@ -124,8 +157,49 @@ public class ActivityController { System.out.println(type+":"+page); //实例化实体类,适合前端需要的数据 List activityPosts = activityService.findByType(type,page); + System.out.println(activityPosts.size()); return CommonResult.success(activityPosts); } + /** + * 活动发起者退款或者移除用户,彻底删掉该用户 + * @param activityId + * @param userId + * @return + */ + @DeleteMapping("/removeUser") + @ResponseBody + public CommonResult removeUser(Integer activityId,Integer userId){ + System.out.println(activityId+":"+userId); + int count = activityService.deleteByActivityIdAndUserId(activityId,userId); + if (count>0){ + return CommonResult.success("已移除该用户"); + }else{ + return CommonResult.failed("移除失败"); + } + } + + /** + * 根据用户id和活动id查找订单编号 + * @param activityId + * @param userId + * @return + */ + @GetMapping("/getCoNum") + @ResponseBody + public CommonResult getCoNum(Integer activityId,Integer userId){ + System.out.println(activityId+":"+userId); + String coNum = activityService.findCoNum(activityId,userId); + return CommonResult.success(coNum); + } + + @GetMapping("/getContent") + @ResponseBody + public CommonResult getContent(Integer activityId){ + System.out.println(activityId); + String content = activityService.selectContent(activityId); + return CommonResult.success(content); + } + } diff --git a/communityservice/src/main/java/com/woniu/controller/CommunityController.java b/communityservice/src/main/java/com/woniu/controller/CommunityController.java deleted file mode 100644 index 9b2e3bea33ac8eff3dce9809608f77c45ae0f9e4..0000000000000000000000000000000000000000 --- a/communityservice/src/main/java/com/woniu/controller/CommunityController.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.woniu.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; - -@Controller -@RequestMapping("/community") -public class CommunityController { - - -} diff --git a/communityservice/src/main/java/com/woniu/controller/DynamicController.java b/communityservice/src/main/java/com/woniu/controller/DynamicController.java index 0f2b8af94d765ebb49a6e62d0e838516da478155..1fdd31f807ffa94c57a70d6b88913989729013f3 100644 --- a/communityservice/src/main/java/com/woniu/controller/DynamicController.java +++ b/communityservice/src/main/java/com/woniu/controller/DynamicController.java @@ -1,7 +1,10 @@ package com.woniu.controller; import com.alibaba.fastjson.JSONArray; +import com.woniu.dto.DynamicCommentDto; +import com.woniu.dto.DynamicDetail; import com.woniu.dto.DynamicPost; +import com.woniu.pojo.CommunityFavor; import com.woniu.result.CommonResult; import com.woniu.service.DynamicService; import com.woniu.util.QiniuUploadUtil; @@ -32,6 +35,7 @@ public class DynamicController { @PostMapping("/upload") @ResponseBody public CommonResult upload(MultipartFile file){ + System.out.println("*********"); if(file==null){ return CommonResult.failed("请选择上传图片"); } @@ -76,11 +80,113 @@ public class DynamicController { */ @GetMapping("/list") @ResponseBody - public CommonResult list(Integer type,Integer page){ - System.out.println(type+":"+page); + public CommonResult list(Integer type,Integer page,Integer userId){ + System.out.println(type+":"+page+":"+userId); //获取动态信息,并封装成前端需要的数据类 - List dynamicPosts = dynamicService.findByType(type,page); + List dynamicPosts = dynamicService.findByType(type,page,userId); return CommonResult.success(dynamicPosts); } + /** + * 获取指定id的动态详情 + * @param dynamicId + * @return + */ + @GetMapping("/dynamicDetail") + @ResponseBody + public CommonResult dynamicDetail(Integer dynamicId){ + System.out.println(dynamicId); + //获取指定动态除评论之外的内容 + DynamicPost dynamicPost = dynamicService.findDynamicById(dynamicId); + //获取指定动态的评论 + List dynamicCommentDtos = dynamicService.findByComment(dynamicId); + //封装成前端需要的数据 + DynamicDetail dynamicDetail = new DynamicDetail(dynamicPost,dynamicCommentDtos); + return CommonResult.success(dynamicDetail); + } + + /** + * 获取指定动态的点赞人消息 + * @param dynamicId + * @return + */ + @GetMapping("/favor") + @ResponseBody + public CommonResult favor(Integer dynamicId){ + System.out.println(dynamicId); + List communityFavors = dynamicService.findFavorById(dynamicId); + return CommonResult.success(communityFavors); + } + + /** + * 对指定动态,保存该用户的点赞 + * @param dynamicId + * @param userId + * @return + */ + @PostMapping("/saveFavor") + @ResponseBody + public CommonResult saveFavor(Integer dynamicId,Integer userId){ + System.out.println(dynamicId+":"+userId); + try { + dynamicService.saveFavor(dynamicId,userId); + return CommonResult.success("点赞成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.success("内部错误"); + } + + } + /** + * 对指定动态,取消该用户的点赞 + * @param dynamicId + * @param userId + * @return + */ + @DeleteMapping("/deleteFavor") + @ResponseBody + public CommonResult deleteFavor(Integer dynamicId,Integer userId){ + System.out.println(dynamicId+":"+userId); + try { + dynamicService.deleteFavor(dynamicId,userId); + return CommonResult.success("取消点赞"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.success("内部错误"); + } + + } + + /** + * 获取指定动态的评论消息 + * @param dynamicId + * @return + */ + @GetMapping("/comment") + @ResponseBody + public CommonResult comment(Integer dynamicId){ + System.out.println(dynamicId); + List dynamicCommentDtos = dynamicService.findByComment(dynamicId); + return CommonResult.success(dynamicCommentDtos); + } + + @PostMapping("/saveComment") + @ResponseBody + public CommonResult saveComment(@RequestBody String my_comment){ + try { + //转化成真实的值 + String act = URLDecoder.decode(my_comment,"UTF-8"); + act = act.replace("comment=",""); + //将数据转为map + Map map = JSONArray.parseObject(act); + //添加评论到数据库 + dynamicService.saveComment(map); + return CommonResult.success("评论成功"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + return CommonResult.failed("评论失败"); + } + + } + } diff --git a/communityservice/src/main/java/com/woniu/controller/NoticeController.java b/communityservice/src/main/java/com/woniu/controller/NoticeController.java new file mode 100644 index 0000000000000000000000000000000000000000..b75784cf4acd09d9b8afcbac8f3defe04d2c2529 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/controller/NoticeController.java @@ -0,0 +1,49 @@ +package com.woniu.controller; + +import com.woniu.dao.AnnouncementMapper; +import com.woniu.dto.NoticePost; +import com.woniu.pojo.Announcement; +import com.woniu.result.CommonResult; +import com.woniu.service.NoticeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +@Controller +@RequestMapping("/notice") +public class NoticeController { + + @Autowired + private NoticeService noticeService; + + /** + * 查询社区公告 + * @param key 社区名关键字 + * @param page 当前页,即第几次加载,每次加载10条数据 + * @return + */ + @GetMapping("/list") + @ResponseBody + public CommonResult list(String key,Integer page){ + System.out.println(key+":"+page); + List noticePosts = noticeService.selectByKey(key,page); + System.out.println(noticePosts.size()); + return CommonResult.success(noticePosts); + } +@Autowired +private AnnouncementMapper announcementMapper; + @GetMapping("/test") + @ResponseBody + public String test(String testText){ + System.out.println(testText); + Announcement announcement = new Announcement(); + announcement.setId(16); + announcement.setContext(testText); + announcementMapper.insertSelective(announcement); + return announcementMapper.selectByPrimaryKey(announcement.getId()).getContext(); + } +} diff --git a/communityservice/src/main/java/com/woniu/dao/ActivityMapper.java b/communityservice/src/main/java/com/woniu/dao/ActivityMapper.java index d59e634181ff971ff6e0ad6e9877e945cd3db4d4..032adb8196b93004cbc733fe64cdc330a7bbd637 100644 --- a/communityservice/src/main/java/com/woniu/dao/ActivityMapper.java +++ b/communityservice/src/main/java/com/woniu/dao/ActivityMapper.java @@ -21,6 +21,12 @@ public interface ActivityMapper { int updateByPrimaryKey(Activity record); - @Select(value = "select ca.*,pi.url,pu.name from community_activity ca,person_image pi,person_user pu where ca.ca_user_id = pu.id and pu.id = pi.person_user_id and ca_type = #{type} order by id desc limit #{page},10") + @Select(value = "select ca.*,pi.url,pu.name from community_activity ca,person_image pi,person_user pu where ca.ca_user_id = pu.id and pu.id = pi.person_user_id and ca_type = #{type} and ca_examine_status != 0 order by id desc limit #{page},10") List selectByType(Integer type, Integer page); + + @Select(value = "select ca.*,pi.url,pu.name from community_activity ca,person_image pi,person_user pu where ca.ca_user_id = pu.id and pu.id = pi.person_user_id and ca_examine_status != 0 order by id desc limit #{page},10") + List selectByPage(Integer page); + + @Select(value = "select * from community_activity where ca_examine_status != 0") + List selectAll(); } \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/dao/ActivityUserMapper.java b/communityservice/src/main/java/com/woniu/dao/ActivityUserMapper.java index 0fa2602b1da0a5c05c076e2cee6d10f1f5075bde..cd591fb66da9abbe281478ba0dbf3049a761abc7 100644 --- a/communityservice/src/main/java/com/woniu/dao/ActivityUserMapper.java +++ b/communityservice/src/main/java/com/woniu/dao/ActivityUserMapper.java @@ -1,8 +1,12 @@ package com.woniu.dao; +import com.woniu.dto.MyActivityPost; import com.woniu.pojo.ActivityUser; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Select; +import java.util.List; + public interface ActivityUserMapper { int deleteByPrimaryKey(Integer id); @@ -17,9 +21,15 @@ public interface ActivityUserMapper { int updateByPrimaryKey(ActivityUser record); - @Select(value = "select cau_user_id from community_activity_user where cau_activity_id = #{activityId} and cau_user_id = #{userId}") - Integer selectByIdAndUserId(Integer activityId, Integer userId); + @Select(value = "select * from community_activity_user where cau_activity_id = #{activityId} and cau_user_id = #{userId}") + ActivityUser selectByIdAndUserId(Integer activityId, Integer userId); + + @Delete(value = "delete from community_activity_user where cau_activity_id = #{activityId} and cau_user_id = #{userId}") + int deleteById(Integer activityId, Integer userId); + + @Select(value = "select name from person_user where id = #{userId}") + String selectNameById(Integer userId); - @Select(value = "delete from community_activity_user where cau_activity_id = #{activityId} and cau_user_id = #{userId}") - void deleteById(Integer activityId, Integer userId); + @Select(value = "select cau.*,pu.name from community_activity_user cau,person_user pu where cau.cau_activity_id = #{activityId} and cau.cau_user_id = pu.id and cau.cau_sign_status<3 order by cau.cau_sign_status asc") + List selectByActivityId(Integer activityId); } \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/dao/AnnouncementMapper.java b/communityservice/src/main/java/com/woniu/dao/AnnouncementMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..6cf958b2d01de4d4196082f9e7f867d099cc9a71 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/dao/AnnouncementMapper.java @@ -0,0 +1,25 @@ +package com.woniu.dao; + +import com.woniu.dto.NoticePost; +import com.woniu.pojo.Announcement; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +public interface AnnouncementMapper { + int deleteByPrimaryKey(Integer id); + + int insert(Announcement record); + + int insertSelective(Announcement record); + + Announcement selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(Announcement record); + + int updateByPrimaryKey(Announcement record); + + @Select(value = "select * from announcement am,areainfo ai where am.area_id = ai.id and ai.area_name like concat('%',#{key},'%') order by create_time desc") + List selectByKey(@Param("key") String key, @Param("currentPage") Integer page, @Param("pageSize") Integer num); +} \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/dao/CommunityFavorMapper.java b/communityservice/src/main/java/com/woniu/dao/CommunityFavorMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..91b69101f0ac96050fc747938230f667912ad23e --- /dev/null +++ b/communityservice/src/main/java/com/woniu/dao/CommunityFavorMapper.java @@ -0,0 +1,32 @@ +package com.woniu.dao; + +import com.woniu.pojo.CommunityFavor; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +public interface CommunityFavorMapper { + int deleteByPrimaryKey(Integer id); + + int insert(CommunityFavor record); + + int insertSelective(CommunityFavor record); + + CommunityFavor selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(CommunityFavor record); + + int updateByPrimaryKey(CommunityFavor record); + + @Select(value = "select * from community_favor where cf_dynamic_id = #{dynamicId} order by cf_createTime desc limit 7") + List selectById(Integer dynamicId); + + @Select(value = "delete from community_favor where cf_dynamic_id=#{dynamicId} and cf_user_id=#{userId}") + void deleteFavorById(Integer dynamicId, Integer userId); + + @Select(value = "select cf_dynamic_id from community_favor where cf_user_id = #{userId} ") + List selectIdByUserId(Integer userId); + + @Select(value = "select count(id) from community_favor where cf_dynamic_id = #{id}") + Integer selectCountById(Integer id); +} \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/dao/CommunityOrderMapper.java b/communityservice/src/main/java/com/woniu/dao/CommunityOrderMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..0a8271ca418623e7ca8c8ef6cfc5e16688f1c96b --- /dev/null +++ b/communityservice/src/main/java/com/woniu/dao/CommunityOrderMapper.java @@ -0,0 +1,23 @@ +package com.woniu.dao; + +import com.woniu.pojo.CommunityOrder; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +public interface CommunityOrderMapper { + int deleteByPrimaryKey(Integer id); + + int insert(CommunityOrder record); + + int insertSelective(CommunityOrder record); + + CommunityOrder selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(CommunityOrder record); + + int updateByPrimaryKey(CommunityOrder record); + + @Select(value = "select co_num from community_order where co_activity_id=#{activityId} and co_user_id=#{userId} order by id desc") + List selectById(Integer activityId, Integer userId); +} \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/dao/DynamicCommentMapper.java b/communityservice/src/main/java/com/woniu/dao/DynamicCommentMapper.java index 8e7797444334604bffac43491770554a3d30e7d9..314fac5f2e80c6cf8cee512196e7c5ab46f7e90d 100644 --- a/communityservice/src/main/java/com/woniu/dao/DynamicCommentMapper.java +++ b/communityservice/src/main/java/com/woniu/dao/DynamicCommentMapper.java @@ -1,6 +1,7 @@ package com.woniu.dao; import com.woniu.pojo.DynamicComment; +import org.apache.ibatis.annotations.Select; public interface DynamicCommentMapper { int deleteByPrimaryKey(Integer id); @@ -14,4 +15,7 @@ public interface DynamicCommentMapper { int updateByPrimaryKeySelective(DynamicComment record); int updateByPrimaryKey(DynamicComment record); + + @Select(value = "select count(id) from community_dynamic_comment where cdc_dynamic_id = #{id}") + Integer selectCountById(Integer id); } \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/dao/DynamicMapper.java b/communityservice/src/main/java/com/woniu/dao/DynamicMapper.java index 73444fcf7a87bf2ea4620635071aba9860dcf7c6..11eca153076a3d9f956fde5ca521d5accd3a6ff9 100644 --- a/communityservice/src/main/java/com/woniu/dao/DynamicMapper.java +++ b/communityservice/src/main/java/com/woniu/dao/DynamicMapper.java @@ -1,7 +1,9 @@ package com.woniu.dao; +import com.woniu.dto.DynamicCommentDto; import com.woniu.dto.DynamicPost; import com.woniu.pojo.Dynamic; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -21,6 +23,18 @@ public interface DynamicMapper { int updateByPrimaryKey(Dynamic record); - @Select(value = "select cd.*,pi.url,pu.name from community_dynamic cd,person_image pi,person_user pu where cd.cd_user_id = pu.id and pu.id = pi.person_user_id and cd_type = #{type} order by id desc limit #{page},10") - List selectByType(Integer type, Integer page); + @Select(value = "select cd.*,pi.url,pu.name from community_dynamic cd,person_image pi,person_user pu where cd.cd_user_id = pu.id and pu.id = pi.person_user_id and cd_type = #{type} order by cd_favor desc") + List selectByType(Integer type, @Param("currentPage") Integer page, @Param("pageSize") Integer num); + + @Select(value = "select cdc.*,pu.name from community_dynamic_comment cdc,person_user pu where cdc.cdc_dynamic_id=#{dynamicId} and cdc.cdc_user_id = pu.id") + List selectById(Integer dynamicId); + + @Select(value = "select url from person_image where person_user_id = #{userId}") + String selectUserPicById(Integer userId); + + @Select(value = "select cd.*,pi.url,pu.name from community_dynamic cd,person_image pi,person_user pu where cd.cd_user_id = pu.id and pu.id = pi.person_user_id and cd.id = #{dynamicId}") + DynamicPost selectDynamicById(Integer dynamicId); + + @Select(value = "select cd.*,pi.url,pu.name from community_dynamic cd,person_image pi,person_user pu where cd.cd_user_id = pu.id and pu.id = pi.person_user_id order by cd_favor desc") + List selectByPage(@Param("currentPage") Integer page, @Param("pageSize") Integer num); } \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/dao/areaInfoMapper.java b/communityservice/src/main/java/com/woniu/dao/areaInfoMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..d01bc1079c44254ce7c88985d720f3ca74280f0b --- /dev/null +++ b/communityservice/src/main/java/com/woniu/dao/areaInfoMapper.java @@ -0,0 +1,17 @@ +package com.woniu.dao; + +import com.woniu.pojo.AreaInfo; + +public interface areaInfoMapper { + int deleteByPrimaryKey(Integer id); + + int insert(AreaInfo record); + + int insertSelective(AreaInfo record); + + AreaInfo selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(AreaInfo record); + + int updateByPrimaryKey(AreaInfo record); +} \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/dto/ActivityPost.java b/communityservice/src/main/java/com/woniu/dto/ActivityPost.java index aacacd3fb701a9f0beac8804e8b71c8d86ce0855..a8bd71f7dc5e62bb214629506378806b733e4fab 100644 --- a/communityservice/src/main/java/com/woniu/dto/ActivityPost.java +++ b/communityservice/src/main/java/com/woniu/dto/ActivityPost.java @@ -10,19 +10,29 @@ public class ActivityPost implements Serializable { private Integer id; - private Integer caUserId; +// private Integer caUserId; private String caTitle; - private Date caStartTime; - - private Date caEndTime; +// private Date caStartTime; +// +// private Date caEndTime; private Date caCreateTime; - private String caContent; +// private String caContent; - private String url; +// private String url; private String name; + + private String caPicPath; + + private Integer caStatus; + + private Double caMoney; + + private Integer caPeopelCount; + + private Integer caMaxPeopleCount; } diff --git a/communityservice/src/main/java/com/woniu/dto/DynamicCommentDto.java b/communityservice/src/main/java/com/woniu/dto/DynamicCommentDto.java new file mode 100644 index 0000000000000000000000000000000000000000..db7ea165540f360ea27142f3d2595860d88e7d51 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/dto/DynamicCommentDto.java @@ -0,0 +1,24 @@ +package com.woniu.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class DynamicCommentDto implements Serializable { + + private Integer id; + + private Integer cdcDynamicId; + + private Integer cdcUserId; + + private Integer cdcOtherUserId; + + private String cdcContent; + + private Date cdcTime; + private String name; + private String OtherName; +} diff --git a/communityservice/src/main/java/com/woniu/dto/DynamicDetail.java b/communityservice/src/main/java/com/woniu/dto/DynamicDetail.java new file mode 100644 index 0000000000000000000000000000000000000000..e1458b55d7e36ec51d3cf01649b827bea9412f2c --- /dev/null +++ b/communityservice/src/main/java/com/woniu/dto/DynamicDetail.java @@ -0,0 +1,20 @@ +package com.woniu.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class DynamicDetail implements Serializable { + private DynamicPost dynamicPost; + private List dynamicCommentDtos; + + public DynamicDetail() { + } + + public DynamicDetail(DynamicPost dynamicPost, List dynamicCommentDtos) { + this.dynamicPost = dynamicPost; + this.dynamicCommentDtos = dynamicCommentDtos; + } +} diff --git a/communityservice/src/main/java/com/woniu/dto/DynamicPost.java b/communityservice/src/main/java/com/woniu/dto/DynamicPost.java index e791e04f15f32860990ce53396b96661bb47f75a..7f1d46853907fd703884bf0655544fdde0427db9 100644 --- a/communityservice/src/main/java/com/woniu/dto/DynamicPost.java +++ b/communityservice/src/main/java/com/woniu/dto/DynamicPost.java @@ -28,4 +28,10 @@ public class DynamicPost implements Serializable { private String url; private String name; + + private Integer commentCount; + + private Integer favorCount; + + private Integer favorStatus=0; } diff --git a/communityservice/src/main/java/com/woniu/dto/MyActivityPost.java b/communityservice/src/main/java/com/woniu/dto/MyActivityPost.java new file mode 100644 index 0000000000000000000000000000000000000000..dba333b207ef5f827c178cd1357a564e1405f450 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/dto/MyActivityPost.java @@ -0,0 +1,16 @@ +package com.woniu.dto; + +import lombok.Data; + +@Data +public class MyActivityPost { + + private Integer cauUserId; + + private Integer cauSignStatus; + + private String name; + + private String signUp = "批准"; + +} diff --git a/communityservice/src/main/java/com/woniu/dto/NoticePost.java b/communityservice/src/main/java/com/woniu/dto/NoticePost.java new file mode 100644 index 0000000000000000000000000000000000000000..59ccaebba1f94e02968f30cbca758f3958fba59e --- /dev/null +++ b/communityservice/src/main/java/com/woniu/dto/NoticePost.java @@ -0,0 +1,26 @@ +package com.woniu.dto; + +import lombok.Data; + +import java.util.Date; + +@Data +public class NoticePost { + private String areaName; + + private Date createTime; + + private String title; + + private String context; + + public NoticePost() { + } + + public NoticePost(String areaName, Date createTime, String title, String context) { + this.areaName = areaName; + this.createTime = createTime; + this.title = title; + this.context = context; + } +} diff --git a/communityservice/src/main/java/com/woniu/pojo/Activity.java b/communityservice/src/main/java/com/woniu/pojo/Activity.java index 183056fd827d295b31f448184d495b32f398dae5..60808ee9b6d28962992348e981275d59d648a823 100644 --- a/communityservice/src/main/java/com/woniu/pojo/Activity.java +++ b/communityservice/src/main/java/com/woniu/pojo/Activity.java @@ -2,10 +2,11 @@ package com.woniu.pojo; import lombok.Data; +import java.io.Serializable; import java.util.Date; @Data -public class Activity { +public class Activity implements Serializable { private Integer id; private Integer caUserId; diff --git a/communityservice/src/main/java/com/woniu/pojo/ActivityUser.java b/communityservice/src/main/java/com/woniu/pojo/ActivityUser.java index 4c1ddd80fd3c07240ed1b2bc88c9176f31321572..013cf27a5b1765894a89e69971eb6f864218ab60 100644 --- a/communityservice/src/main/java/com/woniu/pojo/ActivityUser.java +++ b/communityservice/src/main/java/com/woniu/pojo/ActivityUser.java @@ -10,11 +10,14 @@ public class ActivityUser { private Integer cauUserId; + private Integer cauSignStatus; + public ActivityUser() { } - public ActivityUser(Integer cauActivityId, Integer cauUserId) { + public ActivityUser(Integer cauActivityId, Integer cauUserId,Integer cauSignStatus) { this.cauActivityId = cauActivityId; this.cauUserId = cauUserId; + this.cauSignStatus = cauSignStatus; } } \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/pojo/Announcement.java b/communityservice/src/main/java/com/woniu/pojo/Announcement.java new file mode 100644 index 0000000000000000000000000000000000000000..bd6c683befc69916ba13eaac1011f0a04cb4f416 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/pojo/Announcement.java @@ -0,0 +1,20 @@ +package com.woniu.pojo; + +import lombok.Data; + +import java.util.Date; + +@Data +public class Announcement { + private Integer id; + + private String context; + + private Integer areaId; + + private Date createTime; + + private String title; + + private Integer status; +} \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/pojo/AreaInfo.java b/communityservice/src/main/java/com/woniu/pojo/AreaInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..2ef2472dcd4f5ddecf65d708bd92c22472ba9239 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/pojo/AreaInfo.java @@ -0,0 +1,15 @@ +package com.woniu.pojo; + +import lombok.Data; + +@Data +public class AreaInfo { + private Integer id; + + private String areaName; + + private String areaAddress; + + private String detail1; + +} \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/pojo/CommunityFavor.java b/communityservice/src/main/java/com/woniu/pojo/CommunityFavor.java new file mode 100644 index 0000000000000000000000000000000000000000..53f8d7cf2e6014c508ef9dad911e484b102b7376 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/pojo/CommunityFavor.java @@ -0,0 +1,28 @@ +package com.woniu.pojo; + +import lombok.Data; + +import java.util.Date; + +@Data +public class CommunityFavor { + private Integer id; + + private Integer cfDynamicId; + + private Integer cfUserId; + + private String cfUserPic; + + private Date cfCreatetime; + + public CommunityFavor() { + } + + public CommunityFavor(Integer cfDynamicId, Integer cfUserId, String cfUserPic, Date cfCreatetime) { + this.cfDynamicId = cfDynamicId; + this.cfUserId = cfUserId; + this.cfUserPic = cfUserPic; + this.cfCreatetime = cfCreatetime; + } +} \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/pojo/CommunityOrder.java b/communityservice/src/main/java/com/woniu/pojo/CommunityOrder.java new file mode 100644 index 0000000000000000000000000000000000000000..c1d73b74f54d794fd4fafd2bc67f9a9f68249234 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/pojo/CommunityOrder.java @@ -0,0 +1,43 @@ +package com.woniu.pojo; + +import lombok.Data; + +import java.util.Date; + +@Data +public class CommunityOrder { + private Integer id; + + private Integer coUserId; + + private String coNum; + + private Double coMoney; + + private Integer coStatus; + + private String coReceiveName; + + private String coNote; + + private Integer coType; + + private Date coCreateTime; + + private String coName; + + private Integer coActivityId; + + public CommunityOrder() { + } + + public CommunityOrder(Integer coUserId, String coNum, Double coMoney, Integer coStatus, Date coCreateTime, String coName, Integer coActivityId) { + this.coUserId = coUserId; + this.coNum = coNum; + this.coMoney = coMoney; + this.coStatus = coStatus; + this.coCreateTime = coCreateTime; + this.coName = coName; + this.coActivityId = coActivityId; + } +} \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/pojo/Dynamic.java b/communityservice/src/main/java/com/woniu/pojo/Dynamic.java index 38b5f00498d20369e0a4ae675efb4ebb123e4b91..bdd31240b8d76a2db182ee214d16ba04b9bbfdfc 100644 --- a/communityservice/src/main/java/com/woniu/pojo/Dynamic.java +++ b/communityservice/src/main/java/com/woniu/pojo/Dynamic.java @@ -20,6 +20,7 @@ public class Dynamic { private String cdContent; + public Dynamic() { } diff --git a/communityservice/src/main/java/com/woniu/pojo/DynamicComment.java b/communityservice/src/main/java/com/woniu/pojo/DynamicComment.java index 6baad41cfc6a9e3d076c4b3650a3191600fe9d08..597e5e2b8048dd2cbe9984749c7eef354f99dd09 100644 --- a/communityservice/src/main/java/com/woniu/pojo/DynamicComment.java +++ b/communityservice/src/main/java/com/woniu/pojo/DynamicComment.java @@ -1,7 +1,10 @@ package com.woniu.pojo; +import lombok.Data; + import java.util.Date; +@Data public class DynamicComment { private Integer id; @@ -15,51 +18,14 @@ public class DynamicComment { private Date cdcTime; - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; + public DynamicComment() { } - public Integer getCdcDynamicId() { - return cdcDynamicId; - } - - public void setCdcDynamicId(Integer cdcDynamicId) { + public DynamicComment(Integer cdcDynamicId, Integer cdcUserId, Integer cdcOtherUserId, String cdcContent, Date cdcTime) { this.cdcDynamicId = cdcDynamicId; - } - - public Integer getCdcUserId() { - return cdcUserId; - } - - public void setCdcUserId(Integer cdcUserId) { this.cdcUserId = cdcUserId; - } - - public Integer getCdcOtherUserId() { - return cdcOtherUserId; - } - - public void setCdcOtherUserId(Integer cdcOtherUserId) { this.cdcOtherUserId = cdcOtherUserId; - } - - public String getCdcContent() { - return cdcContent; - } - - public void setCdcContent(String cdcContent) { this.cdcContent = cdcContent; - } - - public Date getCdcTime() { - return cdcTime; - } - - public void setCdcTime(Date cdcTime) { this.cdcTime = cdcTime; } } \ No newline at end of file diff --git a/communityservice/src/main/java/com/woniu/service/ActivityService.java b/communityservice/src/main/java/com/woniu/service/ActivityService.java index 89e60c31969014e5d7415747cdc23ef728f559af..60fe8723bab50e23e893c2327df5b84b94da8137 100644 --- a/communityservice/src/main/java/com/woniu/service/ActivityService.java +++ b/communityservice/src/main/java/com/woniu/service/ActivityService.java @@ -2,6 +2,8 @@ package com.woniu.service; import com.woniu.dto.ActivityDetail; import com.woniu.dto.ActivityPost; +import com.woniu.dto.MyActivityPost; +import com.woniu.pojo.Activity; import java.util.List; import java.util.Map; @@ -28,11 +30,11 @@ public interface ActivityService { ActivityDetail findActivity(Integer activityId, Integer userId); /** - * 保存报名活动,用户id到报名表 + * 保存报名活动,用户id到报名表,如果付费,则返回订单编号 * @param activityId * @param userId */ - void saveSignUp(Integer activityId, Integer userId); + String saveSignUp(Integer activityId, Integer userId); /** * 取消指定用户的指定活动报名 @@ -48,4 +50,54 @@ public interface ActivityService { * @return */ List findByType(Integer type, Integer page); + + /** + * 获取指定活动id的参与人 + * @param activityId + * @return + */ + List findUserById(Integer activityId); + + /** + * 更新用户活动状态 + * @param activityId + * @param userId + * @return + */ + int updateSignUp(Integer activityId, Integer userId); + + /** + * 删除用户活动 + * @param activityId + * @param userId + * @return + */ + int deleteByActivityIdAndUserId(Integer activityId, Integer userId); + + /** + * 根据用户id和活动id查找订单编号 + * @param activityId + * @param userId + * @return + */ + String findCoNum(Integer activityId, Integer userId); + + /** + * 查询所有活动 + * @return + */ + List selectAll(String act); + + /** + * 更新活动状态 + * @param activity + */ + void updateActivity(Activity activity,String act); + + /** + * 查找活动内容 + * @param activityId + * @return + */ + String selectContent(Integer activityId); } diff --git a/communityservice/src/main/java/com/woniu/service/DynamicService.java b/communityservice/src/main/java/com/woniu/service/DynamicService.java index 3ed59e05fa34cdcf977d290c7461b9d412875e34..f59201c1aa70d34326f3bcf7edd9a83b9e620d11 100644 --- a/communityservice/src/main/java/com/woniu/service/DynamicService.java +++ b/communityservice/src/main/java/com/woniu/service/DynamicService.java @@ -1,6 +1,8 @@ package com.woniu.service; +import com.woniu.dto.DynamicCommentDto; import com.woniu.dto.DynamicPost; +import com.woniu.pojo.CommunityFavor; import java.util.List; import java.util.Map; @@ -19,5 +21,46 @@ public interface DynamicService { * @param page * @return */ - List findByType(Integer type, Integer page); + List findByType(Integer type, Integer page,Integer userId); + + /** + * 根据动态id获取动态的评论人信息 + * @param dynamicId + * @return + */ + List findByComment(Integer dynamicId); + + /** + * 根据动态id获取动态的点赞人信息 + * @param dynamicId + * @return + */ + List findFavorById(Integer dynamicId); + + /** + * 保存点赞信息 + * @param dynamicId + * @param userId + */ + void saveFavor(Integer dynamicId, Integer userId); + + /** + * 取消点赞信息 + * @param dynamicId + * @param userId + */ + void deleteFavor(Integer dynamicId, Integer userId); + + /** + * 添加评论信息到数据库 + * @param map + */ + void saveComment(Map map); + + /** + * 获取指定id的动态内容 + * @param dynamicId + * @return + */ + DynamicPost findDynamicById(Integer dynamicId); } diff --git a/communityservice/src/main/java/com/woniu/service/NoticeService.java b/communityservice/src/main/java/com/woniu/service/NoticeService.java new file mode 100644 index 0000000000000000000000000000000000000000..0a51d1163bda8d9faa7d6c879d13b67eeff97cc6 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/service/NoticeService.java @@ -0,0 +1,15 @@ +package com.woniu.service; + +import com.woniu.dto.NoticePost; + +import java.util.List; + +public interface NoticeService { + /** + * 根据社区名查找社区公告,为空则查所有公告 + * @param key + * @param page + * @return + */ + List selectByKey(String key, Integer page); +} diff --git a/communityservice/src/main/java/com/woniu/service/impl/ActivityServiceImpl.java b/communityservice/src/main/java/com/woniu/service/impl/ActivityServiceImpl.java index b00423d740b43115ad12f8c70cb6677d99fe348d..36bfbfb8f54b6c64b6b76f412c6c1ec588b1336e 100644 --- a/communityservice/src/main/java/com/woniu/service/impl/ActivityServiceImpl.java +++ b/communityservice/src/main/java/com/woniu/service/impl/ActivityServiceImpl.java @@ -3,13 +3,18 @@ package com.woniu.service.impl; import com.woniu.dao.ActivityComplaintMapper; import com.woniu.dao.ActivityMapper; import com.woniu.dao.ActivityUserMapper; +import com.woniu.dao.CommunityOrderMapper; import com.woniu.dto.ActivityDetail; import com.woniu.dto.ActivityPost; +import com.woniu.dto.MyActivityPost; import com.woniu.pojo.Activity; import com.woniu.pojo.ActivityComplaint; import com.woniu.pojo.ActivityUser; +import com.woniu.pojo.CommunityOrder; import com.woniu.service.ActivityService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.text.ParseException; @@ -27,6 +32,9 @@ public class ActivityServiceImpl implements ActivityService { private ActivityMapper activityMapper; @Autowired private ActivityUserMapper activityUserMapper; + @Autowired + private CommunityOrderMapper communityOrderMapper; + /** * 投诉活动 * @param map 投诉数据 @@ -72,12 +80,12 @@ public class ActivityServiceImpl implements ActivityService { Integer activityId = activityMapper.insertSelective(activity); System.out.println(activity.getId()); //保存当前发布人到活动用户中间表中,即报名表 - ActivityUser activityUser = new ActivityUser(activity.getId(),userId); - activityUserMapper.insertSelective(activityUser); +// ActivityUser activityUser = new ActivityUser(activity.getId(),userId); +// activityUserMapper.insertSelective(activityUser); } /** - * 查找指定id的活动,同时判断用户是否报名,并封装成前端需要的数据 + * 查找指定id的活动,同时判断用户类型,并封装成前端需要的数据 * @param activityId * @param userId * @return @@ -89,8 +97,8 @@ public class ActivityServiceImpl implements ActivityService { //活动信息 Activity activity = activityMapper.selectByPrimaryKey(activityId); activityDetail.setActivity(activity); - //用户信息,这里调用其他服务,暂时先用固定的值替代 - String userName = "张三"; + //活动发布用户名字 + String userName = activityUserMapper.selectNameById(activity.getCaUserId()); activityDetail.setUserName(userName); //处理状态 switch (activity.getCaStatus()){ @@ -98,14 +106,30 @@ public class ActivityServiceImpl implements ActivityService { case 1:activityDetail.setStatus("进行中");break; case 2:activityDetail.setStatus("已结束"); } - //报名状态 - Integer userCount = activityUserMapper.selectByIdAndUserId(activityId,userId); + + //查出该用户报名情况,这里大多针对付费活动(涉及退款操作),免费活动取消报名即刻成功,会删掉改用户信息 + ActivityUser activityUser = activityUserMapper.selectByIdAndUserId(activityId,userId); + //对登录用户进行处理 cauSignStatus 0:申请报名,1:取消报名 2:取消中(退款),3:支付失败,需重新支付 if(activity.getCaStatus()==2){ - activityDetail.setSignUp("已结束"); - }else if(userCount!=null){ - activityDetail.setSignUp("取消报名"); - }else if(activity.getCaMaxPeopleCount()==activity.getCaPeopelCount()){ - activityDetail.setSignUp("已结束"); + activityDetail.setSignUp("活动已结束"); + }else if(userId==activity.getCaUserId()){ + //如果登录用户就是活动发布者 + activityDetail.setSignUp("报名详情"); + } else if(userId!=null && activityUser!=null){ + if((activity.getCaStatus()==1 || activity.getCaStatus()==0) && activityUser.getCauSignStatus()==0){ + activityDetail.setSignUp("申请中"); + }else if (activity.getCaStatus()==1 && activityUser.getCauSignStatus()==1){ + activityDetail.setSignUp("已报名"); + }else if(activity.getCaStatus()==0 && activityUser.getCauSignStatus()==1){ + activityDetail.setSignUp("取消报名"); + }else if(activity.getCaStatus()==0 && activityUser.getCauSignStatus()==2){ + activityDetail.setSignUp("取消中"); + }else if(activityUser.getCauSignStatus()==3){ + activityDetail.setSignUp("重新支付"); + } + }else if(userId!=null && activityUser==null && activity.getCaPeopelCount()==activity.getCaMaxPeopleCount()){ + //用户未报名,活动未结束,但是报名人数已满 + activityDetail.setSignUp("报名已结束"); } return activityDetail; } @@ -116,9 +140,25 @@ public class ActivityServiceImpl implements ActivityService { * @param userId */ @Override - public void saveSignUp(Integer activityId, Integer userId) { - ActivityUser activityUser = new ActivityUser(activityId,userId); + public String saveSignUp(Integer activityId, Integer userId) { + //保存订单号 + String coNum = ""; + Integer status = 0; + //新增报名用户数据,判断是否是付费活动,0:免费,3:付费,付费需要创建订单 + Activity activity = activityMapper.selectByPrimaryKey(activityId); + if(activity.getCaMoney()>0){ + //创建一个订单 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String num = simpleDateFormat.format(new Date())+"4"+userId; //自定义订单编号,时间+类型+用户id + CommunityOrder order = new CommunityOrder(userId,num,activity.getCaMoney(),0,new Date(),"活动订单",activityId); + communityOrderMapper.insertSelective(order); + coNum = num; + status = 3; + } + //添加活动用户 + ActivityUser activityUser = new ActivityUser(activityId,userId,status); activityUserMapper.insertSelective(activityUser); + return coNum; } /** @@ -128,7 +168,21 @@ public class ActivityServiceImpl implements ActivityService { */ @Override public void deleteById(Integer activityId, Integer userId) { - activityUserMapper.deleteById(activityId,userId); + //判断是否是付费活动 + Activity activity = activityMapper.selectByPrimaryKey(activityId); + //免费活动,直接取消,并删除该用户数据 + if(activity.getCaMoney()==0){ + activityUserMapper.deleteById(activityId,userId); + //活动人数-1 + activity.setCaPeopelCount(activity.getCaPeopelCount()-1); + activityMapper.updateByPrimaryKeySelective(activity); + }else{ + ActivityUser activityUser = activityUserMapper.selectByIdAndUserId(activityId,userId); + //设置报名状态为2,即申请退款 + activityUser.setCauSignStatus(2); + activityUserMapper.updateByPrimaryKeySelective(activityUser); + } + } /** @@ -139,7 +193,81 @@ public class ActivityServiceImpl implements ActivityService { */ @Override public List findByType(Integer type, Integer page) { - return activityMapper.selectByType(type,page); + //判断活动类型,0:全部 + if(type==0){ + return activityMapper.selectByPage(page); + }else{ + return activityMapper.selectByType(type,page); + } + } + + @Override + public List findUserById(Integer activityId) { + List myActivityPosts = activityUserMapper.selectByActivityId(activityId); + for(MyActivityPost my:myActivityPosts){ + if(my.getCauSignStatus()==1){ + my.setSignUp("移除"); + }else if(my.getCauSignStatus()==2){ + my.setSignUp("退款"); + } + } + return myActivityPosts; + } + + @Override + public int updateSignUp(Integer activityId, Integer userId) { + ActivityUser activityUser = activityUserMapper.selectByIdAndUserId(activityId,userId); + activityUser.setCauSignStatus(1); + activityUserMapper.updateByPrimaryKeySelective(activityUser); + //同时活动人数+1 + Activity activity = activityMapper.selectByPrimaryKey(activityId); + activity.setCaPeopelCount(activity.getCaPeopelCount()+1); + activityMapper.updateByPrimaryKeySelective(activity); + + return activityUserMapper.updateByPrimaryKeySelective(activityUser); + } + + @Override + public int deleteByActivityIdAndUserId(Integer activityId, Integer userId) { + //删除指定活动指定用户 + int count = activityUserMapper.deleteById(activityId,userId); + if(count>0){ + //同时活动人数-1 + Activity activity = activityMapper.selectByPrimaryKey(activityId); + activity.setCaPeopelCount(activity.getCaPeopelCount()-1); + activityMapper.updateByPrimaryKeySelective(activity); + } + return count; + } + + /** + * 根据用户id和活动id查找订单编号 + * @param activityId + * @param userId + * @return + */ + @Override + public String findCoNum(Integer activityId, Integer userId) { + //返回最新的一个订单号给前端,这里是id倒序查询的 + return communityOrderMapper.selectById(activityId,userId).get(0); + } + + @Override + @Cacheable(value = "activitys",key = "#act") + public List selectAll(String act) { + System.out.println("查询数据库"); + return activityMapper.selectAll(); + } + + @Override + @CacheEvict(value = "activitys",key = "#act") + public void updateActivity(Activity activity,String act) { + activityMapper.updateByPrimaryKeySelective(activity); + } + + @Override + public String selectContent(Integer activityId) { + return activityMapper.selectByPrimaryKey(activityId).getCaContent(); } } diff --git a/communityservice/src/main/java/com/woniu/service/impl/DynamicServiceImpl.java b/communityservice/src/main/java/com/woniu/service/impl/DynamicServiceImpl.java index 9e4f3f6587784db099bc4ae83313cd6d100b0e2c..13a89a1148bee8bac02ef0014dc0ac9c6dad7abb 100644 --- a/communityservice/src/main/java/com/woniu/service/impl/DynamicServiceImpl.java +++ b/communityservice/src/main/java/com/woniu/service/impl/DynamicServiceImpl.java @@ -1,8 +1,13 @@ package com.woniu.service.impl; +import com.woniu.dao.CommunityFavorMapper; +import com.woniu.dao.DynamicCommentMapper; import com.woniu.dao.DynamicMapper; +import com.woniu.dto.DynamicCommentDto; import com.woniu.dto.DynamicPost; +import com.woniu.pojo.CommunityFavor; import com.woniu.pojo.Dynamic; +import com.woniu.pojo.DynamicComment; import com.woniu.service.DynamicService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,6 +21,10 @@ public class DynamicServiceImpl implements DynamicService { @Autowired private DynamicMapper dynamicMapper; + @Autowired + private CommunityFavorMapper communityFavorMapper; + @Autowired + private DynamicCommentMapper dynamicCommentMapper; /** * 保存动态 @@ -40,7 +49,120 @@ public class DynamicServiceImpl implements DynamicService { * @return */ @Override - public List findByType(Integer type, Integer page) { - return dynamicMapper.selectByType(type,page); + public List findByType(Integer type, Integer page,Integer userId) { + //判断是否是查询全部类型,0:全部 + List dynamicPosts; + if(type == 0){ + dynamicPosts = dynamicMapper.selectByPage(page,10); + }else{ + dynamicPosts = dynamicMapper.selectByType(type,page,10); + } + + //新增评论数量信息 + for(int i=0;i list = communityFavorMapper.selectIdByUserId(userId); + //遍历加载的新动态 + for(int i=0;i findByComment(Integer dynamicId) { + List dynamicCommentDtos = dynamicMapper.selectById(dynamicId); + //查出是否是回复另一个人的评论 + for(int i=0;i findFavorById(Integer dynamicId) { + return communityFavorMapper.selectById(dynamicId); + } + + @Override + public void saveFavor(Integer dynamicId, Integer userId) { + //获取点赞人头像信息 + String picPath = dynamicMapper.selectUserPicById(userId); + //new一个新的点赞实体 + CommunityFavor communityFavor = new CommunityFavor(dynamicId,userId,picPath,new Date()); + communityFavorMapper.insertSelective(communityFavor); + } + + /** + * 取消点赞 + * @param dynamicId + * @param userId + */ + @Override + public void deleteFavor(Integer dynamicId, Integer userId) { + communityFavorMapper.deleteFavorById(dynamicId,userId); + } + + /** + * 保存评论 + * @param map + */ + @Override + public void saveComment(Map map) { + //获取必要信息 + Integer dynamicId = Integer.valueOf(map.get("dynamicId").toString()); + Integer userId = Integer.valueOf(map.get("userId").toString()); + Integer otherUserId = null; + //如果是对其他人的评论进行回复,则必须写入其他人的用户id + if(map.get("otherUserId")!=null){ + otherUserId = Integer.valueOf(map.get("otherUserId").toString()); + } + String content = String.valueOf(map.get("content")); + //新建一个评论实体 + DynamicComment dynamicComment = new DynamicComment(dynamicId,userId,otherUserId,content,new Date()); + dynamicCommentMapper.insertSelective(dynamicComment); + } + + /** + * 获取指定id 的动态信息 + * @param dynamicId + * @return + */ + @Override + public DynamicPost findDynamicById(Integer dynamicId) { + DynamicPost dynamicPost = dynamicMapper.selectDynamicById(dynamicId); + return dynamicPost; } + } diff --git a/communityservice/src/main/java/com/woniu/service/impl/NoticeServiceImpl.java b/communityservice/src/main/java/com/woniu/service/impl/NoticeServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6bf9dfa9e7242d364c6be90cae8ab4cb7ab52754 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/service/impl/NoticeServiceImpl.java @@ -0,0 +1,27 @@ +package com.woniu.service.impl; + +import com.woniu.dao.AnnouncementMapper; +import com.woniu.dto.NoticePost; +import com.woniu.service.NoticeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class NoticeServiceImpl implements NoticeService { + + @Autowired + private AnnouncementMapper announcementMapper; + + /** + * 根据社区名查找所有公告 + * @param key key为""则查所有社区 + * @param page 查询开始页数,这里注意 0 1 所代表的是同一页,每页10条 + * @return + */ + @Override + public List selectByKey(String key, Integer page) { + return announcementMapper.selectByKey(key,page,10); + } +} diff --git a/communityservice/src/main/java/com/woniu/util/ActivityScheduler.java b/communityservice/src/main/java/com/woniu/util/ActivityScheduler.java new file mode 100644 index 0000000000000000000000000000000000000000..a30250678b299c40718f09800272f95dbb86d5b2 --- /dev/null +++ b/communityservice/src/main/java/com/woniu/util/ActivityScheduler.java @@ -0,0 +1,47 @@ +package com.woniu.util; + +import com.woniu.pojo.Activity; +import com.woniu.service.ActivityService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +@Component +public class ActivityScheduler { + + @Autowired + private ActivityService activityService; + @Autowired + private RedisTemplate redisTemplate; + + /** + * 每隔1分钟更新一次活动状态 + */ + @Scheduled(cron = "0/30 * * * * ? ") + public void updateActivity(){ + List activities = activityService.selectAll("activityAll"); + System.out.println(activities.get(3).getCaStartTime()); + //获取现在时间 + Date nowTime = new Date(); + for(Activity activity:activities){ + //获取活动时间 + Date startTime = activity.getCaStartTime(); + Date endTime = activity.getCaEndTime(); + //判断,定时重置状态 + if(nowTime.before(endTime) && nowTime.after(startTime) && activity.getCaStatus()!=1){ + activity.setCaStatus(1); + activityService.updateActivity(activity,"activityAll"); +// redisTemplate.delete("activityAll"); + }else if(nowTime.after(endTime) && activity.getCaStatus()!=2){ + activity.setCaStatus(2); + activityService.updateActivity(activity,"activityAll"); +// redisTemplate.delete("activityAll"); + } + } + } + +} diff --git a/communityservice/src/main/resources/application.yml b/communityservice/src/main/resources/application.yml index 81f09239af47647b546938e423f63fe6fc6a8caf..62dbc15295b8a1ec77d275e156786f924b22e0bd 100644 --- a/communityservice/src/main/resources/application.yml +++ b/communityservice/src/main/resources/application.yml @@ -6,12 +6,17 @@ spring: driver-class-name: com.mysql.jdbc.Driver jackson: time-zone: GMT+8 - date-format: yyyy-MM-dd HH:mm:ss + date-format: yyyy-MM-dd HH:mm redis: host: localhost port: 6379 application: name: community +pagehelper: + params: pageNum=currentPage,pageSize=pageSize + reasonable: false #是否启动参数合理话,即pageNum<0 或者>max 时,自动变为1和最后一页,不启用则返回空数据,因为前端采用流加载,所以不启用更好 + support-methods-arguments: true #用于从对象中根据属性名取值 + helper-dialect: mysql mybatis: configuration: map-underscore-to-camel-case: true diff --git a/communityservice/src/main/resources/generatorConfig.xml b/communityservice/src/main/resources/generatorConfig.xml index c07c7659cd57c6a41b4e0eebf8ff6f9c8eebab59..2f4fc71cd5056eeb5f936296bf433ee073d51a8e 100644 --- a/communityservice/src/main/resources/generatorConfig.xml +++ b/communityservice/src/main/resources/generatorConfig.xml @@ -50,13 +50,44 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- +
diff --git a/communityservice/src/main/resources/mapper/ActivityUserMapper.xml b/communityservice/src/main/resources/mapper/ActivityUserMapper.xml index 31e47e5ef4d000dda672aa870c2bbd48b328e3d2..7d5d0a78d5a78860bd7cf3c4f38d9be7db38cd91 100644 --- a/communityservice/src/main/resources/mapper/ActivityUserMapper.xml +++ b/communityservice/src/main/resources/mapper/ActivityUserMapper.xml @@ -37,6 +37,9 @@ cau_user_id, + + cau_sign_status, + @@ -48,6 +51,9 @@ #{cauUserId,jdbcType=INTEGER}, + + #{cauSignStatus,jdbcType=INTEGER}, + @@ -59,6 +65,9 @@ cau_user_id = #{cauUserId,jdbcType=INTEGER}, + + cau_sign_status = #{cauSignStatus,jdbcType=INTEGER}, + where id = #{id,jdbcType=INTEGER} diff --git a/communityservice/src/main/resources/mapper/AnnouncementMapper.xml b/communityservice/src/main/resources/mapper/AnnouncementMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..cc4df4d0ac197d16121aba05adba81fe58a3b0b0 --- /dev/null +++ b/communityservice/src/main/resources/mapper/AnnouncementMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + id, context, area_id, create_time, title, status + + + + delete from announcement + where id = #{id,jdbcType=INTEGER} + + + insert into announcement (id, context, area_id, + create_time, title, status + ) + values (#{id,jdbcType=INTEGER}, #{context,jdbcType=VARCHAR}, #{areaId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, #{title,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER} + ) + + + insert into announcement + + + id, + + + context, + + + area_id, + + + create_time, + + + title, + + + status, + + + + + #{id,jdbcType=INTEGER}, + + + #{context,jdbcType=VARCHAR}, + + + #{areaId,jdbcType=INTEGER}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{title,jdbcType=VARCHAR}, + + + #{status,jdbcType=INTEGER}, + + + + + update announcement + + + context = #{context,jdbcType=VARCHAR}, + + + area_id = #{areaId,jdbcType=INTEGER}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + title = #{title,jdbcType=VARCHAR}, + + + status = #{status,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update announcement + set context = #{context,jdbcType=VARCHAR}, + area_id = #{areaId,jdbcType=INTEGER}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + title = #{title,jdbcType=VARCHAR}, + status = #{status,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/communityservice/src/main/resources/mapper/CommunityFavorMapper.xml b/communityservice/src/main/resources/mapper/CommunityFavorMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..a3c7183e1ed56ee50a7747f20f686f1bec667517 --- /dev/null +++ b/communityservice/src/main/resources/mapper/CommunityFavorMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + id, cf_dynamic_id, cf_user_id, cf_user_pic, cf_createTime + + + + delete from community_favor + where id = #{id,jdbcType=INTEGER} + + + insert into community_favor (id, cf_dynamic_id, cf_user_id, + cf_user_pic, cf_createTime) + values (#{id,jdbcType=INTEGER}, #{cfDynamicId,jdbcType=INTEGER}, #{cfUserId,jdbcType=INTEGER}, + #{cfUserPic,jdbcType=VARCHAR}, #{cfCreatetime,jdbcType=TIMESTAMP}) + + + insert into community_favor + + + id, + + + cf_dynamic_id, + + + cf_user_id, + + + cf_user_pic, + + + cf_createTime, + + + + + #{id,jdbcType=INTEGER}, + + + #{cfDynamicId,jdbcType=INTEGER}, + + + #{cfUserId,jdbcType=INTEGER}, + + + #{cfUserPic,jdbcType=VARCHAR}, + + + #{cfCreatetime,jdbcType=TIMESTAMP}, + + + + + update community_favor + + + cf_dynamic_id = #{cfDynamicId,jdbcType=INTEGER}, + + + cf_user_id = #{cfUserId,jdbcType=INTEGER}, + + + cf_user_pic = #{cfUserPic,jdbcType=VARCHAR}, + + + cf_createTime = #{cfCreatetime,jdbcType=TIMESTAMP}, + + + where id = #{id,jdbcType=INTEGER} + + + update community_favor + set cf_dynamic_id = #{cfDynamicId,jdbcType=INTEGER}, + cf_user_id = #{cfUserId,jdbcType=INTEGER}, + cf_user_pic = #{cfUserPic,jdbcType=VARCHAR}, + cf_createTime = #{cfCreatetime,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/communityservice/src/main/resources/mapper/CommunityOrderMapper.xml b/communityservice/src/main/resources/mapper/CommunityOrderMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..dab29be687da92ea541e06d377e16554598ad992 --- /dev/null +++ b/communityservice/src/main/resources/mapper/CommunityOrderMapper.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + id, co_user_id, co_num, co_money, co_status, co_receive_name, co_note, co_type, co_create_time, + co_name, co_activity_id + + + + delete from community_order + where id = #{id,jdbcType=INTEGER} + + + insert into community_order (id, co_user_id, co_num, + co_money, co_status, co_receive_name, + co_note, co_type, co_create_time, + co_name, co_activity_id) + values (#{id,jdbcType=INTEGER}, #{coUserId,jdbcType=INTEGER}, #{coNum,jdbcType=VARCHAR}, + #{coMoney,jdbcType=DOUBLE}, #{coStatus,jdbcType=INTEGER}, #{coReceiveName,jdbcType=VARCHAR}, + #{coNote,jdbcType=VARCHAR}, #{coType,jdbcType=INTEGER}, #{coCreateTime,jdbcType=TIMESTAMP}, + #{coName,jdbcType=VARCHAR}, #{coActivityId,jdbcType=INTEGER}) + + + insert into community_order + + + id, + + + co_user_id, + + + co_num, + + + co_money, + + + co_status, + + + co_receive_name, + + + co_note, + + + co_type, + + + co_create_time, + + + co_name, + + + co_activity_id, + + + + + #{id,jdbcType=INTEGER}, + + + #{coUserId,jdbcType=INTEGER}, + + + #{coNum,jdbcType=VARCHAR}, + + + #{coMoney,jdbcType=DOUBLE}, + + + #{coStatus,jdbcType=INTEGER}, + + + #{coReceiveName,jdbcType=VARCHAR}, + + + #{coNote,jdbcType=VARCHAR}, + + + #{coType,jdbcType=INTEGER}, + + + #{coCreateTime,jdbcType=TIMESTAMP}, + + + #{coName,jdbcType=VARCHAR}, + + + #{coActivityId,jdbcType=INTEGER}, + + + + + update community_order + + + co_user_id = #{coUserId,jdbcType=INTEGER}, + + + co_num = #{coNum,jdbcType=VARCHAR}, + + + co_money = #{coMoney,jdbcType=DOUBLE}, + + + co_status = #{coStatus,jdbcType=INTEGER}, + + + co_receive_name = #{coReceiveName,jdbcType=VARCHAR}, + + + co_note = #{coNote,jdbcType=VARCHAR}, + + + co_type = #{coType,jdbcType=INTEGER}, + + + co_create_time = #{coCreateTime,jdbcType=TIMESTAMP}, + + + co_name = #{coName,jdbcType=VARCHAR}, + + + co_activity_id = #{coActivityId,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update community_order + set co_user_id = #{coUserId,jdbcType=INTEGER}, + co_num = #{coNum,jdbcType=VARCHAR}, + co_money = #{coMoney,jdbcType=DOUBLE}, + co_status = #{coStatus,jdbcType=INTEGER}, + co_receive_name = #{coReceiveName,jdbcType=VARCHAR}, + co_note = #{coNote,jdbcType=VARCHAR}, + co_type = #{coType,jdbcType=INTEGER}, + co_create_time = #{coCreateTime,jdbcType=TIMESTAMP}, + co_name = #{coName,jdbcType=VARCHAR}, + co_activity_id = #{coActivityId,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/communityservice/src/main/resources/mapper/areaInfoMapper.xml b/communityservice/src/main/resources/mapper/areaInfoMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca3ff2437ae15554f56894a472afa1e1fc2a34d3 --- /dev/null +++ b/communityservice/src/main/resources/mapper/areaInfoMapper.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + id, area_name, area_address, detail1 + + + + delete from areainfo + where id = #{id,jdbcType=INTEGER} + + + insert into areainfo (id, area_name, area_address, + detail1) + values (#{id,jdbcType=INTEGER}, #{areaName,jdbcType=VARCHAR}, #{areaAddress,jdbcType=VARCHAR}, + #{detail1,jdbcType=VARCHAR}) + + + insert into areainfo + + + id, + + + area_name, + + + area_address, + + + detail1, + + + + + #{id,jdbcType=INTEGER}, + + + #{areaName,jdbcType=VARCHAR}, + + + #{areaAddress,jdbcType=VARCHAR}, + + + #{detail1,jdbcType=VARCHAR}, + + + + + update areainfo + + + area_name = #{areaName,jdbcType=VARCHAR}, + + + area_address = #{areaAddress,jdbcType=VARCHAR}, + + + detail1 = #{detail1,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update areainfo + set area_name = #{areaName,jdbcType=VARCHAR}, + area_address = #{areaAddress,jdbcType=VARCHAR}, + detail1 = #{detail1,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/communityservice/src/test/java/com/woniu/communityservice/CommunityserviceApplicationTests.java b/communityservice/src/test/java/com/woniu/communityservice/CommunityserviceApplicationTests.java index 3397cbaeb4a456488bb9813276fbcb6db1450a21..2ff3c09877437c96ea3b1ba194d7dd6f1bd0afec 100644 --- a/communityservice/src/test/java/com/woniu/communityservice/CommunityserviceApplicationTests.java +++ b/communityservice/src/test/java/com/woniu/communityservice/CommunityserviceApplicationTests.java @@ -1,13 +1,34 @@ package com.woniu.communityservice; +import com.woniu.dao.AnnouncementMapper; +import com.woniu.dto.NoticePost; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import java.util.List; + @SpringBootTest class CommunityserviceApplicationTests { + @Autowired + private AnnouncementMapper announcementMapper; @Test void contextLoads() { + System.out.println("****"); + } + + @Test + public void test1(){ + System.out.println("****"); + } + @Test + void testPageAndLike(){ + List noticePosts = announcementMapper.selectByKey("",2,15); + System.out.println(noticePosts.size()); + for (NoticePost np:noticePosts){ + System.out.println(np); + } } } diff --git a/gatway/pom.xml b/gatway/pom.xml index 8e4d9306fd195045242cf9393dec5ee7bf5a7fc2..c8499df9f14c4da963a20521fe4c3c1a9a1cf1f9 100644 --- a/gatway/pom.xml +++ b/gatway/pom.xml @@ -23,13 +23,15 @@ org.springframework.cloud spring-cloud-starter-netflix-eureka-client + 2.2.2.RELEASE org.springframework.cloud spring-cloud-starter-netflix-zuul - + 2.2.2.RELEASE + org.springframework.boot @@ -52,7 +54,30 @@ java-jwt 2.2.0 - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gatway/src/main/java/com/team7/happycommunity/gatway/config/GlobalCorsConfig.java b/gatway/src/main/java/com/team7/happycommunity/gatway/config/GlobalCorsConfig.java index 9067d9dd5a2a326486be4dd40df6aafa772859db..c0b4c2aa8af44d497264ccb1d8fb8aa06674e39e 100644 --- a/gatway/src/main/java/com/team7/happycommunity/gatway/config/GlobalCorsConfig.java +++ b/gatway/src/main/java/com/team7/happycommunity/gatway/config/GlobalCorsConfig.java @@ -31,6 +31,7 @@ public class GlobalCorsConfig { List l_headers = new ArrayList(); l_headers.add("username"); l_headers.add("token"); + l_headers.add("userId"); config.setExposedHeaders(l_headers); //2.添加映射路径,我们拦截一切请求 diff --git a/gatway/src/main/java/com/team7/happycommunity/gatway/filter/BusinessserviceSecurityFilter.java b/gatway/src/main/java/com/team7/happycommunity/gatway/filter/BusinessserviceSecurityFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..d532e5e78a6118e1b4cfdc400cb0597d03c74195 --- /dev/null +++ b/gatway/src/main/java/com/team7/happycommunity/gatway/filter/BusinessserviceSecurityFilter.java @@ -0,0 +1,81 @@ +package com.team7.happycommunity.gatway.filter; + +import com.alibaba.fastjson.JSONObject; +import com.netflix.zuul.ZuulFilter; +import com.netflix.zuul.context.RequestContext; +import com.netflix.zuul.exception.ZuulException; +import com.team7.happycommunity.gatway.common.CommonResult; +import com.team7.happycommunity.gatway.utils.JWTUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; +import org.springframework.stereotype.Component; + +/** + * 个人中心 + */ +@Component +public class BusinessserviceSecurityFilter extends ZuulFilter { + + @Autowired + JWTUtils jwtUtils; + + /** + * 运行阶段 + * pre、route、post、error + * @return + */ + @Override + public String filterType() { + return FilterConstants.PRE_TYPE; + } + + @Override + public int filterOrder() { + return 0; + } + + /** + * 开关控制 + * @return + */ + @Override + public boolean shouldFilter() { +// System.out.println(RequestContext.getCurrentContext().getRequest().getRequestURI()); + // 测试 路径 + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/businessssInfo/addInfo")){ + return true; + } + return false; + } + + + + @Override + public Object run() throws ZuulException { + + RequestContext requestContext = RequestContext.getCurrentContext(); + // 获取 用户名信息 + String username = requestContext.getRequest().getHeader("userName"); + String token = requestContext.getRequest().getHeader("token"); + String userId = requestContext.getRequest().getHeader("userId"); + System.out.println("username"+username); + System.out.println("userId"+userId); + System.out.println("token"+token); + //requestContext. + requestContext.addZuulRequestHeader("userId",userId); + requestContext.addZuulRequestHeader("userName",username); + + + // 解密 token 信息 + String result_name = jwtUtils.unsign(token,String.class); + System.out.println("result_name"+result_name); + if(!result_name.equals(username)){ + // 认证失败拒绝访问 + requestContext.setSendZuulResponse(false); + requestContext.setResponseStatusCode(200); + JSONObject jsonObject = (JSONObject) JSONObject.toJSON(CommonResult.failed("登录失败")); + requestContext.setResponseBody(jsonObject.toJSONString()); + } + return null; + } +} diff --git a/gatway/src/main/java/com/team7/happycommunity/gatway/filter/BussinessserviceLoginFilter.java b/gatway/src/main/java/com/team7/happycommunity/gatway/filter/BussinessserviceLoginFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..e6eb0ac2c465474da7c45561408cc2faf5088e23 --- /dev/null +++ b/gatway/src/main/java/com/team7/happycommunity/gatway/filter/BussinessserviceLoginFilter.java @@ -0,0 +1,106 @@ +package com.team7.happycommunity.gatway.filter; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.netflix.zuul.ZuulFilter; +import com.netflix.zuul.context.RequestContext; +import com.team7.happycommunity.gatway.utils.JWTUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; +import org.springframework.stereotype.Component; +import org.springframework.util.StreamUtils; +import org.springframework.util.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; + +import static org.springframework.util.ReflectionUtils.rethrowRuntimeException; + +/** + * 物业登录拦截器 + */ +@Component + +public class BussinessserviceLoginFilter extends ZuulFilter { + + @Autowired + JWTUtils jwtUtils; + + @Value("${my.auth_verify.duration}") + Integer duration; + + @Value("${my.propertymanagement.name}") + String applicationName; + + + /** + * 登录之后追加 + * @return + */ + @Override + public String filterType() { + return FilterConstants.POST_TYPE; + } + + @Override + public int filterOrder() { + return 0; + } + + @Override + public boolean shouldFilter() { + // 获取当前 + RequestContext requestContext = RequestContext.getCurrentContext(); + HttpServletRequest httpServletRequest = requestContext.getRequest(); + + String uri = httpServletRequest.getRequestURI(); + if(uri.contains("/businessssInfo/codeCheck")){ + return true; + } + + + return false; + } + + /** + * 获取 + */ + @Override + public Object run() { + try { + RequestContext requestContext = RequestContext.getCurrentContext(); + InputStream inputStream = requestContext.getResponseDataStream(); // 获取 ResponseData的流 + String result = StreamUtils.copyToString(inputStream, Charset.forName("UTF-8")); // StreamUtils 对流进行转换 + if(!StringUtils.isEmpty(result)){ // 非空判断 + JSONObject jsonObject = JSON.parseObject(result); // 转换回json对象 + // 判断是否通过登录 + if(jsonObject.getInteger("code") == 200){ + // {"code":200,"data":{"username":"admin"},"message":"登录成功"} 返回数据jsonObject示例 + JSONObject data = jsonObject.getJSONObject("data"); + //获取数据体中的用户名 并作为 加密一部分 + String username = data.getString("username"); + String userId = data.getString("userId"); + System.out.println(" JSONObject data JSONObject data JSONObject data"+username+userId); + // jwt 加密 并设置到header中 + // 加密内容 + 时长 ; 返回token + String token = jwtUtils.sign(username,duration); + // 设置 返回信息到responseHeaders里面 + RequestContext.getCurrentContext().getResponse().setHeader("token",token); + RequestContext.getCurrentContext().getResponse().setHeader("username",username); + RequestContext.getCurrentContext().getResponse().setHeader("userId",userId); + } + // 因为之前调用了getResponseDataStream,流读取了一次之后没有数据了,把返回json重新塞回去 + requestContext.setResponseBody(jsonObject.toJSONString()); + }else{ + // todo 异常情况 + } + } catch (IOException e) { + // 再次抛出运行时异常 + rethrowRuntimeException(e); + } + return null; + } +} diff --git a/gatway/src/main/java/com/team7/happycommunity/gatway/filter/PersoncentorLoginFilter.java b/gatway/src/main/java/com/team7/happycommunity/gatway/filter/PersoncentorLoginFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..c163fb34354402ef7431e1a1ee98e29b17d9c171 --- /dev/null +++ b/gatway/src/main/java/com/team7/happycommunity/gatway/filter/PersoncentorLoginFilter.java @@ -0,0 +1,104 @@ +package com.team7.happycommunity.gatway.filter; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.netflix.zuul.ZuulFilter; +import com.netflix.zuul.context.RequestContext; +import com.team7.happycommunity.gatway.utils.JWTUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; +import org.springframework.stereotype.Component; +import org.springframework.util.StreamUtils; +import org.springframework.util.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; + +import static org.springframework.util.ReflectionUtils.rethrowRuntimeException; + +/** + * 个人中心 + */ +@Component +public class PersoncentorLoginFilter extends ZuulFilter { + + @Autowired + JWTUtils jwtUtils; + + @Value("${my.auth_verify.duration}") + Integer duration; + + @Value("${my.propertymanagement.name}") + String applicationName; + + + /** + * 登录之后追加 + * @return + */ + @Override + public String filterType() { + return FilterConstants.POST_TYPE; + } + + @Override + public int filterOrder() { + return 0; + } + + @Override + public boolean shouldFilter() { + // 获取当前 + RequestContext requestContext = RequestContext.getCurrentContext(); + HttpServletRequest httpServletRequest = requestContext.getRequest(); + + String uri = httpServletRequest.getRequestURI(); + if(uri.contains("/personcentor/personUser/subLogin")){ + return true; + } + + + return false; + } + + /** + * 获取 + */ + @Override + public Object run() { + try { + RequestContext requestContext = RequestContext.getCurrentContext(); + InputStream inputStream = requestContext.getResponseDataStream(); // 获取 ResponseData的流 + String result = StreamUtils.copyToString(inputStream, Charset.forName("UTF-8")); // StreamUtils 对流进行转换 + if(!StringUtils.isEmpty(result)){ // 非空判断 + JSONObject jsonObject = JSON.parseObject(result); // 转换回json对象 + // 判断是否通过登录 + if(jsonObject.getInteger("code") == 200){ + // {"code":200,"data":{"username":"admin"},"message":"登录成功"} 返回数据jsonObject示例 + JSONObject data = jsonObject.getJSONObject("data"); + //获取数据体中的用户名 并作为 加密一部分 + String username = data.getString("username"); + String userId = data.getString("userId"); + // jwt 加密 并设置到header中 + // 加密内容 + 时长 ; 返回token + String token = jwtUtils.sign(username,duration); + // 设置 返回信息到responseHeaders里面 + RequestContext.getCurrentContext().getResponse().setHeader("token",token); + RequestContext.getCurrentContext().getResponse().setHeader("username",username); + RequestContext.getCurrentContext().getResponse().setHeader("userId",userId); + } + // 因为之前调用了getResponseDataStream,流读取了一次之后没有数据了,把返回json重新塞回去 + requestContext.setResponseBody(jsonObject.toJSONString()); + }else{ + // todo 异常情况 + } + } catch (IOException e) { + // 再次抛出运行时异常 + rethrowRuntimeException(e); + } + return null; + } +} diff --git a/gatway/src/main/java/com/team7/happycommunity/gatway/filter/PersoncentorSecurityFilter.java b/gatway/src/main/java/com/team7/happycommunity/gatway/filter/PersoncentorSecurityFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..9d2351d7eff33fd4d3bb721bf597160dda1f8787 --- /dev/null +++ b/gatway/src/main/java/com/team7/happycommunity/gatway/filter/PersoncentorSecurityFilter.java @@ -0,0 +1,104 @@ +package com.team7.happycommunity.gatway.filter; + +import com.alibaba.fastjson.JSONObject; +import com.netflix.zuul.ZuulFilter; +import com.netflix.zuul.context.RequestContext; +import com.netflix.zuul.exception.ZuulException; +import com.team7.happycommunity.gatway.common.CommonResult; +import com.team7.happycommunity.gatway.utils.JWTUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants; +import org.springframework.stereotype.Component; +/** + * 个人中心 + */ +@Component +public class PersoncentorSecurityFilter extends ZuulFilter { + + @Autowired + JWTUtils jwtUtils; + + /** + * 运行阶段 + * pre、route、post、error + * @return + */ + @Override + public String filterType() { + return FilterConstants.PRE_TYPE; + } + + @Override + public int filterOrder() { + return 0; + } + + /** + * 开关控制 + * @return + */ + @Override + public boolean shouldFilter() { +// System.out.println(RequestContext.getCurrentContext().getRequest().getRequestURI()); + // 测试 路径 + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personcentor/personUser/test")){ + return true; + } + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personUser/uploadHeadImage")){ + return true; + } + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personUser/myAttentionDynamic")){ + return true; + } + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personUser/myJoinAcitivity")){ + return true; + } + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personUser/myPublishAcitivity")){ + return true; + } + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personUser/dynamic")){ + return true; + } + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personUser/exit")){ + return true; + } + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personUser/personCenter")){ + return true; + } + if (RequestContext.getCurrentContext().getRequest().getRequestURI().contains("/personUser/resetPasswordBypassword")){ + return true; + } + return false; + } + + + + @Override + public Object run() throws ZuulException { + + RequestContext requestContext = RequestContext.getCurrentContext(); + // 获取 用户名信息 + String username = requestContext.getRequest().getHeader("userName"); + String token = requestContext.getRequest().getHeader("token"); + String userId = requestContext.getRequest().getHeader("userId"); + System.out.println("username"+username); + System.out.println("userId"+userId); + System.out.println("token"+token); + //requestContext. + requestContext.addZuulRequestHeader("userId",userId); + requestContext.addZuulRequestHeader("userName",username); + + + // 解密 token 信息 + String result_name = jwtUtils.unsign(token,String.class); + System.out.println("result_name"+result_name); + if(!result_name.equals(username)){ + // 认证失败拒绝访问 + requestContext.setSendZuulResponse(false); + requestContext.setResponseStatusCode(200); + JSONObject jsonObject = (JSONObject) JSONObject.toJSON(CommonResult.failed("登录失败")); + requestContext.setResponseBody(jsonObject.toJSONString()); + } + return null; + } +} diff --git a/gatway/src/main/resources/application.yml b/gatway/src/main/resources/application.yml index 1e860ae44e57097e3c94cfa6d83d1f97f2b77be3..e4ac7a895c4ca98af77a8ed8dbb202a88ac85845 100644 --- a/gatway/src/main/resources/application.yml +++ b/gatway/src/main/resources/application.yml @@ -15,7 +15,7 @@ spring: eureka: client: service-url: - defaultZone: http://106.12.148.100:8081/registor-0.1/eureka + defaultZone: http://localhost:8761/eureka server: port: 9100 ribbon: diff --git a/marketservice/pom.xml b/marketservice/pom.xml index 5848ae3699a9d855048f5262abd606f72fb63c02..20aa33809ba9272c3581cb7e549528288ab91747 100644 --- a/marketservice/pom.xml +++ b/marketservice/pom.xml @@ -28,44 +28,70 @@ org.springframework.boot spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-starter-cache + 2.2.5.RELEASE + + + + com.fasterxml.jackson.core + jackson-databind + 2.10.2 + + org.springframework.boot spring-boot-starter-thymeleaf + org.springframework.boot spring-boot-starter-web + org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.2 + org.springframework.cloud spring-cloud-starter-netflix-eureka-client + org.springframework.cloud spring-cloud-starter-netflix-zuul + + com.fasterxml.jackson.core + jackson-annotations + 2.9.10 + + org.springframework.boot spring-boot-devtools runtime true + mysql mysql-connector-java - 5.1.47 + 5.1.48 + org.projectlombok lombok true + org.springframework.boot spring-boot-starter-test diff --git a/marketservice/src/main/java/com/woniu/MarketserviceApplication.java b/marketservice/src/main/java/com/woniu/MarketserviceApplication.java index 0a548b4533d7f3c04262d4fc15dd59fb86e3a659..498fabb969c39b765efcc764367ba78fc9b99f0e 100644 --- a/marketservice/src/main/java/com/woniu/MarketserviceApplication.java +++ b/marketservice/src/main/java/com/woniu/MarketserviceApplication.java @@ -3,11 +3,13 @@ package com.woniu; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @MapperScan("com.woniu.dao") @EnableEurekaClient +@EnableCaching //开启声明式缓存 public class MarketserviceApplication { public static void main(String[] args) { diff --git a/marketservice/src/main/java/com/woniu/config/RedisConfig.java b/marketservice/src/main/java/com/woniu/config/RedisConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..260143871fd8dd5de182e97a03ff57f7b736f2eb --- /dev/null +++ b/marketservice/src/main/java/com/woniu/config/RedisConfig.java @@ -0,0 +1,42 @@ +package com.woniu.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +/** + * @ClassName: RedisConfig + * @Description: Redis配置类 + * @Author: Yanghan + * @Date: 2020/4/3 0:06 + */ +@Configuration +public class RedisConfig { + + @Bean + public RedisCacheConfiguration redisCacheConfiguration(){ + RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig(); + configuration = configuration.serializeKeysWith(RedisSerializationContext + .SerializationPair.fromSerializer(new StringRedisSerializer())) + .serializeValuesWith(RedisSerializationContext + .SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); + return configuration; + } + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory){ + RedisTemplate r = new RedisTemplate(); + r.setConnectionFactory(factory); + r.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); + r.setHashKeySerializer(new StringRedisSerializer()); + r.setValueSerializer(new GenericJackson2JsonRedisSerializer()); + r.setKeySerializer(new StringRedisSerializer()); + return r; + } + +} diff --git a/marketservice/src/main/java/com/woniu/controller/AnnouncementController.java b/marketservice/src/main/java/com/woniu/controller/AnnouncementController.java new file mode 100644 index 0000000000000000000000000000000000000000..b6466c99aa6d86e29174f4d53c2da1ad2a6d9914 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/controller/AnnouncementController.java @@ -0,0 +1,56 @@ +package com.woniu.controller; + +import com.woniu.common.CommonResult; +import com.woniu.entity.Announcement; +import com.woniu.service.AnnouncementService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 小区物业公告信息(Announcement)表控制层 + * + * @author makejava + * @since 2020-03-29 21:50:50 + */ +@Controller +@RequestMapping("/announcement") +public class AnnouncementController { + /** + * 服务对象 + */ + @Resource + private AnnouncementService announcementService; + + /** + * 功能描述: 查询最后三条公告数据 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/30 0:15 + */ + @GetMapping("/findAll") + public @ResponseBody CommonResult findAll(){ + try { + List announcements = announcementService.findAllByThree(); + return CommonResult.success(announcements); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + } + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public Announcement selectOne(Integer id) { + return this.announcementService.queryById(id); + } + +} \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityController.java b/marketservice/src/main/java/com/woniu/controller/CommunityActivityController.java similarity index 36% rename from personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityController.java rename to marketservice/src/main/java/com/woniu/controller/CommunityActivityController.java index e9052a6f8ec38c9cb9ee6f3cfed21426eb7c3053..8ea2c3ccbd5a23a9557eaa2dae03dd8f04d5d7c4 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityController.java +++ b/marketservice/src/main/java/com/woniu/controller/CommunityActivityController.java @@ -1,21 +1,21 @@ -package com.team7.happycommunity.personcentor.controller; +package com.woniu.controller; -import com.team7.happycommunity.personcentor.entity.CommunityActivity; -import com.team7.happycommunity.personcentor.service.CommunityActivityService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.woniu.common.CommonResult; +import com.woniu.entity.CommunityActivity; +import com.woniu.service.CommunityActivityService; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** * (CommunityActivity)表控制层 * * @author makejava - * @since 2020-03-25 11:18:29 + * @since 2020-03-29 21:49:13 */ @RestController -@RequestMapping("communityActivity") +@RequestMapping("/communityActivity") public class CommunityActivityController { /** * 服务对象 @@ -23,6 +23,24 @@ public class CommunityActivityController { @Resource private CommunityActivityService communityActivityService; + /** + * 功能描述: 查询最火的三条活动(根据参与人数判断,并且不为已经结束的活动) + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/30 0:59 + */ + @GetMapping("/selectActivity") + public CommonResult selectActivity(){ + try { + List activities = communityActivityService.selectActivity(); + return CommonResult.success(activities); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询活动失败"); + } + } + /** * 通过主键查询单条数据 * diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityUserController.java b/marketservice/src/main/java/com/woniu/controller/CommunityActivityUserController.java similarity index 31% rename from personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityUserController.java rename to marketservice/src/main/java/com/woniu/controller/CommunityActivityUserController.java index a0bf18c467c982d77c62945e424209aa2067d0e2..927028ace762e8581eb290cc704297783590ed89 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityUserController.java +++ b/marketservice/src/main/java/com/woniu/controller/CommunityActivityUserController.java @@ -1,10 +1,11 @@ -package com.team7.happycommunity.personcentor.controller; +package com.woniu.controller; -import com.team7.happycommunity.personcentor.entity.CommunityActivityUser; -import com.team7.happycommunity.personcentor.service.CommunityActivityUserService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.woniu.common.CommonResult; +import com.woniu.entity.CommunityActivityUser; +import com.woniu.entity.PersonUser; +import com.woniu.service.CommunityActivityUserService; +import com.woniu.service.PersonUserService; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -12,10 +13,10 @@ import javax.annotation.Resource; * (CommunityActivityUser)表控制层 * * @author makejava - * @since 2020-03-25 11:18:29 + * @since 2020-03-30 02:11:07 */ @RestController -@RequestMapping("communityActivityUser") +@RequestMapping("/communityActivityUser") public class CommunityActivityUserController { /** * 服务对象 @@ -23,6 +24,31 @@ public class CommunityActivityUserController { @Resource private CommunityActivityUserService communityActivityUserService; + @Resource + PersonUserService personUserService; + + /** + * 功能描述: 根据活动Id查询发起用户昵称 + * @Param: [id] 活动Id + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/30 2:13 + */ + @GetMapping("/findUserNameByActivity/{id}") + public CommonResult findUserNameByActivity(@PathVariable("id") Integer id){ + try { + //用户Id + Integer userId = communityActivityUserService.findUserNameByActivity(id); + //根据用户Id查询昵称 + PersonUser personUser = personUserService.queryById(userId); + return CommonResult.success(personUser.getNickname()); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + + } + /** * 通过主键查询单条数据 * diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/BusinessInfoController.java b/marketservice/src/main/java/com/woniu/controller/CommunityOrderController.java similarity index 40% rename from personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/BusinessInfoController.java rename to marketservice/src/main/java/com/woniu/controller/CommunityOrderController.java index dcffd6b892e052e7cb5a34ffb3ef509848e48d36..566b61a4ccffca5dfbac4577f718a93ddbcf25fc 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/BusinessInfoController.java +++ b/marketservice/src/main/java/com/woniu/controller/CommunityOrderController.java @@ -1,25 +1,25 @@ -package com.team7.happycommunity.personcentor.controller; +package com.woniu.controller; -import com.team7.happycommunity.personcentor.entity.BusinessInfo; -import com.team7.happycommunity.personcentor.service.BusinessInfoService; +import com.woniu.entity.CommunityOrder; +import com.woniu.service.CommunityOrderService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** - * (BusinessInfo)表控制层 + * (CommunityOrder)表控制层 * * @author makejava - * @since 2020-03-22 21:19:30 + * @since 2020-03-26 18:24:40 */ @RestController -@RequestMapping("businessInfo") -public class BusinessInfoController { +@RequestMapping("communityOrder") +public class CommunityOrderController { /** * 服务对象 */ @Resource - private BusinessInfoService businessInfoService; + private CommunityOrderService communityOrderService; /** * 通过主键查询单条数据 @@ -28,8 +28,8 @@ public class BusinessInfoController { * @return 单条数据 */ @GetMapping("selectOne") - public BusinessInfo selectOne(Integer id) { - return this.businessInfoService.queryById(id); + public CommunityOrder selectOne(Integer id) { + return this.communityOrderService.queryById(id); } } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/controller/PersonUserAddressController.java b/marketservice/src/main/java/com/woniu/controller/PersonUserAddressController.java new file mode 100644 index 0000000000000000000000000000000000000000..197e6058e55f9e4a3bd03b36e5bfb9aaeb64eb7a --- /dev/null +++ b/marketservice/src/main/java/com/woniu/controller/PersonUserAddressController.java @@ -0,0 +1,77 @@ +package com.woniu.controller; + +import com.woniu.common.CommonResult; +import com.woniu.entity.Areainfo; +import com.woniu.entity.PersonUser; +import com.woniu.entity.PersonUserAddress; +import com.woniu.service.AreainfoService; +import com.woniu.service.PersonUserAddressService; +import com.woniu.service.PersonUserService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.thymeleaf.standard.expression.Each; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 用户地址表(PersonUserAddress)表控制层 + * + * @author makejava + * @since 2020-03-26 18:56:24 + */ +@Controller +@RequestMapping("/personUserAddress") +public class PersonUserAddressController { + /** + * 服务对象 + */ + @Resource + private PersonUserAddressService personUserAddressService; + + @Resource + PersonUserService personUserService; + + @Resource + AreainfoService areainfoService; + + /** + * 功能描述: 查询当前用户的收货地址 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/26 19:31 + */ + @GetMapping("/findAddressByUserId") + public @ResponseBody CommonResult findAddressByUserId(){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + Integer userId = personUser.getId(); + //根据用户Id查询详细地址 + List address = personUserAddressService.findAllAddressByUserId(userId); + //根据用户Id查询用户信息 + PersonUser user = personUserService.queryById(userId); + Map map = new HashMap<>(); + map.put("user",user); + map.put("address",address); + return CommonResult.success(map); + } + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public PersonUserAddress selectOne(Integer id) { + return this.personUserAddressService.queryById(id); + } + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/controller/PersonUserController.java b/marketservice/src/main/java/com/woniu/controller/PersonUserController.java index 84b5c6a5340b582ed938dd22f153c29e86ac6afa..6646a6e89ded4f88fa997c09b5e7db34119b0da3 100644 --- a/marketservice/src/main/java/com/woniu/controller/PersonUserController.java +++ b/marketservice/src/main/java/com/woniu/controller/PersonUserController.java @@ -1,10 +1,16 @@ package com.woniu.controller; +import com.woniu.common.CommonResult; +import com.woniu.common.CookieUtil; +import com.woniu.entity.PersonImage; import com.woniu.entity.PersonUser; +import com.woniu.service.PersonImageService; import com.woniu.service.PersonUserService; +import com.woniu.service.UsedProductCommentService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.*; /** * (PersonUser)表控制层 @@ -13,7 +19,7 @@ import javax.annotation.Resource; * @since 2020-03-24 19:04:31 */ @RestController -@RequestMapping("personUser") +@RequestMapping("/personUser") public class PersonUserController { /** * 服务对象 @@ -21,13 +27,111 @@ public class PersonUserController { @Resource private PersonUserService personUserService; + @Resource + PersonImageService personImageService; + + @Resource + UsedProductCommentService usedProductCommentService; + + @Resource + CookieUtil cookieUtil; + + /** + * 功能描述: 根据商品Id查询当前商品评论用户的所有信息 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/3 2:32 + */ + @GetMapping("/findByUserId/{productId}") + public CommonResult findByUserId(@PathVariable("productId")Integer productId){ + try { + Integer userId = usedProductCommentService.findUserIdByProductId(productId); + //根据userId查询其所有信息,以及头像图片 + PersonUser personUser = personUserService.queryById(userId); + String url = personImageService.findAllByUserId(userId); + Map map = new HashMap<>(); + map.put("user",personUser); + map.put("url",url); + return CommonResult.success("查询成功",map); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + + + } + + /** + * 功能描述: 查询当前用户所属小区的所有人的昵称以及头像url + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/30 2:53 + */ + @GetMapping("/peopleNearby") + public CommonResult peopleNearby(){ + //当前登录用户名 +// String name = cookieUtil.getName(); + //查询当前用户所属小区 + String name = "admin"; + //当前用户信息 + PersonUser personUser = personUserService.findIdByName(name); + Integer plotId = personUserService.findPlotIdByUserId(personUser.getPlotId()); + //查询小区中的最后三个人 + List personUsers = personUserService.findPersonByPoltId(plotId); + ArrayList userId = new ArrayList<>(); + ArrayList nickNames = new ArrayList<>(); + for (PersonUser person:personUsers) { + userId.add(person.getId()); + nickNames.add(person.getNickname()); + } + //查询这三个人的头像 + List personImages = personImageService.findImgByListUserId(userId); + ArrayList images = new ArrayList<>(); + for (PersonImage pImage:personImages) { + images.add(pImage.getUrl()); + } + Map map = new HashMap<>(); + map.put("nickNames",nickNames); + map.put("images",images); + return CommonResult.success(map); + } + + /** + * 功能描述: 根据用户Id查询用户昵称 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/30 2:53 + */ + @GetMapping("/findCurrentUserName") + public CommonResult findCurrentUserName(){ + //当前登录用户名 +// String name = cookieUtil.getName(); +// if (name == null){ +// return CommonResult.success("未登录"); +// } + String name = "admin"; + //根据用户名查询用户昵称 + try { + String nickName = personUserService.findNickNameByName(name); + return CommonResult.success(nickName); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + + + } + /** * 通过主键查询单条数据 * * @param id 主键 * @return 单条数据 */ - @GetMapping("selectOne") + @GetMapping("/selectOne") public PersonUser selectOne(Integer id) { return this.personUserService.queryById(id); } diff --git a/marketservice/src/main/java/com/woniu/controller/UsedProductCommentController.java b/marketservice/src/main/java/com/woniu/controller/UsedProductCommentController.java index cdb3b4b409e0943792517d2410802210e5fb0fdc..81ade288b7841d3aeeb4f561ba7852f31fe17d88 100644 --- a/marketservice/src/main/java/com/woniu/controller/UsedProductCommentController.java +++ b/marketservice/src/main/java/com/woniu/controller/UsedProductCommentController.java @@ -1,10 +1,16 @@ package com.woniu.controller; +import com.woniu.common.CommonResult; +import com.woniu.entity.PersonUser; import com.woniu.entity.UsedProductComment; +import com.woniu.service.PersonUserService; import com.woniu.service.UsedProductCommentService; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.Date; +import java.util.List; /** * 商品评价表(UsedProductComment)表控制层 @@ -12,8 +18,8 @@ import javax.annotation.Resource; * @author makejava * @since 2020-03-23 09:48:24 */ -@RestController -@RequestMapping("usedProductComment") +@Controller +@RequestMapping("/usedProductComment") public class UsedProductCommentController { /** * 服务对象 @@ -21,6 +27,103 @@ public class UsedProductCommentController { @Resource private UsedProductCommentService usedProductCommentService; + @Resource + PersonUserService personUserService; + + /** + * 功能描述: 根据商品Id查询所有评论 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/3 2:15 + */ + @GetMapping("/findAllByProductId/{productId}") + public @ResponseBody CommonResult findAllByProductId(@PathVariable("productId")Integer productId){ + try { + List usedProductComments = usedProductCommentService.findAllByProductId(productId); + return CommonResult.success("查询成功",usedProductComments); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + } + + /** + * 功能描述: 根据商品Id查询商品是否有评论 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/3 2:14 + */ + @GetMapping("/selectOrderByProductId/{productId}") + public @ResponseBody CommonResult selectOrderByProductId(@PathVariable("productId")Integer productId){ + List usedProductComments = null; + try { + usedProductComments = usedProductCommentService.findAllByProductId(productId); + //当前商品有评论就是0,没评论就是1 + if (usedProductComments.size()>0){ + return CommonResult.success("0"); + }else { + return CommonResult.success("1"); + } + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("0"); + } + + } + + /** + * 功能描述: 查询当前订单评论是否有值 + * @Param: [orderId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/2 19:57 + */ + @GetMapping("/selectOrderByNull/{orderId}") + public @ResponseBody CommonResult selectOrderByNull(@PathVariable("orderId")Integer orderId){ + List usedProductComments = null; + try { + usedProductComments = usedProductCommentService.findAllByOrderId(orderId); + //当前商品有评论就是0,没评论就是1 + if (usedProductComments.size()>0){ + return CommonResult.success("0"); + }else { + return CommonResult.success("1"); + } + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("0"); + } + + } + + /** + * 功能描述: 保存评论 + * @Param: [usedProductComment] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/2 19:56 + */ + @PostMapping("/saveComment") + public @ResponseBody CommonResult saveComment(UsedProductComment usedProductComment){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + usedProductComment.setCommentTime(new Date()); + usedProductComment.setUserId(personUser.getId()); + //保存到数据库 + try { + usedProductCommentService.insert(usedProductComment); + return CommonResult.success("评价成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("评价失败"); + } + } + /** * 通过主键查询单条数据 * diff --git a/marketservice/src/main/java/com/woniu/controller/UsedProductConsigneeController.java b/marketservice/src/main/java/com/woniu/controller/UsedProductConsigneeController.java new file mode 100644 index 0000000000000000000000000000000000000000..e6797ca415709d6f8ec7cb5569c1655dc0b00620 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/controller/UsedProductConsigneeController.java @@ -0,0 +1,148 @@ +package com.woniu.controller; + +import com.woniu.common.CommonResult; +import com.woniu.entity.PersonUser; +import com.woniu.entity.UsedProductConsignee; +import com.woniu.service.PersonUserService; +import com.woniu.service.UsedProductConsigneeService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 二手市场收货信息表(UsedProductConsignee)表控制层 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +@RestController +@RequestMapping("/usedProductConsignee") +public class UsedProductConsigneeController { + /** + * 服务对象 + */ + @Resource + private UsedProductConsigneeService usedProductConsigneeService; + + @Resource + PersonUserService personUserService; + + /** + * 功能描述: 修改地址信息 + * @Param: [usedProductConsignee] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/7 3:03 + */ + @PutMapping("/updateAddr") + public CommonResult updateAddr(UsedProductConsignee usedProductConsignee){ + try { + usedProductConsigneeService.update(usedProductConsignee); + return CommonResult.success("修改成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("修改失败"); + } + } + + /** + * 功能描述: 根据地址Id删除当前地址 + * @Param: [addrId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/7 2:36 + */ + @DeleteMapping("/delAddrById/{addrId}") + public CommonResult delAddrById(@PathVariable("addrId")Integer addrId){ + try { + usedProductConsigneeService.deleteById(addrId); + return CommonResult.success("删除地址成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("删除地址失败"); + } + } + + /** + * 功能描述: 根据收货Id查询收货信息 + * @Param: [consigneeId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/30 22:57 + */ + @GetMapping("/findByConsigneeId/{consigneeId}") + public CommonResult findByConsigneeId(@PathVariable("consigneeId")Integer consigneeId){ + if (consigneeId != null){ + try { + UsedProductConsignee usedProductConsignee = usedProductConsigneeService.queryById(consigneeId); + return CommonResult.success("查询成功",usedProductConsignee); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + } + return CommonResult.success(1); + } + + /** + * 功能描述: 根据当前用户查询收货信息 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/30 22:26 + */ + @GetMapping("/findAllByUserId") + public CommonResult findAllByUserId(){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + try { + List usedProductConsignees = usedProductConsigneeService.findAllByUserId(personUser.getId()); + return CommonResult.success("查询成功",usedProductConsignees); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + + } + + /** + * 功能描述: 保存收货人信息 + * @Param: [usedProductConsignee] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/30 21:53 + */ + @PostMapping("/saveConsignee") + public CommonResult saveConsignee(UsedProductConsignee usedProductConsignee){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + usedProductConsignee.setUserId(personUser.getId()); + try { + UsedProductConsignee productConsignee = usedProductConsigneeService.insert(usedProductConsignee); + return CommonResult.success("保存成功",productConsignee.getId()); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.success("保存失败"); + } + + } + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public UsedProductConsignee selectOne(Integer id) { + return this.usedProductConsigneeService.queryById(id); + } + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/controller/UsedProductController.java b/marketservice/src/main/java/com/woniu/controller/UsedProductController.java index ae864bfd64e864b9ded24f41c344225f4a9656af..f8a7719122eaea5193ee6d987d6995fb49e88fc2 100644 --- a/marketservice/src/main/java/com/woniu/controller/UsedProductController.java +++ b/marketservice/src/main/java/com/woniu/controller/UsedProductController.java @@ -2,24 +2,20 @@ package com.woniu.controller; import com.woniu.common.CommonResult; import com.woniu.common.CookieUtil; -import com.woniu.entity.Areainfo; -import com.woniu.entity.PersonUser; -import com.woniu.entity.UsedProduct; -import com.woniu.entity.UsedProductType; -import com.woniu.service.AreainfoService; -import com.woniu.service.PersonUserService; -import com.woniu.service.UsedProductService; -import com.woniu.service.UsedProductTypeService; +import com.woniu.common.QiniuUploadUtil; +import com.woniu.entity.*; +import com.woniu.service.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.multipart.MultipartFile; +import sun.misc.BASE64Decoder; import javax.annotation.Resource; -import java.sql.Timestamp; -import java.util.Date; -import java.util.List; +import javax.sound.midi.Soundbank; +import java.io.IOException; +import java.util.*; /** * 二手商品表(UsedProduct)表控制层 @@ -43,9 +39,381 @@ public class UsedProductController { @Resource UsedProductTypeService usedProductTypeService; + @Resource + UsedProductImgsService usedProductImgsService; + + @Resource + UsedProductOrderService usedProductOrderService; + @Resource CookieUtil cookieUtil; + @Autowired + RedisTemplate redisTemplate; + + + /** + * 功能描述: 查询已付款的商品 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/2 17:37 + */ + @GetMapping("/yespayProduct") + public @ResponseBody CommonResult yespayProduct(){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + //已付款(未付款 0 ,已付款 1) + Integer orderStatus = 1; + //二手市场商品 + Integer orderType = 1; + ArrayList productIdList = usedProductOrderService.findProductIdByPayStatus(personUser.getId(), orderStatus, orderType); + if (productIdList == null){ + return CommonResult.failed("当前暂无数据"); + } + //查询商品数据 + ArrayList usedProducts = new ArrayList<>(); + for (Integer id:productIdList) { + UsedProduct usedProduct = usedProductService.queryById(id); + usedProducts.add(usedProduct); + } + return CommonResult.success("查询成功",usedProducts); + } + + /** + * 功能描述: 查询未付款的商品 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/31 1:06 + */ + @GetMapping("/nopayProduct") + public @ResponseBody CommonResult nopayProduct(){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + //未付款 + Integer orderStatus = 0; + //二手市场商品 + Integer orderType = 1; + ArrayList productIdList = usedProductOrderService.findProductIdByPayStatus(personUser.getId(), orderStatus, orderType); + if (productIdList == null){ + return CommonResult.failed("当前暂无数据"); + } + //查询商品数据 + ArrayList usedProducts = new ArrayList<>(); + for (Integer id:productIdList) { + UsedProduct usedProduct = usedProductService.queryById(id); + usedProducts.add(usedProduct); + } + return CommonResult.success("查询成功",usedProducts); + + + + } + + /** + * 功能描述: 更新商品信息 + * @Param: [usedProduct] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/31 1:06 + */ + @PutMapping("/updateProduct") + public @ResponseBody CommonResult updateProduct(UsedProduct usedProduct){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + try { + usedProduct.setLastTime(new Date()); + usedProductService.update(usedProduct); + //将图片链接保存到图片表中,商品id + UsedProductImgs productImgs = new UsedProductImgs(); + productImgs.setImgUrl((String) redisTemplate.opsForValue().get(name+"img")); + productImgs.setProductId(usedProduct.getId()); + usedProductImgsService.insert(productImgs); + redisTemplate.delete(name+"img"); + return CommonResult.success("更新成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("更新失败"); + } + } + + /** + * 功能描述: 根据商品Id查询商品所有信息 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/28 21:52 + */ + @GetMapping("/findAllByProductId/{productId}") + public @ResponseBody CommonResult findAllProductByProductId(@PathVariable("productId")Integer productId){ + try { + UsedProduct usedProduct = usedProductService.queryById(productId); + return CommonResult.success(usedProduct); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + } + + /** + * 功能描述: 删除商品 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/28 17:05 + */ + @DeleteMapping("/deleteProduct/{productId}") + public @ResponseBody CommonResult deleteProduct(@PathVariable("productId") Integer productId){ + try { + usedProductService.deleteById(productId); + usedProductImgsService.deleteImgsByProductId(productId); + return CommonResult.success("商品删除成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("商品删除失败"); + } + } + + /** + * 功能描述: 商品上架 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/29 1:41 + */ + @PutMapping("/productOnOffer/{productId}") + public @ResponseBody CommonResult productOnOffer(@PathVariable("productId") Integer productId){ + //先根据Id查询商品 + UsedProduct usedProduct = usedProductService.queryById(productId); + //商品状态为下架时,修改为上架 + if (usedProduct.getStatus()==2){ + usedProduct.setStatus(0); + try { + usedProductService.update(usedProduct); + return CommonResult.success("商品上架成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("商品上架失败"); + } + } + return CommonResult.failed("商品上架失败"); + } + + /** + * 功能描述: 商品下架 + * @Param: [productId] 下架商品的Id + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/28 16:38 + */ + @PutMapping("/productSoldOut/{productId}") + public @ResponseBody CommonResult productSoldOut(@PathVariable("productId") Integer productId){ + //先根据Id查询商品当前状态1 + UsedProduct usedProduct1 = usedProductService.queryById(productId); + if (usedProduct1.getStatus() == 0){ + UsedProduct usedProduct = new UsedProduct(); + usedProduct.setStatus(2); + usedProduct.setId(productId); + try { + usedProductService.update(usedProduct); + return CommonResult.success("商品下架成功!"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("商品下架失败!"); + } + } //0:正在出售;1:已售出;2:用户下架;3:审核中;4.审核不合格 + else if (usedProduct1.getStatus() == 1){ + return CommonResult.failed("商品已售出!"); + }else if (usedProduct1.getStatus() == 2){ + return CommonResult.failed("该商品已下架,不能二次下架!"); + } + return CommonResult.failed("该商品不能下架"); + + } + + /** + * 功能描述: 当前用户下架的商品 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/29 1:34 + */ + @GetMapping("/findSoldOutProductByUserId") + public @ResponseBody CommonResult findSoldOutProductByUserId(){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + try { + PersonUser personUser = personUserService.findIdByName(name); + List products = usedProductService.findSoldOutProductByUserId(personUser.getId()); + return CommonResult.success(products); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + + } + + /** + * 功能描述: 当前用户已出售的商品 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/29 2:01 + */ + @GetMapping("/tradeproduct") + public @ResponseBody CommonResult tradeproduct(){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + try { + PersonUser personUser = personUserService.findIdByName(name); + List products = usedProductService.findTradeProductByUserId(personUser.getId()); + return CommonResult.success(products); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + + } + + /** + * 功能描述: 当前用户正在出售的商品 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/29 1:33 + */ + @GetMapping("/findOnOfferProductByUserId") + public @ResponseBody CommonResult findOnOfferProductByUserId(){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + try { + PersonUser personUser = personUserService.findIdByName(name); + List products = usedProductService.findOnOfferProductByUserId(personUser.getId()); + return CommonResult.success(products); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + + } + + /** + * 功能描述: 根据用户Id查询所有商品 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/28 15:48 + */ + @GetMapping("/findAllProductByUserId") + public @ResponseBody CommonResult findAllProductByUserId(){ + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + try { + PersonUser personUser = personUserService.findIdByName(name); + List products = usedProductService.findAllProductByUserId(personUser.getId()); + return CommonResult.success(products); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + + } + + /** + * 功能描述: 根据商品Id,查询商品的详细信息 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/26 9:55 + */ + @GetMapping("/findAllProduct/{productId}") + public @ResponseBody CommonResult findAllByProductId(@PathVariable("productId")Integer productId){ + try { + //查询商品信息 + UsedProduct usedProduct = usedProductService.queryById(productId); + //查询商品图片 + List imgs = usedProductImgsService.findImgsByProductId(productId); + HashMap map = new HashMap<>(); + map.put("product",usedProduct); + map.put("imgs",imgs); + return CommonResult.success("商品查询成功",map); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("当前商品已售出"); + } + } + + /** + * 功能描述: 图片上传到七牛云 + * @Param: [imgBase] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/28 13:42 + */ + @PostMapping("/upload") + public @ResponseBody CommonResult upload(String imgBase){ + byte[] b1 = null; + BASE64Decoder decoder = new BASE64Decoder(); + try{ + if (imgBase.indexOf("data:image/jpeg;base64,") != -1) { + b1 = decoder.decodeBuffer(imgBase.replaceAll("data:image/jpeg;base64,", "")); + } else { + if (imgBase.indexOf("data:image/png;base64,") != -1) { + b1 = decoder.decodeBuffer(imgBase.replaceAll("data:image/png;base64,", "")); + } else { + b1 = decoder.decodeBuffer(imgBase.replaceAll("data:image/jpg;base64,", "")); + } + } + for (int i = 0; i < b1.length; ++i) { + if (b1[i] < 0) {// 调整异常数据 + b1[i] += 256; + } + } + }catch(Exception e){ + e.printStackTrace(); + } + //添加图片url; + String name = UUID.randomUUID().toString().replace("_", ""); + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String userName = "admin"; + try { + String imgUrl = new QiniuUploadUtil().upload(name, b1); + //图片链接else + System.out.println(imgUrl); + //将图片链接存入redis中 + redisTemplate.opsForValue().set(userName+"img",imgUrl); + return CommonResult.success("1"); + } catch (Exception e) { + e.printStackTrace(); + } + return CommonResult.success("0"); + } + + + /** + * 功能描述: 保存前端传过来的二手商品数据 + * @Param: [usedProduct] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/25 20:09 + */ @PostMapping("/saveProduct") public @ResponseBody CommonResult saveProduct(UsedProduct usedProduct){ //获取当前登录的用户的用户名 @@ -67,8 +435,14 @@ public class UsedProductController { //商品取件方式(0:自取,1:邮寄) //将商品数据存入数据库 try { - usedProductService.insert(usedProduct); - return CommonResult.success("商品发布成功"); + UsedProduct usedProduct1 = usedProductService.insert(usedProduct); + //将图片链接保存到图片表中,商品id + UsedProductImgs productImgs = new UsedProductImgs(); + productImgs.setImgUrl((String) redisTemplate.opsForValue().get(name+"img")); + productImgs.setProductId(usedProduct1.getId()); + usedProductImgsService.insert(productImgs); + redisTemplate.delete(name+"img"); + return CommonResult.success(usedProduct1.getId()); } catch (Exception e) { e.printStackTrace(); return CommonResult.failed("商品发布失败"); @@ -127,20 +501,23 @@ public class UsedProductController { * @Author: yanghan * @Date: 2020/3/24 16:02 */ - @GetMapping("/findAreainfo/{userId}") - public @ResponseBody CommonResult findAreainfo(@PathVariable("userId") Integer userId){ + @GetMapping("/findAreainfo") + public @ResponseBody CommonResult findAreainfo(){ + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); Areainfo areainfo = null; try { //根据用户Id查询所属小区 - Integer plotId = personUserService.findPlotIdByUserId(userId); + Integer plotId = personUserService.findPlotIdByUserId(personUser.getId()); //查询小区信息 - areainfo = areainfoService.queryById(plotId); - return CommonResult.success(areainfo); + areainfo = areainfoService.findAllByPlotId(plotId); +// return CommonResult.success(areainfo); } catch (Exception e) { e.printStackTrace(); - return CommonResult.failed("获取信息失败!"); + //return CommonResult.failed("获取信息失败!"); } - + return CommonResult.success(areainfo); } /** diff --git a/marketservice/src/main/java/com/woniu/controller/UsedProductImgsController.java b/marketservice/src/main/java/com/woniu/controller/UsedProductImgsController.java index 615999bc15cd6840e2f297ec1388004e264cc3ae..a779765a29a4d8c8a9b95d29da267783ffcc4100 100644 --- a/marketservice/src/main/java/com/woniu/controller/UsedProductImgsController.java +++ b/marketservice/src/main/java/com/woniu/controller/UsedProductImgsController.java @@ -1,10 +1,17 @@ package com.woniu.controller; +import ch.qos.logback.core.rolling.helper.IntegerTokenConverter; +import com.woniu.common.CommonResult; +import com.woniu.entity.UsedProduct; import com.woniu.entity.UsedProductImgs; import com.woniu.service.UsedProductImgsService; +import com.woniu.service.UsedProductService; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * 商品图片表(UsedProductImgs)表控制层 @@ -12,8 +19,8 @@ import javax.annotation.Resource; * @author makejava * @since 2020-03-23 09:48:24 */ -@RestController -@RequestMapping("usedProductImgs") +@Controller +@RequestMapping("/usedProductImgs") public class UsedProductImgsController { /** * 服务对象 @@ -21,6 +28,48 @@ public class UsedProductImgsController { @Resource private UsedProductImgsService usedProductImgsService; + @Resource + private UsedProductService usedProductService; + + @GetMapping("/findImgsBytypeId/{typeId}") + public @ResponseBody CommonResult findImgsBytypeId(@PathVariable("typeId") Integer typeId){ + //根据商品类型查找商品 + List usedProducts = usedProductService.findAllByTypeId(typeId); + ArrayList imgsAll = new ArrayList<>(); + for (UsedProduct u:usedProducts) { + List imgs = usedProductImgsService.findImgsByProductId(u.getId()); + imgsAll.add(imgs.get(0).getImgUrl()); + } + + + + return CommonResult.success(imgsAll); + } + + /** + * 功能描述: 根据商品Id查询图片Url + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/29 0:53 + */ + @GetMapping("/findImgsByProductId/{productId}") + public @ResponseBody CommonResult findImgsByProductId(@PathVariable("productId") Integer productId){ + try { + List imgs = usedProductImgsService.findImgsByProductId(productId); + UsedProductImgs img = null; + if (imgs.size()>0){ + img = imgs.get(0); + return CommonResult.success(img); + }else { + return CommonResult.failed("失败"); + } + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("失败"); + } + } + /** * 通过主键查询单条数据 * diff --git a/marketservice/src/main/java/com/woniu/controller/UsedProductOrderController.java b/marketservice/src/main/java/com/woniu/controller/UsedProductOrderController.java new file mode 100644 index 0000000000000000000000000000000000000000..9ccd164c955095f223d7ce1e06dce8f32e3db181 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/controller/UsedProductOrderController.java @@ -0,0 +1,190 @@ +package com.woniu.controller; + +import ch.qos.logback.core.rolling.helper.IntegerTokenConverter; +import com.woniu.common.CommonResult; +import com.woniu.entity.PersonUser; +import com.woniu.entity.UsedProduct; +import com.woniu.entity.UsedProductOrder; +import com.woniu.service.PersonUserService; +import com.woniu.service.UsedProductOrderService; +import com.woniu.service.UsedProductService; +import org.apache.ibatis.annotations.Delete; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.UUID; + +/** + * 二手市场订单表(UsedProductOrder)表控制层 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +@RestController +@RequestMapping("usedProductOrder") +public class UsedProductOrderController { + /** + * 服务对象 + */ + @Resource + private UsedProductOrderService usedProductOrderService; + + @Resource + PersonUserService personUserService; + + @Resource + UsedProductService usedProductService; + + /** + * 功能描述: 查询当前用户的所有订单 + * @Param: [] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/4/2 17:11 + */ + @GetMapping("/findAllOrder") + public CommonResult findAllOrder(){ + //获取当前登录用户Id + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + try { + List orderList = usedProductOrderService.findOrderByUserId(personUser.getId()); + return CommonResult.success("查询成功",orderList); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + + } + + /** + * 功能描述: 删除订单 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/31 9:58 + */ + @DeleteMapping("/deleteOrder/{productId}") + public CommonResult deleteOrder(@PathVariable("productId")Integer productId){ + //获取当前登录用户Id + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + Integer orderType = 1; + //删除订单 + try { + usedProductOrderService.deleteOrderByProductId(personUser.getId(),productId,orderType); + return CommonResult.success("删除未付款商品成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("删除失败"); + } + } + + /** + * 功能描述: 获取订单数据 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/31 0:54 + */ + @GetMapping("/findOrderByProductId/{productId}") + public CommonResult findOrderByProductId(@PathVariable("productId")Integer productId){ + //获取当前登录用户Id + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + //订单类型(0:服务,1:二手市场) + Integer i = 1; + //根据用户Id、商品Id、订单类型查询数据 + try { + UsedProductOrder order = usedProductOrderService.findOrderByProductId(personUser.getId(), productId, i); + return CommonResult.success("查询订单成功",order); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + } + + /** + * 功能描述: 生成订单信息,保存到数据库 + * @Param: [productId] + * @Return: com.woniu.common.CommonResult + * @Author: yanghan + * @Date: 2020/3/31 0:21 + */ + @PostMapping("/createOrder/{productId}") + public CommonResult createOrder(@PathVariable("productId")Integer productId){ + UsedProductOrder order = new UsedProductOrder(); + order.setProductId(productId); + //获取当前登录用户Id + //获取当前登录的用户的用户名 +// String name = cookieUtil.getName(); + String name = "admin"; + //查询用户Id + PersonUser personUser = personUserService.findIdByName(name); + //根据商品Id查询商品发布人的Id + Integer issueUserId = usedProductService.findUserIdByProductId(productId); + //判断当前登录用户是否购买商品用户 + if (issueUserId == personUser.getId()){ + return CommonResult.failed("不能购买自己发布的商品"); + } + //根据当前用户Id、商品Id查询当前用户是否有此订单 + UsedProductOrder order1 = usedProductOrderService.findOrderByProductId(personUser.getId(), productId, 1); + if (order1 == null){ + order.setUserId(personUser.getId()); + //设置为二手市场商品类型 + order.setProductOrderType(1); + //根据商品id查询商品信息 + UsedProduct usedProduct = usedProductService.queryById(productId); + //生成订单号 + String random = UUID.randomUUID().toString(); + String uuid = random.replaceAll("-", ""); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String date = sdf.format(new Date()); + String ordernumber = uuid+date; + order.setOrderNumber(ordernumber); + order.setOrderName("用户:"+personUser.getNickname()+"的"+usedProduct.getProductName()+"订单"); + order.setOrderMoney(usedProduct.getSsellingPrice()); + System.out.println(order.toString()); + //订单状态(0:未支付,1:已支付) + order.setOrderStatus(0); + //将数据添加到数据库中 + try { + usedProductOrderService.insert(order); + return CommonResult.success("生成订单成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("订单生成失败"); + } + } + return CommonResult.failed("当前商品已有未付款订单!"); + + + + + + } + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public UsedProductOrder selectOne(Integer id) { + return this.usedProductOrderService.queryById(id); + } + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/AnnouncementDao.java b/marketservice/src/main/java/com/woniu/dao/AnnouncementDao.java new file mode 100644 index 0000000000000000000000000000000000000000..72abc218547707174a327ac46a833ed216b9ccbc --- /dev/null +++ b/marketservice/src/main/java/com/woniu/dao/AnnouncementDao.java @@ -0,0 +1,69 @@ +package com.woniu.dao; + +import com.woniu.entity.Announcement; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * 小区物业公告信息(Announcement)表数据库访问层 + * + * @author makejava + * @since 2020-03-29 21:50:50 + */ +public interface AnnouncementDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Announcement queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param announcement 实例对象 + * @return 对象列表 + */ + List queryAll(Announcement announcement); + + /** + * 新增数据 + * + * @param announcement 实例对象 + * @return 影响行数 + */ + int insert(Announcement announcement); + + /** + * 修改数据 + * + * @param announcement 实例对象 + * @return 影响行数 + */ + int update(Announcement announcement); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + @Select("select * from announcement where status = 0 order by id desc limit 3") + List findAllByThree(); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/AreainfoDao.java b/marketservice/src/main/java/com/woniu/dao/AreainfoDao.java index 5c1d0c87c047008d39eec0cb2569472e2a685748..7e733694556cee2c0a1228772e53783411ab0b7c 100644 --- a/marketservice/src/main/java/com/woniu/dao/AreainfoDao.java +++ b/marketservice/src/main/java/com/woniu/dao/AreainfoDao.java @@ -2,6 +2,9 @@ package com.woniu.dao; import com.woniu.entity.Areainfo; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.ArrayList; import java.util.List; /** @@ -62,4 +65,6 @@ public interface AreainfoDao { */ int deleteById(Integer id); + @Select("select * from areainfo where id = #{value}") + Areainfo findAllByPlotId(Integer plotId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/CommunityActivityDao.java b/marketservice/src/main/java/com/woniu/dao/CommunityActivityDao.java new file mode 100644 index 0000000000000000000000000000000000000000..1c8f018ab305702cb3cb660635064c9d22cbfe8a --- /dev/null +++ b/marketservice/src/main/java/com/woniu/dao/CommunityActivityDao.java @@ -0,0 +1,69 @@ +package com.woniu.dao; + +import com.woniu.entity.CommunityActivity; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * (CommunityActivity)表数据库访问层 + * + * @author makejava + * @since 2020-03-29 21:49:13 + */ +public interface CommunityActivityDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + CommunityActivity queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param communityActivity 实例对象 + * @return 对象列表 + */ + List queryAll(CommunityActivity communityActivity); + + /** + * 新增数据 + * + * @param communityActivity 实例对象 + * @return 影响行数 + */ + int insert(CommunityActivity communityActivity); + + /** + * 修改数据 + * + * @param communityActivity 实例对象 + * @return 影响行数 + */ + int update(CommunityActivity communityActivity); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + @Select("select * from community_activity where ca_status <> 2 order by ca_peopel_count desc limit 3") + List selectActivity(); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/CommunityActivityUserDao.java b/marketservice/src/main/java/com/woniu/dao/CommunityActivityUserDao.java new file mode 100644 index 0000000000000000000000000000000000000000..c2a3da340e44bd0591b1d809314b60d42429c21e --- /dev/null +++ b/marketservice/src/main/java/com/woniu/dao/CommunityActivityUserDao.java @@ -0,0 +1,69 @@ +package com.woniu.dao; + +import com.woniu.entity.CommunityActivityUser; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * (CommunityActivityUser)表数据库访问层 + * + * @author makejava + * @since 2020-03-30 02:11:07 + */ +public interface CommunityActivityUserDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + CommunityActivityUser queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param communityActivityUser 实例对象 + * @return 对象列表 + */ + List queryAll(CommunityActivityUser communityActivityUser); + + /** + * 新增数据 + * + * @param communityActivityUser 实例对象 + * @return 影响行数 + */ + int insert(CommunityActivityUser communityActivityUser); + + /** + * 修改数据 + * + * @param communityActivityUser 实例对象 + * @return 影响行数 + */ + int update(CommunityActivityUser communityActivityUser); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + @Select("select ca_user_id from community_activity where id = #{value}") + Integer findUserNameByActivity(Integer id); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/CommunityOrderDao.java b/marketservice/src/main/java/com/woniu/dao/CommunityOrderDao.java new file mode 100644 index 0000000000000000000000000000000000000000..b1fd37d58d6a6425609cfc3b91ada75aa483f873 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/dao/CommunityOrderDao.java @@ -0,0 +1,65 @@ +package com.woniu.dao; + +import com.woniu.entity.CommunityOrder; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * (CommunityOrder)表数据库访问层 + * + * @author makejava + * @since 2020-03-26 18:24:40 + */ +public interface CommunityOrderDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + CommunityOrder queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param communityOrder 实例对象 + * @return 对象列表 + */ + List queryAll(CommunityOrder communityOrder); + + /** + * 新增数据 + * + * @param communityOrder 实例对象 + * @return 影响行数 + */ + int insert(CommunityOrder communityOrder); + + /** + * 修改数据 + * + * @param communityOrder 实例对象 + * @return 影响行数 + */ + int update(CommunityOrder communityOrder); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/PersonImageDao.java b/marketservice/src/main/java/com/woniu/dao/PersonImageDao.java index 2de909a1c8b0f2ccb56573048635f4f6ebf685e7..4c634ebe1fe160a25fa113e93ffe154d4321eb0a 100644 --- a/marketservice/src/main/java/com/woniu/dao/PersonImageDao.java +++ b/marketservice/src/main/java/com/woniu/dao/PersonImageDao.java @@ -2,6 +2,9 @@ package com.woniu.dao; import com.woniu.entity.PersonImage; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.ArrayList; import java.util.List; /** @@ -62,4 +65,8 @@ public interface PersonImageDao { */ int deleteById(Integer id); + List findImgByListUserId(ArrayList userId); + + @Select("select url from person_image where person_user_id = #{value}") + String findAllByUserId(Integer userId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/PersonUserAddressDao.java b/marketservice/src/main/java/com/woniu/dao/PersonUserAddressDao.java new file mode 100644 index 0000000000000000000000000000000000000000..b067b6d50b56d8107045d9d4ad55714af2943d84 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/dao/PersonUserAddressDao.java @@ -0,0 +1,69 @@ +package com.woniu.dao; + +import com.woniu.entity.PersonUserAddress; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * 用户地址表(PersonUserAddress)表数据库访问层 + * + * @author makejava + * @since 2020-03-26 18:56:24 + */ +public interface PersonUserAddressDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + PersonUserAddress queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param personUserAddress 实例对象 + * @return 对象列表 + */ + List queryAll(PersonUserAddress personUserAddress); + + /** + * 新增数据 + * + * @param personUserAddress 实例对象 + * @return 影响行数 + */ + int insert(PersonUserAddress personUserAddress); + + /** + * 修改数据 + * + * @param personUserAddress 实例对象 + * @return 影响行数 + */ + int update(PersonUserAddress personUserAddress); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + @Select("select * from person_user_address where user_id = #{value}") + List findAllAddressByUserId(Integer userId); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/PersonUserDao.java b/marketservice/src/main/java/com/woniu/dao/PersonUserDao.java index a95fc30c8042af2c9796d9efed6de9ac74429f3a..fc2ea5eced563c0aa48299f98707962a3a8433ca 100644 --- a/marketservice/src/main/java/com/woniu/dao/PersonUserDao.java +++ b/marketservice/src/main/java/com/woniu/dao/PersonUserDao.java @@ -71,9 +71,15 @@ public interface PersonUserDao { * @Author: yanghan * @Date: 2020/3/24 19:08 */ - @Select("select plot_id from person_user where id = #{userId}") + @Select("select plot_id from person_user where id = #{value}") Integer findPlotIdByUserId(Integer userId); @Select("select * from person_user where name = #{value}") PersonUser findIdByName(String name); + + @Select("select nickname from person_user where name = #{value}") + String findNickNameByName(String name); + + @Select("select id,nickname from person_user where plot_id = #{value} order by id desc limit 3") + List findPersonByPoltId(Integer plotId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/UsedProductCommentDao.java b/marketservice/src/main/java/com/woniu/dao/UsedProductCommentDao.java index 6a4ee7ae2f43853fe7a84850e0dfaac80b650638..2036640d66a640c584f5e99748ef1bf8cfa74bd5 100644 --- a/marketservice/src/main/java/com/woniu/dao/UsedProductCommentDao.java +++ b/marketservice/src/main/java/com/woniu/dao/UsedProductCommentDao.java @@ -2,6 +2,8 @@ package com.woniu.dao; import com.woniu.entity.UsedProductComment; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + import java.util.List; /** @@ -62,4 +64,12 @@ public interface UsedProductCommentDao { */ int deleteById(Integer id); + @Select("select * from used_product_comment where order_id = #{value}") + List findAllByOrderId(Integer orderId); + + @Select("select * from used_product_comment where product_id = #{value}") + List findAllByProductId(Integer productId); + + @Select("select distinct user_id from used_product_comment where product_id = #{value}") + Integer findUserIdByProductId(Integer productId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/UsedProductConsigneeDao.java b/marketservice/src/main/java/com/woniu/dao/UsedProductConsigneeDao.java new file mode 100644 index 0000000000000000000000000000000000000000..835965b2792a88a50171336ea87f91061ab1ffbc --- /dev/null +++ b/marketservice/src/main/java/com/woniu/dao/UsedProductConsigneeDao.java @@ -0,0 +1,69 @@ +package com.woniu.dao; + +import com.woniu.entity.UsedProductConsignee; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * 二手市场收货信息表(UsedProductConsignee)表数据库访问层 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +public interface UsedProductConsigneeDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + UsedProductConsignee queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param usedProductConsignee 实例对象 + * @return 对象列表 + */ + List queryAll(UsedProductConsignee usedProductConsignee); + + /** + * 新增数据 + * + * @param usedProductConsignee 实例对象 + * @return 影响行数 + */ + int insert(UsedProductConsignee usedProductConsignee); + + /** + * 修改数据 + * + * @param usedProductConsignee 实例对象 + * @return 影响行数 + */ + int update(UsedProductConsignee usedProductConsignee); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + @Select("select * from used_product_consignee where user_id = #{value}") + List findAllByUserId(Integer id); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/UsedProductDao.java b/marketservice/src/main/java/com/woniu/dao/UsedProductDao.java index 5535158b33071f7bf429d161762941e72e6e3f50..dcce5178fdfdf59b451f46508e853fa33d948ac9 100644 --- a/marketservice/src/main/java/com/woniu/dao/UsedProductDao.java +++ b/marketservice/src/main/java/com/woniu/dao/UsedProductDao.java @@ -3,7 +3,6 @@ package com.woniu.dao; import com.woniu.entity.UsedProduct; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; - import java.util.List; /** @@ -64,6 +63,24 @@ public interface UsedProductDao { */ int deleteById(Integer id); - @Select("select * from used_product where product_type_id = #{value}") + List findAllByProductIdList(List productIdList); + + @Select("select * from used_product where product_type_id = #{value} and status = 0 order by id desc") List findAllByTypeId(Integer typeId); + + @Select("select * from used_product where user_id = #{value} order by id desc") + List findAllProductByUserId(Integer userId); + + @Select("select * from used_product where user_id = #{value} and status = 0 order by id desc") + List findOnOfferProductByUserId(Integer id); + + @Select("select * from used_product where user_id = #{value} and status = 2 order by id desc") + List findSoldOutProductByUserId(Integer id); + + @Select("select * from used_product where user_id = #{value} and status = 1 order by id desc") + List findTradeProductByUserId(Integer id); + + + @Select("select user_id from used_product where id = #{value}") + Integer findUserIdByProductId(Integer productId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/UsedProductImgsDao.java b/marketservice/src/main/java/com/woniu/dao/UsedProductImgsDao.java index de752582f448a47f2a1516c7c1486eed9bf57676..b18f472a38598c4f82075c0b215a18f53b670c7d 100644 --- a/marketservice/src/main/java/com/woniu/dao/UsedProductImgsDao.java +++ b/marketservice/src/main/java/com/woniu/dao/UsedProductImgsDao.java @@ -1,7 +1,10 @@ package com.woniu.dao; import com.woniu.entity.UsedProductImgs; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + import java.util.List; /** @@ -62,4 +65,9 @@ public interface UsedProductImgsDao { */ int deleteById(Integer id); + @Select("select img_url from used_product_imgs where product_id = #{productId} order by id desc limit 3") + List findImgsByProductId(Integer productId); + + @Delete("delete from used_product_imgs where product_id = #{value}") + void deleteImgsByProductId(Integer productId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/dao/UsedProductOrderDao.java b/marketservice/src/main/java/com/woniu/dao/UsedProductOrderDao.java new file mode 100644 index 0000000000000000000000000000000000000000..7e6a184d85644f17ccdbb067644c2fb126fea773 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/dao/UsedProductOrderDao.java @@ -0,0 +1,80 @@ +package com.woniu.dao; + +import com.woniu.entity.UsedProductOrder; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.ArrayList; +import java.util.List; + +/** + * 二手市场订单表(UsedProductOrder)表数据库访问层 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +public interface UsedProductOrderDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + UsedProductOrder queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param usedProductOrder 实例对象 + * @return 对象列表 + */ + List queryAll(UsedProductOrder usedProductOrder); + + /** + * 新增数据 + * + * @param usedProductOrder 实例对象 + * @return 影响行数 + */ + int insert(UsedProductOrder usedProductOrder); + + /** + * 修改数据 + * + * @param usedProductOrder 实例对象 + * @return 影响行数 + */ + int update(UsedProductOrder usedProductOrder); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + + @Select("select * from used_product_order where user_id = #{id} and product_id = #{productId} and product_order_type = #{i}") + UsedProductOrder findOrderByProductId(@Param("id") Integer id, @Param("productId") Integer productId,@Param("i") int i); + + @Select("select product_id from used_product_order where user_id = #{id} and order_status =#{orderStatus} and product_order_type = #{orderType}") + ArrayList findProductIdByPayStatus(@Param(("id")) Integer id, @Param("orderStatus") Integer orderStatus, @Param("orderType") Integer orderType); + + @Delete("delete from used_product_order where user_id = #{id} and product_id = #{productId} and product_order_type = #{orderType}") + void deleteOrderByProductId(@Param("id") Integer id,@Param("productId") Integer productId,@Param("orderType") Integer orderType); + + @Select("select * from used_product_order where user_id = #{value}") + List findOrderByUserId(Integer id); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/entity/Announcement.java b/marketservice/src/main/java/com/woniu/entity/Announcement.java new file mode 100644 index 0000000000000000000000000000000000000000..d2e710a053c1a9ebce097d5390ce6c71e4bf358b --- /dev/null +++ b/marketservice/src/main/java/com/woniu/entity/Announcement.java @@ -0,0 +1,89 @@ +package com.woniu.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.Date; +import java.io.Serializable; + +/** + * 小区物业公告信息(Announcement)实体类 + * + * @author makejava + * @since 2020-03-29 21:50:50 + */ +public class Announcement implements Serializable { + private static final long serialVersionUID = -72790592824447782L; + + private Integer id; + + private String context; + + private Integer areaId; + + private Date createTime; + + private String title; + + private Integer status; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getContext() { + return context; + } + + public void setContext(String context) { + this.context = context; + } + + public Integer getAreaId() { + return areaId; + } + + public void setAreaId(Integer areaId) { + this.areaId = areaId; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + @Override + public String toString() { + return "Announcement{" + + "id=" + id + + ", context='" + context + '\'' + + ", areaId=" + areaId + + ", createTime=" + createTime + + ", title='" + title + '\'' + + ", status=" + status + + '}'; + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/entity/Areainfo.java b/marketservice/src/main/java/com/woniu/entity/Areainfo.java index 4955542c5aed4f7261f29b55c5b2e12f8ed32444..07cf8f32a77d9db1be1e614832578ced07217d4f 100644 --- a/marketservice/src/main/java/com/woniu/entity/Areainfo.java +++ b/marketservice/src/main/java/com/woniu/entity/Areainfo.java @@ -10,7 +10,6 @@ import java.io.Serializable; * @author makejava * @since 2020-03-23 10:45:05 */ -@Data public class Areainfo implements Serializable { private static final long serialVersionUID = 825592721303424513L; @@ -22,7 +21,6 @@ public class Areainfo implements Serializable { private String detail1; - public Integer getId() { return id; } diff --git a/marketservice/src/main/java/com/woniu/entity/CommunityActivity.java b/marketservice/src/main/java/com/woniu/entity/CommunityActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..cb71f88530bb52f10346cba80f217b35276bd1b8 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/entity/CommunityActivity.java @@ -0,0 +1,172 @@ +package com.woniu.entity; + +import java.util.Date; +import java.io.Serializable; + +/** + * (CommunityActivity)实体类 + * + * @author makejava + * @since 2020-03-29 21:49:13 + */ +public class CommunityActivity implements Serializable { + private static final long serialVersionUID = 690890098954413646L; + /** + * 动态id + */ + private Integer id; + /** + * 发布者id + */ + private Integer caUserId; + /** + * 活动图片id + */ + private String caPicPath; + /** + * 活动类型 + */ + private Integer caType; + /** + * 活动标题 + */ + private String caTitle; + /** + * 活动内容 + */ + private Object caContent; + /** + * 发起时间 + */ + private Date caStartTime; + /** + * 结束时间 + */ + private Date caEndTime; + /** + * 活动状态 + */ + private Integer caStatus; + /** + * 消费金额 + */ + private Object caMoney; + /** + * 参与人数 + */ + private Integer caPeopelCount; + /** + * 最大参与人数 + */ + private Integer caMaxPeopleCount; + /** + * 创建时间 + */ + private Date caCreateTime; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getCaUserId() { + return caUserId; + } + + public void setCaUserId(Integer caUserId) { + this.caUserId = caUserId; + } + + public String getCaPicPath() { + return caPicPath; + } + + public void setCaPicPath(String caPicPath) { + this.caPicPath = caPicPath; + } + + public Integer getCaType() { + return caType; + } + + public void setCaType(Integer caType) { + this.caType = caType; + } + + public String getCaTitle() { + return caTitle; + } + + public void setCaTitle(String caTitle) { + this.caTitle = caTitle; + } + + public Object getCaContent() { + return caContent; + } + + public void setCaContent(Object caContent) { + this.caContent = caContent; + } + + public Date getCaStartTime() { + return caStartTime; + } + + public void setCaStartTime(Date caStartTime) { + this.caStartTime = caStartTime; + } + + public Date getCaEndTime() { + return caEndTime; + } + + public void setCaEndTime(Date caEndTime) { + this.caEndTime = caEndTime; + } + + public Integer getCaStatus() { + return caStatus; + } + + public void setCaStatus(Integer caStatus) { + this.caStatus = caStatus; + } + + public Object getCaMoney() { + return caMoney; + } + + public void setCaMoney(Object caMoney) { + this.caMoney = caMoney; + } + + public Integer getCaPeopelCount() { + return caPeopelCount; + } + + public void setCaPeopelCount(Integer caPeopelCount) { + this.caPeopelCount = caPeopelCount; + } + + public Integer getCaMaxPeopleCount() { + return caMaxPeopleCount; + } + + public void setCaMaxPeopleCount(Integer caMaxPeopleCount) { + this.caMaxPeopleCount = caMaxPeopleCount; + } + + public Date getCaCreateTime() { + return caCreateTime; + } + + public void setCaCreateTime(Date caCreateTime) { + this.caCreateTime = caCreateTime; + } + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/entity/CommunityActivityUser.java b/marketservice/src/main/java/com/woniu/entity/CommunityActivityUser.java new file mode 100644 index 0000000000000000000000000000000000000000..f69bbf76dbe167b681ef23ad71adcf9235d22d79 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/entity/CommunityActivityUser.java @@ -0,0 +1,49 @@ +package com.woniu.entity; + +import java.io.Serializable; + +/** + * (CommunityActivityUser)实体类 + * + * @author makejava + * @since 2020-03-30 02:11:07 + */ +public class CommunityActivityUser implements Serializable { + private static final long serialVersionUID = 255491499162122483L; + + private Integer id; + /** + * 活动id + */ + private Integer cauActivityId; + /** + * 用户id + */ + private Integer cauUserId; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getCauActivityId() { + return cauActivityId; + } + + public void setCauActivityId(Integer cauActivityId) { + this.cauActivityId = cauActivityId; + } + + public Integer getCauUserId() { + return cauUserId; + } + + public void setCauUserId(Integer cauUserId) { + this.cauUserId = cauUserId; + } + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/entity/CommunityOrder.java b/marketservice/src/main/java/com/woniu/entity/CommunityOrder.java new file mode 100644 index 0000000000000000000000000000000000000000..9d147ab1a5b00a26b7bdb67d5e35e374c73c2da5 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/entity/CommunityOrder.java @@ -0,0 +1,302 @@ +package com.woniu.entity; + +import java.util.Date; +import java.io.Serializable; + +/** + * (CommunityOrder)实体类 + * + * @author makejava + * @since 2020-03-26 18:24:40 + */ +public class CommunityOrder implements Serializable { + private static final long serialVersionUID = 209450385467865781L; + + private Integer id; + /** + * 用户id + */ + private Integer coUserId; + /** + * 订单编号 + */ + private String coNum; + /** + * 订单总金额 + */ + private Object coMoney; + /** + * 实际支付金额 + */ + private Object coActualMoney; + /** + * 运费 + */ + private Object coFreight; + /** + * 优惠金额 + */ + private Object coDiscount; + /** + * 订单状态(0:未支付,1:已超时,2:已完成) + */ + private Integer coStatus; + /** + * 物流公司 + */ + private String coLogisticsCompany; + /** + * 物流单号 + */ + private String coLogisticsNum; + /** + * 发票类型(0:不开发票,1:电子发票,2:纸质发票) + */ + private Integer coInvoiceType; + /** + * 收票人电话 + */ + private String coInvoicePhonel; + /** + * 收票人邮箱 + */ + private String coInvoiceEmail; + /** + * 收票人姓名 + */ + private String coInvoiceName; + /** + * 收货人姓名 + */ + private String coReceiveName; + /** + * 收货人电话 + */ + private String coReceivePhone; + /** + * 收货人地址 + */ + private String coReceiveAdr; + /** + * 订单备注信息 + */ + private Object coNote; + /** + * 确认收货时间 + */ + private Date coConfirmTime; + /** + * 最后评价时间 + */ + private Date coCommentTime; + /** + * 支付时间 + */ + private Date coPayTime; + /** + * 发货时间 + */ + private Date coConsignmentTime; + /** + * 订单类型(0:商品类型,1:其他类型) + */ + private Integer coType; + /** + * 订单创建时间 + */ + private Date coCreateTime; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getCoUserId() { + return coUserId; + } + + public void setCoUserId(Integer coUserId) { + this.coUserId = coUserId; + } + + public String getCoNum() { + return coNum; + } + + public void setCoNum(String coNum) { + this.coNum = coNum; + } + + public Object getCoMoney() { + return coMoney; + } + + public void setCoMoney(Object coMoney) { + this.coMoney = coMoney; + } + + public Object getCoActualMoney() { + return coActualMoney; + } + + public void setCoActualMoney(Object coActualMoney) { + this.coActualMoney = coActualMoney; + } + + public Object getCoFreight() { + return coFreight; + } + + public void setCoFreight(Object coFreight) { + this.coFreight = coFreight; + } + + public Object getCoDiscount() { + return coDiscount; + } + + public void setCoDiscount(Object coDiscount) { + this.coDiscount = coDiscount; + } + + public Integer getCoStatus() { + return coStatus; + } + + public void setCoStatus(Integer coStatus) { + this.coStatus = coStatus; + } + + public String getCoLogisticsCompany() { + return coLogisticsCompany; + } + + public void setCoLogisticsCompany(String coLogisticsCompany) { + this.coLogisticsCompany = coLogisticsCompany; + } + + public String getCoLogisticsNum() { + return coLogisticsNum; + } + + public void setCoLogisticsNum(String coLogisticsNum) { + this.coLogisticsNum = coLogisticsNum; + } + + public Integer getCoInvoiceType() { + return coInvoiceType; + } + + public void setCoInvoiceType(Integer coInvoiceType) { + this.coInvoiceType = coInvoiceType; + } + + public String getCoInvoicePhonel() { + return coInvoicePhonel; + } + + public void setCoInvoicePhonel(String coInvoicePhonel) { + this.coInvoicePhonel = coInvoicePhonel; + } + + public String getCoInvoiceEmail() { + return coInvoiceEmail; + } + + public void setCoInvoiceEmail(String coInvoiceEmail) { + this.coInvoiceEmail = coInvoiceEmail; + } + + public String getCoInvoiceName() { + return coInvoiceName; + } + + public void setCoInvoiceName(String coInvoiceName) { + this.coInvoiceName = coInvoiceName; + } + + public String getCoReceiveName() { + return coReceiveName; + } + + public void setCoReceiveName(String coReceiveName) { + this.coReceiveName = coReceiveName; + } + + public String getCoReceivePhone() { + return coReceivePhone; + } + + public void setCoReceivePhone(String coReceivePhone) { + this.coReceivePhone = coReceivePhone; + } + + public String getCoReceiveAdr() { + return coReceiveAdr; + } + + public void setCoReceiveAdr(String coReceiveAdr) { + this.coReceiveAdr = coReceiveAdr; + } + + public Object getCoNote() { + return coNote; + } + + public void setCoNote(Object coNote) { + this.coNote = coNote; + } + + public Date getCoConfirmTime() { + return coConfirmTime; + } + + public void setCoConfirmTime(Date coConfirmTime) { + this.coConfirmTime = coConfirmTime; + } + + public Date getCoCommentTime() { + return coCommentTime; + } + + public void setCoCommentTime(Date coCommentTime) { + this.coCommentTime = coCommentTime; + } + + public Date getCoPayTime() { + return coPayTime; + } + + public void setCoPayTime(Date coPayTime) { + this.coPayTime = coPayTime; + } + + public Date getCoConsignmentTime() { + return coConsignmentTime; + } + + public void setCoConsignmentTime(Date coConsignmentTime) { + this.coConsignmentTime = coConsignmentTime; + } + + public Integer getCoType() { + return coType; + } + + public void setCoType(Integer coType) { + this.coType = coType; + } + + public Date getCoCreateTime() { + return coCreateTime; + } + + public void setCoCreateTime(Date coCreateTime) { + this.coCreateTime = coCreateTime; + } + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/entity/PersonUserAddress.java b/marketservice/src/main/java/com/woniu/entity/PersonUserAddress.java new file mode 100644 index 0000000000000000000000000000000000000000..4fc78e59666201ee1c3ee14655075961242e22d8 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/entity/PersonUserAddress.java @@ -0,0 +1,75 @@ +package com.woniu.entity; + +import java.io.Serializable; + +/** + * 用户地址表(PersonUserAddress)实体类 + * + * @author makejava + * @since 2020-03-26 18:56:24 + */ +public class PersonUserAddress implements Serializable { + private static final long serialVersionUID = -12261200021975331L; + /** + * 地址Id + */ + private Integer id; + /** + * 用户Id + */ + private Integer userId; + /** + * 小区Id + */ + private Integer areaId; + /** + * 详细地址 + */ + private String detailedAddress; + /** + * 邮编 + */ + private Integer postcode; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Integer getAreaId() { + return areaId; + } + + public void setAreaId(Integer areaId) { + this.areaId = areaId; + } + + public String getDetailedAddress() { + return detailedAddress; + } + + public void setDetailedAddress(String detailedAddress) { + this.detailedAddress = detailedAddress; + } + + public Integer getPostcode() { + return postcode; + } + + public void setPostcode(Integer postcode) { + this.postcode = postcode; + } + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/entity/UsedProductComment.java b/marketservice/src/main/java/com/woniu/entity/UsedProductComment.java index 43168fb474736a7a67ffe4d2c44c791c2e2fae6e..ad0601253065eee47d053e0c289423e3e65f2def 100644 --- a/marketservice/src/main/java/com/woniu/entity/UsedProductComment.java +++ b/marketservice/src/main/java/com/woniu/entity/UsedProductComment.java @@ -40,6 +40,18 @@ public class UsedProductComment implements Serializable { */ private Integer number; + /** + * 订单Id + */ + private Integer orderId; + + public Integer getOrderId() { + return orderId; + } + + public void setOrderId(Integer orderId) { + this.orderId = orderId; + } public Integer getId() { return id; @@ -97,4 +109,17 @@ public class UsedProductComment implements Serializable { this.number = number; } + @Override + public String toString() { + return "UsedProductComment{" + + "id=" + id + + ", productId=" + productId + + ", userId=" + userId + + ", comment='" + comment + '\'' + + ", commentTime=" + commentTime + + ", start=" + start + + ", number=" + number + + ", orderId=" + orderId + + '}'; + } } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/entity/UsedProductConsignee.java b/marketservice/src/main/java/com/woniu/entity/UsedProductConsignee.java new file mode 100644 index 0000000000000000000000000000000000000000..954af69a74bc88b760167e32f728d024f39d1cb2 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/entity/UsedProductConsignee.java @@ -0,0 +1,87 @@ +package com.woniu.entity; + +import java.io.Serializable; + +/** + * 二手市场收货信息表(UsedProductConsignee)实体类 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +public class UsedProductConsignee implements Serializable { + private static final long serialVersionUID = -83926923373292910L; + /** + * 收获信息Id + */ + private Integer id; + /** + * 用户Id + */ + private Integer userId; + /** + * 收货人 + */ + private String consigneeUserName; + /** + * 收货地址 + */ + private String consigneeAddress; + /** + * 邮编 + */ + private String postcode; + /** + * 收货手机 + */ + private String consigneePhone; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getConsigneeUserName() { + return consigneeUserName; + } + + public void setConsigneeUserName(String consigneeUserName) { + this.consigneeUserName = consigneeUserName; + } + + public String getConsigneeAddress() { + return consigneeAddress; + } + + public void setConsigneeAddress(String consigneeAddress) { + this.consigneeAddress = consigneeAddress; + } + + public String getPostcode() { + return postcode; + } + + public void setPostcode(String postcode) { + this.postcode = postcode; + } + + public String getConsigneePhone() { + return consigneePhone; + } + + public void setConsigneePhone(String consigneePhone) { + this.consigneePhone = consigneePhone; + } + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/entity/UsedProductOrder.java b/marketservice/src/main/java/com/woniu/entity/UsedProductOrder.java new file mode 100644 index 0000000000000000000000000000000000000000..e50140828adaef8a15f5dd3a42e984b0579162ea --- /dev/null +++ b/marketservice/src/main/java/com/woniu/entity/UsedProductOrder.java @@ -0,0 +1,137 @@ +package com.woniu.entity; + +import java.io.Serializable; + +/** + * 二手市场订单表(UsedProductOrder)实体类 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +public class UsedProductOrder implements Serializable { + private static final long serialVersionUID = 308594611617480411L; + /** + * 订单Id + */ + private Integer id; + /** + * 商品Id + */ + private Integer productId; + /** + * 订单类型 + */ + private Integer productOrderType; + /** + * 用户id + */ + private Integer userId; + /** + * 订单号 + */ + private String orderNumber; + /** + * 订单名称 + */ + private String orderName; + /** + * 订单金额 + */ + private Object orderMoney; + /** + * 订单状态 + */ + private Integer orderStatus; + /** + * 收货信息Id + */ + private Integer consigneeid; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getProductId() { + return productId; + } + + public void setProductId(Integer productId) { + this.productId = productId; + } + + public Integer getProductOrderType() { + return productOrderType; + } + + public void setProductOrderType(Integer productOrderType) { + this.productOrderType = productOrderType; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber; + } + + public String getOrderName() { + return orderName; + } + + public void setOrderName(String orderName) { + this.orderName = orderName; + } + + public Object getOrderMoney() { + return orderMoney; + } + + public void setOrderMoney(Object orderMoney) { + this.orderMoney = orderMoney; + } + + public Integer getOrderStatus() { + return orderStatus; + } + + public void setOrderStatus(Integer orderStatus) { + this.orderStatus = orderStatus; + } + + public Integer getConsigneeid() { + return consigneeid; + } + + public void setConsigneeid(Integer consigneeid) { + this.consigneeid = consigneeid; + } + + @Override + public String toString() { + return "UsedProductOrder{" + + "id=" + id + + ", productId=" + productId + + ", productOrderType=" + productOrderType + + ", userId=" + userId + + ", orderNumber='" + orderNumber + '\'' + + ", orderName='" + orderName + '\'' + + ", orderMoney=" + orderMoney + + ", orderStatus=" + orderStatus + + ", consigneeid=" + consigneeid + + '}'; + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/AnnouncementService.java b/marketservice/src/main/java/com/woniu/service/AnnouncementService.java new file mode 100644 index 0000000000000000000000000000000000000000..d7421c9effb812773a71ed647f25de374103f2c2 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/AnnouncementService.java @@ -0,0 +1,56 @@ +package com.woniu.service; + +import com.woniu.entity.Announcement; +import java.util.List; + +/** + * 小区物业公告信息(Announcement)表服务接口 + * + * @author makejava + * @since 2020-03-29 21:50:50 + */ +public interface AnnouncementService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + Announcement queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param announcement 实例对象 + * @return 实例对象 + */ + Announcement insert(Announcement announcement); + + /** + * 修改数据 + * + * @param announcement 实例对象 + * @return 实例对象 + */ + Announcement update(Announcement announcement); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + List findAllByThree(); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/AreainfoService.java b/marketservice/src/main/java/com/woniu/service/AreainfoService.java index c15013ba2d5e2a132025966951118f4efada3d78..5798ee1902778d255c2ce5413a766a407f625a01 100644 --- a/marketservice/src/main/java/com/woniu/service/AreainfoService.java +++ b/marketservice/src/main/java/com/woniu/service/AreainfoService.java @@ -1,6 +1,8 @@ package com.woniu.service; import com.woniu.entity.Areainfo; + +import java.util.ArrayList; import java.util.List; /** @@ -52,4 +54,5 @@ public interface AreainfoService { */ boolean deleteById(Integer id); + Areainfo findAllByPlotId(Integer plotId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/CommunityActivityService.java b/marketservice/src/main/java/com/woniu/service/CommunityActivityService.java new file mode 100644 index 0000000000000000000000000000000000000000..4655c0ddf27105840176c6f524e84df14ee8ceb3 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/CommunityActivityService.java @@ -0,0 +1,56 @@ +package com.woniu.service; + +import com.woniu.entity.CommunityActivity; +import java.util.List; + +/** + * (CommunityActivity)表服务接口 + * + * @author makejava + * @since 2020-03-29 21:49:13 + */ +public interface CommunityActivityService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + CommunityActivity queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param communityActivity 实例对象 + * @return 实例对象 + */ + CommunityActivity insert(CommunityActivity communityActivity); + + /** + * 修改数据 + * + * @param communityActivity 实例对象 + * @return 实例对象 + */ + CommunityActivity update(CommunityActivity communityActivity); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + List selectActivity(); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/CommunityActivityUserService.java b/marketservice/src/main/java/com/woniu/service/CommunityActivityUserService.java new file mode 100644 index 0000000000000000000000000000000000000000..819f877949e487fd5ad8ece40ceff95e227d8db3 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/CommunityActivityUserService.java @@ -0,0 +1,56 @@ +package com.woniu.service; + +import com.woniu.entity.CommunityActivityUser; +import java.util.List; + +/** + * (CommunityActivityUser)表服务接口 + * + * @author makejava + * @since 2020-03-30 02:11:07 + */ +public interface CommunityActivityUserService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + CommunityActivityUser queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param communityActivityUser 实例对象 + * @return 实例对象 + */ + CommunityActivityUser insert(CommunityActivityUser communityActivityUser); + + /** + * 修改数据 + * + * @param communityActivityUser 实例对象 + * @return 实例对象 + */ + CommunityActivityUser update(CommunityActivityUser communityActivityUser); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + Integer findUserNameByActivity(Integer id); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/CommunityOrderService.java b/marketservice/src/main/java/com/woniu/service/CommunityOrderService.java new file mode 100644 index 0000000000000000000000000000000000000000..0b0a156272a878c66612ad02d08b3ef69c7d3e40 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/CommunityOrderService.java @@ -0,0 +1,55 @@ +package com.woniu.service; + +import com.woniu.entity.CommunityOrder; +import java.util.List; + +/** + * (CommunityOrder)表服务接口 + * + * @author makejava + * @since 2020-03-26 18:24:40 + */ +public interface CommunityOrderService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + CommunityOrder queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param communityOrder 实例对象 + * @return 实例对象 + */ + CommunityOrder insert(CommunityOrder communityOrder); + + /** + * 修改数据 + * + * @param communityOrder 实例对象 + * @return 实例对象 + */ + CommunityOrder update(CommunityOrder communityOrder); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/PersonImageService.java b/marketservice/src/main/java/com/woniu/service/PersonImageService.java index 8b5fb107131bb9d94cfb525a18ec020f0c85799e..395fb84036c74e2a5ac4bbd682b69a48f760c7f3 100644 --- a/marketservice/src/main/java/com/woniu/service/PersonImageService.java +++ b/marketservice/src/main/java/com/woniu/service/PersonImageService.java @@ -1,6 +1,8 @@ package com.woniu.service; import com.woniu.entity.PersonImage; + +import java.util.ArrayList; import java.util.List; /** @@ -52,4 +54,7 @@ public interface PersonImageService { */ boolean deleteById(Integer id); + List findImgByListUserId(ArrayList userId); + + String findAllByUserId(Integer userId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/PersonUserAddressService.java b/marketservice/src/main/java/com/woniu/service/PersonUserAddressService.java new file mode 100644 index 0000000000000000000000000000000000000000..d01e39555cc0aabd45690397c527e7e69ef0af55 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/PersonUserAddressService.java @@ -0,0 +1,56 @@ +package com.woniu.service; + +import com.woniu.entity.PersonUserAddress; +import java.util.List; + +/** + * 用户地址表(PersonUserAddress)表服务接口 + * + * @author makejava + * @since 2020-03-26 18:56:24 + */ +public interface PersonUserAddressService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + PersonUserAddress queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param personUserAddress 实例对象 + * @return 实例对象 + */ + PersonUserAddress insert(PersonUserAddress personUserAddress); + + /** + * 修改数据 + * + * @param personUserAddress 实例对象 + * @return 实例对象 + */ + PersonUserAddress update(PersonUserAddress personUserAddress); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + List findAllAddressByUserId(Integer userId); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/PersonUserService.java b/marketservice/src/main/java/com/woniu/service/PersonUserService.java index 16c09e3bca345b5650cf40a9f05416d094842f99..ba01aa063d0a2aa276f74ce07f843176701d40e9 100644 --- a/marketservice/src/main/java/com/woniu/service/PersonUserService.java +++ b/marketservice/src/main/java/com/woniu/service/PersonUserService.java @@ -55,4 +55,8 @@ public interface PersonUserService { Integer findPlotIdByUserId(Integer userId); PersonUser findIdByName(String name); + + String findNickNameByName(String name); + + List findPersonByPoltId(Integer plotId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/UsedProductCommentService.java b/marketservice/src/main/java/com/woniu/service/UsedProductCommentService.java index 1a8cafff3e7c0884445aa892404cca84be866f1a..cd3a12e473d9a1bb0c053f1bc062df9d9a236030 100644 --- a/marketservice/src/main/java/com/woniu/service/UsedProductCommentService.java +++ b/marketservice/src/main/java/com/woniu/service/UsedProductCommentService.java @@ -52,4 +52,9 @@ public interface UsedProductCommentService { */ boolean deleteById(Integer id); + List findAllByOrderId(Integer orderId); + + List findAllByProductId(Integer productId); + + Integer findUserIdByProductId(Integer productId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/UsedProductConsigneeService.java b/marketservice/src/main/java/com/woniu/service/UsedProductConsigneeService.java new file mode 100644 index 0000000000000000000000000000000000000000..fd5a70c6c928d182c406875addc201097769a0e7 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/UsedProductConsigneeService.java @@ -0,0 +1,56 @@ +package com.woniu.service; + +import com.woniu.entity.UsedProductConsignee; +import java.util.List; + +/** + * 二手市场收货信息表(UsedProductConsignee)表服务接口 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +public interface UsedProductConsigneeService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + UsedProductConsignee queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param usedProductConsignee 实例对象 + * @return 实例对象 + */ + UsedProductConsignee insert(UsedProductConsignee usedProductConsignee); + + /** + * 修改数据 + * + * @param usedProductConsignee 实例对象 + * @return 实例对象 + */ + UsedProductConsignee update(UsedProductConsignee usedProductConsignee); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + List findAllByUserId(Integer id); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/UsedProductImgsService.java b/marketservice/src/main/java/com/woniu/service/UsedProductImgsService.java index 3a91a0160b29a3c47e48e718af436bedc485b9fa..f266881657817ac71a5a8f0108cfb8cfb05cbd74 100644 --- a/marketservice/src/main/java/com/woniu/service/UsedProductImgsService.java +++ b/marketservice/src/main/java/com/woniu/service/UsedProductImgsService.java @@ -52,4 +52,7 @@ public interface UsedProductImgsService { */ boolean deleteById(Integer id); + List findImgsByProductId(Integer productId); + + void deleteImgsByProductId(Integer productId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/UsedProductOrderService.java b/marketservice/src/main/java/com/woniu/service/UsedProductOrderService.java new file mode 100644 index 0000000000000000000000000000000000000000..4ae85bef23f76f0268c407336086b10fd0d43a79 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/UsedProductOrderService.java @@ -0,0 +1,64 @@ +package com.woniu.service; + +import com.woniu.entity.UsedProductOrder; + +import java.util.ArrayList; +import java.util.List; + +/** + * 二手市场订单表(UsedProductOrder)表服务接口 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +public interface UsedProductOrderService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + UsedProductOrder queryById(Integer id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param usedProductOrder 实例对象 + * @return 实例对象 + */ + UsedProductOrder insert(UsedProductOrder usedProductOrder); + + /** + * 修改数据 + * + * @param usedProductOrder 实例对象 + * @return 实例对象 + */ + UsedProductOrder update(UsedProductOrder usedProductOrder); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + UsedProductOrder findOrderByProductId(Integer id, Integer productId, int i); + + ArrayList findProductIdByPayStatus(Integer id, Integer orderStatus, Integer orderType); + + void deleteOrderByProductId(Integer id, Integer productId, Integer orderType); + + List findOrderByUserId(Integer id); +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/UsedProductService.java b/marketservice/src/main/java/com/woniu/service/UsedProductService.java index 9ca605b62a9ecc880e2133c91679c234882ff8b8..dcc36452b20edee8647cdbe736269ea1874a6771 100644 --- a/marketservice/src/main/java/com/woniu/service/UsedProductService.java +++ b/marketservice/src/main/java/com/woniu/service/UsedProductService.java @@ -1,6 +1,8 @@ package com.woniu.service; import com.woniu.entity.UsedProduct; + +import java.util.ArrayList; import java.util.List; /** @@ -53,4 +55,16 @@ public interface UsedProductService { boolean deleteById(Integer id); List findAllByTypeId(Integer typeId); + + List findAllProductByUserId(Integer id); + + List findOnOfferProductByUserId(Integer id); + + List findSoldOutProductByUserId(Integer id); + + List findTradeProductByUserId(Integer id); + + List findAllByProductIdList(ArrayList productIdList); + + Integer findUserIdByProductId(Integer productId); } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/AnnouncementServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/AnnouncementServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..bb114c0f74c7b57c24a1e981457f8d51fc0f6802 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/impl/AnnouncementServiceImpl.java @@ -0,0 +1,84 @@ +package com.woniu.service.impl; + +import com.woniu.entity.Announcement; +import com.woniu.dao.AnnouncementDao; +import com.woniu.service.AnnouncementService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 小区物业公告信息(Announcement)表服务实现类 + * + * @author makejava + * @since 2020-03-29 21:50:50 + */ +@Service("announcementService") +public class AnnouncementServiceImpl implements AnnouncementService { + @Resource + private AnnouncementDao announcementDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public Announcement queryById(Integer id) { + return this.announcementDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.announcementDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param announcement 实例对象 + * @return 实例对象 + */ + @Override + public Announcement insert(Announcement announcement) { + this.announcementDao.insert(announcement); + return announcement; + } + + /** + * 修改数据 + * + * @param announcement 实例对象 + * @return 实例对象 + */ + @Override + public Announcement update(Announcement announcement) { + this.announcementDao.update(announcement); + return this.queryById(announcement.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.announcementDao.deleteById(id) > 0; + } + + @Override + public List findAllByThree() { + return announcementDao.findAllByThree(); + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/AreainfoServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/AreainfoServiceImpl.java index d644a363da026a62671a7948b695eed7d52d65da..d52eb33cb9436ba3b485d3e3f387e798aade8a06 100644 --- a/marketservice/src/main/java/com/woniu/service/impl/AreainfoServiceImpl.java +++ b/marketservice/src/main/java/com/woniu/service/impl/AreainfoServiceImpl.java @@ -6,6 +6,7 @@ import com.woniu.service.AreainfoService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -16,6 +17,7 @@ import java.util.List; */ @Service("areainfoService") public class AreainfoServiceImpl implements AreainfoService { + @Resource private AreainfoDao areainfoDao; @@ -76,4 +78,10 @@ public class AreainfoServiceImpl implements AreainfoService { public boolean deleteById(Integer id) { return this.areainfoDao.deleteById(id) > 0; } + + @Override + public Areainfo findAllByPlotId(Integer plotId) { + return areainfoDao.findAllByPlotId(plotId); + } + } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/CommunityActivityServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/CommunityActivityServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4abd71b8024bcd5dbd161fbc77e7ae30f85b5a0c --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/impl/CommunityActivityServiceImpl.java @@ -0,0 +1,84 @@ +package com.woniu.service.impl; + +import com.woniu.entity.CommunityActivity; +import com.woniu.dao.CommunityActivityDao; +import com.woniu.service.CommunityActivityService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (CommunityActivity)表服务实现类 + * + * @author makejava + * @since 2020-03-29 21:49:13 + */ +@Service("communityActivityService") +public class CommunityActivityServiceImpl implements CommunityActivityService { + @Resource + private CommunityActivityDao communityActivityDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public CommunityActivity queryById(Integer id) { + return this.communityActivityDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.communityActivityDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param communityActivity 实例对象 + * @return 实例对象 + */ + @Override + public CommunityActivity insert(CommunityActivity communityActivity) { + this.communityActivityDao.insert(communityActivity); + return communityActivity; + } + + /** + * 修改数据 + * + * @param communityActivity 实例对象 + * @return 实例对象 + */ + @Override + public CommunityActivity update(CommunityActivity communityActivity) { + this.communityActivityDao.update(communityActivity); + return this.queryById(communityActivity.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.communityActivityDao.deleteById(id) > 0; + } + + @Override + public List selectActivity() { + return communityActivityDao.selectActivity(); + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/CommunityActivityUserServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/CommunityActivityUserServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..5acad8058704de02072ce135985506c9add3f641 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/impl/CommunityActivityUserServiceImpl.java @@ -0,0 +1,84 @@ +package com.woniu.service.impl; + +import com.woniu.entity.CommunityActivityUser; +import com.woniu.dao.CommunityActivityUserDao; +import com.woniu.service.CommunityActivityUserService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (CommunityActivityUser)表服务实现类 + * + * @author makejava + * @since 2020-03-30 02:11:07 + */ +@Service("communityActivityUserService") +public class CommunityActivityUserServiceImpl implements CommunityActivityUserService { + @Resource + private CommunityActivityUserDao communityActivityUserDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public CommunityActivityUser queryById(Integer id) { + return this.communityActivityUserDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.communityActivityUserDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param communityActivityUser 实例对象 + * @return 实例对象 + */ + @Override + public CommunityActivityUser insert(CommunityActivityUser communityActivityUser) { + this.communityActivityUserDao.insert(communityActivityUser); + return communityActivityUser; + } + + /** + * 修改数据 + * + * @param communityActivityUser 实例对象 + * @return 实例对象 + */ + @Override + public CommunityActivityUser update(CommunityActivityUser communityActivityUser) { + this.communityActivityUserDao.update(communityActivityUser); + return this.queryById(communityActivityUser.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.communityActivityUserDao.deleteById(id) > 0; + } + + @Override + public Integer findUserNameByActivity(Integer id) { + return communityActivityUserDao.findUserNameByActivity(id); + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/CommunityOrderServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/CommunityOrderServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..874778ed116a6f3a197908bc6eec1ff9e9b92c86 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/impl/CommunityOrderServiceImpl.java @@ -0,0 +1,79 @@ +package com.woniu.service.impl; + +import com.woniu.entity.CommunityOrder; +import com.woniu.dao.CommunityOrderDao; +import com.woniu.service.CommunityOrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (CommunityOrder)表服务实现类 + * + * @author makejava + * @since 2020-03-26 18:24:40 + */ +@Service("communityOrderService") +public class CommunityOrderServiceImpl implements CommunityOrderService { + @Resource + private CommunityOrderDao communityOrderDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public CommunityOrder queryById(Integer id) { + return this.communityOrderDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.communityOrderDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param communityOrder 实例对象 + * @return 实例对象 + */ + @Override + public CommunityOrder insert(CommunityOrder communityOrder) { + this.communityOrderDao.insert(communityOrder); + return communityOrder; + } + + /** + * 修改数据 + * + * @param communityOrder 实例对象 + * @return 实例对象 + */ + @Override + public CommunityOrder update(CommunityOrder communityOrder) { + this.communityOrderDao.update(communityOrder); + return this.queryById(communityOrder.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.communityOrderDao.deleteById(id) > 0; + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/PersonImageServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/PersonImageServiceImpl.java index cf26414b45ea7db85d3b0cac0df4e9daa06a5fff..37c906952fa58b7627c094bb3f775e7519cba248 100644 --- a/marketservice/src/main/java/com/woniu/service/impl/PersonImageServiceImpl.java +++ b/marketservice/src/main/java/com/woniu/service/impl/PersonImageServiceImpl.java @@ -6,6 +6,7 @@ import com.woniu.service.PersonImageService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -76,4 +77,14 @@ public class PersonImageServiceImpl implements PersonImageService { public boolean deleteById(Integer id) { return this.personImageDao.deleteById(id) > 0; } + + @Override + public List findImgByListUserId(ArrayList userId) { + return personImageDao.findImgByListUserId(userId); + } + + @Override + public String findAllByUserId(Integer userId) { + return personImageDao.findAllByUserId(userId); + } } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/PersonUserAddressServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/PersonUserAddressServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..5ca28c47ad2cabca92e8bb7b88d3fb21c1c84f3e --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/impl/PersonUserAddressServiceImpl.java @@ -0,0 +1,84 @@ +package com.woniu.service.impl; + +import com.woniu.entity.PersonUserAddress; +import com.woniu.dao.PersonUserAddressDao; +import com.woniu.service.PersonUserAddressService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 用户地址表(PersonUserAddress)表服务实现类 + * + * @author makejava + * @since 2020-03-26 18:56:24 + */ +@Service("personUserAddressService") +public class PersonUserAddressServiceImpl implements PersonUserAddressService { + @Resource + private PersonUserAddressDao personUserAddressDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public PersonUserAddress queryById(Integer id) { + return this.personUserAddressDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.personUserAddressDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param personUserAddress 实例对象 + * @return 实例对象 + */ + @Override + public PersonUserAddress insert(PersonUserAddress personUserAddress) { + this.personUserAddressDao.insert(personUserAddress); + return personUserAddress; + } + + /** + * 修改数据 + * + * @param personUserAddress 实例对象 + * @return 实例对象 + */ + @Override + public PersonUserAddress update(PersonUserAddress personUserAddress) { + this.personUserAddressDao.update(personUserAddress); + return this.queryById(personUserAddress.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.personUserAddressDao.deleteById(id) > 0; + } + + @Override + public List findAllAddressByUserId(Integer userId) { + return personUserAddressDao.findAllAddressByUserId(userId); + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/PersonUserServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/PersonUserServiceImpl.java index fbbdca7b28020b1890391cbfef9d5734c19f286f..4a8c4130993d7d73b9954b98912d6311d0b406f0 100644 --- a/marketservice/src/main/java/com/woniu/service/impl/PersonUserServiceImpl.java +++ b/marketservice/src/main/java/com/woniu/service/impl/PersonUserServiceImpl.java @@ -86,4 +86,14 @@ public class PersonUserServiceImpl implements PersonUserService { public PersonUser findIdByName(String name) { return personUserDao.findIdByName(name); } + + @Override + public String findNickNameByName(String name) { + return personUserDao.findNickNameByName(name); + } + + @Override + public List findPersonByPoltId(Integer plotId) { + return personUserDao.findPersonByPoltId(plotId); + } } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/UsedProductCommentServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/UsedProductCommentServiceImpl.java index 72a8163897cdcde8a06a4f5bdf2bac383d7350f2..3b8f3ffa6cd319a298039b6333e5293f8bf67b8c 100644 --- a/marketservice/src/main/java/com/woniu/service/impl/UsedProductCommentServiceImpl.java +++ b/marketservice/src/main/java/com/woniu/service/impl/UsedProductCommentServiceImpl.java @@ -76,4 +76,19 @@ public class UsedProductCommentServiceImpl implements UsedProductCommentService public boolean deleteById(Integer id) { return this.usedProductCommentDao.deleteById(id) > 0; } + + @Override + public List findAllByOrderId(Integer orderId) { + return usedProductCommentDao.findAllByOrderId(orderId); + } + + @Override + public List findAllByProductId(Integer productId) { + return usedProductCommentDao.findAllByProductId(productId); + } + + @Override + public Integer findUserIdByProductId(Integer productId) { + return usedProductCommentDao.findUserIdByProductId(productId); + } } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/UsedProductConsigneeServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/UsedProductConsigneeServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..513edf7ccfe7c7f47316eb2f75e1f540200d0d64 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/impl/UsedProductConsigneeServiceImpl.java @@ -0,0 +1,84 @@ +package com.woniu.service.impl; + +import com.woniu.entity.UsedProductConsignee; +import com.woniu.dao.UsedProductConsigneeDao; +import com.woniu.service.UsedProductConsigneeService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 二手市场收货信息表(UsedProductConsignee)表服务实现类 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +@Service("usedProductConsigneeService") +public class UsedProductConsigneeServiceImpl implements UsedProductConsigneeService { + @Resource + private UsedProductConsigneeDao usedProductConsigneeDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public UsedProductConsignee queryById(Integer id) { + return this.usedProductConsigneeDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.usedProductConsigneeDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param usedProductConsignee 实例对象 + * @return 实例对象 + */ + @Override + public UsedProductConsignee insert(UsedProductConsignee usedProductConsignee) { + this.usedProductConsigneeDao.insert(usedProductConsignee); + return usedProductConsignee; + } + + /** + * 修改数据 + * + * @param usedProductConsignee 实例对象 + * @return 实例对象 + */ + @Override + public UsedProductConsignee update(UsedProductConsignee usedProductConsignee) { + this.usedProductConsigneeDao.update(usedProductConsignee); + return this.queryById(usedProductConsignee.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.usedProductConsigneeDao.deleteById(id) > 0; + } + + @Override + public List findAllByUserId(Integer id) { + return usedProductConsigneeDao.findAllByUserId(id); + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/UsedProductImgsServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/UsedProductImgsServiceImpl.java index fedf453c5e39555f6a8ecb8a95c5ac000a93ce09..2854f1d058a9a82b977ef28eec2bf5b3646a0c5f 100644 --- a/marketservice/src/main/java/com/woniu/service/impl/UsedProductImgsServiceImpl.java +++ b/marketservice/src/main/java/com/woniu/service/impl/UsedProductImgsServiceImpl.java @@ -76,4 +76,14 @@ public class UsedProductImgsServiceImpl implements UsedProductImgsService { public boolean deleteById(Integer id) { return this.usedProductImgsDao.deleteById(id) > 0; } + + @Override + public List findImgsByProductId(Integer productId) { + return usedProductImgsDao.findImgsByProductId(productId); + } + + @Override + public void deleteImgsByProductId(Integer productId) { + usedProductImgsDao.deleteImgsByProductId(productId); + } } \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/UsedProductOrderServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/UsedProductOrderServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..9f19e00bf491e9f31dff37bfe131795308c07c65 --- /dev/null +++ b/marketservice/src/main/java/com/woniu/service/impl/UsedProductOrderServiceImpl.java @@ -0,0 +1,100 @@ +package com.woniu.service.impl; + +import com.woniu.entity.UsedProductOrder; +import com.woniu.dao.UsedProductOrderDao; +import com.woniu.service.UsedProductOrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 二手市场订单表(UsedProductOrder)表服务实现类 + * + * @author makejava + * @since 2020-03-30 22:08:16 + */ +@Service("usedProductOrderService") +public class UsedProductOrderServiceImpl implements UsedProductOrderService { + @Resource + private UsedProductOrderDao usedProductOrderDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public UsedProductOrder queryById(Integer id) { + return this.usedProductOrderDao.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.usedProductOrderDao.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param usedProductOrder 实例对象 + * @return 实例对象 + */ + @Override + public UsedProductOrder insert(UsedProductOrder usedProductOrder) { + this.usedProductOrderDao.insert(usedProductOrder); + return usedProductOrder; + } + + /** + * 修改数据 + * + * @param usedProductOrder 实例对象 + * @return 实例对象 + */ + @Override + public UsedProductOrder update(UsedProductOrder usedProductOrder) { + this.usedProductOrderDao.update(usedProductOrder); + return this.queryById(usedProductOrder.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.usedProductOrderDao.deleteById(id) > 0; + } + + @Override + public UsedProductOrder findOrderByProductId(Integer id, Integer productId, int i) { + return usedProductOrderDao.findOrderByProductId(id,productId,i); + } + + @Override + public ArrayList findProductIdByPayStatus(Integer id, Integer orderStatus, Integer orderType) { + return usedProductOrderDao.findProductIdByPayStatus(id,orderStatus,orderType); + } + + @Override + public void deleteOrderByProductId(Integer id, Integer productId, Integer orderType) { + usedProductOrderDao.deleteOrderByProductId(id,productId,orderType); + } + + @Override + public List findOrderByUserId(Integer id) { + return usedProductOrderDao.findOrderByUserId(id); + } +} \ No newline at end of file diff --git a/marketservice/src/main/java/com/woniu/service/impl/UsedProductServiceImpl.java b/marketservice/src/main/java/com/woniu/service/impl/UsedProductServiceImpl.java index 40b64193113ca6fa1b064b8f6ddd1214ccc9d3e0..40cf673296deaf8c6c33f8a1fffa5b2145b319aa 100644 --- a/marketservice/src/main/java/com/woniu/service/impl/UsedProductServiceImpl.java +++ b/marketservice/src/main/java/com/woniu/service/impl/UsedProductServiceImpl.java @@ -6,6 +6,7 @@ import com.woniu.service.UsedProductService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -81,4 +82,34 @@ public class UsedProductServiceImpl implements UsedProductService { public List findAllByTypeId(Integer typeId) { return usedProductDao.findAllByTypeId(typeId); } + + @Override + public List findAllProductByUserId(Integer userId) { + return usedProductDao.findAllProductByUserId(userId); + } + + @Override + public List findOnOfferProductByUserId(Integer id) { + return usedProductDao.findOnOfferProductByUserId(id); + } + + @Override + public List findSoldOutProductByUserId(Integer id) { + return usedProductDao.findSoldOutProductByUserId(id); + } + + @Override + public List findTradeProductByUserId(Integer id) { + return usedProductDao.findTradeProductByUserId(id); + } + + @Override + public List findAllByProductIdList(ArrayList productIdList) { + return usedProductDao.findAllByProductIdList(productIdList); + } + + @Override + public Integer findUserIdByProductId(Integer productId) { + return usedProductDao.findUserIdByProductId(productId); + } } \ No newline at end of file diff --git a/marketservice/src/main/resources/application.yml b/marketservice/src/main/resources/application.yml index 41a6aad046744d02719021d471442071750889ba..090639affa06d6f2b4f2df31514479744a6b383b 100644 --- a/marketservice/src/main/resources/application.yml +++ b/marketservice/src/main/resources/application.yml @@ -18,6 +18,9 @@ spring: sentinel: master: mysentinel1 nodes: 106.12.148.100:26380,106.12.148.100:26381,106.12.148.100:26382 + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 # redis: # password: Yh496989943 # jedis: @@ -28,9 +31,6 @@ spring: # sentinel: # master: mymaster # nodes: 47.99.241.119:26379,47.99.241.119:26380,47.99.241.119:26381 - jackson: - date-format: yyyy-MM-dd HH:mm:ss - time-zone: GMT+8 # rabbitmq: # host: 47.99.241.119 # port: 5672 diff --git a/marketservice/src/main/resources/mapper/AnnouncementDao.xml b/marketservice/src/main/resources/mapper/AnnouncementDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c1a25aa941c149b4bc6ccd0d46891b39cd85c60 --- /dev/null +++ b/marketservice/src/main/resources/mapper/AnnouncementDao.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.announcement(context, area_id, create_time, title, status) + values (#{context}, #{areaId}, #{createTime}, #{title}, #{status}) + + + + + update happycommunity.announcement + + + context = #{context}, + + + area_id = #{areaId}, + + + create_time = #{createTime}, + + + title = #{title}, + + + status = #{status}, + + + where id = #{id} + + + + + delete from happycommunity.announcement where id = #{id} + + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/AreainfoDao.xml b/marketservice/src/main/resources/mapper/AreainfoDao.xml index a309402945b64e3d1b29ca7c57c58fd4cae222c4..897c96b3d903f86793d20732d92d0b1cda4ae071 100644 --- a/marketservice/src/main/resources/mapper/AreainfoDao.xml +++ b/marketservice/src/main/resources/mapper/AreainfoDao.xml @@ -8,12 +8,11 @@ - - select id, area_name, area_address, detail1 - from happycommunity.areainfo + from areainfo where id = #{id} @@ -74,4 +73,6 @@ delete from happycommunity.areainfo where id = #{id} + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/CommunityActivityDao.xml b/marketservice/src/main/resources/mapper/CommunityActivityDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..772d1fa969f419020b9bce110a85f0785db21d90 --- /dev/null +++ b/marketservice/src/main/resources/mapper/CommunityActivityDao.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.community_activity(ca_user_id, ca_pic_path, ca_type, ca_title, ca_content, ca_start_time, ca_end_time, ca_status, ca_money, ca_peopel_count, ca_max_people_count, ca_create_time) + values (#{caUserId}, #{caPicPath}, #{caType}, #{caTitle}, #{caContent}, #{caStartTime}, #{caEndTime}, #{caStatus}, #{caMoney}, #{caPeopelCount}, #{caMaxPeopleCount}, #{caCreateTime}) + + + + + update happycommunity.community_activity + + + ca_user_id = #{caUserId}, + + + ca_pic_path = #{caPicPath}, + + + ca_type = #{caType}, + + + ca_title = #{caTitle}, + + + ca_content = #{caContent}, + + + ca_start_time = #{caStartTime}, + + + ca_end_time = #{caEndTime}, + + + ca_status = #{caStatus}, + + + ca_money = #{caMoney}, + + + ca_peopel_count = #{caPeopelCount}, + + + ca_max_people_count = #{caMaxPeopleCount}, + + + ca_create_time = #{caCreateTime}, + + + where id = #{id} + + + + + delete from happycommunity.community_activity where id = #{id} + + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/CommunityActivityUserDao.xml b/marketservice/src/main/resources/mapper/CommunityActivityUserDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..d8befbf6ed40ae288cac7fbbdd7a1dfd82c11ba1 --- /dev/null +++ b/marketservice/src/main/resources/mapper/CommunityActivityUserDao.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.community_activity_user(cau_activity_id, cau_user_id) + values (#{cauActivityId}, #{cauUserId}) + + + + + update happycommunity.community_activity_user + + + cau_activity_id = #{cauActivityId}, + + + cau_user_id = #{cauUserId}, + + + where id = #{id} + + + + + delete from happycommunity.community_activity_user where id = #{id} + + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/CommunityOrderDao.xml b/marketservice/src/main/resources/mapper/CommunityOrderDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..2db243dc3cca4a9994fe27beae558588f5867e5d --- /dev/null +++ b/marketservice/src/main/resources/mapper/CommunityOrderDao.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.community_order(co_user_id, co_num, co_money, co_actual_money, co_freight, co_discount, co_status, co_logistics_company, co_logistics_num, co_invoice_type, co_invoice_phonel, co_invoice_email, co_invoice_name, co_receive_name, co_receive_phone, co_receive_adr, co_note, co_confirm_time, co_comment_time, co_pay_time, co_consignment_time, co_type, co_create_time) + values (#{coUserId}, #{coNum}, #{coMoney}, #{coActualMoney}, #{coFreight}, #{coDiscount}, #{coStatus}, #{coLogisticsCompany}, #{coLogisticsNum}, #{coInvoiceType}, #{coInvoicePhonel}, #{coInvoiceEmail}, #{coInvoiceName}, #{coReceiveName}, #{coReceivePhone}, #{coReceiveAdr}, #{coNote}, #{coConfirmTime}, #{coCommentTime}, #{coPayTime}, #{coConsignmentTime}, #{coType}, #{coCreateTime}) + + + + + update happycommunity.community_order + + + co_user_id = #{coUserId}, + + + co_num = #{coNum}, + + + co_money = #{coMoney}, + + + co_actual_money = #{coActualMoney}, + + + co_freight = #{coFreight}, + + + co_discount = #{coDiscount}, + + + co_status = #{coStatus}, + + + co_logistics_company = #{coLogisticsCompany}, + + + co_logistics_num = #{coLogisticsNum}, + + + co_invoice_type = #{coInvoiceType}, + + + co_invoice_phonel = #{coInvoicePhonel}, + + + co_invoice_email = #{coInvoiceEmail}, + + + co_invoice_name = #{coInvoiceName}, + + + co_receive_name = #{coReceiveName}, + + + co_receive_phone = #{coReceivePhone}, + + + co_receive_adr = #{coReceiveAdr}, + + + co_note = #{coNote}, + + + co_confirm_time = #{coConfirmTime}, + + + co_comment_time = #{coCommentTime}, + + + co_pay_time = #{coPayTime}, + + + co_consignment_time = #{coConsignmentTime}, + + + co_type = #{coType}, + + + co_create_time = #{coCreateTime}, + + + where id = #{id} + + + + + delete from happycommunity.community_order where id = #{id} + + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/PersonImageDao.xml b/marketservice/src/main/resources/mapper/PersonImageDao.xml index 9ff9eff39507dfcaec08b868233c9e4171819108..7828e212c9c53db19da88b1bcfe131b25fda7504 100644 --- a/marketservice/src/main/resources/mapper/PersonImageDao.xml +++ b/marketservice/src/main/resources/mapper/PersonImageDao.xml @@ -95,4 +95,12 @@ delete from happycommunity.person_image where id = #{id} + + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/PersonUserAddressDao.xml b/marketservice/src/main/resources/mapper/PersonUserAddressDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..da5884ebc188ea517a92c80523be4b7fd6aa206c --- /dev/null +++ b/marketservice/src/main/resources/mapper/PersonUserAddressDao.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.person_user_address(user_id, area_id, detailed_address, postcode) + values (#{userId}, #{areaId}, #{detailedAddress}, #{postcode}) + + + + + update happycommunity.person_user_address + + + user_id = #{userId}, + + + area_id = #{areaId}, + + + detailed_address = #{detailedAddress}, + + + postcode = #{postcode}, + + + where id = #{id} + + + + + delete from happycommunity.person_user_address where id = #{id} + + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/UsedProductConsigneeDao.xml b/marketservice/src/main/resources/mapper/UsedProductConsigneeDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d43ce349200e047178df99994adcd0343914480 --- /dev/null +++ b/marketservice/src/main/resources/mapper/UsedProductConsigneeDao.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.used_product_consignee(user_id, consignee_user_name, consignee_address, postcode, consignee_phone) + values (#{userId}, #{consigneeUserName}, #{consigneeAddress}, #{postcode}, #{consigneePhone}) + + + + + update happycommunity.used_product_consignee + + + user_id = #{userId}, + + + consignee_user_name = #{consigneeUserName}, + + + consignee_address = #{consigneeAddress}, + + + postcode = #{postcode}, + + + consignee_phone = #{consigneePhone}, + + + where id = #{id} + + + + + delete from happycommunity.used_product_consignee where id = #{id} + + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/UsedProductDao.xml b/marketservice/src/main/resources/mapper/UsedProductDao.xml index ac575011afcc7e8f95ed648ef0b5497274e3c625..a96d2e0d35579284dfde7816f52a281a34b82e1c 100644 --- a/marketservice/src/main/resources/mapper/UsedProductDao.xml +++ b/marketservice/src/main/resources/mapper/UsedProductDao.xml @@ -151,4 +151,11 @@ delete from happycommunity.used_product where id = #{id} + + \ No newline at end of file diff --git a/marketservice/src/main/resources/mapper/UsedProductOrderDao.xml b/marketservice/src/main/resources/mapper/UsedProductOrderDao.xml new file mode 100644 index 0000000000000000000000000000000000000000..4903164a2a765ec9d8678258d97552c8a3193d93 --- /dev/null +++ b/marketservice/src/main/resources/mapper/UsedProductOrderDao.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into happycommunity.used_product_order(product_id, product_order_type, user_id, order_number, order_name, order_money, order_status, consigneeId) + values (#{productId}, #{productOrderType}, #{userId}, #{orderNumber}, #{orderName}, #{orderMoney}, #{orderStatus}, #{consigneeid}) + + + + + update happycommunity.used_product_order + + + product_id = #{productId}, + + + product_order_type = #{productOrderType}, + + + user_id = #{userId}, + + + order_number = #{orderNumber}, + + + order_name = #{orderName}, + + + order_money = #{orderMoney}, + + + order_status = #{orderStatus}, + + + consigneeId = #{consigneeid}, + + + where id = #{id} + + + + + delete from happycommunity.used_product_order where id = #{id} + + + \ No newline at end of file diff --git a/marketservice/src/test/java/com/woniu/MarketserviceApplicationTests.java b/marketservice/src/test/java/com/woniu/MarketserviceApplicationTests.java index 38ba493b787e70048a945575800965e0de84b86b..393514ce0763d24f852e400c385e33cbc23eaede 100644 --- a/marketservice/src/test/java/com/woniu/MarketserviceApplicationTests.java +++ b/marketservice/src/test/java/com/woniu/MarketserviceApplicationTests.java @@ -1,13 +1,23 @@ package com.woniu; 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.RedisTemplate; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; @SpringBootTest class MarketserviceApplicationTests { + @Autowired + RedisTemplate redisTemplate; + @Test void contextLoads() { + redisTemplate.delete("test"); } } diff --git a/payservice/.gitignore b/payservice/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a2a3040aa86debfd8826d9c2b5c816314c17d9fe --- /dev/null +++ b/payservice/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### 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/ + +### VS Code ### +.vscode/ diff --git a/payservice/pom.xml b/payservice/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..8e719deb290f3efceba4e982a1905700f5a107cd --- /dev/null +++ b/payservice/pom.xml @@ -0,0 +1,119 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.2.5.RELEASE + + + com.woniu + payservice + 0.0.1-SNAPSHOT + payservice + Demo project for Spring Boot + + + 1.8 + Hoxton.SR3 + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.1.2 + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + mysql + mysql-connector-java + runtime + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + com.alibaba + fastjson + 1.2.7 + + + + + com.alipay.sdk + alipay-sdk-java + 4.9.79.ALL + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.mybatis.generator + mybatis-generator-maven-plugin + 1.3.7 + + ${basedir}/src/main/resources/generatorConfig.xml + + + + mysql + mysql-connector-java + 5.1.47 + + + + + + + diff --git a/payservice/src/main/java/com/woniu/PayserviceApplication.java b/payservice/src/main/java/com/woniu/PayserviceApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..6091bca58867b2bec5d625e51590de07fae98357 --- /dev/null +++ b/payservice/src/main/java/com/woniu/PayserviceApplication.java @@ -0,0 +1,17 @@ +package com.woniu; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.netflix.eureka.EnableEurekaClient; + +@SpringBootApplication +@MapperScan(value = "com.woniu.dao") +@EnableEurekaClient //开启eureka客户端 +public class PayserviceApplication { + + public static void main(String[] args) { + SpringApplication.run(PayserviceApplication.class, args); + } + +} diff --git a/payservice/src/main/java/com/woniu/config/AlipayConfig.java b/payservice/src/main/java/com/woniu/config/AlipayConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..38b58620810cc55f057f3600ba129249e4ba476d --- /dev/null +++ b/payservice/src/main/java/com/woniu/config/AlipayConfig.java @@ -0,0 +1,53 @@ +package com.woniu.config; + +import org.springframework.context.annotation.Configuration; + +import java.io.FileWriter; +import java.io.IOException; + +@Configuration +public class AlipayConfig { + // 商户appid 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号 + public static String app_id = "2016101700705048"; + // 私钥 pkcs8格式的 + public static String merchant_private_key = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC2zJChPT9IKXsyBySu0O2vCX+mtzeQCsNT5iFWz3wPJULsNt2ieL7P6wq1gNvCBbhsF/Qs1eUFNJ6un1f8YPJ5/NsPtKp6TyCtkOcoPr6ZHWAIFWgak+2paNLsU2Y0HHtTA1Zju9AbKrj4ZWQ9VxW8TJ/ld2PGQj6Y665kOKhFL+gHOurv1nMZHHwkpSYGY3mwC3W21DfafstIZip/othT+oYg3tH7rcf4Zz5Gj2ja1fkfq7lAYFLqvkTaMpT7Dc02xClYrTnmzZoGd6G0XL0/0cAvjUIyNc3MamjUwwX5lXEh2qaOY9PiuAMH4MYHe9CoC0HlfAg4I/TBkls0zkkPAgMBAAECggEAEM+RQXLLfgxqivhDNFx8b0t1VNSmpHWI7w9L45rjMtVfaS/GhCmMirx32KdIDnjONAqj5veovyjOqwp2YfxccEGDt9cKkoLyY2PfDkFu78/WxAeL8l3GTn0YYKluzb4MzV6SNEvSYJ02M4nHhSicFBwL3GN1ZoczEIckG41mVC5i07agVi+DU61czM4hSiqbmPUHRmG46FCShPZN83CvVgBqRe43gbyR2xuH2g3f6aZaBrdTPB0LGCOcL9TC8PkDrZqJsZ5STjUorLUqNdJ9gxRY330sMBhLGOeYsG0zXyeeVhJWcVH+UNbMf/gTHdJ0TYXcQmbxb0ZbL7u9o/K+wQKBgQDkqKa5kP+bcFy+4SabL6lb4aE4xnluUw9fWMrRWESdbcwApFoFMfw5l6tcR2KmzlLQZreApaJC1EKCXX920ft5fjkLNP6wHvsMBx8URb4xd0kXSg8k8jEljUASglf6n/3142Rg48vQgsiP6QEr8veVwwZ9Gj5O7ba3PXq27BAe4QKBgQDMqCCShR22Waw5B7v1OjWEkrXVqdhq5FnvoT8499p7Ag5l9HLmMLGH729tt2ce66rjL+m7U1RKOqSFunYXFAxPcnMbPpFyGWXzIyjbHtIN/TWfQu/VwJ0X/c79VbGFEdnZjYXWvB4ftom/tr3Uh+X2ABGQJ9RDlPALmnrkI1kV7wKBgQC/AktUFFYRqMkxAq/XTvcws8iTvuhNSsE6qteyDQQ0ZjXWC3TPhjPmgFY7Xb6BDTWMtWFw6+wh22I7uJLz1PE3SkOoovpmcVrRb1l8+82nULgT5l/EQzTe46G0VIHd8KybLPr7HQ9y/O1BmijKZ8p+pk3TT4rhMB5D7+2ExKmqwQKBgQCbnRtnTaCSDw1NL/xTMreO3p80n7jXTlq0Qr936b5O2flovL7BGTVkT0NDAbl/YWLG7J+kuG/XIVAH/wfb9HqHzlaH2MNvJrDGd22Rb5X43RfwyUzkE1lf7LV/G7GnpTMooNurs86T/pAvHhyphcvtiY/RNPfJi24a5JOc9OPAMQKBgG32emiBs8ROJrFNYOJ8vmkenW90sWhiwLr8yu5As8/Bp9z85wZjIM8VNoqASIC6qwzSxxy7ZhqNUFt1pv7M0dU77tSyEOoi5RWrehPd/H5tWxen9HCq3m9a4Ke9Dg9JsVGVeGomzoqLKKsxtMhHnGlyZTLMwzKQiCGSVQ2yig70"; + // 支付宝公钥 + public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw0SZTMd+pWkcVDyF3z8uMfd+6BU5xQZCyyQS+7UMsNlIMGvgtcJ42vmLa2YuwxPdElW5zB9vVgYkp3jjtOZKM/WZ8JCFW4wof/gUgeVu7YvckoQjQV3tUUSvAJSJ4dtvZ6J6Psbsz1mUL80a0U4vybp9Tsw56Kdj/rRIFsMSZeimjHiXi4cF56PWZbZVf86s6LAIqJ6iA/nom7o53957XX+tEpk5FU/KbsoAXgxWCPEmBnEFkPniCiola9fz1FEbHd4dPuFsawxnx/OQ6bjBcKL1NbujtSQ072whV1B2oj05GECsvlzknu38jQaoVnFzh6qCiqjllzJXx1VJ7waRiwIDAQAB"; + //映射地址,根据需要修改 + public static String neturl = "http://rmkole.natapp1.cc"; + // 服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 + public static String notify_url = neturl+"/pay/notifyUrl"; + // 页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址 + public static String return_url = neturl+"/pay/returnUrl"; + + // 请求网关地址 + public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do"; + // 编码 + public static String charset = "utf-8"; + // 日志记录目录 + public static String log_path = "C:\\"; + // RSA2 + public static String sign_type = "RSA2"; + + /** + * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库) + * @param sWord 要写入日志里的文本内容 + */ + public static void logResult(String sWord) { + FileWriter writer = null; + try { + writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt"); + writer.write(sWord); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (writer != null) { + try { + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } +} diff --git a/payservice/src/main/java/com/woniu/controller/PayController.java b/payservice/src/main/java/com/woniu/controller/PayController.java new file mode 100644 index 0000000000000000000000000000000000000000..82d07a51ad729755771b920f421fd9b83b7ad4df --- /dev/null +++ b/payservice/src/main/java/com/woniu/controller/PayController.java @@ -0,0 +1,236 @@ +package com.woniu.controller; + +import com.woniu.service.PayService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + + +@Controller +@RequestMapping("/pay") +public class PayController { + + Logger logger = LoggerFactory.getLogger("PayServiceImpl.class"); + @Autowired + private PayService payService; + + + +// @RequestMapping("/pay") +// public void pay(HttpServletResponse response) throws UnsupportedEncodingException { +// +//// // 商户订单号,商户网站订单系统中唯一订单号,必填 +//// String out_trade_no = new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"),"UTF-8"); +//// // 订单名称,必填 +//// String subject = new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"),"UTF-8"); +//// System.out.println(subject); +//// // 付款金额,必填 +//// String total_amount=new String(request.getParameter("WIDtotal_amount").getBytes("ISO-8859-1"),"UTF-8"); +//// // 商品描述,可空 +//// String body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"),"UTF-8"); +// // 商户订单号,商户网站订单系统中唯一订单号,必填 +//// String out_trade_no = new String(map.get("WIDout_trade_no").toString()); +//// // 订单名称,必填 +//// String subject = new String(map.get("WIDsubject").toString()); +//// System.out.println(subject); +//// // 付款金额,必填 +//// String total_amount=new String(map.get("WIDtotal_amount").toString()); +//// // 商品描述,可空 +//// String body = new String(map.get("WIDbody").toString()); +//// System.out.println(no); +// String out_trade_no = new String("70501111111S001111119".getBytes("ISO-8859-1"),"utf-8"); +// // 订单名称,必填 +// String subject = new String("订单:"+out_trade_no); +// System.out.println(subject); +// // 付款金额,必填 +// String total_amount=new String("0.01".getBytes("ISO-8859-1"),"utf-8"); +// // 商品描述,可空 +// String body = new String("测试".getBytes("ISO-8859-1"),"utf-8"); +// // 超时时间 可空 +// String timeout_express="2m"; +// // 销售产品码 必填QUICK_WAP_WAY +// String product_code="FAST_INSTANT_TRADE_PAY"; +// /**********************/ +// // SDK 公共请求类,包含公共请求参数,以及封装了签名与验签,开发者无需关注签名与验签 +// //调用RSA签名方式 +// AlipayClient client = new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APPID, AlipayConfig.RSA_PRIVATE_KEY, "json", AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY,AlipayConfig.SIGNTYPE); +// AlipayTradeWapPayRequest alipay_request=new AlipayTradeWapPayRequest(); +// // 设置异步通知地址 +// alipay_request.setNotifyUrl(AlipayConfig.notify_url); +// // 设置同步地址 +// alipay_request.setReturnUrl(AlipayConfig.return_url); +// +// alipay_request.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\"," +// + "\"total_amount\":\""+ total_amount +"\"," +// + "\"subject\":\""+ subject +"\"," +// + "\"time_express\":\""+ timeout_express +"\"," +// + "\"product_code\":\""+product_code+"\"}"); +// +// // 封装请求支付信息 +//// AlipayTradeWapPayModel model=new AlipayTradeWapPayModel(); +//// model.setOutTradeNo(out_trade_no); +//// model.setSubject(subject); +//// model.setTotalAmount(total_amount); +//// model.setBody(body); +////// model.setTimeoutExpress(timeout_express); +//// model.setProductCode(product_code); +//// alipay_request.setBizModel(model); +// +// +// // form表单生产 +// String form = ""; +// try { +// // 调用SDK生成表单 +// form = client.pageExecute(alipay_request).getBody(); +// response.setContentType("text/html;charset=utf-8"); +// response.getWriter().println(form);//直接将完整的表单html输出到页面 +//// response.getWriter().flush(); +//// response.getWriter().close(); +// System.out.println(form); +// System.out.println("iiiiiiiiiiiiiii"); +// } catch (Exception e) { +// e.printStackTrace(); +// System.out.println("kkkkkkkkkkkkkkkk"); +// } +// } +// @RequestMapping("/notifyUrl") +// public void notifyUrl(HttpServletRequest request,HttpServletResponse response){ +// System.out.println("异步通知成功消息"); +// //获取支付宝POST过来反馈信息 +// Map params = new HashMap(); +// Map requestParams = request.getParameterMap(); +// for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) { +// String name = (String) iter.next(); +// System.out.println(name); +// String[] values = (String[]) requestParams.get(name); +// String valueStr = ""; +// for (int i = 0; i < values.length; i++) { +// valueStr = (i == values.length - 1) ? valueStr + values[i] +// : valueStr + values[i] + ","; +// } +// System.out.println(name+":"+valueStr); +// //乱码解决,这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化 +// //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk"); +// params.put(name, valueStr); +// } +// +// //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以上仅供参考)// +// //计算得出通知验证结果 +// //boolean AlipaySignature.rsaCheckV1(Map params, String publicKey, String charset, String sign_type) +// boolean verify_result = false; +// try { +// verify_result = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.CHARSET, "RSA2"); +// System.out.println(verify_result); +// } catch (AlipayApiException e) { +// e.printStackTrace(); +// } +// +// if(verify_result){//验证成功 +// ////////////////////////////////////////////////////////////////////////////////////////// +// //请在这里加上商户的业务逻辑程序代码 +// try { +// //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)// +// //商户订单号 +// String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8"); +// //支付宝交易号 +// String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8"); +// //交易状态 +// String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8"); +// System.out.println(trade_status); +// if(trade_status.equals("TRADE_FINISHED")){ +// //判断该笔订单是否在商户网站中已经做过处理 +// //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 +// //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 +// //如果有做过处理,不执行商户的业务程序 +// System.out.println("************************"); +// //注意: +// //如果签约的是可退款协议,退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 +// //如果没有签约可退款协议,那么付款完成后,支付宝系统发送该交易状态通知。 +// } else if (trade_status.equals("TRADE_SUCCESS")){ +// //判断该笔订单是否在商户网站中已经做过处理 +// //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 +// //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 +// //如果有做过处理,不执行商户的业务程序 +// System.out.println("-----------------------"); +// //注意: +// //如果签约的是可退款协议,那么付款完成后,支付宝系统发送该交易状态通知。 +// } +// } catch (UnsupportedEncodingException e) { +// e.printStackTrace(); +// } +// //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— +// +// //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— +//// out.clear(); +// try { +// response.getWriter().println("success"); //请不要修改或删除 +// } catch (IOException e) { +// e.printStackTrace(); +// } +// +// ////////////////////////////////////////////////////////////////////////////////////////// +// }else{//验证失败 +// try { +// response.getWriter().println("fail"); +// System.out.println("jjjjjjjjjjjjjjjjjjj"); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// } + + @GetMapping("/pay") + public void pay(String no,String url,Integer type, HttpServletResponse response){ + //初始化支付信息并连接支付接口 + String form = payService.payInfo(no,url,type); + try { + response.setContentType("text/html;charset=utf-8"); + response.getWriter().write(form); + response.getWriter().flush(); + response.getWriter().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + @GetMapping("/refund") + @ResponseBody + public String refund(String no,Integer type) { + //初始化退款信息并连接退款接口 + String form = payService.refund(no,type); + System.out.println(form); + return form; + } + + @RequestMapping("/notifyUrl") + @ResponseBody + public void notifyUrl(HttpServletRequest request, HttpServletResponse response){ + logger.info("notify"); + //获取支付宝POST过来反馈信息 + Map params = new HashMap(); + Map requestParams = request.getParameterMap(); + Map trade = new HashMap(); + trade.put("out_trade_no",request.getParameter("out_trade_no")); + trade.put("trade_no",request.getParameter("trade_no")); + trade.put("trade_status",request.getParameter("trade_status")); + payService.delNotifyUrl(requestParams,trade,response); + } + +// @RequestMapping("/returnUrl") +// public void returnUrl(HttpServletRequest request,HttpServletResponse response) throws IOException { +// //同步到达率低,可以做一些页面跳转 +// logger.info("returnUrl"); +// Map requestParams = request.getParameterMap(); +// System.out.println(requestParams.get("qu")); +//// response.sendRedirect("http://www.baidu.com"); +// } +} diff --git a/payservice/src/main/java/com/woniu/dao/CommunityActivityMapper.java b/payservice/src/main/java/com/woniu/dao/CommunityActivityMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..4c2752925d407cf2cdfc2b227a038c8802c3661c --- /dev/null +++ b/payservice/src/main/java/com/woniu/dao/CommunityActivityMapper.java @@ -0,0 +1,19 @@ +package com.woniu.dao; + +import com.woniu.pojo.CommunityActivity; + +public interface CommunityActivityMapper { + int deleteByPrimaryKey(Integer id); + + int insert(CommunityActivity record); + + int insertSelective(CommunityActivity record); + + CommunityActivity selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(CommunityActivity record); + + int updateByPrimaryKeyWithBLOBs(CommunityActivity record); + + int updateByPrimaryKey(CommunityActivity record); +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/dao/CommunityActivityUserMapper.java b/payservice/src/main/java/com/woniu/dao/CommunityActivityUserMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..a8bf96f74d7f8999130e9ba22056b5958e5e9395 --- /dev/null +++ b/payservice/src/main/java/com/woniu/dao/CommunityActivityUserMapper.java @@ -0,0 +1,21 @@ +package com.woniu.dao; + +import com.woniu.pojo.CommunityActivityUser; +import org.apache.ibatis.annotations.Select; + +public interface CommunityActivityUserMapper { + int deleteByPrimaryKey(Integer id); + + int insert(CommunityActivityUser record); + + int insertSelective(CommunityActivityUser record); + + CommunityActivityUser selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(CommunityActivityUser record); + + int updateByPrimaryKey(CommunityActivityUser record); + + @Select(value = "select * from community_activity_user where cau_activity_id=#{coActivityId} and cau_user_id=#{coUserId}") + CommunityActivityUser selectById(Integer coActivityId, Integer coUserId); +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/dao/CommunityOrderMapper.java b/payservice/src/main/java/com/woniu/dao/CommunityOrderMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..117426f417664128dc0f63da1a01e13e8395be01 --- /dev/null +++ b/payservice/src/main/java/com/woniu/dao/CommunityOrderMapper.java @@ -0,0 +1,21 @@ +package com.woniu.dao; + +import com.woniu.pojo.CommunityOrder; +import org.apache.ibatis.annotations.Select; + +public interface CommunityOrderMapper { + int deleteByPrimaryKey(Integer id); + + int insert(CommunityOrder record); + + int insertSelective(CommunityOrder record); + + CommunityOrder selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(CommunityOrder record); + + int updateByPrimaryKey(CommunityOrder record); + + @Select(value = "select * from community_order where co_num=#{no}") + CommunityOrder selectByNo(String no); +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/dao/CommunityPayMapper.java b/payservice/src/main/java/com/woniu/dao/CommunityPayMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..f88f9ccf169e149a3f6b77e63f55213ab3719da7 --- /dev/null +++ b/payservice/src/main/java/com/woniu/dao/CommunityPayMapper.java @@ -0,0 +1,23 @@ +package com.woniu.dao; + +import com.woniu.pojo.CommunityPay; +import org.apache.ibatis.annotations.Select; + +public interface CommunityPayMapper { + int deleteByPrimaryKey(Integer id); + + int insert(CommunityPay record); + + int insertSelective(CommunityPay record); + + CommunityPay selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(CommunityPay record); + + int updateByPrimaryKeyWithBLOBs(CommunityPay record); + + int updateByPrimaryKey(CommunityPay record); + + @Select(value = "select * from community_pay where cp_order_num = #{no}") + CommunityPay selectByNo(String no); +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/dao/ServiceOrderMapper.java b/payservice/src/main/java/com/woniu/dao/ServiceOrderMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..99ab9b2c3b73b7bdf2141474ad7c9f554f9988ce --- /dev/null +++ b/payservice/src/main/java/com/woniu/dao/ServiceOrderMapper.java @@ -0,0 +1,21 @@ +package com.woniu.dao; + +import com.woniu.pojo.ServiceOrder; +import org.apache.ibatis.annotations.Select; + +public interface ServiceOrderMapper { + int deleteByPrimaryKey(Integer id); + + int insert(ServiceOrder record); + + int insertSelective(ServiceOrder record); + + ServiceOrder selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(ServiceOrder record); + + int updateByPrimaryKey(ServiceOrder record); + + @Select(value = "select * from service_order where ordernumber=#{no}") + ServiceOrder selectByNo(String no); +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/dao/UsedProductOrderMapper.java b/payservice/src/main/java/com/woniu/dao/UsedProductOrderMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..12b9e9f5ba33b9087567e3c17e51824eb28a646c --- /dev/null +++ b/payservice/src/main/java/com/woniu/dao/UsedProductOrderMapper.java @@ -0,0 +1,21 @@ +package com.woniu.dao; + +import com.woniu.pojo.UsedProductOrder; +import org.apache.ibatis.annotations.Select; + +public interface UsedProductOrderMapper { + int deleteByPrimaryKey(Integer id); + + int insert(UsedProductOrder record); + + int insertSelective(UsedProductOrder record); + + UsedProductOrder selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(UsedProductOrder record); + + int updateByPrimaryKey(UsedProductOrder record); + + @Select(value = "select * from used_product_order where order_number=#{no}") + UsedProductOrder selectByNo(String no); +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/pojo/CommunityActivity.java b/payservice/src/main/java/com/woniu/pojo/CommunityActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..c8180531f59154af737d0829503a29cd26d4c66e --- /dev/null +++ b/payservice/src/main/java/com/woniu/pojo/CommunityActivity.java @@ -0,0 +1,155 @@ +package com.woniu.pojo; + +import java.util.Date; + +public class CommunityActivity { + private Integer id; + + private Integer caUserId; + + private Integer caType; + + private String caTitle; + + private String caContent; + + private Date caStartTime; + + private Date caEndTime; + + private Integer caStatus; + + private Double caMoney; + + private Integer caPeopelCount; + + private Integer caMaxPeopleCount; + + private Date caCreateTime; + + private Integer caExamineStatus; + + private Date caExaminetime; + + private String caPicPath; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getCaUserId() { + return caUserId; + } + + public void setCaUserId(Integer caUserId) { + this.caUserId = caUserId; + } + + public Integer getCaType() { + return caType; + } + + public void setCaType(Integer caType) { + this.caType = caType; + } + + public String getCaTitle() { + return caTitle; + } + + public void setCaTitle(String caTitle) { + this.caTitle = caTitle; + } + + public String getCaContent() { + return caContent; + } + + public void setCaContent(String caContent) { + this.caContent = caContent; + } + + public Date getCaStartTime() { + return caStartTime; + } + + public void setCaStartTime(Date caStartTime) { + this.caStartTime = caStartTime; + } + + public Date getCaEndTime() { + return caEndTime; + } + + public void setCaEndTime(Date caEndTime) { + this.caEndTime = caEndTime; + } + + public Integer getCaStatus() { + return caStatus; + } + + public void setCaStatus(Integer caStatus) { + this.caStatus = caStatus; + } + + public Double getCaMoney() { + return caMoney; + } + + public void setCaMoney(Double caMoney) { + this.caMoney = caMoney; + } + + public Integer getCaPeopelCount() { + return caPeopelCount; + } + + public void setCaPeopelCount(Integer caPeopelCount) { + this.caPeopelCount = caPeopelCount; + } + + public Integer getCaMaxPeopleCount() { + return caMaxPeopleCount; + } + + public void setCaMaxPeopleCount(Integer caMaxPeopleCount) { + this.caMaxPeopleCount = caMaxPeopleCount; + } + + public Date getCaCreateTime() { + return caCreateTime; + } + + public void setCaCreateTime(Date caCreateTime) { + this.caCreateTime = caCreateTime; + } + + public Integer getCaExamineStatus() { + return caExamineStatus; + } + + public void setCaExamineStatus(Integer caExamineStatus) { + this.caExamineStatus = caExamineStatus; + } + + public Date getCaExaminetime() { + return caExaminetime; + } + + public void setCaExaminetime(Date caExaminetime) { + this.caExaminetime = caExaminetime; + } + + public String getCaPicPath() { + return caPicPath; + } + + public void setCaPicPath(String caPicPath) { + this.caPicPath = caPicPath; + } +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/pojo/CommunityActivityUser.java b/payservice/src/main/java/com/woniu/pojo/CommunityActivityUser.java new file mode 100644 index 0000000000000000000000000000000000000000..f88356ad9aed3f72a52831717aea7237c311e176 --- /dev/null +++ b/payservice/src/main/java/com/woniu/pojo/CommunityActivityUser.java @@ -0,0 +1,23 @@ +package com.woniu.pojo; + +import lombok.Data; + +@Data +public class CommunityActivityUser { + private Integer id; + + private Integer cauActivityId; + + private Integer cauUserId; + + private Integer cauSignStatus; + + public CommunityActivityUser() { + } + + public CommunityActivityUser(Integer cauActivityId, Integer cauUserId, Integer cauSignStatus) { + this.cauActivityId = cauActivityId; + this.cauUserId = cauUserId; + this.cauSignStatus = cauSignStatus; + } +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/pojo/CommunityOrder.java b/payservice/src/main/java/com/woniu/pojo/CommunityOrder.java new file mode 100644 index 0000000000000000000000000000000000000000..e958cc7586e7b1376694e96abbfb790252f921cd --- /dev/null +++ b/payservice/src/main/java/com/woniu/pojo/CommunityOrder.java @@ -0,0 +1,115 @@ +package com.woniu.pojo; + +import java.util.Date; + +public class CommunityOrder { + private Integer id; + + private Integer coUserId; + + private String coNum; + + private Double coMoney; + + private Integer coStatus; + + private String coReceiveName; + + private String coNote; + + private Integer coType; + + private Date coCreateTime; + + private String coName; + + private Integer coActivityId; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getCoUserId() { + return coUserId; + } + + public void setCoUserId(Integer coUserId) { + this.coUserId = coUserId; + } + + public String getCoNum() { + return coNum; + } + + public void setCoNum(String coNum) { + this.coNum = coNum; + } + + public Double getCoMoney() { + return coMoney; + } + + public void setCoMoney(Double coMoney) { + this.coMoney = coMoney; + } + + public Integer getCoStatus() { + return coStatus; + } + + public void setCoStatus(Integer coStatus) { + this.coStatus = coStatus; + } + + public String getCoReceiveName() { + return coReceiveName; + } + + public void setCoReceiveName(String coReceiveName) { + this.coReceiveName = coReceiveName; + } + + public String getCoNote() { + return coNote; + } + + public void setCoNote(String coNote) { + this.coNote = coNote; + } + + public Integer getCoType() { + return coType; + } + + public void setCoType(Integer coType) { + this.coType = coType; + } + + public Date getCoCreateTime() { + return coCreateTime; + } + + public void setCoCreateTime(Date coCreateTime) { + this.coCreateTime = coCreateTime; + } + + public String getCoName() { + return coName; + } + + public void setCoName(String coName) { + this.coName = coName; + } + + public Integer getCoActivityId() { + return coActivityId; + } + + public void setCoActivityId(Integer coActivityId) { + this.coActivityId = coActivityId; + } +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/pojo/CommunityPay.java b/payservice/src/main/java/com/woniu/pojo/CommunityPay.java new file mode 100644 index 0000000000000000000000000000000000000000..7c7a34cb61123e25af006298c6723655f3645a9a --- /dev/null +++ b/payservice/src/main/java/com/woniu/pojo/CommunityPay.java @@ -0,0 +1,105 @@ +package com.woniu.pojo; + +import java.util.Date; + +public class CommunityPay { + private Integer id; + + private Integer cpUserId; + + private String cpOrderNum; + + private Double cpMoney; + + private String cpProductNote; + + private String cpNum; + + private String cpPayeeName; + + private String cpPayeeAccount; + + private Date cpCreateTime; + + private String cpNote; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getCpUserId() { + return cpUserId; + } + + public void setCpUserId(Integer cpUserId) { + this.cpUserId = cpUserId; + } + + public String getCpOrderNum() { + return cpOrderNum; + } + + public void setCpOrderNum(String cpOrderNum) { + this.cpOrderNum = cpOrderNum; + } + + public Double getCpMoney() { + return cpMoney; + } + + public void setCpMoney(Double cpMoney) { + this.cpMoney = cpMoney; + } + + public String getCpProductNote() { + return cpProductNote; + } + + public void setCpProductNote(String cpProductNote) { + this.cpProductNote = cpProductNote; + } + + public String getCpNum() { + return cpNum; + } + + public void setCpNum(String cpNum) { + this.cpNum = cpNum; + } + + public String getCpPayeeName() { + return cpPayeeName; + } + + public void setCpPayeeName(String cpPayeeName) { + this.cpPayeeName = cpPayeeName; + } + + public String getCpPayeeAccount() { + return cpPayeeAccount; + } + + public void setCpPayeeAccount(String cpPayeeAccount) { + this.cpPayeeAccount = cpPayeeAccount; + } + + public Date getCpCreateTime() { + return cpCreateTime; + } + + public void setCpCreateTime(Date cpCreateTime) { + this.cpCreateTime = cpCreateTime; + } + + public String getCpNote() { + return cpNote; + } + + public void setCpNote(String cpNote) { + this.cpNote = cpNote; + } +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/pojo/ServiceOrder.java b/payservice/src/main/java/com/woniu/pojo/ServiceOrder.java new file mode 100644 index 0000000000000000000000000000000000000000..d802269c6a4cd8131c5d9a34c0d783a797b8a8bc --- /dev/null +++ b/payservice/src/main/java/com/woniu/pojo/ServiceOrder.java @@ -0,0 +1,115 @@ +package com.woniu.pojo; + +import java.util.Date; + +public class ServiceOrder { + private Integer id; + + private Integer serviceid; + + private Integer userid; + + private Date starttime; + + private Date endtime; + + private Integer status; + + private String ordernumber; + + private String ordername; + + private Integer ordertype; + + private Integer orderPrice; + + private Integer stopPrice; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getServiceid() { + return serviceid; + } + + public void setServiceid(Integer serviceid) { + this.serviceid = serviceid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + public Date getStarttime() { + return starttime; + } + + public void setStarttime(Date starttime) { + this.starttime = starttime; + } + + public Date getEndtime() { + return endtime; + } + + public void setEndtime(Date endtime) { + this.endtime = endtime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getOrdernumber() { + return ordernumber; + } + + public void setOrdernumber(String ordernumber) { + this.ordernumber = ordernumber; + } + + public String getOrdername() { + return ordername; + } + + public void setOrdername(String ordername) { + this.ordername = ordername; + } + + public Integer getOrdertype() { + return ordertype; + } + + public void setOrdertype(Integer ordertype) { + this.ordertype = ordertype; + } + + public Integer getOrderPrice() { + return orderPrice; + } + + public void setOrderPrice(Integer orderPrice) { + this.orderPrice = orderPrice; + } + + public Integer getStopPrice() { + return stopPrice; + } + + public void setStopPrice(Integer stopPrice) { + this.stopPrice = stopPrice; + } +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/pojo/UsedProductOrder.java b/payservice/src/main/java/com/woniu/pojo/UsedProductOrder.java new file mode 100644 index 0000000000000000000000000000000000000000..88c42203774588bc097dccdb64bd9737e274f77a --- /dev/null +++ b/payservice/src/main/java/com/woniu/pojo/UsedProductOrder.java @@ -0,0 +1,93 @@ +package com.woniu.pojo; + +public class UsedProductOrder { + private Integer id; + + private Integer productId; + + private Integer productOrderType; + + private Integer userId; + + private String orderNumber; + + private String orderName; + + private Double orderMoney; + + private Integer orderStatus; + + private Integer consigneeid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getProductId() { + return productId; + } + + public void setProductId(Integer productId) { + this.productId = productId; + } + + public Integer getProductOrderType() { + return productOrderType; + } + + public void setProductOrderType(Integer productOrderType) { + this.productOrderType = productOrderType; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber; + } + + public String getOrderName() { + return orderName; + } + + public void setOrderName(String orderName) { + this.orderName = orderName; + } + + public Double getOrderMoney() { + return orderMoney; + } + + public void setOrderMoney(Double orderMoney) { + this.orderMoney = orderMoney; + } + + public Integer getOrderStatus() { + return orderStatus; + } + + public void setOrderStatus(Integer orderStatus) { + this.orderStatus = orderStatus; + } + + public Integer getConsigneeid() { + return consigneeid; + } + + public void setConsigneeid(Integer consigneeid) { + this.consigneeid = consigneeid; + } +} \ No newline at end of file diff --git a/payservice/src/main/java/com/woniu/service/PayService.java b/payservice/src/main/java/com/woniu/service/PayService.java new file mode 100644 index 0000000000000000000000000000000000000000..c72f5cee17549e1fbc3c3f711e7d5c89a649d08d --- /dev/null +++ b/payservice/src/main/java/com/woniu/service/PayService.java @@ -0,0 +1,34 @@ +package com.woniu.service; + +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +public interface PayService { + + /** + * 支付请求 + * @param no 订单号 + * @param url 跳转url + * @param type 订单类型 + * @return + */ + String payInfo(String no,String url,Integer type); + + /** + * 异步处理支付结果 + * @param params + * @param requestParams + * @param trade + * @param response + */ + void delNotifyUrl(Map requestParams, Map trade, HttpServletResponse response); + + /** + * 处理退款请求 + * @param no + * @param url + * @param type + * @return + */ + String refund(String no, Integer type); +} diff --git a/payservice/src/main/java/com/woniu/service/impl/PayServiceImpl.java b/payservice/src/main/java/com/woniu/service/impl/PayServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..852753ad3e4150d252ffcf14ac2ace841da37c62 --- /dev/null +++ b/payservice/src/main/java/com/woniu/service/impl/PayServiceImpl.java @@ -0,0 +1,277 @@ +package com.woniu.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.DefaultAlipayClient; +import com.alipay.api.domain.AlipayTradeRefundModel; +import com.alipay.api.internal.util.AlipaySignature; +import com.alipay.api.request.AlipayTradeRefundRequest; +import com.alipay.api.request.AlipayTradeWapPayRequest; +import com.woniu.config.AlipayConfig; +import com.woniu.dao.*; +import com.woniu.pojo.*; +import com.woniu.service.PayService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +@Service +public class PayServiceImpl implements PayService { + + Logger logger = LoggerFactory.getLogger("PayServiceImpl.class"); + + @Autowired + private CommunityOrderMapper communityOrderMapper; + @Autowired + private CommunityPayMapper communityPayMapper; + @Autowired + private ServiceOrderMapper serviceOrderMapper; + @Autowired + private UsedProductOrderMapper usedProductOrderMapper; + @Autowired + private CommunityActivityMapper communityActivityMapper; + @Autowired + private CommunityActivityUserMapper communityActivityUserMapper; + + public String payInfo(String no,String url,Integer type){ + //创建一个Client实例,其值在config中 + DefaultAlipayClient client = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, + "json", "utf8", AlipayConfig.alipay_public_key,AlipayConfig.sign_type); + + //封装订单信息 + Map map = new HashMap(); + String subject = null; + double money = 0; + + //判断是哪一张订单 + switch (type){ + case 0: + ServiceOrder serviceOrder = serviceOrderMapper.selectByNo(no); + subject = "服务订单"; + money = serviceOrder.getOrderPrice(); + break; + case 1: + UsedProductOrder usedProductOrder = usedProductOrderMapper.selectByNo(no); + subject = "商品订单"; + money = usedProductOrder.getOrderMoney(); + break; + case 2: + //社区活动订单,并封装到map中 + CommunityOrder communityOrder = communityOrderMapper.selectByNo(no); + subject = "活动订单"; + money = communityOrder.getCoMoney(); + break; + } + map.put("subject",subject); //订单名 + map.put("out_trade_no",no); //订单编号 + map.put("timeout_express","10m"); //订单超时时间10分钟 + map.put("total_amount",String.valueOf(money)); //订单金额 + map.put("product_code","FAST_INSTANT_TRADE_PAY"); //产品码,必填 + + //发送数据,先将数据转为request,最后通过client发出去,使用fastjson的toString方法 + //支付方式 +// AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();// APP支付 +// AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); // 网页支付 + AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); //移动h5 + + + //异步同步通知跳转url + request.setNotifyUrl(AlipayConfig.notify_url); + //支付完成后跳转的地址,通过前端传递 + request.setReturnUrl(url); + + request.setBizContent(JSON.toJSONString(map)); + logger.info(JSON.toJSONString(map)); + String response = null; + try { + response = client.pageExecute(request).getBody(); + logger.info(response); + } catch (AlipayApiException e) { + e.printStackTrace(); + } + System.out.println(response); + return response; + } + + @Override + public void delNotifyUrl(Map requestParams, Map trade, HttpServletResponse response) { + Map params = new HashMap(); + for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) { + String name = (String) iter.next(); + String[] values = (String[]) requestParams.get(name); + String valueStr = ""; + for (int i = 0; i < values.length; i++) { + valueStr = (i == values.length - 1) ? valueStr + values[i] + : valueStr + values[i] + ","; + } + System.out.println(name+" : "+valueStr); + //乱码解决,这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化 + //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk"); + params.put(name, valueStr); + } + + //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以上仅供参考)// + //计算得出通知验证结果 + //boolean AlipaySignature.rsaCheckV1(Map params, String publicKey, String charset, String sign_type) + boolean verify_result = false; + try { + verify_result = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset, "RSA2"); + } catch (AlipayApiException e) { + e.printStackTrace(); + } + + if(verify_result){//验证成功 + ////////////////////////////////////////////////////////////////////////////////////////// + //请在这里加上商户的业务逻辑程序代码 + + //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)// + //商户订单号 + String out_trade_no = trade.get("out_trade_no").toString(); + //支付宝交易号 + String trade_no = trade.get("trade_no").toString(); + //交易状态 + String trade_status = trade.get("trade_status").toString(); + if(trade_status.equals("TRADE_FINISHED")){ + //判断该笔订单是否在商户网站中已经做过处理 + //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 + //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 + //如果有做过处理,不执行商户的业务程序 + System.out.println("************************"); + //注意: + //如果签约的是可退款协议,退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 + //如果没有签约可退款协议,那么付款完成后,支付宝系统发送该交易状态通知。 + } else if (trade_status.equals("TRADE_SUCCESS")){ + //判断该笔订单是否在商户网站中已经做过处理 + //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 + //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 + //如果有做过处理,不执行商户的业务程序 + if(params.get("out_biz_no")!=null){ + System.out.println("这是退款"); + System.out.println(params.get("return_url")); + }else{ + System.out.println(params.get("return_url")); + System.out.println("这是支付"); + if(params.get("subject").equals("活动订单")){ + System.out.println("活动订单"); + //更改活动订单状态 + CommunityOrder communityOrder = communityOrderMapper.selectByNo(params.get("out_trade_no").toString()); + communityOrder.setCoStatus(1); + communityOrderMapper.updateByPrimaryKeySelective(communityOrder); + //增加活动人数,新增活动用户信息 + CommunityActivity communityActivity = communityActivityMapper.selectByPrimaryKey(communityOrder.getCoActivityId()); + communityActivity.setCaPeopelCount(communityActivity.getCaPeopelCount()+1); + communityActivityMapper.updateByPrimaryKeySelective(communityActivity); + //更新用户报名状态 + CommunityActivityUser communityActivityUser = communityActivityUserMapper.selectById(communityOrder.getCoActivityId(),communityOrder.getCoUserId()); + communityActivityUser.setCauSignStatus(1); + communityActivityUserMapper.updateByPrimaryKeySelective(communityActivityUser); + }else if(params.get("subject").equals("服务订单")){ + System.out.println("服务订单"); + //更改订单状态 + ServiceOrder serviceOrder = serviceOrderMapper.selectByNo(params.get("out_trade_no").toString()); + serviceOrder.setStatus(0); + serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder); + }else{ + System.out.println("商品订单"); + //更改商品订单状态 + UsedProductOrder usedProductOrder = usedProductOrderMapper.selectByNo(params.get("out_trade_no").toString()); + usedProductOrder.setOrderStatus(1); + usedProductOrderMapper.updateByPrimaryKeySelective(usedProductOrder); + } + } + //支付表 + /** + * seller_email + * total_amount + * out_trade_no + * trade_no + * seller_id + * gmt_create 创建时间 + * subject 商品名字 + * buyer_id + * buyer_logon_id + */ + //注意: + //如果签约的是可退款协议,那么付款完成后,支付宝系统发送该交易状态通知。 + } + + //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— + + //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— +// out.clear(); + try { + response.getWriter().println("success"); //请不要修改或删除 + } catch (IOException e) { + e.printStackTrace(); + } + + ////////////////////////////////////////////////////////////////////////////////////////// + }else{//验证失败 + try { + response.getWriter().println("fail"); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + @Override + public String refund(String no, Integer type) { + //创建一个Client实例,其值在config中 + AlipayClient client = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, + "json", "utf8", AlipayConfig.alipay_public_key,AlipayConfig.sign_type); + + //创建api对应的request类 + AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); + + //定义一个map封装数据 + Map map = new HashMap(); + String money = null; + + //根据订单编号查询订单信息,并封装 + AlipayTradeRefundModel model = new AlipayTradeRefundModel(); + switch (type){ + case 0: + ServiceOrder serviceOrder = serviceOrderMapper.selectByNo(no); + money = String.valueOf(serviceOrder.getOrderPrice()-serviceOrder.getStopPrice()); + break; + case 1: + UsedProductOrder usedProductOrder = usedProductOrderMapper.selectByNo(no); + money = String.valueOf(usedProductOrder.getOrderMoney()); + break; + case 2: + //CommunityPay communityPay = communityPayMapper.selectByNo(no); + CommunityOrder communityOrder = communityOrderMapper.selectByNo(no); + money = String.valueOf(communityOrder.getCoMoney()); +// map.put("out_trade_no",no); +// map.put("trade_no",communityPay.getCpNum()); +// map.put("out_request_no","HZ01RF001"); +// map.put("refund_amount",0.03); + break; + } + model.setRefundAmount(money); + model.setOutTradeNo(no); + model.setOutRequestNo("HZ01RF001"); + model.setRefundReason("121425不想要了"); +// request.setBizContent(JSON.toJSONString(map)); + request.setBizModel(model); + logger.info(String.valueOf(model)); + String response = null; + try { +// response = client.pageExecute(request).getBody(); + response = client.execute(request).getBody(); + logger.info(response); + } catch (AlipayApiException e) { + e.printStackTrace(); + } + return response; + } +} diff --git a/payservice/src/main/java/com/woniu/util/logFile.java b/payservice/src/main/java/com/woniu/util/logFile.java new file mode 100644 index 0000000000000000000000000000000000000000..d50d704a46cda6536580774a7c074f3a128ba4e6 --- /dev/null +++ b/payservice/src/main/java/com/woniu/util/logFile.java @@ -0,0 +1,30 @@ +package com.woniu.util; + +import com.woniu.config.AlipayConfig; + +import java.io.FileWriter; +import java.io.IOException; + +public class logFile { + /** + * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库) + * @param sWord 要写入日志里的文本内容 + */ + public static void logResult(String sWord) { + FileWriter writer = null; + try { + writer = new FileWriter(AlipayConfig.log_path + "alipay_log_" + System.currentTimeMillis()+".txt"); + writer.write(sWord); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (writer != null) { + try { + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } +} diff --git a/payservice/src/main/resources/application.yml b/payservice/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..a8ee6ec33ff02713673a63acca348fcc8d8a3442 --- /dev/null +++ b/payservice/src/main/resources/application.yml @@ -0,0 +1,24 @@ +spring: + datasource: + password: 20200322 + username: develop + url: jdbc:mysql://106.12.148.100:3307/happycommunity?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 + driver-class-name: com.mysql.jdbc.Driver + jackson: + time-zone: GMT+8 + date-format: yyyy-MM-dd HH:mm + redis: + host: localhost + port: 6379 + application: + name: pay +mybatis: + configuration: + map-underscore-to-camel-case: true + mapper-locations: classpath:mapper/*.xml +server: + port: 8012 +eureka: + client: + service-url: + defaultZone: http://localhost:8761/eureka \ No newline at end of file diff --git a/payservice/src/main/resources/generatorConfig.xml b/payservice/src/main/resources/generatorConfig.xml new file mode 100644 index 0000000000000000000000000000000000000000..0b0844e0fd646b7bf83f486e3b5b65d4efe7425d --- /dev/null +++ b/payservice/src/main/resources/generatorConfig.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+
\ No newline at end of file diff --git a/payservice/src/main/resources/mapper/CommunityActivityMapper.xml b/payservice/src/main/resources/mapper/CommunityActivityMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..c314bc55cb856e2749054c73907f0323bd514842 --- /dev/null +++ b/payservice/src/main/resources/mapper/CommunityActivityMapper.xml @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, ca_user_id, ca_type, ca_title, ca_content, ca_start_time, ca_end_time, ca_status, + ca_money, ca_peopel_count, ca_max_people_count, ca_create_time, ca_examine_status, + ca_examinetime + + + ca_pic_path + + + + delete from community_activity + where id = #{id,jdbcType=INTEGER} + + + insert into community_activity (id, ca_user_id, ca_type, + ca_title, ca_content, ca_start_time, + ca_end_time, ca_status, ca_money, + ca_peopel_count, ca_max_people_count, ca_create_time, + ca_examine_status, ca_examinetime, ca_pic_path + ) + values (#{id,jdbcType=INTEGER}, #{caUserId,jdbcType=INTEGER}, #{caType,jdbcType=INTEGER}, + #{caTitle,jdbcType=VARCHAR}, #{caContent,jdbcType=VARCHAR}, #{caStartTime,jdbcType=TIMESTAMP}, + #{caEndTime,jdbcType=TIMESTAMP}, #{caStatus,jdbcType=INTEGER}, #{caMoney,jdbcType=DOUBLE}, + #{caPeopelCount,jdbcType=INTEGER}, #{caMaxPeopleCount,jdbcType=INTEGER}, #{caCreateTime,jdbcType=TIMESTAMP}, + #{caExamineStatus,jdbcType=INTEGER}, #{caExaminetime,jdbcType=DATE}, #{caPicPath,jdbcType=LONGVARCHAR} + ) + + + insert into community_activity + + + id, + + + ca_user_id, + + + ca_type, + + + ca_title, + + + ca_content, + + + ca_start_time, + + + ca_end_time, + + + ca_status, + + + ca_money, + + + ca_peopel_count, + + + ca_max_people_count, + + + ca_create_time, + + + ca_examine_status, + + + ca_examinetime, + + + ca_pic_path, + + + + + #{id,jdbcType=INTEGER}, + + + #{caUserId,jdbcType=INTEGER}, + + + #{caType,jdbcType=INTEGER}, + + + #{caTitle,jdbcType=VARCHAR}, + + + #{caContent,jdbcType=VARCHAR}, + + + #{caStartTime,jdbcType=TIMESTAMP}, + + + #{caEndTime,jdbcType=TIMESTAMP}, + + + #{caStatus,jdbcType=INTEGER}, + + + #{caMoney,jdbcType=DOUBLE}, + + + #{caPeopelCount,jdbcType=INTEGER}, + + + #{caMaxPeopleCount,jdbcType=INTEGER}, + + + #{caCreateTime,jdbcType=TIMESTAMP}, + + + #{caExamineStatus,jdbcType=INTEGER}, + + + #{caExaminetime,jdbcType=DATE}, + + + #{caPicPath,jdbcType=LONGVARCHAR}, + + + + + update community_activity + + + ca_user_id = #{caUserId,jdbcType=INTEGER}, + + + ca_type = #{caType,jdbcType=INTEGER}, + + + ca_title = #{caTitle,jdbcType=VARCHAR}, + + + ca_content = #{caContent,jdbcType=VARCHAR}, + + + ca_start_time = #{caStartTime,jdbcType=TIMESTAMP}, + + + ca_end_time = #{caEndTime,jdbcType=TIMESTAMP}, + + + ca_status = #{caStatus,jdbcType=INTEGER}, + + + ca_money = #{caMoney,jdbcType=DOUBLE}, + + + ca_peopel_count = #{caPeopelCount,jdbcType=INTEGER}, + + + ca_max_people_count = #{caMaxPeopleCount,jdbcType=INTEGER}, + + + ca_create_time = #{caCreateTime,jdbcType=TIMESTAMP}, + + + ca_examine_status = #{caExamineStatus,jdbcType=INTEGER}, + + + ca_examinetime = #{caExaminetime,jdbcType=DATE}, + + + ca_pic_path = #{caPicPath,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update community_activity + set ca_user_id = #{caUserId,jdbcType=INTEGER}, + ca_type = #{caType,jdbcType=INTEGER}, + ca_title = #{caTitle,jdbcType=VARCHAR}, + ca_content = #{caContent,jdbcType=VARCHAR}, + ca_start_time = #{caStartTime,jdbcType=TIMESTAMP}, + ca_end_time = #{caEndTime,jdbcType=TIMESTAMP}, + ca_status = #{caStatus,jdbcType=INTEGER}, + ca_money = #{caMoney,jdbcType=DOUBLE}, + ca_peopel_count = #{caPeopelCount,jdbcType=INTEGER}, + ca_max_people_count = #{caMaxPeopleCount,jdbcType=INTEGER}, + ca_create_time = #{caCreateTime,jdbcType=TIMESTAMP}, + ca_examine_status = #{caExamineStatus,jdbcType=INTEGER}, + ca_examinetime = #{caExaminetime,jdbcType=DATE}, + ca_pic_path = #{caPicPath,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=INTEGER} + + + update community_activity + set ca_user_id = #{caUserId,jdbcType=INTEGER}, + ca_type = #{caType,jdbcType=INTEGER}, + ca_title = #{caTitle,jdbcType=VARCHAR}, + ca_content = #{caContent,jdbcType=VARCHAR}, + ca_start_time = #{caStartTime,jdbcType=TIMESTAMP}, + ca_end_time = #{caEndTime,jdbcType=TIMESTAMP}, + ca_status = #{caStatus,jdbcType=INTEGER}, + ca_money = #{caMoney,jdbcType=DOUBLE}, + ca_peopel_count = #{caPeopelCount,jdbcType=INTEGER}, + ca_max_people_count = #{caMaxPeopleCount,jdbcType=INTEGER}, + ca_create_time = #{caCreateTime,jdbcType=TIMESTAMP}, + ca_examine_status = #{caExamineStatus,jdbcType=INTEGER}, + ca_examinetime = #{caExaminetime,jdbcType=DATE} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/payservice/src/main/resources/mapper/CommunityActivityUserMapper.xml b/payservice/src/main/resources/mapper/CommunityActivityUserMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..9bf0941abb4d0bb018766e04bc33bc5dbc264fba --- /dev/null +++ b/payservice/src/main/resources/mapper/CommunityActivityUserMapper.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + id, cau_activity_id, cau_user_id, cau_sign_status + + + + delete from community_activity_user + where id = #{id,jdbcType=INTEGER} + + + insert into community_activity_user (id, cau_activity_id, cau_user_id, + cau_sign_status) + values (#{id,jdbcType=INTEGER}, #{cauActivityId,jdbcType=INTEGER}, #{cauUserId,jdbcType=INTEGER}, + #{cauSignStatus,jdbcType=INTEGER}) + + + insert into community_activity_user + + + id, + + + cau_activity_id, + + + cau_user_id, + + + cau_sign_status, + + + + + #{id,jdbcType=INTEGER}, + + + #{cauActivityId,jdbcType=INTEGER}, + + + #{cauUserId,jdbcType=INTEGER}, + + + #{cauSignStatus,jdbcType=INTEGER}, + + + + + update community_activity_user + + + cau_activity_id = #{cauActivityId,jdbcType=INTEGER}, + + + cau_user_id = #{cauUserId,jdbcType=INTEGER}, + + + cau_sign_status = #{cauSignStatus,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update community_activity_user + set cau_activity_id = #{cauActivityId,jdbcType=INTEGER}, + cau_user_id = #{cauUserId,jdbcType=INTEGER}, + cau_sign_status = #{cauSignStatus,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/payservice/src/main/resources/mapper/CommunityOrderMapper.xml b/payservice/src/main/resources/mapper/CommunityOrderMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..dab29be687da92ea541e06d377e16554598ad992 --- /dev/null +++ b/payservice/src/main/resources/mapper/CommunityOrderMapper.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + id, co_user_id, co_num, co_money, co_status, co_receive_name, co_note, co_type, co_create_time, + co_name, co_activity_id + + + + delete from community_order + where id = #{id,jdbcType=INTEGER} + + + insert into community_order (id, co_user_id, co_num, + co_money, co_status, co_receive_name, + co_note, co_type, co_create_time, + co_name, co_activity_id) + values (#{id,jdbcType=INTEGER}, #{coUserId,jdbcType=INTEGER}, #{coNum,jdbcType=VARCHAR}, + #{coMoney,jdbcType=DOUBLE}, #{coStatus,jdbcType=INTEGER}, #{coReceiveName,jdbcType=VARCHAR}, + #{coNote,jdbcType=VARCHAR}, #{coType,jdbcType=INTEGER}, #{coCreateTime,jdbcType=TIMESTAMP}, + #{coName,jdbcType=VARCHAR}, #{coActivityId,jdbcType=INTEGER}) + + + insert into community_order + + + id, + + + co_user_id, + + + co_num, + + + co_money, + + + co_status, + + + co_receive_name, + + + co_note, + + + co_type, + + + co_create_time, + + + co_name, + + + co_activity_id, + + + + + #{id,jdbcType=INTEGER}, + + + #{coUserId,jdbcType=INTEGER}, + + + #{coNum,jdbcType=VARCHAR}, + + + #{coMoney,jdbcType=DOUBLE}, + + + #{coStatus,jdbcType=INTEGER}, + + + #{coReceiveName,jdbcType=VARCHAR}, + + + #{coNote,jdbcType=VARCHAR}, + + + #{coType,jdbcType=INTEGER}, + + + #{coCreateTime,jdbcType=TIMESTAMP}, + + + #{coName,jdbcType=VARCHAR}, + + + #{coActivityId,jdbcType=INTEGER}, + + + + + update community_order + + + co_user_id = #{coUserId,jdbcType=INTEGER}, + + + co_num = #{coNum,jdbcType=VARCHAR}, + + + co_money = #{coMoney,jdbcType=DOUBLE}, + + + co_status = #{coStatus,jdbcType=INTEGER}, + + + co_receive_name = #{coReceiveName,jdbcType=VARCHAR}, + + + co_note = #{coNote,jdbcType=VARCHAR}, + + + co_type = #{coType,jdbcType=INTEGER}, + + + co_create_time = #{coCreateTime,jdbcType=TIMESTAMP}, + + + co_name = #{coName,jdbcType=VARCHAR}, + + + co_activity_id = #{coActivityId,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update community_order + set co_user_id = #{coUserId,jdbcType=INTEGER}, + co_num = #{coNum,jdbcType=VARCHAR}, + co_money = #{coMoney,jdbcType=DOUBLE}, + co_status = #{coStatus,jdbcType=INTEGER}, + co_receive_name = #{coReceiveName,jdbcType=VARCHAR}, + co_note = #{coNote,jdbcType=VARCHAR}, + co_type = #{coType,jdbcType=INTEGER}, + co_create_time = #{coCreateTime,jdbcType=TIMESTAMP}, + co_name = #{coName,jdbcType=VARCHAR}, + co_activity_id = #{coActivityId,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/payservice/src/main/resources/mapper/CommunityPayMapper.xml b/payservice/src/main/resources/mapper/CommunityPayMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b88d1cff8fe7e47b608f1941fcaab151abcda3a --- /dev/null +++ b/payservice/src/main/resources/mapper/CommunityPayMapper.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + id, cp_user_id, cp_order_num, cp_money, cp_product_note, cp_num, cp_payee_name, cp_payee_account, + cp_create_time + + + cp_note + + + + delete from community_pay + where id = #{id,jdbcType=INTEGER} + + + insert into community_pay (id, cp_user_id, cp_order_num, + cp_money, cp_product_note, cp_num, + cp_payee_name, cp_payee_account, cp_create_time, + cp_note) + values (#{id,jdbcType=INTEGER}, #{cpUserId,jdbcType=INTEGER}, #{cpOrderNum,jdbcType=VARCHAR}, + #{cpMoney,jdbcType=DOUBLE}, #{cpProductNote,jdbcType=VARCHAR}, #{cpNum,jdbcType=VARCHAR}, + #{cpPayeeName,jdbcType=VARCHAR}, #{cpPayeeAccount,jdbcType=VARCHAR}, #{cpCreateTime,jdbcType=TIMESTAMP}, + #{cpNote,jdbcType=LONGVARCHAR}) + + + insert into community_pay + + + id, + + + cp_user_id, + + + cp_order_num, + + + cp_money, + + + cp_product_note, + + + cp_num, + + + cp_payee_name, + + + cp_payee_account, + + + cp_create_time, + + + cp_note, + + + + + #{id,jdbcType=INTEGER}, + + + #{cpUserId,jdbcType=INTEGER}, + + + #{cpOrderNum,jdbcType=VARCHAR}, + + + #{cpMoney,jdbcType=DOUBLE}, + + + #{cpProductNote,jdbcType=VARCHAR}, + + + #{cpNum,jdbcType=VARCHAR}, + + + #{cpPayeeName,jdbcType=VARCHAR}, + + + #{cpPayeeAccount,jdbcType=VARCHAR}, + + + #{cpCreateTime,jdbcType=TIMESTAMP}, + + + #{cpNote,jdbcType=LONGVARCHAR}, + + + + + update community_pay + + + cp_user_id = #{cpUserId,jdbcType=INTEGER}, + + + cp_order_num = #{cpOrderNum,jdbcType=VARCHAR}, + + + cp_money = #{cpMoney,jdbcType=DOUBLE}, + + + cp_product_note = #{cpProductNote,jdbcType=VARCHAR}, + + + cp_num = #{cpNum,jdbcType=VARCHAR}, + + + cp_payee_name = #{cpPayeeName,jdbcType=VARCHAR}, + + + cp_payee_account = #{cpPayeeAccount,jdbcType=VARCHAR}, + + + cp_create_time = #{cpCreateTime,jdbcType=TIMESTAMP}, + + + cp_note = #{cpNote,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update community_pay + set cp_user_id = #{cpUserId,jdbcType=INTEGER}, + cp_order_num = #{cpOrderNum,jdbcType=VARCHAR}, + cp_money = #{cpMoney,jdbcType=DOUBLE}, + cp_product_note = #{cpProductNote,jdbcType=VARCHAR}, + cp_num = #{cpNum,jdbcType=VARCHAR}, + cp_payee_name = #{cpPayeeName,jdbcType=VARCHAR}, + cp_payee_account = #{cpPayeeAccount,jdbcType=VARCHAR}, + cp_create_time = #{cpCreateTime,jdbcType=TIMESTAMP}, + cp_note = #{cpNote,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=INTEGER} + + + update community_pay + set cp_user_id = #{cpUserId,jdbcType=INTEGER}, + cp_order_num = #{cpOrderNum,jdbcType=VARCHAR}, + cp_money = #{cpMoney,jdbcType=DOUBLE}, + cp_product_note = #{cpProductNote,jdbcType=VARCHAR}, + cp_num = #{cpNum,jdbcType=VARCHAR}, + cp_payee_name = #{cpPayeeName,jdbcType=VARCHAR}, + cp_payee_account = #{cpPayeeAccount,jdbcType=VARCHAR}, + cp_create_time = #{cpCreateTime,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/payservice/src/main/resources/mapper/ServiceOrderMapper.xml b/payservice/src/main/resources/mapper/ServiceOrderMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..09861376e63d2256adccf8b0e81d759cb48f50db --- /dev/null +++ b/payservice/src/main/resources/mapper/ServiceOrderMapper.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + id, serviceid, userid, starttime, endtime, status, ordernumber, ordername, ordertype, + order_price, stop_price + + + + delete from service_order + where id = #{id,jdbcType=INTEGER} + + + insert into service_order (id, serviceid, userid, + starttime, endtime, status, + ordernumber, ordername, ordertype, + order_price, stop_price) + values (#{id,jdbcType=INTEGER}, #{serviceid,jdbcType=INTEGER}, #{userid,jdbcType=INTEGER}, + #{starttime,jdbcType=TIMESTAMP}, #{endtime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, + #{ordernumber,jdbcType=VARCHAR}, #{ordername,jdbcType=VARCHAR}, #{ordertype,jdbcType=INTEGER}, + #{orderPrice,jdbcType=INTEGER}, #{stopPrice,jdbcType=INTEGER}) + + + insert into service_order + + + id, + + + serviceid, + + + userid, + + + starttime, + + + endtime, + + + status, + + + ordernumber, + + + ordername, + + + ordertype, + + + order_price, + + + stop_price, + + + + + #{id,jdbcType=INTEGER}, + + + #{serviceid,jdbcType=INTEGER}, + + + #{userid,jdbcType=INTEGER}, + + + #{starttime,jdbcType=TIMESTAMP}, + + + #{endtime,jdbcType=TIMESTAMP}, + + + #{status,jdbcType=INTEGER}, + + + #{ordernumber,jdbcType=VARCHAR}, + + + #{ordername,jdbcType=VARCHAR}, + + + #{ordertype,jdbcType=INTEGER}, + + + #{orderPrice,jdbcType=INTEGER}, + + + #{stopPrice,jdbcType=INTEGER}, + + + + + update service_order + + + serviceid = #{serviceid,jdbcType=INTEGER}, + + + userid = #{userid,jdbcType=INTEGER}, + + + starttime = #{starttime,jdbcType=TIMESTAMP}, + + + endtime = #{endtime,jdbcType=TIMESTAMP}, + + + status = #{status,jdbcType=INTEGER}, + + + ordernumber = #{ordernumber,jdbcType=VARCHAR}, + + + ordername = #{ordername,jdbcType=VARCHAR}, + + + ordertype = #{ordertype,jdbcType=INTEGER}, + + + order_price = #{orderPrice,jdbcType=INTEGER}, + + + stop_price = #{stopPrice,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update service_order + set serviceid = #{serviceid,jdbcType=INTEGER}, + userid = #{userid,jdbcType=INTEGER}, + starttime = #{starttime,jdbcType=TIMESTAMP}, + endtime = #{endtime,jdbcType=TIMESTAMP}, + status = #{status,jdbcType=INTEGER}, + ordernumber = #{ordernumber,jdbcType=VARCHAR}, + ordername = #{ordername,jdbcType=VARCHAR}, + ordertype = #{ordertype,jdbcType=INTEGER}, + order_price = #{orderPrice,jdbcType=INTEGER}, + stop_price = #{stopPrice,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/payservice/src/main/resources/mapper/UsedProductOrderMapper.xml b/payservice/src/main/resources/mapper/UsedProductOrderMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..db742c6b11dc5c76c18134d4a4d997010e8acebe --- /dev/null +++ b/payservice/src/main/resources/mapper/UsedProductOrderMapper.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + id, product_id, product_order_type, user_id, order_number, order_name, order_money, + order_status, consigneeId + + + + delete from used_product_order + where id = #{id,jdbcType=INTEGER} + + + insert into used_product_order (id, product_id, product_order_type, + user_id, order_number, order_name, + order_money, order_status, consigneeId + ) + values (#{id,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER}, #{productOrderType,jdbcType=INTEGER}, + #{userId,jdbcType=INTEGER}, #{orderNumber,jdbcType=VARCHAR}, #{orderName,jdbcType=VARCHAR}, + #{orderMoney,jdbcType=DOUBLE}, #{orderStatus,jdbcType=INTEGER}, #{consigneeid,jdbcType=INTEGER} + ) + + + insert into used_product_order + + + id, + + + product_id, + + + product_order_type, + + + user_id, + + + order_number, + + + order_name, + + + order_money, + + + order_status, + + + consigneeId, + + + + + #{id,jdbcType=INTEGER}, + + + #{productId,jdbcType=INTEGER}, + + + #{productOrderType,jdbcType=INTEGER}, + + + #{userId,jdbcType=INTEGER}, + + + #{orderNumber,jdbcType=VARCHAR}, + + + #{orderName,jdbcType=VARCHAR}, + + + #{orderMoney,jdbcType=DOUBLE}, + + + #{orderStatus,jdbcType=INTEGER}, + + + #{consigneeid,jdbcType=INTEGER}, + + + + + update used_product_order + + + product_id = #{productId,jdbcType=INTEGER}, + + + product_order_type = #{productOrderType,jdbcType=INTEGER}, + + + user_id = #{userId,jdbcType=INTEGER}, + + + order_number = #{orderNumber,jdbcType=VARCHAR}, + + + order_name = #{orderName,jdbcType=VARCHAR}, + + + order_money = #{orderMoney,jdbcType=DOUBLE}, + + + order_status = #{orderStatus,jdbcType=INTEGER}, + + + consigneeId = #{consigneeid,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update used_product_order + set product_id = #{productId,jdbcType=INTEGER}, + product_order_type = #{productOrderType,jdbcType=INTEGER}, + user_id = #{userId,jdbcType=INTEGER}, + order_number = #{orderNumber,jdbcType=VARCHAR}, + order_name = #{orderName,jdbcType=VARCHAR}, + order_money = #{orderMoney,jdbcType=DOUBLE}, + order_status = #{orderStatus,jdbcType=INTEGER}, + consigneeId = #{consigneeid,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/payservice/src/test/java/com/woniu/payservice/PayserviceApplicationTests.java b/payservice/src/test/java/com/woniu/payservice/PayserviceApplicationTests.java new file mode 100644 index 0000000000000000000000000000000000000000..cd18aef688591db4fd5146206f6de7673db07880 --- /dev/null +++ b/payservice/src/test/java/com/woniu/payservice/PayserviceApplicationTests.java @@ -0,0 +1,13 @@ +package com.woniu.payservice; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class PayserviceApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/pccenter/pom.xml b/pccenter/pom.xml index ac5365ac532ffeee974be4390e0df77c01285a86..7b74e38fcc9af60c4c94e3f2a4ac536ed8cc81ac 100644 --- a/pccenter/pom.xml +++ b/pccenter/pom.xml @@ -9,9 +9,9 @@ com.woniu - rbacdemo + pccenter 0.0.1-SNAPSHOT - rbacdemo + pccenter Demo project for Spring Boot @@ -105,12 +105,40 @@
+ + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + 2.2.2.RELEASE + + + + org.springframework.cloud + spring-cloud-starter-netflix-zuul + 2.2.2.RELEASE + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.swagger + swagger-annotations + + + io.swagger + swagger-models + + + io.springfox springfox-swagger-ui 2.9.2 - io.swagger swagger-annotations @@ -121,9 +149,6 @@ swagger-models 1.5.21 - - - diff --git a/pccenter/src/main/java/com/woniu/PccenterApplication.java b/pccenter/src/main/java/com/woniu/PccenterApplication.java index 8bf7ea7f8c770370ca8f92ebd3ebb2ed4bb95d7c..7c961e40d131263167e9ceebea544584c234ff60 100644 --- a/pccenter/src/main/java/com/woniu/PccenterApplication.java +++ b/pccenter/src/main/java/com/woniu/PccenterApplication.java @@ -3,9 +3,12 @@ package com.woniu; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @MapperScan(value = "com.woniu.dao") +@EnableEurekaClient public class PccenterApplication { public static void main(String[] args) { diff --git a/pccenter/src/main/java/com/woniu/config/ShiroConfig.java b/pccenter/src/main/java/com/woniu/config/ShiroConfig.java index 30c1bd02f86cff93f8a8f68c6aec655a60c99552..0fa4e6daa8dbcc7b7cac43575de6a7541e633b94 100644 --- a/pccenter/src/main/java/com/woniu/config/ShiroConfig.java +++ b/pccenter/src/main/java/com/woniu/config/ShiroConfig.java @@ -8,6 +8,7 @@ import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.web.mgt.CookieRememberMeManager; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.apache.shiro.web.servlet.SimpleCookie; +import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -18,6 +19,7 @@ import java.util.Map; @Configuration public class ShiroConfig { + //自定义域 @Bean public CustomRealm customRealm(HashedCredentialsMatcher credentialsMatcher,MemoryConstrainedCacheManager cacheManager){ CustomRealm customRealm = new CustomRealm(); @@ -25,7 +27,7 @@ public class ShiroConfig { customRealm.setCacheManager(cacheManager); return customRealm; } - + //shiro核心控制器 @Bean public DefaultWebSecurityManager securityManager(CustomRealm customRealm,CookieRememberMeManager rememberMeManager){ DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); @@ -33,7 +35,7 @@ public class ShiroConfig { securityManager.setRememberMeManager(rememberMeManager); return securityManager; } - + //过滤器 @Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultWebSecurityManager securityManager){ ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean(); @@ -44,11 +46,16 @@ public class ShiroConfig { map.put("/login","anon");//访问登录 map.put("/admin/subLogin","anon"); map.put("/src/**","anon"); - map.put("/**","authc"); + map.put("/logout","logout"); + map.put("/swagger-ui.html**", "anon"); + map.put("/v2/api-docs", "anon"); + map.put("/swagger-resources/**", "anon"); + map.put("/webjars/**", "anon"); + //map.put("/**","authc"); filterFactoryBean.setFilterChainDefinitionMap(map); return filterFactoryBean; } - + // 盐值加密 @Bean public HashedCredentialsMatcher credentialsMatcher(){ HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher(); @@ -56,17 +63,19 @@ public class ShiroConfig { credentialsMatcher.setHashIterations(1024); return credentialsMatcher; } - + //缓存管理 @Bean public MemoryConstrainedCacheManager cacheManager(){ return new MemoryConstrainedCacheManager(); } - @Bean //thymeleaf整合shiro;支持 shiro标签 + //thymeleaf整合shiro;支持 shiro标签 + @Bean public ShiroDialect shiroDialect(){ return new ShiroDialect(); } + //记住我管理器 @Bean public CookieRememberMeManager rememberMeManager(SimpleCookie cookie){ CookieRememberMeManager rememberMeManager = new CookieRememberMeManager(); @@ -74,6 +83,7 @@ public class ShiroConfig { return rememberMeManager; } + //cookie设置 @Bean public SimpleCookie simpleCookie(){ SimpleCookie cookie = new SimpleCookie(); @@ -82,25 +92,13 @@ public class ShiroConfig { return cookie; } - - - - - - - - - - - - - - - - - - - + //解决shiro 整合 spring aop 的时候,访问资源404的问题 + @Bean + public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator(){ + DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator(); + defaultAdvisorAutoProxyCreator.setUsePrefix(true); + return defaultAdvisorAutoProxyCreator; + } } diff --git a/pccenter/src/main/java/com/woniu/config/Swagger2Config.java b/pccenter/src/main/java/com/woniu/config/Swagger2Config.java new file mode 100644 index 0000000000000000000000000000000000000000..66a5943f162ac6d500f61068bd841ba850dba231 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/config/Swagger2Config.java @@ -0,0 +1,67 @@ +package com.woniu.config; + +import io.swagger.annotations.Api; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +@EnableSwagger2 +public class Swagger2Config extends WebMvcConfigurationSupport { + + @Bean + public Docket createRestApi(){ + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + //为当前包下controller生成API文档 +// .apis(RequestHandlerSelectors.basePackage("com.troila")) + //为有@Api注解的Controller生成API文档 +// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) + //为有@ApiOperation注解的方法生成API文档 +// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + //为任何接口生成API文档 + .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .build(); + //添加登录认证 + /*.securitySchemes(securitySchemes()) + .securityContexts(securityContexts());*/ + } + + private ApiInfo apiInfo() { + Contact contact = new Contact("yunqing", "", "yunqing****@gmail.com"); + return new ApiInfoBuilder() + .title("SwaggerUI演示") + .description("接口文档,描述词省略200字") + .contact(contact) + .version("1.0") + .build(); + } + + /** + * 配置swagger2的静态资源路径 + * @param registry + */ + @Override + protected void addResourceHandlers(ResourceHandlerRegistry registry) { + // 解决静态资源无法访问 + registry.addResourceHandler("/**") + .addResourceLocations("classpath:/static/"); + // 解决swagger无法访问 + registry.addResourceHandler("/swagger-ui.html") + .addResourceLocations("classpath:/META-INF/resources/"); + // 解决swagger的js文件无法访问 + registry.addResourceHandler("/webjars/**") + .addResourceLocations("classpath:/META-INF/resources/webjars/"); + } +} diff --git a/pccenter/src/main/java/com/woniu/config/WebMvcConfig.java b/pccenter/src/main/java/com/woniu/config/WebMvcConfig.java index 84116161d1011c09be7c335a2400e3d244ff5179..6dd5d197d1814575b876175a572e942440b21600 100644 --- a/pccenter/src/main/java/com/woniu/config/WebMvcConfig.java +++ b/pccenter/src/main/java/com/woniu/config/WebMvcConfig.java @@ -16,6 +16,13 @@ public class WebMvcConfig implements WebMvcConfigurer { registry.addViewController("sys/roleList").setViewName("/sys/roleList"); registry.addViewController("sys/addRole").setViewName("/sys/addRole"); registry.addViewController("sys/menuList").setViewName("/sys/menuList"); - registry.addViewController("sys/editMenu").setViewName("/sys/editList"); + registry.addViewController("sys/pmList").setViewName("/sys/pmList"); + registry.addViewController("sys/complainList").setViewName("/sys/complainList"); + registry.addViewController("sys/merchantList").setViewName("/sys/merchantList"); + registry.addViewController("sys/activityList").setViewName("/sys/activityList"); + registry.addViewController("sys/ac_complainList").setViewName("/sys/ac_complainList"); + registry.addViewController("sys/service_commentList").setViewName("/sys/service_commentList"); + registry.addViewController("sys/dynamic_commentList").setViewName("/sys/dynamic_commentList"); + registry.addViewController("403").setViewName("/403"); } } diff --git a/pccenter/src/main/java/com/woniu/controller/ActivityComplainController.java b/pccenter/src/main/java/com/woniu/controller/ActivityComplainController.java new file mode 100644 index 0000000000000000000000000000000000000000..261607e5893b2cf1bbe798eef3145b5a7f80bccd --- /dev/null +++ b/pccenter/src/main/java/com/woniu/controller/ActivityComplainController.java @@ -0,0 +1,116 @@ +package com.woniu.controller; + +import com.github.pagehelper.PageInfo; +import com.woniu.common.CommonResult; +import com.woniu.dto.ActivityComplainDTO; +import com.woniu.service.ActivityComplainService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import java.util.List; + +@Controller +@RequestMapping("/ac_complain") +@Api(tags ="活动投诉") +public class ActivityComplainController { + + @Autowired + private ActivityComplainService acComplainService; + + /** + * 分页查询活动投诉的列表信息 + * @param currentPage + * @param pageSize + * @return + */ + @RequestMapping("list") + @ResponseBody + @RequiresPermissions("sys:acc:list") + @ApiOperation(value = "活动投诉列表分页查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "每页数据条数",defaultValue = "5") + }) + public CommonResult list(@RequestParam(value = "page",defaultValue = "1",required = false)Integer currentPage, + @RequestParam(value = "limit",defaultValue = "5",required = false)Integer pageSize){ + PageInfo info=null; + try { + List list=acComplainService.findByPage(currentPage,pageSize); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + /** + * 导航到回复投诉的页面 + * @param id + * @return + */ + @RequestMapping("/reply/{id}") + @ResponseBody + @RequiresPermissions("sys:acc:reply") + @ApiOperation(value = "导航到回复投诉的页面") + @ApiImplicitParam(name = "id",value = "投诉列表ID",dataType = "Integer") + public ModelAndView reply(@PathVariable("id")Integer id){ + ActivityComplainDTO activityComplainDTO=acComplainService.findById(id); + ModelAndView model=new ModelAndView("sys/ac_reply"); + model.addObject("ActivityComplainDTO",activityComplainDTO); + return model; + } + + /** + * 投诉回复内容的添加 + * @param activityComplainDTO + * @return + */ + @PutMapping("/editComplain") + @ResponseBody + @ApiOperation(value = "投诉回复内容的添加") + @ApiImplicitParam(name = "activityComplainDTO",value = "回复内容") + public CommonResult addReply(ActivityComplainDTO activityComplainDTO){ + try { + acComplainService.addReply(activityComplainDTO); + return CommonResult.success("回复上传成功!"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("回复上传失败!"); + } + + } + + /** + * 搜索功能 + * @param nickName + * @param title + * @return + */ + @RequestMapping("/select") + @ResponseBody + @ApiOperation(value = "活动投诉页面搜索") + @ApiImplicitParams({ + @ApiImplicitParam(name = "nickName",value = "用户姓名"), + @ApiImplicitParam(name = "title",value = "活动标题") + }) + public CommonResult select(String nickName,String title){ + PageInfo info=null; + try { + List list=acComplainService.select(nickName,title); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + + } + +} diff --git a/pccenter/src/main/java/com/woniu/controller/ActivityController.java b/pccenter/src/main/java/com/woniu/controller/ActivityController.java new file mode 100644 index 0000000000000000000000000000000000000000..011de0a210040b49f6b97ce2a6e63165bbf55e46 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/controller/ActivityController.java @@ -0,0 +1,121 @@ +package com.woniu.controller; + +import com.github.pagehelper.PageInfo; +import com.woniu.common.CommonResult; +import com.woniu.dto.ActivityDTO; +import com.woniu.service.ActivityService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; +@Controller +@RequestMapping("/activity") +@Api(tags = "活动审批模块") +public class ActivityController { + + @Autowired + private ActivityService activityService; + + /** + * 分页查询活动审批数据 + * @param currentPage + * @param pageSize + * @return + */ + @RequestMapping("/list") + @ResponseBody + @RequiresPermissions("sys:al:list") + @ApiOperation(value = "活动审批分页查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "每页数据条数",defaultValue = "5") + }) + public CommonResult pmList(@RequestParam(value = "page",defaultValue = "1",required = false)Integer currentPage, + @RequestParam(value = "limit",defaultValue = "5",required = false)Integer pageSize){ + PageInfo info = null; + try { + List list=activityService.findListByPage(currentPage,pageSize); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + + } + + /** + * 修改审批状态 + * @param id + * @return + */ + @PutMapping("/confirm/{id}") + @ResponseBody + @RequiresPermissions("sys:al:examine") + @ApiOperation(value = "活动审批") + @ApiImplicitParam(name = "id",value = "活动编号id值",dataType = "Integer") + public CommonResult confirmPM(@PathVariable("id") Integer id){ + System.out.println("活动确认审核"+id); + Date examineTime=new Date(); + try { + activityService.editStatusById(id,examineTime); + } catch (Exception e) { + e.printStackTrace(); + CommonResult.failed("审批失败"); + } + return CommonResult.success("审批成功"); + } + + /** + * 页面查询功能 + * @param name + * @param status + * @return + */ + @RequestMapping("/select") + @ResponseBody + @ApiOperation(value = "活动审批页面搜索") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name",value = "用户名称"), + @ApiImplicitParam(name = "status",value = "审批状态",dataType = "Integer") + }) + public CommonResult select(String name,Integer status){ + PageInfo info=null; + try { + List list=activityService.select(name,status); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 拒绝审批操作 + * @param id + * @return + */ + @RequestMapping("/refuse/{id}") + @ResponseBody + @ApiOperation(value = "拒绝审批") + @ApiImplicitParam(name = "id",value = "活动编号id值",dataType = "Integer") + public CommonResult refuse(@PathVariable("id")Integer id){ + //获取当前时间 + Date examineTime=new Date(); + try { + activityService.refuse(id,examineTime); + return CommonResult.success("操作成功!"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("操作失败!"); + } + } +} diff --git a/pccenter/src/main/java/com/woniu/controller/AdminController.java b/pccenter/src/main/java/com/woniu/controller/AdminController.java index fe473380e90cd08d2f9f0910785481f7e6fda05f..f41970ed4755b1eed85ab0c9c7253b817b167906 100644 --- a/pccenter/src/main/java/com/woniu/controller/AdminController.java +++ b/pccenter/src/main/java/com/woniu/controller/AdminController.java @@ -7,6 +7,10 @@ import com.woniu.pojo.Admin; import com.woniu.pojo.Roles; import com.woniu.service.AdminService; import com.woniu.service.RolesService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Transformer; import org.apache.shiro.SecurityUtils; @@ -14,6 +18,7 @@ import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -26,9 +31,9 @@ import java.util.Arrays; import java.util.List; - @Controller @RequestMapping("/admin") +@Api(tags = "管理员列表") public class AdminController { @Autowired @@ -46,6 +51,12 @@ public class AdminController { */ @RequestMapping("/list") @ResponseBody + @RequiresPermissions("sys:admin:list") + @ApiOperation(value = "管理员列表分页展示数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "页面数据条数",defaultValue = "5") + }) public CommonResult list(@RequestParam(value = "page", defaultValue = "1", required = false) Integer currentPage, @RequestParam(value = "limit", defaultValue = "10", required = false) Integer pageSize) { PageInfo info = null; @@ -68,6 +79,7 @@ public class AdminController { * @param modelAndView * @return */ + @ApiOperation(value = "导航到添加管理员页面") @RequestMapping("/addAdmin") public ModelAndView addAdmin(ModelAndView modelAndView) { List roles = rolesService.findAll(); @@ -84,6 +96,9 @@ public class AdminController { */ @PostMapping("/saveAdmin") @ResponseBody + @RequiresPermissions("sys:admin:save") + @ApiOperation(value = "添加管理员") + @ApiImplicitParam(name = "admin",value = "前端获取添加管理员的信息",paramType = "form") public CommonResult saveAdmin(Admin admin) { //验证用户名是否重复 @@ -108,8 +123,10 @@ public class AdminController { */ @DeleteMapping("/delAdmin/{keys}") @ResponseBody + @RequiresPermissions("sys:admin:delete") + @ApiOperation(value = "批量删除管理员") + @ApiImplicitParam(name = "keys",value = "管理员id值的字符串",required = true) public CommonResult delAdmin(@PathVariable("keys") String keys) { - //List list = Arrays.stream(keys.split(",")).map(s->Long.parseLong(s)).collect(Collectors.toList()); List keysStringList = Arrays.asList(keys.split(",")); List list = new ArrayList<>(); CollectionUtils.collect(keysStringList, new Transformer() { @@ -133,6 +150,7 @@ public class AdminController { * @return */ @RequestMapping("/editAdmin/{id}") + @ApiOperation(value = "导航到编辑页面") public ModelAndView editAdmin(@PathVariable("id") Integer id) { Admin admin = adminService.findById(id); ModelAndView modelAndView = new ModelAndView("/sys/editAdmin"); @@ -150,6 +168,9 @@ public class AdminController { */ @PutMapping("/updateAdmin") @ResponseBody + @RequiresPermissions("sys:admin:update") + @ApiOperation(value ="更新管理员" ) + @ApiImplicitParam(name = "admin",value = "传入修改管理员信息的值",paramType = "form") public CommonResult updateAdmin(Admin admin) { Admin dbAdmin = adminService.checkName(admin); if (dbAdmin != null) { @@ -173,6 +194,9 @@ public class AdminController { */ @DeleteMapping("/deleteAdmin/{id}") @ResponseBody + @RequiresPermissions("sys:admin:delete") + @ApiOperation(value = "删除管理员") + @ApiImplicitParam(name = "id",value = "管理员ID值",dataType = "Integer") public CommonResult deleteAdmin(@PathVariable("id") Integer id) { try { adminService.deleteById(id); @@ -184,10 +208,19 @@ public class AdminController { } - //平台管理员登录 + /** + * 登录的验证 + * @param admin + * @return + */ + @PostMapping("/subLogin") @ResponseBody + @ApiOperation(value = "后台管理员的登录验证") + @ApiImplicitParam(name = "admin",value = "账号与密码",required = true) public CommonResult subLogin(Admin admin) { + System.out.println("传入的账号:"+admin.getUsername()); + System.out.println("传入的密码:"+admin.getPassword()); if (StringUtils.isEmpty(admin.getUsername())) { return CommonResult.failed("用户名不能为空"); } @@ -209,7 +242,6 @@ public class AdminController { return CommonResult.failed("认证失败"); } return CommonResult.success("登录成功"); - } diff --git a/pccenter/src/main/java/com/woniu/controller/ComplainController.java b/pccenter/src/main/java/com/woniu/controller/ComplainController.java new file mode 100644 index 0000000000000000000000000000000000000000..e7299463d2ddc1e7261237481dbb9f3cb522b217 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/controller/ComplainController.java @@ -0,0 +1,119 @@ +package com.woniu.controller; + +import com.github.pagehelper.PageInfo; +import com.woniu.common.CommonResult; +import com.woniu.dto.ComplainDTO; +import com.woniu.service.ComplainService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.naming.Name; +import java.util.List; + +@Controller +@RequestMapping("/complain") +@Api(tags = "物业投诉模块") +public class ComplainController { + + @Autowired + private ComplainService complainService; + + /** + * 分页查询投诉订单列表 + * @param currentPage + * @param pageSize + * @return + */ + @RequestMapping("/list") + @ResponseBody + @RequiresPermissions("sys:pmc:list") + @ApiOperation(value = "分页查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "页面数据条数",defaultValue = "5") + }) + public CommonResult list(@RequestParam(value = "page",defaultValue = "1",required = false)Integer currentPage, + @RequestParam(value = "limit",defaultValue = "5",required = false)Integer pageSize){ + PageInfo info=null; + try { + List list=complainService.findByPage(currentPage,pageSize); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 导航到回复投诉的页面 + * @param id + * @return + */ + @RequestMapping("/reply/{id}") + @ResponseBody + @ApiOperation(value = "导航到回复投诉的页面") + @ApiImplicitParam(name = "id",value = "列表id",dataType = "Integer") + public ModelAndView reply(@PathVariable("id")Integer id){ + System.out.println("传入的id值为:"+id); + ComplainDTO complainDTO=complainService.findById(id); + ModelAndView model=new ModelAndView("sys/reply"); + model.addObject("complainDTO",complainDTO); + return model; + } + + /** + * 投诉回复内容的添加 + * @param complainDTO + * @return + */ + @PutMapping("/editComplain") + @ResponseBody + @RequiresPermissions("sys:pmc:reply") + @ApiOperation("投诉回复") + @ApiImplicitParam(name = "complainDTO",value = "回复内容",required = true) + public CommonResult addReply(ComplainDTO complainDTO){ + + try{ + complainService.addReply(complainDTO); + return CommonResult.success("回复上传成功"); + }catch (Exception e){ + e.printStackTrace(); + return CommonResult.failed("回复上传失败"); + } + + } + + /** + * 页面的查询功能 + * @param userName + * @param status + * @return + */ + @RequestMapping("/select") + @ResponseBody + @ApiOperation("页面查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userName",value = "用户名称"), + @ApiImplicitParam(name = "status",value = "审批状态") + }) + public CommonResult select(String userName,Integer status){ + + PageInfo info=null; + try { + List list=complainService.select(userName,status); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } +} diff --git a/pccenter/src/main/java/com/woniu/controller/DynamicCommentController.java b/pccenter/src/main/java/com/woniu/controller/DynamicCommentController.java new file mode 100644 index 0000000000000000000000000000000000000000..cd2d978121738ca13c6a7c12996f34a20c344bc1 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/controller/DynamicCommentController.java @@ -0,0 +1,91 @@ +package com.woniu.controller; + +import com.github.pagehelper.PageInfo; +import com.woniu.common.CommonResult; +import com.woniu.dto.DynamicCommentDTO; +import com.woniu.service.DynamicCommentService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Controller +@RequestMapping("/dynamic_comment") +@Api(tags ="活动评论") +public class DynamicCommentController { + @Autowired + private DynamicCommentService dc_Service; + + @RequestMapping("/list") + @ResponseBody + @RequiresPermissions("sys:dc:list") + @ApiOperation(value = "分页查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "页面数据条数",defaultValue = "5") + }) + public CommonResult list(@RequestParam(value = "page",defaultValue = "1",required = false)Integer currentPage, + @RequestParam(value = "limit",defaultValue = "5",required = false)Integer pageSize){ + PageInfo info=null; + try { + List list=dc_Service.findByPage(currentPage,pageSize); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 删除评论 + * @param id + * @return + */ + @DeleteMapping("/delComment/{id}") + @ResponseBody + @RequiresPermissions("sys:dc:delete") + @ApiOperation(value = "删除评论") + @ApiImplicitParam(name = "id",value = "活动评论列表id",dataType = "Integer") + public CommonResult delComment(@PathVariable("id")Integer id){ + try { + dc_Service.delComment(id); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("删除失败"); + } + return CommonResult.success("删除成功!"); + } + + /** + * 页面搜索 + * @param nickName + * @param dynamicType + * @return + */ + @RequestMapping("/select") + @ResponseBody + @ApiOperation("页面查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "nickName",value = "用户名称"), + @ApiImplicitParam(name = "dynamicType",value = "活动类型") + }) + public CommonResult select(String nickName,Integer dynamicType){ + + PageInfo info=null; + try { + List list=dc_Service.select(nickName,dynamicType); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } +} diff --git a/pccenter/src/main/java/com/woniu/controller/MenusController.java b/pccenter/src/main/java/com/woniu/controller/MenusController.java index cf731af5b84fe0bfffab612b9005d082381cebe8..6e5c485287495508eb4a2b246509f218f117d4e1 100644 --- a/pccenter/src/main/java/com/woniu/controller/MenusController.java +++ b/pccenter/src/main/java/com/woniu/controller/MenusController.java @@ -8,7 +8,12 @@ import com.woniu.exception.MenuServiceException; import com.woniu.pojo.Admin; import com.woniu.pojo.Menus; import com.woniu.service.MenusService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -20,6 +25,7 @@ import java.util.Map; @Controller @RequestMapping("/menus") +@Api(tags ="菜单管理") public class MenusController { @Autowired @@ -31,11 +37,10 @@ public class MenusController { */ @RequestMapping("/getMenus") @ResponseBody + @ApiOperation(value = "加载主页菜单数据") public List getMenus(){ //根据当前登录用户的角色来获取该用户能够访问哪些资源 Admin admin = (Admin) SecurityUtils.getSubject().getPrincipal(); - System.out.println(admin.getRoleId()); - System.out.println(admin.getUsername()); List list = menusService.findMenusByRoles(admin.getRoleId()); return list; } @@ -46,6 +51,7 @@ public class MenusController { */ @RequestMapping("/loadTree") @ResponseBody + @ApiOperation(value = "加载树形菜单的数据") public String loadTree(){ List menus = menusService.findAll(); ObjectMapper mapper = new ObjectMapper(); @@ -66,6 +72,8 @@ public class MenusController { */ @RequestMapping("/loadCheckTree/{roleId}") @ResponseBody + @ApiOperation(value = "根据角色id查询菜单数据") + @ApiImplicitParam(name = "id",value = "角色ID值",dataType = "Integer") public String loadCheckTree(@PathVariable("roleId")Integer id){ List list = menusService.findCheckMenusByRoleId(id); ObjectMapper mapper = new ObjectMapper(); @@ -83,8 +91,9 @@ public class MenusController { */ @GetMapping("/loadMenus") @ResponseBody + @RequiresPermissions("sys:menu:list") + @ApiOperation(value = "查询菜单列表的数据") public Map loadMenus(){ - //code =0 msg count data List menus = menusService.findAll(); Map result = new HashMap(); result.put("code","0"); @@ -100,6 +109,7 @@ public class MenusController { * @return */ @RequestMapping("/addMenu/{parentId}") + @ApiOperation(value = "导航到添加菜单的页面") public String addMenu(Model model,@PathVariable("parentId") Long parentId){ model.addAttribute("parentId",parentId);//添加菜单节点的父Id return "/sys/addMenu"; @@ -112,6 +122,9 @@ public class MenusController { */ @PostMapping("/saveMenu") @ResponseBody + @RequiresPermissions("sys:menu:save") + @ApiOperation(value = "添加菜单") + @ApiImplicitParam(name = "menus",value = "添加菜单信息") public CommonResult saveMenu(Menus menus){ //验证同级目录下的菜单节点名称不能重复 if(menusService.checkMenuName(menus)){ @@ -133,6 +146,9 @@ public class MenusController { */ @DeleteMapping("/del/{id}") @ResponseBody + @RequiresPermissions("sys:menu:delete") + @ApiOperation(value = "删除菜单") + @ApiImplicitParam(name = "id",value = "菜单列表id",dataType = "Integer") public CommonResult del(@PathVariable("id") Integer mid){ try { menusService.delMenus(mid); @@ -152,20 +168,33 @@ public class MenusController { * @param menuId * @return */ - @RequestMapping("/updateMenu/{menuId}") + @RequestMapping("/editMenu/{menuId}") + @ApiOperation(value = "导航到编辑菜单页面") public String updateMenu(Model model,@PathVariable("menuId") Integer menuId){ - model.addAttribute("menuId",menuId);//修改菜单的id值 - return "/sys/editMenu"; + //查询该menuId下的数据 + Menus menus=menusService.findByMenuId(menuId); + model.addAttribute("menus",menus);//查询到的menu表数据存入model + return "sys/editMenu"; } /** * 菜单编辑 * @return */ - @PutMapping("/updateMenus") + @PutMapping("/editMenu") @ResponseBody - public CommonResult updateMenus(){ - return null; + @RequiresPermissions("sys:menu:update") + @ApiOperation(value = "菜单编辑") + @ApiImplicitParam(name = "menus",value = "修改菜单信息") + public CommonResult updateMenus(Menus menus){ + try { + menusService.updateMenus(menus); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("更新失败"); + } + return CommonResult.success("更新成功"); + } /** @@ -176,6 +205,11 @@ public class MenusController { */ @PutMapping("/updateMenusSorting") @ResponseBody + @ApiOperation(value = "菜单排序") + @ApiImplicitParams({ + @ApiImplicitParam(name = "menuId",value = "菜单ID",dataType = "Integer"), + @ApiImplicitParam(name = "sorting",value = "排序数值") + }) public CommonResult updateMenusSorting(Integer menuId, String sorting){ try { Integer.parseInt(sorting); diff --git a/pccenter/src/main/java/com/woniu/controller/MerchantController.java b/pccenter/src/main/java/com/woniu/controller/MerchantController.java new file mode 100644 index 0000000000000000000000000000000000000000..83562b500de8f01e9b9104f0677d09bc7f45d7b7 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/controller/MerchantController.java @@ -0,0 +1,122 @@ +package com.woniu.controller; + +import com.github.pagehelper.PageInfo; +import com.woniu.common.CommonResult; +import com.woniu.dto.MerchantDTO; +import com.woniu.service.MerchantService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + + +import java.util.Date; +import java.util.List; + +@Controller +@RequestMapping("/merchant") +@Api(tags ="商家管理") +public class MerchantController { + + @Autowired + private MerchantService merchantService; + + /** + * 分页查询商家列表 + * @param currentPage + * @param pageSize + * @return + */ + @RequestMapping("/list") + @ResponseBody + @RequiresPermissions("sys:ml:list") + @ApiOperation(value = "分页查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "页面数据条数",defaultValue = "5") + }) + public CommonResult list(@RequestParam(value = "page",defaultValue = "1",required = false)Integer currentPage, + @RequestParam(value = "limit",defaultValue = "5",required = false)Integer pageSize){ + PageInfo info=null; + try { + List list=merchantService.findByPage(currentPage,pageSize); + System.out.println("查询到的列表数据条数:"+list.size()); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 修改商家审核状态 + * @param id + * @return + */ + @PutMapping("/confirm/{id}") + @ResponseBody + @RequiresPermissions("sys:ml:examine") + @ApiOperation(value = "商家审批") + @ApiImplicitParam(name = "id",value = "商家id值",dataType = "Integer") + private CommonResult confirmPM(@PathVariable("id") Integer id){ + //获取当前操作的时间 + Date examineTime=new Date(); + try { + merchantService.editStatusById(id,examineTime); + } catch (Exception e) { + e.printStackTrace(); + CommonResult.failed("审批失败"); + } + return CommonResult.success("审批成功"); + } + + /** + * 页面搜索功能 + * @param nickName + * @param status + * @return + */ + @RequestMapping("/select") + @ResponseBody + @ApiOperation("页面查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "nickName",value = "用户名称"), + @ApiImplicitParam(name = "status",value = "审批状态") + }) + public CommonResult select(String nickName,Integer status){ + PageInfo info=null; + try { + List list= merchantService.select(nickName,status); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 拒绝审批操作 + * @param id + * @return + */ + @RequestMapping("/refuse/{id}") + @ResponseBody + @ApiOperation(value = "拒绝审批") + @ApiImplicitParam(name = "id",value = "商家id值",dataType = "Integer") + public CommonResult refuse(@PathVariable("id")Integer id){ + Date refuseTime=new Date(); + try { + merchantService.refuse(id,refuseTime); + return CommonResult.success("操作成功!"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("操作失败!"); + } + } +} diff --git a/pccenter/src/main/java/com/woniu/controller/PropertyManageController.java b/pccenter/src/main/java/com/woniu/controller/PropertyManageController.java new file mode 100644 index 0000000000000000000000000000000000000000..4719f5a4feddc378f11e38550fabf31e7c94a4c6 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/controller/PropertyManageController.java @@ -0,0 +1,126 @@ +package com.woniu.controller; + +import com.github.pagehelper.PageInfo; +import com.woniu.common.CommonResult; +import com.woniu.dto.MerchantDTO; +import com.woniu.pojo.PropertyManage; +import com.woniu.service.ProperManageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +@Controller +@RequestMapping("/pm") +@Api(tags = "物业审核") +public class PropertyManageController { + + @Autowired + private ProperManageService pmService; + + /** + * 分页查询物业管理列表 + * @param currentPage + * @param pageSize + * @return + */ + @RequestMapping("/list") + @ResponseBody + @RequiresPermissions("sys:pm:list") + @ApiOperation(value = "分页查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "页面数据条数",defaultValue = "5") + }) + public CommonResult pmList(@RequestParam(value = "page",defaultValue = "1",required = false)Integer currentPage, + @RequestParam(value = "limit",defaultValue = "5",required = false)Integer pageSize){ + PageInfo info = null; + try { + List list=pmService.findListByPage(currentPage,pageSize); + System.out.println("查询到的列表数据条数:"+list.size()); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + + } + + /** + * 审批操作 + * @param id + * @return + */ + @PutMapping("/confirm/{id}") + @ResponseBody + @RequiresPermissions("sys:pm:examine") + @ApiOperation(value = "物业审批") + @ApiImplicitParam(name = "id",value = "物业id值",dataType = "Integer") + public CommonResult confirmPM(@PathVariable("id") Integer id){ + //获取当前时间 + Date passTime=new Date(); + try { + pmService.editStatusById(id,passTime); + } catch (Exception e) { + e.printStackTrace(); + CommonResult.failed("审批失败"); + } + return CommonResult.success("审批成功"); + } + + /** + * 页面搜索功能 + * @param userName + * @param status + * @return + */ + @RequestMapping("/select") + @ResponseBody + @ApiOperation(value = "物业审批页面搜索") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name",value = "用户名称"), + @ApiImplicitParam(name = "status",value = "审批状态",dataType = "Integer") + }) + public CommonResult select(String userName,Integer status){ + PageInfo info=null; + try { + List list=pmService.findList(userName,status); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("查询失败"); + } + } + + /** + * 拒绝审批操作 + * @param id + * @return + */ + @PutMapping("/refuse/{id}") + @ResponseBody + @ApiOperation(value = "拒绝审批") + @ApiImplicitParam(name = "id",value = "商家列表id值",dataType = "Integer") + public CommonResult refuse(@PathVariable("id")Integer id){ + //获取当前时间 + Date refuseTime=new Date(); + try { + pmService.refuse(id,refuseTime); + return CommonResult.success("执行成功!"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("执行失败!"); + } + } + +} diff --git a/pccenter/src/main/java/com/woniu/controller/RolesController.java b/pccenter/src/main/java/com/woniu/controller/RolesController.java index 568d8c19c2f99a393f48ffb0fcb72db0f7d6128b..64704349f8a6d558575cfebe68e05bc0f6b64249 100644 --- a/pccenter/src/main/java/com/woniu/controller/RolesController.java +++ b/pccenter/src/main/java/com/woniu/controller/RolesController.java @@ -5,8 +5,13 @@ import com.woniu.common.CommonResult; import com.woniu.exception.RoleServiceException; import com.woniu.pojo.Roles; import com.woniu.service.RolesService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Transformer; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -19,6 +24,7 @@ import java.util.stream.Collectors; @Controller @RequestMapping("/roles") +@Api(tags = "角色管理") public class RolesController { @Autowired @@ -26,6 +32,12 @@ public class RolesController { @RequestMapping("/list") @ResponseBody + @RequiresPermissions("sys:role:list") + @ApiOperation(value = "分页查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "每页数据条数",defaultValue = "5") + }) public CommonResult list(@RequestParam(value="page",defaultValue = "1",required = false)Integer currentPage, @RequestParam(value = "limit",defaultValue = "5",required = false)Integer pageSize){ List roles = rolesService.findByPage(currentPage,pageSize); @@ -42,6 +54,12 @@ public class RolesController { */ @PostMapping("/saveRole") @ResponseBody + @RequiresPermissions("sys:role:save") + @ApiOperation(value = "添加角色并授权") + @ApiImplicitParams({ + @ApiImplicitParam(name = "roles",value = "角色信息"), + @ApiImplicitParam(name = "menuId",value = "菜单ID",dataType = "Integer") + }) public CommonResult saveRole(Roles roles,String menuId){ //检查角色的名称不能重复 Roles result = rolesService.findByRoleName(roles.getRoleName()); @@ -74,6 +92,8 @@ public class RolesController { * @return */ @GetMapping("/editRole/{id}") + @ApiOperation(value = "导航到编辑页面") + @ApiImplicitParam(name = "id",value = "角色ID",dataType = "Integer") public ModelAndView editRole(@PathVariable("id")Integer id){ Roles roles = rolesService.findById(id); ModelAndView modelAndView = new ModelAndView("/sys/editRole"); @@ -87,6 +107,12 @@ public class RolesController { */ @PutMapping("/updateRole") @ResponseBody + @RequiresPermissions("sys:role:update") + @ApiOperation(value = "编辑角色") + @ApiImplicitParams({ + @ApiImplicitParam(name = "roles",value = "编辑后的角色信息"), + @ApiImplicitParam(name = "menuId",value = "菜单ID",dataType = "Integer") + }) public CommonResult updateRole(Roles roles,String menuId){ //检查更新的角色名称是否已经存 @@ -119,6 +145,9 @@ public class RolesController { */ @DeleteMapping("/del/{id}") @ResponseBody + @RequiresPermissions("sys:role:delete") + @ApiOperation(value = "删除角色") + @ApiImplicitParam(name = "id",value = "角色ID",dataType = "Integer") public CommonResult del(@PathVariable("id")Integer roleId){ try { rolesService.delRole(roleId); @@ -139,6 +168,9 @@ public class RolesController { */ @DeleteMapping("/batchDel/{keys}") @ResponseBody + @RequiresPermissions("sys:role:delete") + @ApiOperation(value = "批量删除角色") + @ApiImplicitParam(name = "keys",value ="角色ID字符串" ) public CommonResult batchDel(@PathVariable("keys")String keys){ //List rolesId =Arrays.stream(keys.split(",")).map(s->Long.parseLong(s)).collect(Collectors.toList()); List keysStringList = Arrays.asList(keys.split(",")); diff --git a/pccenter/src/main/java/com/woniu/controller/ServiceCommentController.java b/pccenter/src/main/java/com/woniu/controller/ServiceCommentController.java new file mode 100644 index 0000000000000000000000000000000000000000..299c340a5be57f54667efc85581879be044ef9bd --- /dev/null +++ b/pccenter/src/main/java/com/woniu/controller/ServiceCommentController.java @@ -0,0 +1,99 @@ +package com.woniu.controller; + +import com.github.pagehelper.PageInfo; +import com.woniu.common.CommonResult; +import com.woniu.dto.ServiceCommentDTO; +import com.woniu.service.ServiceCommentService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Controller +@RequestMapping("/service_comment") +@Api(tags ="服务评论") +public class ServiceCommentController { + + @Autowired + private ServiceCommentService scService; + + /** + * 分页查询服务评论列表数据 + * @param currentPage + * @param pageSize + * @return + */ + @RequestMapping("/list") + @ResponseBody + @RequiresPermissions("sys:sc:list") + @ApiOperation(value = "分页查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "currentPage",value = "当前页数",defaultValue = "1"), + @ApiImplicitParam(name = "pageSize",value = "页面数据条数",defaultValue = "5") + }) + public CommonResult list(@RequestParam(value = "page",defaultValue = "1",required = false)Integer currentPage, + @RequestParam(value = "limit",defaultValue = "5",required = false)Integer pageSize){ + PageInfo info=null; + try { + List list=scService.findByPage(currentPage,pageSize); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 删除评论 + * @param id + * @return + */ + @DeleteMapping("/delComment/{id}") + @ResponseBody + @RequiresPermissions("sys:sc:delete") + @ApiOperation(value = "删除评论") + @ApiImplicitParam(name = "id",value = "服务评论列表id",dataType = "Integer") + public CommonResult delComment(@PathVariable("id")Integer id){ + try { + scService.delComment(id); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed("删除失败!"); + } + return CommonResult.success("删除成功!"); + } + + /** + * 查询功能 + * @param nickName + * @param payName + * @return + */ + @RequestMapping("/select") + @ResponseBody + @ApiOperation("页面查询") + @ApiImplicitParams({ + @ApiImplicitParam(name = "nickName",value = "用户名称"), + @ApiImplicitParam(name = "payName",value = "服务名称") + }) + public CommonResult select(String nickName,String payName){ + + PageInfo info=null; + try { + List list=scService.select(nickName,payName); + System.out.println("controller中list的条数:"+list.size()); + info=new PageInfo(list); + return CommonResult.success(info); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } +} diff --git a/pccenter/src/main/java/com/woniu/dao/ActivityComplainMapper.java b/pccenter/src/main/java/com/woniu/dao/ActivityComplainMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..f219e328ad907868143fc067ab143c7743ea8eb1 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dao/ActivityComplainMapper.java @@ -0,0 +1,24 @@ +package com.woniu.dao; + +import com.woniu.dto.ActivityComplainDTO; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.Date; +import java.util.List; + +public interface ActivityComplainMapper { + + @Select("select cac.id,pu.nickname nickName,pu.sex,pu.mailbox mailBox,ca.ca_title title,ca.ca_create_time createTime,cac.cac_reason reason,cac.cac_examine_status `status`,cac.cac_reply context " + + "from person_user pu INNER JOIN community_activity_complaint cac ON pu.id=cac.cac_user_id INNER JOIN community_activity ca ON ca.id=cac.cac_activity_id order by cac.id desc ") + List findByPage(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize); + + @Select("select cac.id,cac.cac_reason reason,cac.cac_examine_status `status` from community_activity_complaint cac where id=#{value}") + ActivityComplainDTO findById(Integer id); + + @Update("update community_activity_complaint set cac_reply=#{context},cac_examine_status = 1,cac_replyTime = #{replyTime} where id=#{id}") + void addReply(@Param("id") Integer id, @Param("context") String context, @Param("replyTime") Date replyTime); + + List select(@Param("nickName") String nickName,@Param("title") String title); +} diff --git a/pccenter/src/main/java/com/woniu/dao/ActivityMapper.java b/pccenter/src/main/java/com/woniu/dao/ActivityMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..049eb3650c863604f664e91ae61cf82228f43141 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dao/ActivityMapper.java @@ -0,0 +1,24 @@ +package com.woniu.dao; + +import com.woniu.dto.ActivityDTO; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.Date; +import java.util.List; + +public interface ActivityMapper { + + @Select("select ca.id,ca.ca_type type,ca.ca_examinetime operationTime,ca.ca_title title,ca.ca_content content,ca.ca_money money,ca.ca_peopel_count number,ca.ca_create_time createTime,ca.ca_examine_status status,pu.nickname name from " + + "person_user pu inner join community_activity ca on pu.id=ca.ca_user_id order by ca.id desc") + List findByPage(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize); + + @Update("update community_activity set ca_examine_status = 1,ca_examinetime = #{examineTime} where id=#{id}") + void editStatusById(@Param("id") Integer id,@Param("examineTime") Date examineTime); + + List select(@Param("name") String name, @Param("status") Integer status); + + @Update("update community_activity set ca_examine_status = 2,ca_examinetime = #{operationTime} where id=#{id}") + void refuse(@Param("id") Integer id, @Param("operationTime") Date examineTime); +} diff --git a/pccenter/src/main/java/com/woniu/dao/ComplainMapper.java b/pccenter/src/main/java/com/woniu/dao/ComplainMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..dfbc6ab3946688446417bdfe8ab4cc9ff612590d --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dao/ComplainMapper.java @@ -0,0 +1,38 @@ +package com.woniu.dao; + +import com.woniu.dto.ComplainDTO; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; + +public interface ComplainMapper { + + @Select("SELECT ss.id,ss.statecontext reason,ss.`status`,ss.reply_context context,so.starttime startTime,so.id orderId,\n" + + "pu.nickname nickName,pu.mailbox mailBox,pu.sex FROM state_service ss LEFT JOIN service_order so ON ss.serviceid=so.id\n" + + "INNER JOIN person_user pu ON pu.id=so.userid order by ss.id desc") + List findByPage(@Param("currentPage")Integer currentPage,@Param("pageSize")Integer pageSize); + + @Update("update state_service set status=1,reply_context=#{context} where id=#{id}") + void addReply(@Param("id") Integer id, @Param("context") String context); + + @Select("select * from state_service where id=#{value}") + ComplainDTO findById(Integer id); + + /*@Select("")*/ + List select(@Param("userName") String userName,@Param("status") Integer status); +} diff --git a/pccenter/src/main/java/com/woniu/dao/DynamicCommentMapper.java b/pccenter/src/main/java/com/woniu/dao/DynamicCommentMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..e8ac1e6c21a0003ac011c5c6ac7c589f7d73e89f --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dao/DynamicCommentMapper.java @@ -0,0 +1,19 @@ +package com.woniu.dao; + +import com.woniu.dto.DynamicCommentDTO; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +public interface DynamicCommentMapper { + + @Select("select pu.nickname nickName,cdc.id,cd.cd_type dynamicType,cd.cd_favor favor,cd.cd_content dynamicContent,cd.cd_time issueTime,cdc.cdc_content `comment`,cdc.cdc_time commentTime from person_user pu INNER JOIN community_dynamic_comment cdc ON pu.id = cdc.cdc_user_id INNER JOIN community_dynamic cd ON cdc.cdc_dynamic_id=cd.id order by cdc.id desc") + List findByPage(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize); + + @Delete("delete from community_dynamic_comment where id = #{value}") + void delComment(Integer id); + + List select(@Param("nickName") String nickName,@Param("dynamicType") Integer dynamicType); +} diff --git a/pccenter/src/main/java/com/woniu/dao/InformationMapper.java b/pccenter/src/main/java/com/woniu/dao/InformationMapper.java deleted file mode 100644 index 41e2c3df2a224efbc6693275ff6eb021aea5f96f..0000000000000000000000000000000000000000 --- a/pccenter/src/main/java/com/woniu/dao/InformationMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.woniu.dao; - -import com.woniu.pojo.Information; - -public interface InformationMapper { - int deleteByPrimaryKey(Integer id); - - int insert(Information record); - - int insertSelective(Information record); - - Information selectByPrimaryKey(Integer id); - - int updateByPrimaryKeySelective(Information record); - - int updateByPrimaryKey(Information record); -} \ No newline at end of file diff --git a/pccenter/src/main/java/com/woniu/dao/MenusMapper.java b/pccenter/src/main/java/com/woniu/dao/MenusMapper.java index e678973ec9e4d334d9367076522accbe5d56975e..285e4852357ae8874edae7ad4f8b2994234c40d3 100644 --- a/pccenter/src/main/java/com/woniu/dao/MenusMapper.java +++ b/pccenter/src/main/java/com/woniu/dao/MenusMapper.java @@ -19,6 +19,7 @@ public interface MenusMapper { int updateByPrimaryKeySelective(Menus record); int updateByPrimaryKey(Menus record); + @Select("select perms from pc_menus m left join pc_roles_menus rm on m.menu_id = rm.menu_id left join " + "pc_roles r on rm.role_id = r.role_id where r.role_id = #{value}") List findPermsByRoles(Integer roleId); @@ -38,4 +39,8 @@ public interface MenusMapper { @Update("update pc_menus set sorting = #{sorting} where menu_id = #{menuId}") void updateSorting(@Param("menuId") Integer menuId, @Param("sorting") Integer sorting); + + @Select("select * from pc_menus where menu_id=#{value}") + Menus findByMenuId(Integer menuId); + } \ No newline at end of file diff --git a/pccenter/src/main/java/com/woniu/dao/MerchantMapper.java b/pccenter/src/main/java/com/woniu/dao/MerchantMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..1ff38882720e42c6a85992459a966404e2237884 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dao/MerchantMapper.java @@ -0,0 +1,24 @@ +package com.woniu.dao; + +import com.woniu.dto.MerchantDTO; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.Date; +import java.util.List; + +public interface MerchantMapper { + + @Select("select ai.area_name areaName,bi.id,bi.nickname nickName,bi.operationTime operationTime,bi.mailbox mailBox,create_time createTime" + + ",bi.address,bi.introduce,bi.status from areainfo ai inner join business_info bi on ai.id=bi.plot_id order by bi.id desc") + List findByPage(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize); + + @Update("update business_info set status=1,operationTime=#{examineTime} where id=#{id}") + void editStatusById(@Param("id") Integer id, @Param("examineTime") Date examineTime); + + List select(@Param("nickName") String nickName, @Param("status") Integer status); + + @Update("update business_info set status=2,operationTime=#{refuseTime} where id=#{id}") + void refuse(@Param("id") Integer id, @Param("refuseTime") Date refuseTime); +} diff --git a/pccenter/src/main/java/com/woniu/dao/PropertyManageMapper.java b/pccenter/src/main/java/com/woniu/dao/PropertyManageMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..a9996d849effeb5e17b3c7a69e5469b00b661863 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dao/PropertyManageMapper.java @@ -0,0 +1,23 @@ +package com.woniu.dao; + +import com.woniu.pojo.PropertyManage; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + + +import java.util.Date; +import java.util.List; + +public interface PropertyManageMapper { + + List findByPage(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize); + + @Update("update property_manage set status = 1,pass_time=#{passTime} where id=#{id}") + void editStatusById(@Param("id") Integer id, @Param("passTime") Date passTime); + + + List findList(@Param("userName") String userName,@Param("status") Integer status); + + @Update("update property_manage set status = 2 ,pass_time=#{refuseTime}where id=#{id}") + void refuse(@Param("id") Integer id,@Param("refuseTime") Date refuseTime); +} diff --git a/pccenter/src/main/java/com/woniu/dao/RolesMapper.java b/pccenter/src/main/java/com/woniu/dao/RolesMapper.java index 4e2019538124a2dfdacbdc7681c1b0d9362518d3..aba8b1f13e73dbd81da7dec3d9a323aa02546308 100644 --- a/pccenter/src/main/java/com/woniu/dao/RolesMapper.java +++ b/pccenter/src/main/java/com/woniu/dao/RolesMapper.java @@ -23,7 +23,7 @@ public interface RolesMapper { @Select("select * from pc_roles") List selectAll(); - @Select("select * from pc_roles") + @Select("select * from pc_roles order by pc_roles.role_id desc") List selectByPage(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize); @Select("select * from pc_roles where role_name = #{roleName}") diff --git a/pccenter/src/main/java/com/woniu/dao/ServiceCommentMapper.java b/pccenter/src/main/java/com/woniu/dao/ServiceCommentMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..107c5dea3aced9e6838fe3431520a92f28a1314f --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dao/ServiceCommentMapper.java @@ -0,0 +1,20 @@ +package com.woniu.dao; + +import com.woniu.dto.ServiceCommentDTO; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + + +import java.util.List; + +public interface ServiceCommentMapper { + + @Select("select pu.mailbox mailBox,pu.nickname nickName,es.id,es.evalute,pp.payname payName,pp.payprice payPrice,pp.servicecontext context from person_user pu INNER JOIN evaluate_service es ON pu.id = es.userid INNER JOIN pp_payservice pp ON pp.id=es.serviceid order by es.id desc") + List findByPage(@Param("currentPage") Integer currentPage,@Param("pageSize") Integer pageSize); + + @Delete("delete from evaluate_service where id = #{value}") + void delComment(Integer id); + + List select(@Param("nickName") String nickName, @Param("payName") String payName); +} diff --git a/pccenter/src/main/java/com/woniu/dao/UsersMapper.java b/pccenter/src/main/java/com/woniu/dao/UsersMapper.java deleted file mode 100644 index f9fbcb05b87dbcd11c3506fdf54fe1b26c06a894..0000000000000000000000000000000000000000 --- a/pccenter/src/main/java/com/woniu/dao/UsersMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.woniu.dao; - -import com.woniu.pojo.Users; - -public interface UsersMapper { - int deleteByPrimaryKey(Integer uid); - - int insert(Users record); - - int insertSelective(Users record); - - Users selectByPrimaryKey(Integer uid); - - int updateByPrimaryKeySelective(Users record); - - int updateByPrimaryKey(Users record); -} \ No newline at end of file diff --git a/pccenter/src/main/java/com/woniu/dto/ActivityComplainDTO.java b/pccenter/src/main/java/com/woniu/dto/ActivityComplainDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..3d5bb4f6e35a219b6725b4221af2b6ea4ba369fd --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dto/ActivityComplainDTO.java @@ -0,0 +1,89 @@ +package com.woniu.dto; + +import java.io.Serializable; +import java.util.Date; + +public class ActivityComplainDTO implements Serializable { + private Integer id; + private String nickName; + private String sex; + private String mailBox; + private String title; + private Date createTime; + private String reason; + private Integer status; + private String context; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getMailBox() { + return mailBox; + } + + public void setMailBox(String mailBox) { + this.mailBox = mailBox; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getContext() { + return context; + } + + public void setContext(String context) { + this.context = context; + } +} diff --git a/pccenter/src/main/java/com/woniu/dto/ActivityDTO.java b/pccenter/src/main/java/com/woniu/dto/ActivityDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..3b67ea000de109eb2eeb2780bca609448a929ed1 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dto/ActivityDTO.java @@ -0,0 +1,96 @@ +package com.woniu.dto; + +import java.io.Serializable; +import java.util.Date; + +public class ActivityDTO implements Serializable { + private Integer id; + private String name; + private Integer type; + private String title; + private String content; + private Integer number; + private Date createTime; + private Integer status; + private Double money; + private Date operationTime; + + public Date getOperationTime() { + return operationTime; + } + + public void setOperationTime(Date operationTime) { + this.operationTime = operationTime; + } + public Double getMoney() { + return money; + } + + public void setMoney(Double money) { + this.money = money; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } +} diff --git a/pccenter/src/main/java/com/woniu/dto/ComplainDTO.java b/pccenter/src/main/java/com/woniu/dto/ComplainDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..273dd52ea5040d1901dede1704f3afef60ccb111 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dto/ComplainDTO.java @@ -0,0 +1,89 @@ +package com.woniu.dto; + +import java.io.Serializable; +import java.util.Date; + +public class ComplainDTO implements Serializable { + private Integer id; + private String nickName; + private String sex; + private String mailBox; + private Integer orderId; + private Date startTime; + private String reason; + private Integer status; + //private Date passTime; + private String context; + + public String getContext() { + return context; + } + + public void setContext(String context) { + this.context = context; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getMailBox() { + return mailBox; + } + + public void setMailBox(String mailBox) { + this.mailBox = mailBox; + } + + public Integer getOrderId() { + return orderId; + } + + public void setOrderId(Integer orderId) { + this.orderId = orderId; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } +} diff --git a/pccenter/src/main/java/com/woniu/dto/DynamicCommentDTO.java b/pccenter/src/main/java/com/woniu/dto/DynamicCommentDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..c6de36f8275a895948e411b1562c96261edf365b --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dto/DynamicCommentDTO.java @@ -0,0 +1,79 @@ +package com.woniu.dto; + +import java.io.Serializable; +import java.util.Date; + +public class DynamicCommentDTO implements Serializable { + private Integer id; + private String nickName; + private Integer dynamicType; + private String dynamicContent; + private Integer favor; + private Date issueTime; + private String comment; + private Date commentTime; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public Integer getDynamicType() { + return dynamicType; + } + + public void setDynamicType(Integer dynamicType) { + this.dynamicType = dynamicType; + } + + public String getDynamicContent() { + return dynamicContent; + } + + public void setDynamicContent(String dynamicContent) { + this.dynamicContent = dynamicContent; + } + + public Integer getFavor() { + return favor; + } + + public void setFavor(Integer favor) { + this.favor = favor; + } + + public Date getIssueTime() { + return issueTime; + } + + public void setIssueTime(Date issueTime) { + this.issueTime = issueTime; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public Date getCommentTime() { + return commentTime; + } + + public void setCommentTime(Date commentTime) { + this.commentTime = commentTime; + } +} diff --git a/pccenter/src/main/java/com/woniu/dto/MerchantDTO.java b/pccenter/src/main/java/com/woniu/dto/MerchantDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..baaa0ac088cafecbed349f9a971cb7a93ad792f4 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dto/MerchantDTO.java @@ -0,0 +1,88 @@ +package com.woniu.dto; + +import java.io.Serializable; +import java.util.Date; + +public class MerchantDTO implements Serializable{ + private Integer id; + private String nickName; + private String areaName; + private String mailBox; + private Date createTime; + private String address; + private String introduce; + private Integer status; + private Date operationTime; + + public Date getOperationTime() { + return operationTime; + } + + public void setOperationTime(Date operationTime) { + this.operationTime = operationTime; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getMailBox() { + return mailBox; + } + + public void setMailBox(String mailBox) { + this.mailBox = mailBox; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getAddress() { + return address; + } + + public void setAddress(String adress) { + this.address = adress; + } + + public String getIntroduce() { + return introduce; + } + + public void setIntroduce(String introduce) { + this.introduce = introduce; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } +} diff --git a/pccenter/src/main/java/com/woniu/dto/ServiceCommentDTO.java b/pccenter/src/main/java/com/woniu/dto/ServiceCommentDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..97b2b156a6ece9b523e4e756e2d6f875a2457cfd --- /dev/null +++ b/pccenter/src/main/java/com/woniu/dto/ServiceCommentDTO.java @@ -0,0 +1,70 @@ +package com.woniu.dto; + +import java.io.Serializable; + + +public class ServiceCommentDTO implements Serializable { + private Integer id; + private String nickName; + private String payName; + private String evalute; + private String mailBox; + private Integer payPrice; + private String context; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getPayName() { + return payName; + } + + public void setPayName(String payName) { + this.payName = payName; + } + + public String getEvalute() { + return evalute; + } + + public void setEvalute(String evalute) { + this.evalute = evalute; + } + + public String getMailBox() { + return mailBox; + } + + public void setMailBox(String mailBox) { + this.mailBox = mailBox; + } + + public Integer getPayPrice() { + return payPrice; + } + + public void setPayPrice(Integer payPrice) { + this.payPrice = payPrice; + } + + public String getContext() { + return context; + } + + public void setContext(String context) { + this.context = context; + } +} diff --git a/pccenter/src/main/java/com/woniu/exception/GlobalExceptionHandler.java b/pccenter/src/main/java/com/woniu/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..56fdf05974bfdeee2fb7f468872ab2ee4f42b925 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/exception/GlobalExceptionHandler.java @@ -0,0 +1,60 @@ +package com.woniu.exception; + +import com.woniu.common.CommonResult; +import org.apache.shiro.authz.UnauthorizedException; +import org.springframework.validation.BindException; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import java.util.List; + +@ControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(UnauthorizedException.class) + public String unauthorizedExceptionHandler(UnauthorizedException e){ + e.printStackTrace(); + return "/403";//跳转到 403.html + } + + + @ExceptionHandler(HttpRequestMethodNotSupportedException.class) + @ResponseBody + public String httpRequestMethodNotSupportedExceptionHandler(HttpRequestMethodNotSupportedException e){ + e.printStackTrace(); + return "访问方式不支持"; + } + + + /*@ExceptionHandler(LoginException.class) + @ResponseBody + public CommonResult loginExceptionHandler(LoginException e){ + return CommonResult.failed(e.getMessage()); + }*/ + + /* @ExceptionHandler(BindException.class) + @ResponseBody + public CommonResult bindExceionHandler(BindException e){ + e.printStackTrace(); + BindingResult result = e.getBindingResult();//BindingResult对象存放了Spring校验抛出的异常 + List list = result.getFieldErrors(); + for (FieldError fieldError : list) { + String msg = fieldError.getDefaultMessage(); + return CommonResult.valetateFailed(msg); + } + return CommonResult.valetateFailed(); + }*/ + + @ExceptionHandler(Exception.class) + @ResponseBody + public CommonResult exceptionHandler(Exception e){ + e.printStackTrace(); + System.out.println(e.getClass().getName()); + return CommonResult.failed("网络异常"); + } +} diff --git a/pccenter/src/main/java/com/woniu/exception/LoginException.java b/pccenter/src/main/java/com/woniu/exception/LoginException.java new file mode 100644 index 0000000000000000000000000000000000000000..ef7339f5d87fc376bef597d19f0a5e8241e8e184 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/exception/LoginException.java @@ -0,0 +1,22 @@ +package com.woniu.exception; + +public class LoginException extends RuntimeException{ + public LoginException() { + } + + public LoginException(String message) { + super(message); + } + + public LoginException(String message, Throwable cause) { + super(message, cause); + } + + public LoginException(Throwable cause) { + super(cause); + } + + public LoginException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/pccenter/src/main/java/com/woniu/pojo/Admin.java b/pccenter/src/main/java/com/woniu/pojo/Admin.java index 2ad2fe50ed24c2c17a5d9dd3f428d662f079c5cd..fbe86bfc4471306d539f22852b1a28119ec4300c 100644 --- a/pccenter/src/main/java/com/woniu/pojo/Admin.java +++ b/pccenter/src/main/java/com/woniu/pojo/Admin.java @@ -1,5 +1,7 @@ package com.woniu.pojo; +import io.swagger.annotations.ApiModel; + import java.util.Date; public class Admin { diff --git a/pccenter/src/main/java/com/woniu/pojo/Information.java b/pccenter/src/main/java/com/woniu/pojo/Information.java deleted file mode 100644 index 2f1c550ed63f67536b3cad7dd41853ebc0927bd5..0000000000000000000000000000000000000000 --- a/pccenter/src/main/java/com/woniu/pojo/Information.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.woniu.pojo; - -public class Information { - private Integer id; - - private Integer account; - - private String password; - - private String name; - - private String nickname; - - private String roletype; - - private String stage; - - private Integer phone; - - private String adress; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getAccount() { - return account; - } - - public void setAccount(Integer account) { - this.account = account; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getNickname() { - return nickname; - } - - public void setNickname(String nickname) { - this.nickname = nickname; - } - - public String getRoletype() { - return roletype; - } - - public void setRoletype(String roletype) { - this.roletype = roletype; - } - - public String getStage() { - return stage; - } - - public void setStage(String stage) { - this.stage = stage; - } - - public Integer getPhone() { - return phone; - } - - public void setPhone(Integer phone) { - this.phone = phone; - } - - public String getAdress() { - return adress; - } - - public void setAdress(String adress) { - this.adress = adress; - } -} \ No newline at end of file diff --git a/pccenter/src/main/java/com/woniu/pojo/PropertyManage.java b/pccenter/src/main/java/com/woniu/pojo/PropertyManage.java new file mode 100644 index 0000000000000000000000000000000000000000..0a37b7fc29c58cc931dfc11ae2de187a2c5ba974 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/pojo/PropertyManage.java @@ -0,0 +1,95 @@ +package com.woniu.pojo; + +import java.util.Date; + +public class PropertyManage { + private Integer id; + + private Integer villageId; + + private String userName; + + private String saltValue; + + private String phone; + + private Integer status; + + private Date createTime; + + private Date passTime; + + /* private String areaName; + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + }*/ + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getVillageId() { + return villageId; + } + + public void setVillageId(Integer villageId) { + this.villageId = villageId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getSaltValue() { + return saltValue; + } + + public void setSaltValue(String saltValue) { + this.saltValue = saltValue; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getPassTime() { + return passTime; + } + + public void setPassTime(Date passTime) { + this.passTime = passTime; + } +} diff --git a/pccenter/src/main/java/com/woniu/pojo/RolesMenusKey.java b/pccenter/src/main/java/com/woniu/pojo/RolesMenusKey.java index da24ad7a323908d7300c5370080cacb698a004cc..06ab7a62d88d84ebb2e28bac8ba158fb75adfd78 100644 --- a/pccenter/src/main/java/com/woniu/pojo/RolesMenusKey.java +++ b/pccenter/src/main/java/com/woniu/pojo/RolesMenusKey.java @@ -4,7 +4,7 @@ import java.io.Serializable; import lombok.Data; /** - * tb_roles_menus + * pc_roles_menus * @author */ @Data diff --git a/pccenter/src/main/java/com/woniu/pojo/Users.java b/pccenter/src/main/java/com/woniu/pojo/Users.java deleted file mode 100644 index 73ad250df14b70561c34b2a273fd43a1f05cf8e3..0000000000000000000000000000000000000000 --- a/pccenter/src/main/java/com/woniu/pojo/Users.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.woniu.pojo; - -public class Users { - private Integer uid; - - private Integer account; - - private String name; - - private String password; - - private Integer phone; - - private String adress; - - private String status; - - private String nickname; - - private String roleType; - - public Integer getUid() { - return uid; - } - - public void setUid(Integer uid) { - this.uid = uid; - } - - public Integer getAccount() { - return account; - } - - public void setAccount(Integer account) { - this.account = account; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public Integer getPhone() { - return phone; - } - - public void setPhone(Integer phone) { - this.phone = phone; - } - - public String getAdress() { - return adress; - } - - public void setAdress(String adress) { - this.adress = adress; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getNickname() { - return nickname; - } - - public void setNickname(String nickname) { - this.nickname = nickname; - } - - public String getRoleType() { - return roleType; - } - - public void setRoleType(String roleType) { - this.roleType = roleType; - } -} \ No newline at end of file diff --git a/pccenter/src/main/java/com/woniu/realm/CustomRealm.java b/pccenter/src/main/java/com/woniu/realm/CustomRealm.java index ae780f7b8e22ccacbd4280e0f0fffd691c3da9ba..5df85c783ffcfa4ceab2f99d4bd8cd9f3f70c574 100644 --- a/pccenter/src/main/java/com/woniu/realm/CustomRealm.java +++ b/pccenter/src/main/java/com/woniu/realm/CustomRealm.java @@ -47,7 +47,7 @@ public class CustomRealm extends AuthorizingRealm { throw new UnknownAccountException("账号不存在"); } SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(admin,admin.getPassword(),ByteSource.Util.bytes(admin.getSalt()),super.getName()); - //info.setCredentialsSalt(ByteSource.Util.bytes(admin.getSalt())); + info.setCredentialsSalt(ByteSource.Util.bytes(admin.getSalt())); return info; } } diff --git a/pccenter/src/main/java/com/woniu/service/ActivityComplainService.java b/pccenter/src/main/java/com/woniu/service/ActivityComplainService.java new file mode 100644 index 0000000000000000000000000000000000000000..dc5d4657edddf600c00267f99e504d45ec02718e --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/ActivityComplainService.java @@ -0,0 +1,15 @@ +package com.woniu.service; + +import com.woniu.dto.ActivityComplainDTO; + +import java.util.List; + +public interface ActivityComplainService { + List findByPage(Integer currentPage, Integer pageSize); + + ActivityComplainDTO findById(Integer id); + + void addReply(ActivityComplainDTO activityComplainDTO); + + List select(String nickName, String title); +} diff --git a/pccenter/src/main/java/com/woniu/service/ActivityService.java b/pccenter/src/main/java/com/woniu/service/ActivityService.java new file mode 100644 index 0000000000000000000000000000000000000000..001d4450737b2a4651e1467f3891f0c5d539aa78 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/ActivityService.java @@ -0,0 +1,16 @@ +package com.woniu.service; + +import com.woniu.dto.ActivityDTO; + +import java.util.Date; +import java.util.List; + +public interface ActivityService { + List findListByPage(Integer currentPage, Integer pageSize); + + void editStatusById(Integer id,Date examineTime); + + List select(String name, Integer status); + + void refuse(Integer id, Date examineTime); +} diff --git a/pccenter/src/main/java/com/woniu/service/ComplainService.java b/pccenter/src/main/java/com/woniu/service/ComplainService.java new file mode 100644 index 0000000000000000000000000000000000000000..3205a12eded8aa06951fca2c7b511cb76b9d6e83 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/ComplainService.java @@ -0,0 +1,15 @@ +package com.woniu.service; + +import com.woniu.dto.ComplainDTO; + +import java.util.List; + +public interface ComplainService { + List findByPage(Integer currentPage, Integer pageSize); + + void addReply(ComplainDTO complainDTO); + + ComplainDTO findById(Integer id); + + List select(String userName, Integer status); +} diff --git a/pccenter/src/main/java/com/woniu/service/DynamicCommentService.java b/pccenter/src/main/java/com/woniu/service/DynamicCommentService.java new file mode 100644 index 0000000000000000000000000000000000000000..12d62f715762eac046d7062b4effd5a376ad83e1 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/DynamicCommentService.java @@ -0,0 +1,13 @@ +package com.woniu.service; + +import com.woniu.dto.DynamicCommentDTO; + +import java.util.List; + +public interface DynamicCommentService { + List findByPage(Integer currentPage, Integer pageSize); + + void delComment(Integer id); + + List select(String nickName,Integer dynamicType); +} diff --git a/pccenter/src/main/java/com/woniu/service/MenusService.java b/pccenter/src/main/java/com/woniu/service/MenusService.java index 91ae56a34fe9c948363402121826d831eeb606b3..2744df9157e193f557bf8a12e41aa56ba3543380 100644 --- a/pccenter/src/main/java/com/woniu/service/MenusService.java +++ b/pccenter/src/main/java/com/woniu/service/MenusService.java @@ -19,4 +19,8 @@ public interface MenusService { void delMenus(Integer mid); void updateMenusSorting(Integer menuId, Integer parseLong); + + Menus findByMenuId(Integer menuId); + + void updateMenus(Menus menus); } diff --git a/pccenter/src/main/java/com/woniu/service/MerchantService.java b/pccenter/src/main/java/com/woniu/service/MerchantService.java new file mode 100644 index 0000000000000000000000000000000000000000..17b933f891a53ede5e99b477a3feadba25298738 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/MerchantService.java @@ -0,0 +1,16 @@ +package com.woniu.service; + +import com.woniu.dto.MerchantDTO; + +import java.util.Date; +import java.util.List; + +public interface MerchantService { + List findByPage(Integer currentPage, Integer pageSize); + + void editStatusById(Integer id,Date examineTime); + + List select(String nickName, Integer status); + + void refuse(Integer id, Date refuseTime); +} diff --git a/pccenter/src/main/java/com/woniu/service/ProperManageService.java b/pccenter/src/main/java/com/woniu/service/ProperManageService.java new file mode 100644 index 0000000000000000000000000000000000000000..3247b0f8459d3caa0b7a2cc3d73f7ead76650666 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/ProperManageService.java @@ -0,0 +1,17 @@ +package com.woniu.service; + +import com.woniu.pojo.PropertyManage; + +import java.util.Date; +import java.util.List; + +public interface ProperManageService { + List findListByPage(Integer currentPage, Integer pageSize); + + + void editStatusById(Integer id, Date passTime); + + List findList(String userName, Integer status); + + void refuse(Integer id, Date refuseTime); +} diff --git a/pccenter/src/main/java/com/woniu/service/ServiceCommentService.java b/pccenter/src/main/java/com/woniu/service/ServiceCommentService.java new file mode 100644 index 0000000000000000000000000000000000000000..077905cdb7922b4dcc263e0afb71c3682685306b --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/ServiceCommentService.java @@ -0,0 +1,15 @@ +package com.woniu.service; + +import com.woniu.dto.ServiceCommentDTO; + +import java.util.List; + +public interface ServiceCommentService { + + + List findByPage(Integer currentPage, Integer pageSize); + + void delComment(Integer id); + + List select(String nickName, String payName); +} diff --git a/pccenter/src/main/java/com/woniu/service/impl/ActivityComplainServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/ActivityComplainServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..91099c418efe4229f723405b7d6c90f38a110e29 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/impl/ActivityComplainServiceImpl.java @@ -0,0 +1,41 @@ +package com.woniu.service.impl; + +import com.woniu.dao.ActivityComplainMapper; +import com.woniu.dto.ActivityComplainDTO; +import com.woniu.service.ActivityComplainService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class ActivityComplainServiceImpl implements ActivityComplainService { + + @Autowired + private ActivityComplainMapper acComplainMapper; + @Override + public List findByPage(Integer currentPage, Integer pageSize) { + List list = acComplainMapper.findByPage(currentPage,pageSize); + return list; + } + + @Override + public ActivityComplainDTO findById(Integer id) { + return acComplainMapper.findById(id); + } + + @Override + public void addReply(ActivityComplainDTO activityComplainDTO) { + String context=activityComplainDTO.getContext(); + Integer id=activityComplainDTO.getId(); + Date replyTime=new Date(); + acComplainMapper.addReply(id,context,replyTime); + } + + @Override + public List select(String nickName, String title) { + List list=acComplainMapper.select(nickName,title); + return list; + } +} diff --git a/pccenter/src/main/java/com/woniu/service/impl/ActivityServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/ActivityServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..fa79c868bb3928d7769ace7e1f221c5c7f56dd3f --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/impl/ActivityServiceImpl.java @@ -0,0 +1,40 @@ +package com.woniu.service.impl; + +import com.woniu.dao.ActivityMapper; +import com.woniu.dto.ActivityDTO; +import com.woniu.pojo.PropertyManage; +import com.woniu.service.ActivityService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class ActivityServiceImpl implements ActivityService { + + @Autowired + private ActivityMapper activityMapper; + + @Override + public List findListByPage(Integer currentPage, Integer pageSize) { + List list=activityMapper.findByPage(currentPage,pageSize); + return list; + } + + @Override + public void editStatusById(Integer id,Date examineTime) { + activityMapper.editStatusById(id,examineTime); + } + + @Override + public List select(String name, Integer status) { + List list=activityMapper.select(name,status); + return list; + } + + @Override + public void refuse(Integer id, Date examineTime) { + activityMapper.refuse(id,examineTime); + } +} diff --git a/pccenter/src/main/java/com/woniu/service/impl/AdminServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/AdminServiceImpl.java index adb816342e42cfc0ae5032251879cbeb8ff91228..721aec81a9c17ec7775a3ccb17cecc68f54fc242 100644 --- a/pccenter/src/main/java/com/woniu/service/impl/AdminServiceImpl.java +++ b/pccenter/src/main/java/com/woniu/service/impl/AdminServiceImpl.java @@ -3,10 +3,12 @@ package com.woniu.service.impl; import com.woniu.dao.AdminMapper; import com.woniu.pojo.Admin; import com.woniu.service.AdminService; +import org.apache.shiro.crypto.hash.Md5Hash; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.UUID; @Service public class AdminServiceImpl implements AdminService { @@ -22,6 +24,12 @@ public class AdminServiceImpl implements AdminService { @Override public void saveAdmin(Admin admin) { + //密码加密 + String salt = UUID.randomUUID().toString(); + System.out.println(salt); + admin.setSalt(salt); + Md5Hash hash = new Md5Hash(admin.getPassword(),salt,1024); + admin.setPassword(hash.toString());//加密后的密码 adminMapper.insertSelective(admin); } diff --git a/pccenter/src/main/java/com/woniu/service/impl/ComplainServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/ComplainServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3906d7aa7fcb7b8fddbb40082526492b067d0030 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/impl/ComplainServiceImpl.java @@ -0,0 +1,41 @@ +package com.woniu.service.impl; + +import com.woniu.dao.ComplainMapper; +import com.woniu.dto.ComplainDTO; +import com.woniu.service.ComplainService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ComplainServiceImpl implements ComplainService { + + @Autowired + private ComplainMapper complainMapper; + + @Override + public List findByPage(Integer currentPage, Integer pageSize) { + List list=complainMapper.findByPage(currentPage,pageSize); + return list; + } + + @Override + public void addReply(ComplainDTO complainDTO) { + String context=complainDTO.getContext(); + Integer id=complainDTO.getId(); + complainMapper.addReply(id,context); + } + + @Override + public ComplainDTO findById(Integer id) { + ComplainDTO complainDTO= complainMapper.findById(id); + return complainDTO; + } + + @Override + public List select(String userName, Integer status) { + List list=complainMapper.select(userName,status); + return list; + } +} diff --git a/pccenter/src/main/java/com/woniu/service/impl/DynamicCommentServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/DynamicCommentServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c50a94477ef4fb94afe6dcadd0514cda44aef162 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/impl/DynamicCommentServiceImpl.java @@ -0,0 +1,32 @@ +package com.woniu.service.impl; + +import com.woniu.dao.DynamicCommentMapper; +import com.woniu.dto.DynamicCommentDTO; +import com.woniu.service.DynamicCommentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +@Service +public class DynamicCommentServiceImpl implements DynamicCommentService { + + @Autowired + private DynamicCommentMapper dc_mapper; + + @Override + public List findByPage(Integer currentPage, Integer pageSize) { + List list = dc_mapper.findByPage(currentPage,pageSize); + return list; + } + + @Override + public void delComment(Integer id) { + dc_mapper.delComment(id); + } + + @Override + public List select(String nickName,Integer dynamicType) { + List list=dc_mapper.select(nickName,dynamicType); + return list; + } +} diff --git a/pccenter/src/main/java/com/woniu/service/impl/MenusServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/MenusServiceImpl.java index 4e098f86f81e060fa58473e5fce400817459ce8d..ac5c69fc358ca4de81aec3057c3a5386513c94ef 100644 --- a/pccenter/src/main/java/com/woniu/service/impl/MenusServiceImpl.java +++ b/pccenter/src/main/java/com/woniu/service/impl/MenusServiceImpl.java @@ -117,4 +117,15 @@ public class MenusServiceImpl implements MenusService { menusMapper.updateSorting(menuId,sorting); } + @Override + public Menus findByMenuId(Integer menuId) { + return menusMapper.findByMenuId(menuId); + } + + @Override + public void updateMenus(Menus menus) { + menus.setSpread("false"); + menusMapper.updateByPrimaryKey(menus); + } + } diff --git a/pccenter/src/main/java/com/woniu/service/impl/MerchantServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/MerchantServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6206b699dba10e37109b705d8d45bfd4e547ec54 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/impl/MerchantServiceImpl.java @@ -0,0 +1,40 @@ +package com.woniu.service.impl; + +import com.woniu.dao.MerchantMapper; +import com.woniu.dto.MerchantDTO; +import com.woniu.service.MerchantService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class MerchantServiceImpl implements MerchantService { + + @Autowired + private MerchantMapper merchantMapper; + + @Override + public List findByPage(Integer currentPage, Integer pageSize) { + List list=merchantMapper.findByPage(currentPage,pageSize); + return list; + } + + @Override + public void editStatusById(Integer id, Date examineTime) { + merchantMapper.editStatusById(id,examineTime); + } + + @Override + public List select(String nickName, Integer status) { + List list=merchantMapper.select(nickName,status); + return list; + } + + @Override + public void refuse(Integer id, Date refuseTime) { + merchantMapper.refuse(id,refuseTime); + + } +} diff --git a/pccenter/src/main/java/com/woniu/service/impl/PropertyManageServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/PropertyManageServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..91fc171473fd3256b9c9a696470826a8882a62ed --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/impl/PropertyManageServiceImpl.java @@ -0,0 +1,42 @@ +package com.woniu.service.impl; + +import com.woniu.dao.PropertyManageMapper; +import com.woniu.pojo.PropertyManage; +import com.woniu.service.ProperManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +import java.util.Date; +import java.util.List; + +@Service +public class PropertyManageServiceImpl implements ProperManageService { + + @Autowired + private PropertyManageMapper pmMapper; + + @Override + public List findListByPage(Integer currentPage, Integer pageSize) { + List list=pmMapper.findByPage(currentPage,pageSize); + return list; + } + + @Override + public void editStatusById(Integer id, Date passTime) { + pmMapper.editStatusById(id,passTime); + } + + @Override + public List findList(String userName, Integer status) { + List list=pmMapper.findList(userName,status); + return list; + } + + @Override + public void refuse(Integer id, Date refuseTime) { + pmMapper.refuse(id,refuseTime); + } + + +} diff --git a/pccenter/src/main/java/com/woniu/service/impl/ServiceCommentServiceImpl.java b/pccenter/src/main/java/com/woniu/service/impl/ServiceCommentServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1e3a7c91f97efd02d284d81a3246fdebf3dc9d28 --- /dev/null +++ b/pccenter/src/main/java/com/woniu/service/impl/ServiceCommentServiceImpl.java @@ -0,0 +1,32 @@ +package com.woniu.service.impl; + +import com.woniu.dao.ServiceCommentMapper; +import com.woniu.dto.ServiceCommentDTO; +import com.woniu.service.ServiceCommentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +@Service +public class ServiceCommentServiceImpl implements ServiceCommentService { + + @Autowired + private ServiceCommentMapper scMapper; + @Override + public List findByPage(Integer currentPage, Integer pageSize) { + List list=scMapper.findByPage(currentPage,pageSize); + return list; + } + + @Override + public void delComment(Integer id) { + scMapper.delComment(id); + } + + @Override + public List select(String nickName, String payName) { + List list=scMapper.select(nickName,payName); + //System.out.println(list.size()); + return list; + } +} diff --git a/pccenter/src/main/resources/application.yml b/pccenter/src/main/resources/application.yml index 2f77018e71769e6720f946bec164ef3612e7916b..5b1dc9b5a3cf846a20a6e2af796b35876b43a47c 100644 --- a/pccenter/src/main/resources/application.yml +++ b/pccenter/src/main/resources/application.yml @@ -1,8 +1,10 @@ spring: + application: + name: pccenter datasource: - username: root - password: root - url: jdbc:mysql://localhost:3306/pccenter?serverTimezone=GMT%2B8 + username: develop + password: 20200322 + url: jdbc:mysql://106.12.148.100:3307/happycommunity?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 driver-class-name: com.mysql.jdbc.Driver druid: filters: stat,wall,logback @@ -29,3 +31,7 @@ pagehelper: logging: level: com.woniu.dao: debug +eureka: + client: + service-url: + defaultZone: http://localhost:8761/eureka diff --git a/pccenter/src/main/resources/generatorConfig.xml b/pccenter/src/main/resources/generatorConfig.xml index 2a08fdde051556eec363d275facfac95fa8bcc80..d6100193ad825d5c7f3220b7b7481eabf54c914b 100644 --- a/pccenter/src/main/resources/generatorConfig.xml +++ b/pccenter/src/main/resources/generatorConfig.xml @@ -9,8 +9,8 @@ - + @@ -24,7 +24,7 @@ domainObjectName实体类的名称 enableCountByExample 接口中是否生成对应的方法 --> - -
- -
- --> +
+ + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/mapper/ActivityMapper.xml b/pccenter/src/main/resources/mapper/ActivityMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..6c956fbdb200694e59385d6917441669d2655470 --- /dev/null +++ b/pccenter/src/main/resources/mapper/ActivityMapper.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/mapper/AdminMapper.xml b/pccenter/src/main/resources/mapper/AdminMapper.xml index c9e7f6ba35a18fbf43b8c0f9f66ce9e941598dc0..3d1808e0f4d96ef2f2b87e71ff05297af3c18b26 100644 --- a/pccenter/src/main/resources/mapper/AdminMapper.xml +++ b/pccenter/src/main/resources/mapper/AdminMapper.xml @@ -162,7 +162,7 @@ diff --git a/pccenter/src/main/resources/mapper/ComplainMapper.xml b/pccenter/src/main/resources/mapper/ComplainMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..0ecc93d3cd1db6aed5ee45683f1f3e724a9265b1 --- /dev/null +++ b/pccenter/src/main/resources/mapper/ComplainMapper.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/mapper/DynamicCommentMapper.xml b/pccenter/src/main/resources/mapper/DynamicCommentMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..129244fcf32f252b973ebfb8740685c3eb2db956 --- /dev/null +++ b/pccenter/src/main/resources/mapper/DynamicCommentMapper.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/mapper/InformationMapper.xml b/pccenter/src/main/resources/mapper/InformationMapper.xml deleted file mode 100644 index ec8f53a53d648b6e7496b57e1b3264a92a09211f..0000000000000000000000000000000000000000 --- a/pccenter/src/main/resources/mapper/InformationMapper.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - id, account, password, name, nickname, roletype, stage, phone, adress - - - - delete from pc_information - where id = #{id,jdbcType=INTEGER} - - - insert into pc_information (id, account, password, - name, nickname, roletype, - stage, phone, adress - ) - values (#{id,jdbcType=INTEGER}, #{account,jdbcType=INTEGER}, #{password,jdbcType=VARCHAR}, - #{name,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{roletype,jdbcType=VARCHAR}, - #{stage,jdbcType=VARCHAR}, #{phone,jdbcType=INTEGER}, #{adress,jdbcType=VARCHAR} - ) - - - insert into pc_information - - - id, - - - account, - - - password, - - - name, - - - nickname, - - - roletype, - - - stage, - - - phone, - - - adress, - - - - - #{id,jdbcType=INTEGER}, - - - #{account,jdbcType=INTEGER}, - - - #{password,jdbcType=VARCHAR}, - - - #{name,jdbcType=VARCHAR}, - - - #{nickname,jdbcType=VARCHAR}, - - - #{roletype,jdbcType=VARCHAR}, - - - #{stage,jdbcType=VARCHAR}, - - - #{phone,jdbcType=INTEGER}, - - - #{adress,jdbcType=VARCHAR}, - - - - - update pc_information - - - account = #{account,jdbcType=INTEGER}, - - - password = #{password,jdbcType=VARCHAR}, - - - name = #{name,jdbcType=VARCHAR}, - - - nickname = #{nickname,jdbcType=VARCHAR}, - - - roletype = #{roletype,jdbcType=VARCHAR}, - - - stage = #{stage,jdbcType=VARCHAR}, - - - phone = #{phone,jdbcType=INTEGER}, - - - adress = #{adress,jdbcType=VARCHAR}, - - - where id = #{id,jdbcType=INTEGER} - - - update pc_information - set account = #{account,jdbcType=INTEGER}, - password = #{password,jdbcType=VARCHAR}, - name = #{name,jdbcType=VARCHAR}, - nickname = #{nickname,jdbcType=VARCHAR}, - roletype = #{roletype,jdbcType=VARCHAR}, - stage = #{stage,jdbcType=VARCHAR}, - phone = #{phone,jdbcType=INTEGER}, - adress = #{adress,jdbcType=VARCHAR} - where id = #{id,jdbcType=INTEGER} - - \ No newline at end of file diff --git a/pccenter/src/main/resources/mapper/MerchantMapper.xml b/pccenter/src/main/resources/mapper/MerchantMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..d579a5429c30061c1f2ef1e310c3a995fbf04433 --- /dev/null +++ b/pccenter/src/main/resources/mapper/MerchantMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/mapper/PropertyManageMapper.xml b/pccenter/src/main/resources/mapper/PropertyManageMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..ba4f4d98f417151c5a41f98f516c456f872b9a21 --- /dev/null +++ b/pccenter/src/main/resources/mapper/PropertyManageMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/mapper/ServiceCommentMapper.xml b/pccenter/src/main/resources/mapper/ServiceCommentMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..501b9c52012dd5e18c98dbeaab6df1784f40353f --- /dev/null +++ b/pccenter/src/main/resources/mapper/ServiceCommentMapper.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/mapper/UsersMapper.xml b/pccenter/src/main/resources/mapper/UsersMapper.xml deleted file mode 100644 index 5249caf6da48f1f9cfcecf9c26f22e290a0df70b..0000000000000000000000000000000000000000 --- a/pccenter/src/main/resources/mapper/UsersMapper.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - uid, account, name, password, phone, adress, status, nickname, role_type - - - - delete from pc_users - where uid = #{uid,jdbcType=INTEGER} - - - insert into pc_users (uid, account, name, - password, phone, adress, - status, nickname, role_type - ) - values (#{uid,jdbcType=INTEGER}, #{account,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, - #{password,jdbcType=VARCHAR}, #{phone,jdbcType=INTEGER}, #{adress,jdbcType=VARCHAR}, - #{status,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{roleType,jdbcType=VARCHAR} - ) - - - insert into pc_users - - - uid, - - - account, - - - name, - - - password, - - - phone, - - - adress, - - - status, - - - nickname, - - - role_type, - - - - - #{uid,jdbcType=INTEGER}, - - - #{account,jdbcType=INTEGER}, - - - #{name,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{phone,jdbcType=INTEGER}, - - - #{adress,jdbcType=VARCHAR}, - - - #{status,jdbcType=VARCHAR}, - - - #{nickname,jdbcType=VARCHAR}, - - - #{roleType,jdbcType=VARCHAR}, - - - - - update pc_users - - - account = #{account,jdbcType=INTEGER}, - - - name = #{name,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - phone = #{phone,jdbcType=INTEGER}, - - - adress = #{adress,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=VARCHAR}, - - - nickname = #{nickname,jdbcType=VARCHAR}, - - - role_type = #{roleType,jdbcType=VARCHAR}, - - - where uid = #{uid,jdbcType=INTEGER} - - - update pc_users - set account = #{account,jdbcType=INTEGER}, - name = #{name,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - phone = #{phone,jdbcType=INTEGER}, - adress = #{adress,jdbcType=VARCHAR}, - status = #{status,jdbcType=VARCHAR}, - nickname = #{nickname,jdbcType=VARCHAR}, - role_type = #{roleType,jdbcType=VARCHAR} - where uid = #{uid,jdbcType=INTEGER} - - \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/403.html b/pccenter/src/main/resources/templates/403.html new file mode 100644 index 0000000000000000000000000000000000000000..01661deb2aacd88268718fb173f2e7a7b6ed84db --- /dev/null +++ b/pccenter/src/main/resources/templates/403.html @@ -0,0 +1,152 @@ + + + + +403禁止页面模板 + + + + + +

403

+

> ERROR CODE: "HTTP 403 Forbidden"

+

> ERROR DESCRIPTION: "Access Denied. You Do Not Have The Permission To Access This Page On This Server"

+

> ERROR POSSIBLY CAUSED BY: [execute access forbidden, read access forbidden, write access forbidden, ssl required, ssl 128 required, ip address rejected, client certificate required, site access denied, too many users, invalid configuration, password change, mapper denied access, client certificate revoked, directory listing denied, client access licenses exceeded, client certificate is untrusted or invalid, client certificate has expired or is not yet valid, passport logon failed, source access denied, infinite depth is denied, too many requests from the same client ip...]

+

> SOME PAGES ON THIS SERVER THAT YOU DO HAVE PERMISSION TO ACCESS: [Home Page, About Us, Contact Us, Blog...]

> HAVE A NICE DAY SIR AXLEROD :-)

+
+ + + + + + diff --git a/pccenter/src/main/resources/templates/login.html b/pccenter/src/main/resources/templates/login.html index 4755c5ca57fdee95e59dbe62ebf12a951eeffbb1..28bfae4f10f4b41788dfc7ea4bd9112b9c822025 100644 --- a/pccenter/src/main/resources/templates/login.html +++ b/pccenter/src/main/resources/templates/login.html @@ -12,9 +12,14 @@
-
+ +
+
+ 账号登录 +
@@ -27,27 +32,15 @@
-
-
还没有账号?免费注册
-
@@ -69,10 +62,11 @@ if(result.code == 200){ location.href = "/sys/index"; }else{ - layer.msg('登录失败',{icon:5}); + layer.msg(result.message,{icon:5}); } } }); + return false; }) }) diff --git a/pccenter/src/main/resources/templates/sys/ac_complainList.html b/pccenter/src/main/resources/templates/sys/ac_complainList.html new file mode 100644 index 0000000000000000000000000000000000000000..7ab2277e071b978b02495985d25de100bee60a92 --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/ac_complainList.html @@ -0,0 +1,155 @@ + + + + + 活动投诉列表 + + + +
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+ +
+ + +
+ +
+ +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/ac_reply.html b/pccenter/src/main/resources/templates/sys/ac_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..f583820b7a27a2113418bacd90db4f19d618f26f --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/ac_reply.html @@ -0,0 +1,55 @@ + + + + + Title + + + +
+ +
+ +
+ +
+
+
+
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/activityList.html b/pccenter/src/main/resources/templates/sys/activityList.html new file mode 100644 index 0000000000000000000000000000000000000000..4abd18c30836d127eb7ca47bcaf9661ee95d7300 --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/activityList.html @@ -0,0 +1,196 @@ + + + + + 社区活动审核 + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + +
+ +
+
+
+
+ +
+ +
+ + +
+ +
+
+
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/addAdmin.html b/pccenter/src/main/resources/templates/sys/addAdmin.html index ae108e75c4bb46fffc5d0ff6d430d166394fe51d..328f8787fbee18cb86491a919903f01047d4517d 100644 --- a/pccenter/src/main/resources/templates/sys/addAdmin.html +++ b/pccenter/src/main/resources/templates/sys/addAdmin.html @@ -40,7 +40,7 @@
- +
@@ -104,8 +104,7 @@ //参数data就是表单中的数据 form.on('submit(addAdmin)',function (data) { - //data.field;//当前容器的全部表单字段,名值对形式:{name: value} - + $.ajax({ url:'/admin/saveAdmin', data:data.field, diff --git a/pccenter/src/main/resources/templates/sys/adminList.html b/pccenter/src/main/resources/templates/sys/adminList.html index 1d518486964bc83ee3bbf379ddf9054ff3409c0e..4c7a54d5211557459b552018d6484f40b5870a90 100644 --- a/pccenter/src/main/resources/templates/sys/adminList.html +++ b/pccenter/src/main/resources/templates/sys/adminList.html @@ -1,210 +1,201 @@ - + - Title + 管理员列表 -
+
- - - - - - - - - - - - - - - - + //监听行工具事件 + //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值" + //obj.data //获得当前行数据 + //var layEvent = obj.event; //获得 lay-event 对应的值 + table.on('tool(test)', function (obj) { + var event = obj.event; + var data = obj.data; + if (event === 'edit') { //执行编辑 + layer.open({ + type: 2, + title: '编辑管理员', + area: ['400px', '500px'], + content: '/admin/editAdmin/' + data.id + }); + } else if (event === 'del') {//执行删除 + var adminId = $("#adminId").val(); + if (data.roleName == "超级管理员") { + layer.msg('超级管理员不能删除'); + return; + } + if (data.id == adminId) { + layer.msg('不能删除自己'); + return; + } + layer.confirm('确认删除', function (index) { + $.ajax({ + url: '/admin/deleteAdmin/' + data.id, + type: 'delete', + dataType: 'json', + success: function (result) { + if (result.code == 200) { + layer.msg("删除成功", {icon: 1}); + location.reload(); + } else { + layer.msg("删除失败", {icon: 5}); + } + } + }) + layer.close(index); + }) + } + }) + + + }); + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/complainList.html b/pccenter/src/main/resources/templates/sys/complainList.html new file mode 100644 index 0000000000000000000000000000000000000000..24714708abb6b8a6587ad05ce769ca774cf9ebbe --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/complainList.html @@ -0,0 +1,161 @@ + + + + + 物业投诉列表 + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + +
+ +
+
+
+
+ +
+ +
+ + +
+ +
+
+ +
+
+ +
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/dynamic_commentList.html b/pccenter/src/main/resources/templates/sys/dynamic_commentList.html new file mode 100644 index 0000000000000000000000000000000000000000..9ad824aa01a414be6af08033462328498e0c6b73 --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/dynamic_commentList.html @@ -0,0 +1,163 @@ + + + + + 活动评论列表 + + + +
+
+
+
+
+
+ +
+ +
+
+
+ + +
+ +
+
+
+
+ +
+ +
+ + +
+ +
+
+
+
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/editMenu.html b/pccenter/src/main/resources/templates/sys/editMenu.html new file mode 100644 index 0000000000000000000000000000000000000000..47fc05fafebf118c4792d78d49431073e1a14ac7 --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/editMenu.html @@ -0,0 +1,99 @@ + + + + + 编辑菜单 + + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/editRole.html b/pccenter/src/main/resources/templates/sys/editRole.html index 570fcac7668793ab364b251f3402b8fdf5e84cab..8a5799424cf1e1fe55a08bddc0d7e45f9bce5d58 100644 --- a/pccenter/src/main/resources/templates/sys/editRole.html +++ b/pccenter/src/main/resources/templates/sys/editRole.html @@ -33,7 +33,6 @@
-
diff --git a/pccenter/src/main/resources/templates/sys/index.html b/pccenter/src/main/resources/templates/sys/index.html index 47fcf32ef3ded84627953cd3b611c2aa3c531366..7aaa30a4c5b94f8970df4f29ff54e063cb86d894 100644 --- a/pccenter/src/main/resources/templates/sys/index.html +++ b/pccenter/src/main/resources/templates/sys/index.html @@ -1,5 +1,5 @@ - + 后台首页 @@ -24,19 +24,19 @@ 修改密码
  • - 退出 + 退出
  • - +
    个人资料
    修改密码
    -
    退出
    +
    退出
  • diff --git a/pccenter/src/main/resources/templates/sys/menuList.html b/pccenter/src/main/resources/templates/sys/menuList.html index 95a1b818453a0d483e05df92c3034ae4edc2cd5f..a239710039d746ea6999d204116030bbc467f2aa 100644 --- a/pccenter/src/main/resources/templates/sys/menuList.html +++ b/pccenter/src/main/resources/templates/sys/menuList.html @@ -1,5 +1,5 @@ - + 菜单列表 @@ -8,9 +8,12 @@
    - - - + + + + + +
    @@ -58,9 +61,6 @@ {title:'排序',field:'sorting',event:'sorting',style:'cursor:pointer'} ] ] - }) - $("#editMenu").click(function () { - }) //添加菜单 $("#addMenu").click(function () { @@ -82,10 +82,34 @@ layer.open({ type:2, title:'添加菜单', - area:['500px','600px'], + area:['400px','400px'], content:'/menus/addMenu/'+parentId }) }) + //编辑菜单 + $("#editMenu").click(function () { + var checkStatus = treeGrid.checkStatus('treeTable'); + var data = checkStatus.data;//获取选中行的数据 + if(data.length>1){ + layer.msg('只能选择一条数据',{icon:5}); + return ; + } + var menuId; + + if(data != ''){ + //获取当前行的节点菜单的Id + menuId = data[0].menuId; + } + //如果没有勾选复选框,默认id的值为0;即是根节点。 + //parentId = parentId==undefined?0:parentId; + + layer.open({ + type:2, + title:'编辑菜单', + area:['400px','400px'], + content:'/menus/editMenu/'+menuId + }) + }) //排序:监听行工具事件 tool() treeGrid.on("tool(treeTable)",function (row) { if(row.event === 'sorting'){ @@ -118,7 +142,7 @@ }) } }) - + //删除菜单 $("#delMenu").click(function () { var checkStatus = treeGrid.checkStatus('treeTable'); diff --git a/pccenter/src/main/resources/templates/sys/merchantList.html b/pccenter/src/main/resources/templates/sys/merchantList.html new file mode 100644 index 0000000000000000000000000000000000000000..54fb4f82022acbdf74fcb993d39de35d7384e841 --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/merchantList.html @@ -0,0 +1,187 @@ + + + + + 商家注册列表 + + + +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + + +
    + +
    +
    +
    +
    + +
    + +
    + + +
    + +
    +
    + +
    +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/pmList.html b/pccenter/src/main/resources/templates/sys/pmList.html new file mode 100644 index 0000000000000000000000000000000000000000..4af99772c727f0730465a47bce1beb0164e6c9fb --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/pmList.html @@ -0,0 +1,188 @@ + + + + + 物业审核 + + + +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + + +
    + +
    +
    +
    +
    + +
    + +
    + + +
    + +
    +
    + +
    +
    + +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/reply.html b/pccenter/src/main/resources/templates/sys/reply.html new file mode 100644 index 0000000000000000000000000000000000000000..cd2cb47caef10ea776bd5129dba42b2284a7dda4 --- /dev/null +++ b/pccenter/src/main/resources/templates/sys/reply.html @@ -0,0 +1,56 @@ + + + + + Title + + + +
    + +
    + +
    + +
    +
    +
    +
    + + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/pccenter/src/main/resources/templates/sys/roleList.html b/pccenter/src/main/resources/templates/sys/roleList.html index 895701e40e68564dfb9578e93815c28652c0f21d..a2d3567ebd6d0895990af67116e6cdccc63fea57 100644 --- a/pccenter/src/main/resources/templates/sys/roleList.html +++ b/pccenter/src/main/resources/templates/sys/roleList.html @@ -1,5 +1,5 @@ - + 角色列表 @@ -7,19 +7,29 @@
    + + + + + + + \ No newline at end of file diff --git a/personcentor/pom.xml b/personcentor/pom.xml index 152243fd923a741bd34e7fc2bcd654843508d07e..93355173e8a1c756fc1ae368d6eeac5c76cf62bb 100644 --- a/personcentor/pom.xml +++ b/personcentor/pom.xml @@ -24,6 +24,12 @@ qiniu-java-sdk [7.2.0, 7.2.99] + + com.auth0 + java-jwt + 2.2.0 + + com.google.code.gson gson @@ -124,10 +130,45 @@ spring-context 5.2.4.RELEASE + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + 2.2.2.RELEASE + - org.springframework - spring-context - 5.2.4.RELEASE + biz.aQute.bnd + biz.aQute.bndlib + 3.2.0 + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.swagger + swagger-annotations + + + io.swagger + swagger-models + + + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + io.swagger + swagger-annotations + 1.5.21 + + + io.swagger + swagger-models + 1.5.21 diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/PersoncentorApplication.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/PersoncentorApplication.java index b96fd6ccee9571fbc967b2904dea3413fc8aefdd..43634606682acd779944993364ad1a429889a9a2 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/PersoncentorApplication.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/PersoncentorApplication.java @@ -4,6 +4,7 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.context.annotation.Bean; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.connection.RedisConnectionFactory; @@ -17,6 +18,7 @@ import org.springframework.session.data.redis.config.annotation.web.http.EnableR @MapperScan("com.team7.happycommunity.personcentor.dao") @EnableCaching//开启声明式缓存 @EnableRedisHttpSession +@EnableEurekaClient public class PersoncentorApplication { public static void main(String[] args) { diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/common/LoginToken.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/common/LoginToken.java new file mode 100644 index 0000000000000000000000000000000000000000..71bce91c46faa08999a53b94291acfbb433897ee --- /dev/null +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/common/LoginToken.java @@ -0,0 +1,37 @@ +package com.team7.happycommunity.personcentor.common; + + + +import java.io.Serializable; + +//@Component + +public class LoginToken implements Serializable { + private String username; + private String token; + private Integer userId; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } +} diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/config/Swagger2Config.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/config/Swagger2Config.java new file mode 100644 index 0000000000000000000000000000000000000000..473e92b0245455ec1261ab6156cb73e01804a266 --- /dev/null +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/config/Swagger2Config.java @@ -0,0 +1,18 @@ +package com.team7.happycommunity.personcentor.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +//@EnableSwagger2//启动 +public class Swagger2Config { + + @Bean + public Docket decket(){ + return new Docket(DocumentationType.SWAGGER_2); + } + +} diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/BusinessImageController.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/BusinessImageController.java deleted file mode 100644 index 01b46687c4d9fb6db7d05d6908833192876b53d8..0000000000000000000000000000000000000000 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/BusinessImageController.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.team7.happycommunity.personcentor.controller; - -import com.team7.happycommunity.personcentor.entity.BusinessImage; -import com.team7.happycommunity.personcentor.service.BusinessImageService; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -/** - * (BusinessImage)表控制层 - * - * @author makejava - * @since 2020-03-22 21:19:30 - */ -@RestController -@RequestMapping("businessImage") -public class BusinessImageController { - /** - * 服务对象 - */ - @Resource - private BusinessImageService businessImageService; - - /** - * 通过主键查询单条数据 - * - * @param id 主键 - * @return 单条数据 - */ - @GetMapping("selectOne") - public BusinessImage selectOne(Integer id) { - return this.businessImageService.queryById(id); - } - -} \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityComplaintController.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityComplaintController.java deleted file mode 100644 index 0681a593e83b08f4e823f470996fa8dbfc1818cc..0000000000000000000000000000000000000000 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityActivityComplaintController.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.team7.happycommunity.personcentor.controller; - -import com.team7.happycommunity.personcentor.entity.CommunityActivityComplaint; -import com.team7.happycommunity.personcentor.service.CommunityActivityComplaintService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * (CommunityActivityComplaint)表控制层 - * - * @author makejava - * @since 2020-03-25 11:18:29 - */ -@RestController -@RequestMapping("communityActivityComplaint") -public class CommunityActivityComplaintController { - /** - * 服务对象 - */ - @Resource - private CommunityActivityComplaintService communityActivityComplaintService; - - /** - * 通过主键查询单条数据 - * - * @param id 主键 - * @return 单条数据 - */ - @GetMapping("selectOne") - public CommunityActivityComplaint selectOne(Integer id) { - return this.communityActivityComplaintService.queryById(id); - } - -} \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityChatController.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityChatController.java deleted file mode 100644 index 429f030d5cdc13ee4077d7d7d95c91d731210519..0000000000000000000000000000000000000000 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityChatController.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.team7.happycommunity.personcentor.controller; -import com.team7.happycommunity.personcentor.entity.CommunityChat; -import com.team7.happycommunity.personcentor.service.CommunityChatService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * (CommunityChat)表控制层 - * - * @author makejava - * @since 2020-03-24 16:58:04 - */ -@RestController -@RequestMapping("communityChat") -public class CommunityChatController { - /** - * 服务对象 - */ - @Resource - private CommunityChatService communityChatService; - - /** - * 通过主键查询单条数据 - * - * @param id 主键 - * @return 单条数据 - */ - @GetMapping("selectOne") - public CommunityChat selectOne(Integer id) { - return this.communityChatService.queryById(id); - } - -} \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityDynamicCommentController.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityDynamicCommentController.java deleted file mode 100644 index 954faa837087041ddca002578fea960a0704e704..0000000000000000000000000000000000000000 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityDynamicCommentController.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.team7.happycommunity.personcentor.controller; - -import com.team7.happycommunity.personcentor.entity.CommunityDynamicComment; -import com.team7.happycommunity.personcentor.service.CommunityDynamicCommentService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * (CommunityDynamicComment)表控制层 - * - * @author makejava - * @since 2020-03-24 17:26:32 - */ -@RestController -@RequestMapping("communityDynamicComment") -public class CommunityDynamicCommentController { - /** - * 服务对象 - */ - @Resource - private CommunityDynamicCommentService communityDynamicCommentService; - - /** - * 通过主键查询单条数据 - * - * @param id 主键 - * @return 单条数据 - */ - @GetMapping("selectOne") - public CommunityDynamicComment selectOne(Integer id) { - return this.communityDynamicCommentService.queryById(id); - } - -} \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityDynamicController.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityDynamicController.java index 6bfc5a07832954689a79f25674fd6c787a680150..f6f09fe89175b4d9e3f2ffc3217d087cf49b424e 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityDynamicController.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/CommunityDynamicController.java @@ -1,12 +1,19 @@ package com.team7.happycommunity.personcentor.controller; +import com.team7.happycommunity.personcentor.common.CommonResult; import com.team7.happycommunity.personcentor.entity.CommunityDynamic; +import com.team7.happycommunity.personcentor.entity.CommunityDynamicComment; +import com.team7.happycommunity.personcentor.entity.DynamicCommit; +import com.team7.happycommunity.personcentor.service.CommunityDynamicCommentService; import com.team7.happycommunity.personcentor.service.CommunityDynamicService; +import io.swagger.annotations.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.Date; +import java.util.List; /** * (CommunityDynamic)表控制层 @@ -16,12 +23,15 @@ import javax.annotation.Resource; */ @RestController @RequestMapping("communityDynamic") +@Api(tags="社区动态接口") public class CommunityDynamicController { /** * 服务对象 */ @Resource private CommunityDynamicService communityDynamicService; + @Resource + private CommunityDynamicCommentService communityDynamicCommentService; /** * 通过主键查询单条数据 @@ -34,4 +44,76 @@ public class CommunityDynamicController { return this.communityDynamicService.queryById(id); } + /** + * 查询当前动态的所有评论 + * @param dynamicId 动态id + * @return 评论内容 + */ + @GetMapping("queryCommit") + @ApiOperation(value = "查询当前动态的所有评论") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "dynamicId",value = "动态id",required = true) + }) + public List queryCommit(Integer dynamicId){ + return communityDynamicService.queryCommit(dynamicId); + } + + /** + * 添加评论 + * @param dynamicId 动态id + * @param userId 评论用户的id + * @param cdcContent 评论内容 + * @return + */ + @GetMapping("addCommit") + @ApiOperation(value = "添加评论") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "dynamicId",value = "动态id",required = true), + @ApiImplicitParam(name = "userId",value = "评论用户的id",required = true), + @ApiImplicitParam(name = "userId",value = "评论内容",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "评论成功"), + @ApiResponse(code = 500,message = "评论失败") + }) + public CommonResult addCommit(Integer dynamicId,Integer userId,String cdcContent){ + try { + CommunityDynamicComment comment=new CommunityDynamicComment(); + comment.setCdcContent(cdcContent); + comment.setCdcDynamicId(dynamicId); + comment.setCdcUserId(userId); + comment.setCdcTime(new Date()); + communityDynamicCommentService.insert(comment); + return CommonResult.success(); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 删除评论 + * @param id 评论的id + * @return + */ + @GetMapping("deleteCommit") + @ApiOperation(value = "删除评论") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "id",value = "评论id",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "删除成功"), + @ApiResponse(code = 500,message = "删除失败") + }) + public CommonResult deleteCommit(Integer id){ + try { + communityDynamicCommentService.deleteById(id); + return CommonResult.success(); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } } \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/PersonCollectUserController.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/PersonCollectUserController.java index 0bb033c0a0ce53a3d06d213203df6d0ce00cc9c5..21c02750b4a0290725ef26cc277255a40d7c6003 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/PersonCollectUserController.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/PersonCollectUserController.java @@ -2,6 +2,7 @@ package com.team7.happycommunity.personcentor.controller; import com.team7.happycommunity.personcentor.entity.PersonCollectUser; import com.team7.happycommunity.personcentor.service.PersonCollectUserService; +import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -14,6 +15,7 @@ import javax.annotation.Resource; */ @RestController @RequestMapping("personCollectUser") + public class PersonCollectUserController { /** * 服务对象 diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/PersonUserController.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/PersonUserController.java index 2a433ba065089a7f911cd19aab3e9a033ec4e51a..1f0f57f715daa0fb7418f625352365db3a9b027f 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/PersonUserController.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/controller/PersonUserController.java @@ -2,6 +2,7 @@ package com.team7.happycommunity.personcentor.controller; import com.sun.mail.imap.protocol.ID; import com.team7.happycommunity.personcentor.common.CommonResult; +import com.team7.happycommunity.personcentor.common.LoginToken; import com.team7.happycommunity.personcentor.entity.Dynamic; import com.team7.happycommunity.personcentor.entity.MyPublishAcitivity; import com.team7.happycommunity.personcentor.entity.PersonUser; @@ -10,6 +11,8 @@ import com.team7.happycommunity.personcentor.exception.MailboxStatusException; import com.team7.happycommunity.personcentor.service.PersonUserService; import com.team7.happycommunity.personcentor.util.CookieUtils; import com.team7.happycommunity.personcentor.util.QiniuUploadUtil; +import io.swagger.annotations.*; +import org.apache.catalina.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; @@ -33,6 +36,7 @@ import java.util.concurrent.locks.ReentrantLock; */ @RestController @RequestMapping("personUser") +@Api(tags="用户接口") public class PersonUserController { /** * 服务对象 @@ -70,22 +74,45 @@ public class PersonUserController { */ @RequestMapping("/subLogin") @ResponseBody - public CommonResult login(String text, String password) throws Exception { + @ApiOperation(value = "登录") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "text",value = "登录的手机号或者邮箱",required = true), + @ApiImplicitParam(name = "password",value = "密码",required = true) + }) + @ApiResponses(value = { + @ApiResponse(code = 200,message = "登录成功"), + @ApiResponse(code = 500,message = "登录失败") + }) + public CommonResult login(String text, String password) throws Exception { + PersonUser user =null; if(text==null||password==null){ return CommonResult.failed("账号或密码不能为空"); } try { - personUserService.login(text,password); + user =personUserService.login(text, password); } catch (LoginException e) { e.printStackTrace(); return CommonResult.failed(e.getMessage()); } - return CommonResult.success("登录成功"); + LoginToken loginToken=new LoginToken(); + loginToken.setUserId(user.getId()); + loginToken.setUsername(user.getName()); + return CommonResult.success("登录成功",loginToken); } + /** + * 发送邮件 + * @param user + * @return + */ @PostMapping("/mailboxRegister") @ResponseBody + @ApiOperation(value = "发送邮件") + @ApiResponses(value = { + @ApiResponse(code = 200,message = "邮件发送成功"), + @ApiResponse(code = 500,message = "邮件发送失败") + }) public CommonResult mailboxRegister(PersonUser user){ //1.搜索邮箱,邮箱不存在或邮箱状态不为0 boolean flag=personUserService.queryMailbox(user.getMailbox()); @@ -104,13 +131,23 @@ public class PersonUserController { } /** - * 手机号码注册,密码重置 + * 发送验证码 * @param phone 手机号码 * @param resetCode 密码重置参数,1密码重置,0注册 * @return */ @PostMapping("/phoneRegister") @ResponseBody + @ApiOperation(value = "发送验证码") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "phone",value = "手机号码",required = true), + @ApiImplicitParam(name = "resetCode",value = "密码重置参数,1密码重置,0注册",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "验证码发送成功"), + @ApiResponse(code = 500,message = "验证码发送失败") + }) public CommonResult phoneRegister(String phone,String resetCode){ try { @@ -130,6 +167,16 @@ public class PersonUserController { */ @PostMapping("/codeCheck") @ResponseBody + @ApiOperation(value = "验证码校正") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "phone",value = "手机号码",required = true), + @ApiImplicitParam(name = "code",value = "验证码",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "校正成功"), + @ApiResponse(code = 500,message = "校正失败") + }) public CommonResult codeCheck(String phone,String code){ try { personUserService.codeCheck(code,phone); @@ -147,6 +194,11 @@ public class PersonUserController { */ @PostMapping("/addInfo") @ResponseBody + @ApiOperation(value = "添加个人信息") + @ApiResponses(value = { + @ApiResponse(code = 200,message = "添加成功"), + @ApiResponse(code = 500,message = "添加失败") + }) public CommonResult addInfo(PersonUser user){ if(user.getPassword()==null){ return CommonResult.failed("注册失败,密码不能为空"); @@ -156,7 +208,7 @@ public class PersonUserController { return CommonResult.success(); } catch (Exception e) { e.printStackTrace(); - return CommonResult.failed("注册失败,请联系管理员"); + return CommonResult.failed(e.getMessage()); } } /** @@ -166,19 +218,30 @@ public class PersonUserController { */ @GetMapping("/activate") @ResponseBody - public ModelAndView activate(String code){ + @ApiOperation(value = "修改邮箱状态") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "code",value = "邮箱的令牌") + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "激活成功"), + @ApiResponse(code = 500,message = "激活失败") + }) + public CommonResult activate(String code){ //激活邮箱 ModelAndView mv=new ModelAndView(); try { personUserService.updateMailboxStatus(code); mv.setViewName("mailboxRegisterMessage"); - return mv; + return CommonResult.success("激活成功"); }catch (MailboxStatusException e){ e.printStackTrace(); + return CommonResult.failed(e.getMessage()); }catch (Exception e) { e.printStackTrace(); + return CommonResult.failed(e.getMessage()); } - return null; + } /** @@ -188,6 +251,15 @@ public class PersonUserController { * @return */ @PostMapping("/resetPassword") + @ApiOperation(value = "密码修改") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "cellPhNumber",value = "手机号"), + @ApiImplicitParam(name = "password",value = "新密码") + }) + @ApiResponses(value = { + @ApiResponse(code = 200,message = "修改成功"), + @ApiResponse(code = 500,message = "修改失败") + }) public CommonResult resetPasswordByPhone(String cellPhNumber,String password){ if (password==null){ return CommonResult.failed("密码不能为空"); @@ -203,13 +275,14 @@ public class PersonUserController { /** * 个人中心,账户管理 - * @param userId 用户id + * @param * @return */ @GetMapping("/personCenter") @ResponseBody - public CommonResult personCenter(Integer userId){ - String name = cookieUtils.getName(); + @ApiOperation(value = "个人中心,账户管理") + public CommonResult personCenter(){ + String name = request.getHeader("userName"); if(name==null){ return CommonResult.failed("未登录"); } @@ -223,8 +296,13 @@ public class PersonUserController { */ @GetMapping("/exit") @ResponseBody + @ApiOperation(value = "退出登录") + @ApiResponses(value = { + @ApiResponse(code = 200,message = "退出成功"), + @ApiResponse(code = 500,message = "退出失败") + }) public CommonResult exit(){ - String name = cookieUtils.getName(); + String name = request.getHeader("userName"); if(name==null){ return CommonResult.failed("退出失败"); } @@ -249,13 +327,23 @@ public class PersonUserController { * @param password 新密码 * @return */ - @PostMapping("/resetPasswordBypassword") + @PostMapping(value="/resetPasswordBypassword") @ResponseBody + @ApiOperation(value = "密码修改") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "oldPassword",value = "旧密码",required = true), + @ApiImplicitParam(name = "password",value = "新密码",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "修改成功"), + @ApiResponse(code = 500,message = "修改失败") + }) public CommonResult resetPasswordBypassword(String oldPassword,String password){ if (password==null||password.equals("")||oldPassword==null||oldPassword.equals("")){ return CommonResult.failed("密码不能为空"); } - String name = cookieUtils.getName(); + String name = request.getHeader("userName"); if(name==null){ return CommonResult.failed("未登录"); } @@ -273,8 +361,9 @@ public class PersonUserController { * @return */ @GetMapping("/dynamic") + @ApiOperation(value = "帖子动态") public List dynamic(){ - String name = cookieUtils.getName(); + String name = request.getHeader("userName"); if(name==null){ return null; } @@ -287,8 +376,9 @@ public class PersonUserController { * @return */ @GetMapping("/myPublishAcitivity") + @ApiOperation(value = "我发布的活动") public List myPublishAcitivity(){ - String name = cookieUtils.getName(); + String name = request.getHeader("userName"); if(name==null){ return null; } @@ -302,6 +392,7 @@ public class PersonUserController { * @return */ @GetMapping("/acitivityDetail") + public List acitivityDetail(String acid){ return null; @@ -312,8 +403,9 @@ public class PersonUserController { * @return */ @GetMapping("/myJoinAcitivity") + @ApiOperation(value = "我参加的活动") public List myJoinAcitivity(){ - String name = cookieUtils.getName(); + String name = request.getHeader("userName"); if(name==null){ return null; } @@ -326,19 +418,34 @@ public class PersonUserController { * @return */ @GetMapping("/myAttentionDynamic") + @ApiOperation(value = "我收藏的帖子") public List myAttentionDynamic(){ - String name = cookieUtils.getName(); - if(name==null){ + String userName = request.getHeader("userName"); + if(userName==null){ return null; } - List user=personUserService.queryMyAttentionDynamicByName(name); + List user=personUserService.queryMyAttentionDynamicByName(userName); return user; } + /** + * 上传头像 + * @param file + * @return + */ @ResponseBody @PostMapping("/uploadHeadImage") + @ApiOperation(value = "上传头像") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "file",value = "图片",required = true) + }) + + @ApiResponses(value = { + @ApiResponse(code = 200,message = "上传成功"), + @ApiResponse(code = 500,message = "上传失败") + }) public CommonResult uploadHeadImage(MultipartFile file){ - String userName = cookieUtils.getName(); + String userName = request.getHeader("userName"); if(userName==null){ return null; } @@ -357,4 +464,20 @@ public class PersonUserController { return CommonResult.success("上传成功",map); } + + /** + * 测试专用 + * @param request + * @return + */ + @RequestMapping("/test") + @ResponseBody + public String test(HttpServletRequest request){ + String userName = request.getHeader("userName"); + String userId = request.getHeader("userId"); + + System.out.println("request test..."+userId); + System.out.println("request test..."+userName); + return "test"; + } } \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/dao/CommunityDynamicDao.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/dao/CommunityDynamicDao.java index a4a971833e9460307554deb4361716081e6c0ef8..8576af26f7b54075744483ea4f58696d1d484229 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/dao/CommunityDynamicDao.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/dao/CommunityDynamicDao.java @@ -1,6 +1,7 @@ package com.team7.happycommunity.personcentor.dao; import com.team7.happycommunity.personcentor.entity.CommunityDynamic; +import com.team7.happycommunity.personcentor.entity.DynamicCommit; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -62,5 +63,10 @@ public interface CommunityDynamicDao { * @return 影响行数 */ int deleteById(Integer id); - + /** + * 查询当前动态的所有评论 + * @param dynamicId 动态id + * @return 评论内容 + */ + List queryCommit(Integer dynamicId); } \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/dao/PersonUserDao.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/dao/PersonUserDao.java index fdf9d3ce0f2ec88384c155bdd0c34555f6db22d9..d599d059589b168f3b757130efcc7b6d2877600c 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/dao/PersonUserDao.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/dao/PersonUserDao.java @@ -121,4 +121,20 @@ public interface PersonUserDao { * @return */ List queryMyAttentionDynamicByName(String name); + + + + + /** + * 个人信息头像的修改 + * @param id 用户id + * @param imgurl 头像的url + */ + void updateHeadImage(@Param("id")Integer id, @Param("imgurl")String imgurl); + + /** + * 根据邮箱删除数据 + * @param mailbox + */ + void deleteByMailbox(String mailbox); } \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/Areainfo.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/Areainfo.java index 71508a450a41cd3445f09c426246a0d8cea4bcc3..581aab9eed9ec03732c03a609bce2aa3f54be8bb 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/Areainfo.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/Areainfo.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.io.Serializable; /** @@ -8,15 +11,17 @@ import java.io.Serializable; * @author makejava * @since 2020-03-23 14:46:47 */ +@ApiModel(value = "小区信息表") public class Areainfo implements Serializable { private static final long serialVersionUID = 893984337762180737L; - + + @ApiModelProperty(value = "id") private Integer id; - + @ApiModelProperty(value = "小区名称") private String areaName; - + @ApiModelProperty(value = "小区地址") private String areaAddress; - + @ApiModelProperty(value = "详细信息") private String detail1; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivity.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivity.java index fd76b9bc18d38d8368b96b2d0263d5d78b58256a..23f916212169d4b6a84a810cef90a358801ad1e0 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivity.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivity.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.io.Serializable; import java.util.Date; @@ -9,59 +12,73 @@ import java.util.Date; * @author makejava * @since 2020-03-25 11:18:29 */ +@ApiModel(value = "社区动态") public class CommunityActivity implements Serializable { private static final long serialVersionUID = -32549005841184090L; /** * 动态id */ + @ApiModelProperty(value = "id") private Integer id; /** * 发布者id */ + @ApiModelProperty(value = "发布者id") private Integer caUserId; /** * 活动图片id */ + @ApiModelProperty(value = "活动图片id") private String caPicPath; /** * 活动类型 */ + @ApiModelProperty(value = "活动类型") private Integer caType; /** * 活动标题 */ + @ApiModelProperty(value = "活动标题") private String caTitle; /** * 活动内容 */ + @ApiModelProperty(value = "活动内容") private String caContent; /** * 发起时间 */ + @ApiModelProperty(value = "发起时间") private Date caStartTime; /** * 结束时间 */ + @ApiModelProperty(value = "结束时间") private Date caEndTime; /** * 活动状态 */ + @ApiModelProperty(value = "活动状态") private Integer caStatus; /** * 消费金额 */ + @ApiModelProperty(value = "消费金额") private Object caMoney; /** * 参与人数 */ + @ApiModelProperty(value = "参与人数") private Integer caPeopelCount; /** * 最大参与人数 */ + @ApiModelProperty(value = "最大参与人数") private Integer caMaxPeopleCount; /** * 创建时间 */ + @ApiModelProperty(value = "创建时间") private Date caCreateTime; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivityComplaint.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivityComplaint.java index 9f4bde478cdf5b72cfcb30093b149a46b98ad813..080101f7a6ba59ef19189074170b3b706960f379 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivityComplaint.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivityComplaint.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.io.Serializable; import java.util.Date; @@ -9,29 +12,35 @@ import java.util.Date; * @author makejava * @since 2020-03-25 11:18:29 */ +@ApiModel(value = "社区动态投诉实体类") public class CommunityActivityComplaint implements Serializable { private static final long serialVersionUID = -35019715504984022L; - + @ApiModelProperty(value = "id") private Integer id; /** * 投诉用户 id */ + @ApiModelProperty(value = "投诉用户 id") private Integer cacUserId; /** * 投诉活动 id */ + @ApiModelProperty(value = "投诉活动 id") private Integer cacActivityId; /** * 投诉理由 */ + @ApiModelProperty(value = "投诉理由") private String cacReason; /** * 图片证据id */ + @ApiModelProperty(value = "图片证据id") private String cacPic; /** * 投诉时间(创建时间) */ + @ApiModelProperty(value = "投诉时间(创建时间)") private Date ccTime; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivityUser.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivityUser.java index bbcec491f790a265e49049d13d20c3c30d3f6658..58aac148a5e7f646ed12189eee234ed58b7f14ae 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivityUser.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityActivityUser.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.io.Serializable; /** @@ -8,17 +11,20 @@ import java.io.Serializable; * @author makejava * @since 2020-03-25 11:18:29 */ +@ApiModel(value = "社区活动用户实体类") public class CommunityActivityUser implements Serializable { private static final long serialVersionUID = 649975225445944595L; - + @ApiModelProperty(value = "id") private Integer id; /** * 活动id */ + @ApiModelProperty(value = "活动id") private Integer cauActivityId; /** * 用户id */ + @ApiModelProperty(value = "用户id") private Integer cauUserId; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityChat.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityChat.java index 2d1fd4cb170de5c80a5b9e5810e71529288e6b77..5e34aef5dab795de384985c1df50c9f4feef4346 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityChat.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityChat.java @@ -1,5 +1,7 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; + import java.io.Serializable; import java.util.Date; @@ -9,6 +11,7 @@ import java.util.Date; * @author makejava * @since 2020-03-24 16:58:02 */ +@ApiModel(value = "社区动态投诉实体类") public class CommunityChat implements Serializable { private static final long serialVersionUID = -63416663913483268L; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityDynamic.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityDynamic.java index 71199d8df38c57c01cac8f8cc8012b89d6bd9104..39e71c963124f3a9ea0dd70e63ae529e735482e4 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityDynamic.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityDynamic.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.io.Serializable; import java.util.Date; import java.util.List; @@ -10,35 +13,43 @@ import java.util.List; * @author makejava * @since 2020-03-24 17:26:32 */ +@ApiModel(value = "社区动态实体类") public class CommunityDynamic implements Serializable { private static final long serialVersionUID = 744418746282083773L; /** * 动态id */ + @ApiModelProperty(value = "动态id") private Integer id; /** * 发布者id */ + @ApiModelProperty(value = "发布者id") private Integer cdUserId; /** * 动态图片id */ + @ApiModelProperty(value = "动态图片id") private String cdPicPath; /** * 动态类型 */ + @ApiModelProperty(value = "动态类型") private Integer cdType; /** * 动态内容 */ + @ApiModelProperty(value = "动态内容") private String cdContent; /** * 获赞数量 */ + @ApiModelProperty(value = "获赞数量") private Integer cdFavor; /** * 发布时间(创建时间) */ + @ApiModelProperty(value = "发布时间") private Date cdTime; private List communityDynamicComment; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityDynamicComment.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityDynamicComment.java index daa6dec7bc4b262a819cf6c16df4caaf114f7a48..d02006ee468dc9f5aefcccebc7092d3bdaa7571d 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityDynamicComment.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/CommunityDynamicComment.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.io.Serializable; import java.util.Date; import java.util.List; @@ -10,31 +13,37 @@ import java.util.List; * @author makejava * @since 2020-03-24 17:26:32 */ +@ApiModel(value = "动态评论实体类") public class CommunityDynamicComment implements Serializable { private static final long serialVersionUID = 256951165143287277L; - + @ApiModelProperty(value = "id") private Integer id; /** * 动态id */ + @ApiModelProperty(value = "动态id") private Integer cdcDynamicId; /** * 评论者id */ + @ApiModelProperty(value = "评论者id") private Integer cdcUserId; /** * 其他评论者id,针对评论的评论 */ + @ApiModelProperty(value = "其他评论者id,针对评论的评论") private Integer cdcOtherUserId; /** * 评论内容 */ + @ApiModelProperty(value = "评论内容") private String cdcContent; /** * 评论时间(创建时间) */ + @ApiModelProperty(value = "评论时间") private Date cdcTime; - + @ApiModelProperty(value = "用户") private List personUser; public List getPersonUser() { diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/Dynamic.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/Dynamic.java index fa4cbb88b85d17e75d8a8f0a1dace8b8b1de0331..526568fac48cee1dae16bd172720d3183e77a5dd 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/Dynamic.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/Dynamic.java @@ -1,16 +1,20 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.springframework.data.relational.core.sql.In; import java.io.Serializable; import java.util.Date; - +@ApiModel(value = "社区动态实体类") public class Dynamic implements Serializable { - + @ApiModelProperty(value = "图片链接") private String url; + @ApiModelProperty(value = "图片主题") private String title; + @ApiModelProperty(value = "发布时间") private Date timee; - + @ApiModelProperty(value = "动态id") private Integer dynamicId; public Integer getDynamicId() { @@ -54,4 +58,5 @@ public class Dynamic implements Serializable { public void setCommentName(String commentName) { this.commentName = commentName; } + } diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/DynamicCommit.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/DynamicCommit.java new file mode 100644 index 0000000000000000000000000000000000000000..2864a00044300b96ddbd7bc38ca9dea3e9ebc4a9 --- /dev/null +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/DynamicCommit.java @@ -0,0 +1,61 @@ +package com.team7.happycommunity.personcentor.entity; + +import aQute.bnd.service.repository.SearchableRepository; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +import java.util.Date; +@ApiModel(value = "社区动态评论实体类") +public class DynamicCommit implements Serializable { + @ApiModelProperty(value = "评论id") + private Integer id;//评论id + @ApiModelProperty(value = "评论内容") + private String cdcContent; + @ApiModelProperty(value = "评论时间") + private Date cdcTime; + @ApiModelProperty(value = "评论姓名") + private String name; + @ApiModelProperty(value = "用户头像") + private String url; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getCdcContent() { + return cdcContent; + } + + public void setCdcContent(String cdcContent) { + this.cdcContent = cdcContent; + } + + public Date getCdcTime() { + return cdcTime; + } + + public void setCdcTime(Date cdcTime) { + this.cdcTime = cdcTime; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } +} diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/MyPublishAcitivity.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/MyPublishAcitivity.java index 33d4b947739c8eddcf06de45305de42893a38923..da3ebac508291cf3b2fa1f62fbb1a15b6afff9cc 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/MyPublishAcitivity.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/MyPublishAcitivity.java @@ -1,18 +1,21 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.io.Serializable; import java.util.Date; - +@ApiModel(value = "发表活动实体类") public class MyPublishAcitivity implements Serializable { - + @ApiModelProperty(value = "活动id") private String acId;//活动id - + @ApiModelProperty(value = "个人头像") private String url;//个人头像 - + @ApiModelProperty(value = "个人别称") private String nickname;//个人别称 - + @ApiModelProperty(value = "活动主题") private String CaTitle;//活动主题 - + @ApiModelProperty(value = "活动创建时间") private Date caCreateTime;//活动创建时间 diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonCollectUser.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonCollectUser.java index a5fc704de6cec2466cf5a1b526d617c295ae271d..0b14c5bc7062a7b6f6700758b1a7f688ad02fac8 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonCollectUser.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonCollectUser.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.util.Date; import java.io.Serializable; @@ -9,17 +12,18 @@ import java.io.Serializable; * @author makejava * @since 2020-03-22 21:19:30 */ +@ApiModel(value = "用户收藏实体类") public class PersonCollectUser implements Serializable { private static final long serialVersionUID = 828483762597894081L; - + @ApiModelProperty(value = "收藏用户id") private Integer collectUserId; - + @ApiModelProperty(value = "评论用户id") private Integer concernedUserId; - + @ApiModelProperty(value = "关注用户id") private Integer focusedUserId; - + @ApiModelProperty(value = "评论id") private Integer dynamicId; - + @ApiModelProperty(value = "关注时间") private Date attentTmie; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonImage.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonImage.java index e33f667ecb025c83e9fcac2e3337f3867f729f8f..477cb8879f8b096b3c3f680692eadf4030036faf 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonImage.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonImage.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.util.Date; import java.io.Serializable; @@ -9,21 +12,22 @@ import java.io.Serializable; * @author makejava * @since 2020-03-22 21:19:30 */ +@ApiModel(value = "图片实体类") public class PersonImage implements Serializable { private static final long serialVersionUID = 651560723597011661L; - + @ApiModelProperty(value = "id") private Integer id; - + @ApiModelProperty(value = "小区id(小区图片)") private Integer personPlotId; - + @ApiModelProperty(value = "住宅表的id(住宅id)") private Integer personHomeId; - + @ApiModelProperty(value = "用户表的id") private Integer personUserId; - + @ApiModelProperty(value = "(0-用户空间图片,1-用户头像)") private Integer state; - + @ApiModelProperty(value = "上传时间") private Date time; - + @ApiModelProperty(value = "图片链接") private String url; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonUser.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonUser.java index 90988128e80cbe66c691193c096c63d79e4ccba8..0ba6096c2d99b0a9cd8bd21fb579925808b2ad72 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonUser.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/entity/PersonUser.java @@ -1,5 +1,8 @@ package com.team7.happycommunity.personcentor.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + import java.util.Date; import java.io.Serializable; import java.util.List; @@ -10,41 +13,42 @@ import java.util.List; * @author makejava * @since 2020-03-20 19:21:36 */ +@ApiModel(value = "用户实体类") public class PersonUser implements Serializable { private static final long serialVersionUID = 156440124825734371L; - + @ApiModelProperty(value = "id") private Integer id; - + @ApiModelProperty(value = "身份证") private String idNumber; - + @ApiModelProperty(value = "手机号") private String cellPhNumber; - + @ApiModelProperty(value = "密码") private String password; - + @ApiModelProperty(value = "姓名") private String name; - + @ApiModelProperty(value = "性别") private Integer sex; - + @ApiModelProperty(value = "昵称") private String nickname; - + @ApiModelProperty(value = "邮箱") private String mailbox; - + @ApiModelProperty(value = "小区id") private Integer plotId; - + @ApiModelProperty(value = "标签") private String tag; - + @ApiModelProperty(value = "邮箱状态") private Integer mailboxStatus; - + @ApiModelProperty(value = "邮箱的令牌") private String code; - + @ApiModelProperty(value = "盐") private String passwordSalt; - + @ApiModelProperty(value = "账户创建时间") private Date createTime; - + @ApiModelProperty(value = "小区实体类") private Areainfo areainfo; - + @ApiModelProperty(value = "用户图片实体类") private List personImage; - + @ApiModelProperty(value = "动态评论实体类") private List communityDynamic; diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/CommunityDynamicService.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/CommunityDynamicService.java index ba35056652844ec2363078c762203bb29dcb1ae4..36175a1395665a18778e288d155dad800e7b144b 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/CommunityDynamicService.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/CommunityDynamicService.java @@ -1,6 +1,7 @@ package com.team7.happycommunity.personcentor.service; import com.team7.happycommunity.personcentor.entity.CommunityDynamic; +import com.team7.happycommunity.personcentor.entity.DynamicCommit; import java.util.List; @@ -52,5 +53,10 @@ public interface CommunityDynamicService { * @return 是否成功 */ boolean deleteById(Integer id); - + /** + * 查询当前动态的所有评论 + * @param dynamicId 动态id + * @return 评论内容 + */ + List queryCommit(Integer dynamicId); } \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/PersonUserService.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/PersonUserService.java index 83b735f81c6c7519de40dcd2b0c0835a9945d56a..bd10d9ac511c23cc03b25e0aa6c494e4f8a06694 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/PersonUserService.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/PersonUserService.java @@ -80,7 +80,7 @@ public interface PersonUserService { * @param text * @param password */ - void login(String text, String password) throws Exception; + PersonUser login(String text, String password) throws Exception; /** * 手机号码注册 diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/impl/CommunityDynamicServiceImpl.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/impl/CommunityDynamicServiceImpl.java index 66c9420d131109fd0cafc2881bce847f9d59d337..78327552679f01fbbe5137a8b5f66ebfa988d163 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/impl/CommunityDynamicServiceImpl.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/impl/CommunityDynamicServiceImpl.java @@ -2,6 +2,7 @@ package com.team7.happycommunity.personcentor.service.impl; import com.team7.happycommunity.personcentor.dao.CommunityDynamicDao; import com.team7.happycommunity.personcentor.entity.CommunityDynamic; +import com.team7.happycommunity.personcentor.entity.DynamicCommit; import com.team7.happycommunity.personcentor.service.CommunityDynamicService; import org.springframework.stereotype.Service; @@ -76,4 +77,10 @@ public class CommunityDynamicServiceImpl implements CommunityDynamicService { public boolean deleteById(Integer id) { return this.communityDynamicDao.deleteById(id) > 0; } + + @Override + public List queryCommit(Integer dynamicId){ + + return communityDynamicDao.queryCommit(dynamicId); + } } \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/impl/PersonUserServiceImpl.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/impl/PersonUserServiceImpl.java index bd998df3215b85b148511aad33ddbab005654cba..b4dade0ae8fa8096c360adb2584753a375679d7d 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/impl/PersonUserServiceImpl.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/service/impl/PersonUserServiceImpl.java @@ -96,13 +96,13 @@ public class PersonUserServiceImpl implements PersonUserService { throw new RegisterException("姓名已存在"); } PersonUser user2=new PersonUser(); - user.setNickname(personUser.getNickname()); + user2.setNickname(personUser.getNickname()); List personUsers2 = personUserDao.queryAll(user2); if(personUsers2!=null&&personUsers2.size()>0){ throw new RegisterException("昵称已存在"); } PersonUser user3=new PersonUser(); - user.setMailbox(personUser.getMailbox()); + user3.setMailbox(personUser.getMailbox()); List personUsers3 = personUserDao.queryAll(user3); if(personUsers3!=null&&personUsers3.size()>0){ throw new RegisterException("邮箱已存在"); @@ -143,18 +143,20 @@ public class PersonUserServiceImpl implements PersonUserService { public boolean queryMailbox(String mailbox) { PersonUser user = personUserDao.queryByMailbox(mailbox); if(user==null||user.getMailboxStatus()!=0){ + if(user!=null&&user.getMailboxStatus()!=0){ + personUserDao.deleteByMailbox(mailbox); + } return true; } return false; } - @Override public void register(PersonUser user) { // 发送邮件,存储邮箱,并将mailbox_status状态改为1,并随机生成一个code邮箱令牌,并存储到数据库,密码加密 //1.生成一个UUID数字 String code = UUID.randomUUID().toString().replace("_",""); user.setCode(code); - String content="点击激活"; + String content="点击激活"; MailUtils.sendMail(user.getMailbox(),content,"幸福小区邀请您注册,请点击链接"); //2.进行密码加密 try { @@ -182,7 +184,7 @@ public class PersonUserServiceImpl implements PersonUserService { } @Override - public void login(String text, String password) throws Exception { + public PersonUser login(String text, String password) throws Exception { PersonUser user =null; if(text.contains("@")){ //为邮箱 @@ -206,15 +208,17 @@ public class PersonUserServiceImpl implements PersonUserService { //保存用户名到cookie和redis中,存活时间24小时,原理,客户端发送cookie过来,我取出来值name,看redis中是否有cookie的值,有则登录, //无,则提醒用户登录; // request.getSession(); - Cookie c=new Cookie("name"+user.getName(),user.getName()); + //Cookie c=new Cookie("name"+user.getName(),user.getName()); //cookie存活时间24小时 - c.setMaxAge(60*60*24); - c.setPath("/"); //根据个人的不用,在不同功能的路径下创建 - response.addCookie(c); + //c.setMaxAge(60*60*24); + // c.setPath("/"); //根据个人的不用,在不同功能的路径下创建 + // response.addCookie(c); //存储到redis中, //2.将验证码保存到redis中 - redisTemplate.boundValueOps("name"+user.getName()).set(user.getName()); - redisTemplate.boundValueOps("name"+user.getName()).expire(24, TimeUnit.HOURS);//24小时过期 + // redisTemplate.boundValueOps("name"+user.getName()).set(user.getName()); + //redisTemplate.boundValueOps("name"+user.getName()).expire(24, TimeUnit.HOURS);//24小时过期 + + return user; } @Override @@ -271,7 +275,7 @@ public class PersonUserServiceImpl implements PersonUserService { PersonUser user = personUserDao.queryPersonInfoByName(name); if(user.getPassword().equals(Md5Util.encodeByMd5(oldPassword))){ //2.修改新密码 - personUserDao.updatePasswordByName( name,password); + personUserDao.updatePasswordByName( name,Md5Util.encodeByMd5(password)); }else{ throw new UpdatePasswordException("输入密码不正确"); } @@ -296,7 +300,12 @@ public class PersonUserServiceImpl implements PersonUserService { } @Override public void updateHeadImage(String userName, String imgurl){ + //查询用户的id + PersonUser personUser=new PersonUser(); + personUser.setName(userName); + List personUsers = personUserDao.queryAll(personUser); + personUserDao.updateHeadImage(personUsers.get(0).getId(),imgurl); } } \ No newline at end of file diff --git a/personcentor/src/main/java/com/team7/happycommunity/personcentor/util/MailUtils.java b/personcentor/src/main/java/com/team7/happycommunity/personcentor/util/MailUtils.java index d59c040a5c72976bb4753b91b9964219655fac15..cefd71f5d3048ac43c53779fee0da365540e3e39 100644 --- a/personcentor/src/main/java/com/team7/happycommunity/personcentor/util/MailUtils.java +++ b/personcentor/src/main/java/com/team7/happycommunity/personcentor/util/MailUtils.java @@ -9,9 +9,9 @@ import java.util.Properties; * 发邮件工具类 */ public final class MailUtils { - private static final String USER = "2870485806@qq.com"; // 发件人称号,同邮箱地址 + private static final String USER = ""; // 发件人称号,同邮箱地址 //使用POP3/SMTP服务的授权码 - private static final String PASSWORD = "ubtdveqxwecsdcjg"; // 如果是qq邮箱可以使户端授权码,或者登录密码 + private static final String PASSWORD = ""; // 如果是qq邮箱可以使户端授权码,或者登录密码 /** * diff --git a/personcentor/src/main/resources/application.properties b/personcentor/src/main/resources/application.properties index ca703a44142111929e8d29aee614492f7271c989..12805e99f86e5216356d68604c96f6cc59b0f044 100644 --- a/personcentor/src/main/resources/application.properties +++ b/personcentor/src/main/resources/application.properties @@ -1,6 +1,7 @@ -accessKeyId=LTAI4FikHBhJzcaPm22pWeGS -accessKeySecret=6Isjtn6eBPaas1NNBpfVczkAEY7BDB -smsCode=SMS_186615599 +accessKeyId= +accessKeySecret= +smsCode= param={"code":"[value]"} website=localhost -port=80 \ No newline at end of file +port=9100 + diff --git a/personcentor/src/main/resources/application.yml b/personcentor/src/main/resources/application.yml index b2c0ae3735523032efdc46ccbf4345b67f3a84c7..5aef428ea9faa0f77de3b2f65947a806550400ba 100644 --- a/personcentor/src/main/resources/application.yml +++ b/personcentor/src/main/resources/application.yml @@ -1,3 +1,9 @@ +eureka: + client: + service-url: + defaultZone: http://localhost:8761/eureka +server: + port: 9888 spring: datasource: username: develop @@ -9,10 +15,10 @@ spring: port: 6379 rabbitmq: port: 5672 - username: admin + username: t1 password: 123 - virtual-host: /myhost - host: 192.168.43.112 + virtual-host: /boothost + host: 192.168.190.128 listener: simple: acknowledge-mode: manual @@ -24,12 +30,14 @@ spring: jackson: date-format: yyyy-MM-dd time-zone: GMT+8 + application: + name: personcentor + mybatis: mapper-locations: classpath:mapper/*.xml configuration: map-underscore-to-camel-case: true -server: - port: 80 + pagehelper: params: pageNum=currentPage,pageSize=pageSize reasonable: true @@ -37,4 +45,7 @@ pagehelper: helper-dialect: mysql logging: level: - com.team7.happycommunity.personcentor.dao: debug \ No newline at end of file + com.team7.happycommunity.personcentor.dao: debug + + + diff --git a/personcentor/src/main/resources/mapper/CommunityDynamicDao.xml b/personcentor/src/main/resources/mapper/CommunityDynamicDao.xml index efe247fc912ed6a25b8f50a5ee2c78337906b496..ebe0fe43f9503cec6cb8ceba8e9f436d5dd060e5 100644 --- a/personcentor/src/main/resources/mapper/CommunityDynamicDao.xml +++ b/personcentor/src/main/resources/mapper/CommunityDynamicDao.xml @@ -94,5 +94,8 @@ delete from happycommunity.community_dynamic where id = #{id} - + \ No newline at end of file diff --git a/personcentor/src/main/resources/mapper/PersonUserDao.xml b/personcentor/src/main/resources/mapper/PersonUserDao.xml index cc2d610bc92c1cd5a604d728b273db2903ddb227..8564f060f1ae663b46e7155ed7b8750129856de7 100644 --- a/personcentor/src/main/resources/mapper/PersonUserDao.xml +++ b/personcentor/src/main/resources/mapper/PersonUserDao.xml @@ -187,22 +187,31 @@ UPDATE person_user set password=#{password} where name=#{name} + + + update person_image set url=#{imgurl} where person_image.person_user_id=#{id} and state=1 + + + delete from happycommunity.person_user where mailbox = #{mailbox} + \ No newline at end of file diff --git a/personcentor/src/main/resources/static/css/animate.min.css b/personcentor/src/main/resources/static/css/animate.min.css deleted file mode 100644 index 8ae4afdb46a6a6964418bd5b5319a41df8ccdc19..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/animate.min.css +++ /dev/null @@ -1,12 +0,0 @@ -@charset "UTF-8";/*! -Animate.css - http://daneden.me/animate -Licensed under the MIT license - -Copyright (c) 2013 Daniel Eden - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);-ms-transform:translateY(-15px);transform:translateY(-15px)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes pulse{0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}100%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale(1);transform:scale(1)}30%{-webkit-transform:scaleX(1.25) scaleY(0.75);transform:scaleX(1.25) scaleY(0.75)}40%{-webkit-transform:scaleX(0.75) scaleY(1.25);transform:scaleX(0.75) scaleY(1.25)}60%{-webkit-transform:scaleX(1.15) scaleY(0.85);transform:scaleX(1.15) scaleY(0.85)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes rubberBand{0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}30%{-webkit-transform:scaleX(1.25) scaleY(0.75);-ms-transform:scaleX(1.25) scaleY(0.75);transform:scaleX(1.25) scaleY(0.75)}40%{-webkit-transform:scaleX(0.75) scaleY(1.25);-ms-transform:scaleX(0.75) scaleY(1.25);transform:scaleX(0.75) scaleY(1.25)}60%{-webkit-transform:scaleX(1.15) scaleY(0.85);-ms-transform:scaleX(1.15) scaleY(0.85);transform:scaleX(1.15) scaleY(0.85)}100%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}100%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);-ms-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);-ms-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);-ms-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);-ms-transform:rotate(-5deg);transform:rotate(-5deg)}100%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);-ms-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);-ms-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);-ms-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateX(0%);transform:translateX(0%)}15%{-webkit-transform:translateX(-25%) rotate(-5deg);transform:translateX(-25%) rotate(-5deg)}30%{-webkit-transform:translateX(20%) rotate(3deg);transform:translateX(20%) rotate(3deg)}45%{-webkit-transform:translateX(-15%) rotate(-3deg);transform:translateX(-15%) rotate(-3deg)}60%{-webkit-transform:translateX(10%) rotate(2deg);transform:translateX(10%) rotate(2deg)}75%{-webkit-transform:translateX(-5%) rotate(-1deg);transform:translateX(-5%) rotate(-1deg)}100%{-webkit-transform:translateX(0%);transform:translateX(0%)}}@keyframes wobble{0%{-webkit-transform:translateX(0%);-ms-transform:translateX(0%);transform:translateX(0%)}15%{-webkit-transform:translateX(-25%) rotate(-5deg);-ms-transform:translateX(-25%) rotate(-5deg);transform:translateX(-25%) rotate(-5deg)}30%{-webkit-transform:translateX(20%) rotate(3deg);-ms-transform:translateX(20%) rotate(3deg);transform:translateX(20%) rotate(3deg)}45%{-webkit-transform:translateX(-15%) rotate(-3deg);-ms-transform:translateX(-15%) rotate(-3deg);transform:translateX(-15%) rotate(-3deg)}60%{-webkit-transform:translateX(10%) rotate(2deg);-ms-transform:translateX(10%) rotate(2deg);transform:translateX(10%) rotate(2deg)}75%{-webkit-transform:translateX(-5%) rotate(-1deg);-ms-transform:translateX(-5%) rotate(-1deg);transform:translateX(-5%) rotate(-1deg)}100%{-webkit-transform:translateX(0%);-ms-transform:translateX(0%);transform:translateX(0%)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}70%{-webkit-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3);-ms-transform:scale(.3);transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}70%{-webkit-transform:scale(.9);-ms-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px);transform:translateY(30px)}80%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}80%{-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}100%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px);transform:translateX(30px)}80%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}80%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px);transform:translateX(-30px)}80%{-webkit-transform:translateX(10px);transform:translateX(10px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px);transform:translateY(-30px)}80%{-webkit-transform:translateY(10px);transform:translateY(10px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}80%{-webkit-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}100%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1);transform:scale(1)}25%{-webkit-transform:scale(.95);transform:scale(.95)}50%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}}@keyframes bounceOut{0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}25%{-webkit-transform:scale(.95);-ms-transform:scale(.95);transform:scale(.95)}50%{opacity:1;-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(.3);-ms-transform:scale(.3);transform:scale(.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}}@keyframes bounceOutDown{0%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}}@keyframes bounceOutLeft{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px);-ms-transform:translateX(20px);transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}}@keyframes bounceOutRight{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px);-ms-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes bounceOutUp{0%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px);-ms-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px);-ms-transform:translateX(20px);transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}}@keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px);-ms-transform:translateX(-20px);transform:translateX(-20px)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}}@keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px);-ms-transform:translateX(20px);transform:translateX(20px)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}}@keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) translateZ(0) rotateY(0) scale(1);transform:perspective(400px) translateZ(0) rotateY(0) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) translateZ(0) rotateY(0) scale(1);-ms-transform:perspective(400px) translateZ(0) rotateY(0) scale(1);transform:perspective(400px) translateZ(0) rotateY(0) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);-ms-transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);-ms-transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);-ms-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);-ms-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);-ms-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg);-ms-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);-ms-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);-ms-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-10deg);transform:perspective(400px) rotateY(-10deg)}70%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);-ms-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-10deg);-ms-transform:perspective(400px) rotateY(-10deg);transform:perspective(400px) rotateY(-10deg)}70%{-webkit-transform:perspective(400px) rotateY(10deg);-ms-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);-ms-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);-ms-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);-ms-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);-ms-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);-ms-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translateX(100%) skewX(-30deg);transform:translateX(100%) skewX(-30deg);opacity:0}60%{-webkit-transform:translateX(-20%) skewX(30deg);transform:translateX(-20%) skewX(30deg);opacity:1}80%{-webkit-transform:translateX(0%) skewX(-15deg);transform:translateX(0%) skewX(-15deg);opacity:1}100%{-webkit-transform:translateX(0%) skewX(0deg);transform:translateX(0%) skewX(0deg);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translateX(100%) skewX(-30deg);-ms-transform:translateX(100%) skewX(-30deg);transform:translateX(100%) skewX(-30deg);opacity:0}60%{-webkit-transform:translateX(-20%) skewX(30deg);-ms-transform:translateX(-20%) skewX(30deg);transform:translateX(-20%) skewX(30deg);opacity:1}80%{-webkit-transform:translateX(0%) skewX(-15deg);-ms-transform:translateX(0%) skewX(-15deg);transform:translateX(0%) skewX(-15deg);opacity:1}100%{-webkit-transform:translateX(0%) skewX(0deg);-ms-transform:translateX(0%) skewX(0deg);transform:translateX(0%) skewX(0deg);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{-webkit-transform:translateX(0%) skewX(0deg);transform:translateX(0%) skewX(0deg);opacity:1}100%{-webkit-transform:translateX(100%) skewX(-30deg);transform:translateX(100%) skewX(-30deg);opacity:0}}@keyframes lightSpeedOut{0%{-webkit-transform:translateX(0%) skewX(0deg);-ms-transform:translateX(0%) skewX(0deg);transform:translateX(0%) skewX(0deg);opacity:1}100%{-webkit-transform:translateX(100%) skewX(-30deg);-ms-transform:translateX(100%) skewX(-30deg);transform:translateX(100%) skewX(-30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(-200deg);-ms-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(200deg);-ms-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes slideInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}100%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}}@keyframes slideOutLeft{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}}@keyframes slideOutRight{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes slideOutUp{0%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes slideInUp{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}}@keyframes slideOutDown{0%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes hinge{0%{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}80%{-webkit-transform:rotate(60deg) translateY(0);transform:rotate(60deg) translateY(0);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translateY(700px);transform:translateY(700px);opacity:0}}@keyframes hinge{0%{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);-ms-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}80%{-webkit-transform:rotate(60deg) translateY(0);-ms-transform:rotate(60deg) translateY(0);transform:rotate(60deg) translateY(0);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translateY(700px);-ms-transform:translateY(700px);transform:translateY(700px);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);-ms-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}100%{opacity:0;-webkit-transform:translateX(100%) rotate(120deg);transform:translateX(100%) rotate(120deg)}}@keyframes rollOut{0%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);-ms-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}100%{opacity:0;-webkit-transform:translateX(100%) rotate(120deg);-ms-transform:translateX(100%) rotate(120deg);transform:translateX(100%) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale(.3);-ms-transform:scale(.3);transform:scale(.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale(.1) translateX(2000px);transform:scale(.1) translateX(2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(-48px);transform:scale(.475) translateX(-48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale(.1) translateX(2000px);-ms-transform:scale(.1) translateX(2000px);transform:scale(.1) translateX(2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(-48px);-ms-transform:scale(.475) translateX(-48px);transform:scale(.475) translateX(-48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale(.1) translateY(2000px);transform:scale(.1) translateY(2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(-60px);transform:scale(.475) translateY(-60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale(.1) translateY(2000px);-ms-transform:scale(.1) translateY(2000px);transform:scale(.1) translateY(2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(-60px);-ms-transform:scale(.475) translateY(-60px);transform:scale(.475) translateY(-60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(.3);-ms-transform:scale(.3);transform:scale(.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale(.475) translateY(-60px);transform:scale(.475) translateY(-60px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateY(2000px);transform:scale(.1) translateY(2000px);-webkit-transform-origin:center bottom;transform-origin:center bottom}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale(.475) translateY(-60px);-ms-transform:scale(.475) translateY(-60px);transform:scale(.475) translateY(-60px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateY(2000px);-ms-transform:scale(.1) translateY(2000px);transform:scale(.1) translateY(2000px);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale(.475) translateX(42px);transform:scale(.475) translateX(42px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale(.475) translateX(42px);-ms-transform:scale(.475) translateX(42px);transform:scale(.475) translateX(42px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale(.475) translateX(-42px);transform:scale(.475) translateX(-42px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateX(2000px);transform:scale(.1) translateX(2000px);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale(.475) translateX(-42px);-ms-transform:scale(.475) translateX(-42px);transform:scale(.475) translateX(-42px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateX(2000px);-ms-transform:scale(.1) translateX(2000px);transform:scale(.1) translateX(2000px);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-transform-origin:center top;transform-origin:center top}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-transform-origin:center top;-ms-transform-origin:center top;transform-origin:center top}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp} \ No newline at end of file diff --git a/personcentor/src/main/resources/static/css/application.css b/personcentor/src/main/resources/static/css/application.css deleted file mode 100644 index 9f186fdb91798608628519b205cbc7c8ebb82795..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/application.css +++ /dev/null @@ -1,7 +0,0 @@ -@CHARSET 'UTF-8'; - -@IMPORT url('normalize.css'); -@IMPORT url('common.css'); -@IMPORT url('pygments.css'); -@IMPORT url('font-awesome.css'); -@IMPORT url('demo.css'); diff --git a/personcentor/src/main/resources/static/css/datetime/mobiscroll.animation.css b/personcentor/src/main/resources/static/css/datetime/mobiscroll.animation.css deleted file mode 100644 index 55ad12a633a9b1c9f033970d680f13ebc61f3b5f..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/datetime/mobiscroll.animation.css +++ /dev/null @@ -1,656 +0,0 @@ -.dw-trans .dw-persp { - overflow: hidden; - -webkit-perspective: 1000px; - -moz-perspective: 1000px; - perspective: 1000px; -} -.dw-trans .dw, -.dw-trans .dwo { - -webkit-animation-fill-mode: forwards; - -webkit-animation-duration: 200ms; - -moz-animation-fill-mode: forwards; - -moz-animation-duration: 200ms; - animation-fill-mode: forwards; - animation-duration: 200ms; -} -.dw-trans .dwo { - -webkit-backface-visibility: hidden; -} -.dw-in .dw { - -webkit-animation-timing-function: ease-out; - -moz-animation-timing-function: ease-out; - animation-timing-function: ease-out; -} -.dw-out .dw { - -webkit-animation-timing-function: ease-in; - -moz-animation-timing-function: ease-in; - animation-timing-function: ease-in; -} -.dw-in .dwo { - -webkit-animation-name: dw-f-in; - -moz-animation-name: dw-f-in; - animation-name: dw-f-in; -} -.dw-out .dwo { - -webkit-animation-name: dw-f-out; - -moz-animation-name: dw-f-out; - animation-name: dw-f-out; -} -.dw-flip, -.dw-swing, -.dw-slidehorizontal, -.dw-slidevertical, -.dw-slidedown, -.dw-slideup, -.dw-fade { - -webkit-backface-visibility: hidden; - -webkit-transform: translateX(0); - -moz-backface-visibility: hidden; - -moz-transform: translateX(0); - backface-visibility: hidden; - transform: translateX(0); -} -.dw-swing, -.dw-slidehorizontal, -.dw-slidevertical, -.dw-slidedown, -.dw-slideup, -.dw-fade { - -webkit-transform-origin: 0 0; - -moz-transform-origin: 0 0; - transform-origin: 0 0; -} -.dw-flip, -.dw-pop { - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - transform-origin: 50% 50%; -} -.dw-in .dw-pop { - opacity: 1; - -webkit-animation-name: dw-p-in; - -webkit-transform: scale(1); - -moz-animation-name: dw-p-in; - -moz-transform: scale(1); - transform: scale(1); - animation-name: dw-p-in; -} -.dw-out .dw-pop { - opacity: 0; - -webkit-animation-name: dw-p-out; - -moz-animation-name: dw-p-out; - animation-name: dw-p-out; -} -.dw-in .dw-flip { - opacity: 1; - -webkit-animation-name: dw-fl-in; - -webkit-transform: scale(1); - -moz-animation-name: dw-fl-in; - -moz-transform: scale(1); - animation-name: dw-fl-in; - transform: scale(1); -} -.dw-out .dw-flip { - opacity: 0; - animation-name: dw-fl-out; - -webkit-animation-name: dw-fl-out; - -moz-animation-name: dw-fl-out; -} -.dw-in .dw-swing { - opacity: 1; - -webkit-animation-name: dw-sw-in; - -webkit-transform: scale(1); - -moz-animation-name: dw-sw-in; - -moz-transform: scale(1); - transform: scale(1); - animation-name: dw-sw-in; -} -.dw-out .dw-swing { - opacity: 0; - -webkit-animation-name: dw-sw-out; - -moz-animation-name: dw-sw-out; - animation-name: dw-sw-out; -} -.dw-in .dw-slidehorizontal { - opacity: 1; - -webkit-animation-name: dw-sh-in; - -webkit-transform: scale(1); - -moz-animation-name: dw-sh-in; - -moz-transform: scale(1); - transform: scale(1); - animation-name: dw-sh-in; -} -.dw-out .dw-slidehorizontal { - opacity: 0; - -webkit-animation-name: dw-sh-out; - -moz-animation-name: dw-sh-out; - animation-name: dw-sh-out; -} -.dw-in .dw-slidevertical { - opacity: 1; - -webkit-animation-name: dw-sv-in; - -webkit-transform: scale(1); - -moz-animation-name: dw-sv-in; - -moz-transform: scale(1); - animation-name: dw-sv-in; - transform: scale(1); -} -.dw-out .dw-slidevertical { - opacity: 0; - -webkit-animation-name: dw-sv-out; - -moz-animation-name: dw-sv-out; - animation-name: dw-sv-out; -} -.dw-in .dw-slidedown { - -webkit-animation-name: dw-sd-in; - -webkit-transform: scale(1); - -moz-animation-name: dw-sd-in; - -moz-transform: scale(1); - animation-name: dw-sd-in; - transform: scale(1); -} -.dw-out .dw-slidedown { - animation-name: dw-sd-out; - -webkit-animation-name: dw-sd-out; - -webkit-transform: translateY(-100%); - -moz-animation-name: dw-sd-out; - -moz-transform: translateY(-100%); -} -.dw-in .dw-slideup { - -webkit-animation-name: dw-su-in; - -webkit-transform: scale(1); - -moz-animation-name: dw-su-in; - -moz-transform: scale(1); - transform: scale(1); - animation-name: dw-su-in; -} -.dw-out .dw-slideup { - animation-name: dw-su-out; - -webkit-animation-name: dw-su-out; - -webkit-transform: translateY(100%); - -moz-animation-name: dw-su-out; - -moz-transform: translateY(100%); -} -.dw-in .dw-fade { - opacity: 1; - -webkit-animation-name: dw-f-in; - -moz-animation-name: dw-f-in; - animation-name: dw-f-in; -} -.dw-out .dw-fade { - opacity: 0; - -webkit-animation-name: dw-f-out; - -moz-animation-name: dw-f-out; - animation-name: dw-f-out; -} -/* Fade in */ -@keyframes dw-f-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@-webkit-keyframes dw-f-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@-moz-keyframes dw-f-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -/* Fade out */ -@keyframes dw-f-out { - from { - visibility: visible; - opacity: 1; - } - to { - opacity: 0; - } -} -@-webkit-keyframes dw-f-out { - from { - visibility: visible; - opacity: 1; - } - to { - opacity: 0; - } -} -@-moz-keyframes dw-f-out { - from { - visibility: visible; - opacity: 1; - } - to { - opacity: 0; - } -} -/* Pop in */ -@keyframes dw-p-in { - from { - opacity: 0; - transform: scale(0.8); - } - to { - opacity: 1; - transform: scale(1); - } -} -@-webkit-keyframes dw-p-in { - from { - opacity: 0; - -webkit-transform: scale(0.8); - } - to { - opacity: 1; - -webkit-transform: scale(1); - } -} -@-moz-keyframes dw-p-in { - from { - opacity: 0; - -moz-transform: scale(0.8); - } - to { - opacity: 1; - -moz-transform: scale(1); - } -} -/* Pop out */ -@keyframes dw-p-out { - from { - opacity: 1; - transform: scale(1); - } - to { - opacity: 0; - transform: scale(0.8); - } -} -@-webkit-keyframes dw-p-out { - from { - opacity: 1; - -webkit-transform: scale(1); - } - to { - opacity: 0; - -webkit-transform: scale(0.8); - } -} -@-moz-keyframes dw-p-out { - from { - opacity: 1; - -moz-transform: scale(1); - } - to { - opacity: 0; - -moz-transform: scale(0.8); - } -} -/* Flip in */ -@keyframes dw-fl-in { - from { - opacity: 0; - transform: rotateY(90deg); - } - to { - opacity: 1; - transform: rotateY(0); - } -} -@-webkit-keyframes dw-fl-in { - from { - opacity: 0; - -webkit-transform: rotateY(90deg); - } - to { - opacity: 1; - -webkit-transform: rotateY(0); - } -} -@-moz-keyframes dw-fl-in { - from { - opacity: 0; - -moz-transform: rotateY(90deg); - } - to { - opacity: 1; - -moz-transform: rotateY(0); - } -} -/* Flip out */ -@keyframes dw-fl-out { - from { - opacity: 1; - transform: rotateY(0deg); - } - to { - opacity: 0; - transform: rotateY(-90deg); - } -} -@-webkit-keyframes dw-fl-out { - from { - opacity: 1; - -webkit-transform: rotateY(0deg); - } - to { - opacity: 0; - -webkit-transform: rotateY(-90deg); - } -} -@-moz-keyframes dw-fl-out { - from { - opacity: 1; - -moz-transform: rotateY(0deg); - } - to { - opacity: 0; - -moz-transform: rotateY(-90deg); - } -} -/* Swing in */ -@keyframes dw-sw-in { - from { - opacity: 0; - transform: rotateY(-90deg); - } - to { - opacity: 1; - transform: rotateY(0deg); - } -} -@-webkit-keyframes dw-sw-in { - from { - opacity: 0; - -webkit-transform: rotateY(-90deg); - } - to { - opacity: 1; - -webkit-transform: rotateY(0deg); - } -} -@-moz-keyframes dw-sw-in { - from { - opacity: 0; - -moz-transform: rotateY(-90deg); - } - to { - opacity: 1; - -moz-transform: rotateY(0deg); - } -} -/* Swing out */ -@keyframes dw-sw-out { - from { - opacity: 1; - transform: rotateY(0deg); - } - to { - opacity: 0; - transform: rotateY(-90deg); - } -} -@-webkit-keyframes dw-sw-out { - from { - opacity: 1; - -webkit-transform: rotateY(0deg); - } - to { - opacity: 0; - -webkit-transform: rotateY(-90deg); - } -} -@-moz-keyframes dw-sw-out { - from { - opacity: 1; - -moz-transform: rotateY(0deg); - } - to { - opacity: 0; - -moz-transform: rotateY(-90deg); - } -} -/* Slide horizontal in */ -@keyframes dw-sh-in { - from { - opacity: 0; - transform: translateX(-100%); - } - to { - opacity: 1; - transform: translateX(0); - } -} -@-webkit-keyframes dw-sh-in { - from { - opacity: 0; - -webkit-transform: translateX(-100%); - } - to { - opacity: 1; - -webkit-transform: translateX(0); - } -} -@-moz-keyframes dw-sh-in { - from { - opacity: 0; - -moz-transform: translateX(-100%); - } - to { - opacity: 1; - -moz-transform: translateX(0); - } -} -/* Slide horizontal out */ -@keyframes dw-sh-out { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(100%); - } -} -@-webkit-keyframes dw-sh-out { - from { - opacity: 1; - -webkit-transform: translateX(0); - } - to { - opacity: 0; - -webkit-transform: translateX(100%); - } -} -@-moz-keyframes dw-sh-out { - from { - opacity: 1; - -moz-transform: translateX(0); - } - to { - opacity: 0; - -moz-transform: translateX(100%); - } -} -/* Slide vertical in */ -@keyframes dw-sv-in { - from { - opacity: 0; - transform: translateY(-100%); - } - to { - opacity: 1; - transform: translateY(0); - } -} -@-webkit-keyframes dw-sv-in { - from { - opacity: 0; - -webkit-transform: translateY(-100%); - } - to { - opacity: 1; - -webkit-transform: translateY(0); - } -} -@-moz-keyframes dw-sv-in { - from { - opacity: 0; - -moz-transform: translateY(-100%); - } - to { - opacity: 1; - -moz-transform: translateY(0); - } -} -/* Slide vertical out */ -@keyframes dw-sv-out { - from { - opacity: 1; - transform: translateY(0); - } - to { - opacity: 0; - transform: translateY(100%); - } -} -@-webkit-keyframes dw-sv-out { - from { - opacity: 1; - -webkit-transform: translateY(0); - } - to { - opacity: 0; - -webkit-transform: translateY(100%); - } -} -@-moz-keyframes dw-sv-out { - from { - opacity: 1; - -moz-transform: translateY(0); - } - to { - opacity: 0; - -moz-transform: translateY(100%); - } -} -/* Slide Down In */ -@keyframes dw-sd-in { - from { - transform: translateY(-100%); - } - to { - transform: translateY(0); - } -} -@-webkit-keyframes dw-sd-in { - from { - opacity: 1; - -webkit-transform: translateY(-100%); - } - to { - opacity: 1; - -webkit-transform: translateY(0); - } -} -@-moz-keyframes dw-sd-in { - from { - -moz-transform: translateY(-100%); - } - to { - -moz-transform: translateY(0); - } -} -/* Slide down out */ -@keyframes dw-sd-out { - from { - transform: translateY(0); - } - to { - transform: translateY(-100%); - } -} -@-webkit-keyframes dw-sd-out { - from { - opacity: 1; - -webkit-transform: translateY(0); - } - to { - opacity: 1; - -webkit-transform: translateY(-100%); - } -} -@-moz-keyframes dw-sd-out { - from { - -moz-transform: translateY(0); - } - to { - -moz-transform: translateY(-100%); - } -} -/* Slide Up In */ -@keyframes dw-su-in { - from { - transform: translateY(100%); - } - to { - transform: translateY(0); - } -} -@-webkit-keyframes dw-su-in { - from { - opacity: 1; - -webkit-transform: translateY(100%); - } - to { - opacity: 1; - -webkit-transform: translateY(0); - } -} -@-moz-keyframes dw-su-in { - from { - -moz-transform: translateY(100%); - } - to { - -moz-transform: translateY(0); - } -} -/* Slide up out */ -@keyframes dw-su-out { - from { - transform: translateY(0); - } - to { - transform: translateY(100%); - } -} -@-webkit-keyframes dw-su-out { - from { - opacity: 1; - -webkit-transform: translateY(0); - } - to { - opacity: 1; - -webkit-transform: translateY(100%); - } -} -@-moz-keyframes dw-su-out { - from { - -moz-transform: translateY(0); - } - to { - -moz-transform: translateY(100%); - } -} diff --git a/personcentor/src/main/resources/static/css/datetime/mobiscroll.scroller.css b/personcentor/src/main/resources/static/css/datetime/mobiscroll.scroller.css deleted file mode 100644 index 86771c791206b4ba66fe8a62b43d39ca1ce1c957..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/datetime/mobiscroll.scroller.css +++ /dev/null @@ -1,261 +0,0 @@ -.dwwb, -.dwwo, -.dwwol { - /*-webkit-backface-visibility: hidden;*/ - -webkit-transform: translateZ(0); -} -/* Wheel container wrapper */ -.dwc { - max-width: 100%; - vertical-align: middle; - display: inline-block; - overflow: hidden; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -/* Wheel label */ -.dwl { - line-height: 30px; - height: 30px; - top: -30px; - left: 0; - text-align: center; - white-space: nowrap; - position: absolute; - width: 100%; -} -/* Wheel container */ -.dwwc { - margin: 0 auto; - position: relative; - zoom: 1; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -webkit-justify-content: center; - justify-content: center; -} -.dwfl { - max-width: 100%; - -webkit-box-flex: 1; - -webkit-flex: 1 auto; - -ms-flex: 1 auto; - flex: 1 auto; -} -/* Wheels */ -.dwwl { - position: relative; - z-index: 5; -} -.dwww { - position: relative; - padding: 1px; - /*overflow: hidden;*/ -} -.dww { - overflow: hidden; - position: relative; -} -.dw-bf { - -webkit-backface-visibility: hidden; - -webkit-perspective: 1000px; - backface-visibility: hidden; - perspective: 1000px; -} -.dw-ul { - position: relative; - z-index: 3; -} -.dw-li { - padding: 0 5px; - position: relative; - text-align: center; - white-space: nowrap; - vertical-align: bottom; - opacity: .3; - filter: Alpha(Opacity=30); -} -/* Valid entry */ -.dw-li.dw-v { - opacity: 1; - filter: Alpha(Opacity=100); -} -/* Hidden entry */ -.dw-li.dw-h { - visibility: hidden; -} -.dw-i { - position: relative; - height: 100%; - overflow: hidden; - text-overflow: ellipsis; -} -/* Clickpick mode */ -.dwwb { - position: absolute; - z-index: 4; - left: 0; - cursor: pointer; - width: 100%; - text-decoration: none; - text-align: center; - opacity: 1; - -webkit-transition: opacity .2s linear; - transition: opacity .2s linear; -} -.dwa .dwwb { - opacity: 0; -} -.dwpm .dwwbp { - top: 0; -} -.dwpm .dwwbm { - bottom: 0; -} -.dwpm .dwwol { - display: none; -} -/* Wheel overlay */ -.dwwo { - position: absolute; - z-index: 3; - top: 0; - left: 0; - width: 100%; - height: 100%; - pointer-events: none; -} -/* Background line */ -.dwwol { - position: absolute; - z-index: 1; - top: 50%; - left: 0; - width: 100%; - pointer-events: none; -} -/* Liquid mode */ -.dw-liq .dwc { - display: block; -} -.dw-liq .dw-tbl { - width: 100%; - table-layout: fixed; -} -/* Hidden label */ -.dwhl .dwl { - display: none; -} -/* Hidden select element */ -.dw-hsel { - position: absolute; - height: 1px; - width: 1px; - left: 0; - overflow: hidden; - clip: rect(1px,1px,1px,1px); -} -/* Multiple lines */ -.dw-ml .dw-li { - overflow: hidden; -} -.dw-ml .dw-li .dw-i { - width: 100%; - height: auto; - display: inline-block; - vertical-align: middle; - white-space: normal; -} -/* Multiple selection */ -.dwwms .dw-li { - padding: 0 40px; -} -.dwwms .dwwol { - display: none; -} -.dw-msel:before { - width: 40px; - text-align: center; - position: absolute; - top: 0; - left: 0; -} -/* Select groups */ -.dww .dw-w-gr { - padding: 0 5px; - opacity: 1; - font-weight: bold; - text-align: left; -} - - -/* Default theme */ -.mbsc-mobiscroll .dwc { - padding: 2em .25em 0 .25em; -} -.mbsc-mobiscroll .dwl { - color: #4eccc4; - font-size: .75em; - text-transform: uppercase; -} -.mbsc-mobiscroll .dwhl { - padding-top: 0; -} -.mbsc-mobiscroll .dwfl { - padding: .5em .25em; -} -.mbsc-mobiscroll .dw-li { - font-size: 1.375em; -} -.mbsc-mobiscroll .dw-hl { - background: rgba(78,204,196,.3); -} -.mbsc-mobiscroll .dwwol { - border-top: 1px solid #4eccc4; - border-bottom: 1px solid #4eccc4; -} -/* Clickpick mode */ -.mbsc-mobiscroll .dwpm .dwwol { - display: block; -} -.mbsc-mobiscroll .dwwb { - color: #4eccc4; - background: #f7f7f7; -} -.mbsc-mobiscroll .dwwbp { - bottom: 0; - top: auto; -} -.mbsc-mobiscroll .dwwbm { - top: 0; - bottom: auto; -} -.mbsc-mobiscroll .dwwb span { - display: none; -} -.mbsc-mobiscroll .dwwb:before { - position: absolute; - left: 0; - top: 0; - width: 100%; - font-size: 24px; - text-align: center; -} -.mbsc-mobiscroll .dwwb.dwb-a:before { - background: rgba(78,204,196,.3); -} -/* Group select */ -/* Multiple select */ -.mbsc-mobiscroll .dw-w-gr { - font-size: 1.125em; -} -.mbsc-mobiscroll .dw-msel:before { - font-size: 40px; - color: #4eccc4; -} -.mbsc-mobiscroll .dwwms .dwwol { - display: none; -} \ No newline at end of file diff --git a/personcentor/src/main/resources/static/css/datetime/mobiscroll.scroller.ios.css b/personcentor/src/main/resources/static/css/datetime/mobiscroll.scroller.ios.css deleted file mode 100644 index 07aaa07cb47dca81095b57f9b3ac6342ce525f53..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/datetime/mobiscroll.scroller.ios.css +++ /dev/null @@ -1,89 +0,0 @@ -.mbsc-ios .dwl { - text-align: left; - text-indent: 5px; - color: #ababab; -} -.mbsc-ios .dwwc { - padding: 30px 10px 10px 10px; -} -.mbsc-ios .dwhl .dwwc { - padding-top: 10px; -} -.mbsc-ios .dwwo { - background: -webkit-gradient(linear,left bottom,left top,from(#f7f7f7),color-stop(0.52, rgba(245,245,245,0)),color-stop(0.48, rgba(245,245,245,0)),to(#f7f7f7)); - background: -webkit-linear-gradient(#f7f7f7,rgba(245,245,245,0) 52%, rgba(245,245,245,0) 48%, #f7f7f7); - background: -moz-linear-gradient(#f7f7f7,rgba(245,245,245,0) 52%, rgba(245,245,245,0) 48%, #f7f7f7); - background: linear-gradient(#f7f7f7,rgba(245,245,245,0) 52%, rgba(245,245,245,0) 48%, #f7f7f7); -} -.mbsc-ios .dwwol { - padding: 0 10px; - height: 34px; - margin: -18px 0 0 -10px; - border-top: 1px solid #dbdbdb; - border-bottom: 1px solid #dbdbdb; -} -.mbsc-ios .dw-li { - color: #9d9d9d; - font-size: 22px; - text-align: left; -} -.mbsc-ios .dw-hl { - background: rgba(0,122,255,.2); -} -.mbsc-ios .dw-sel { - color: #000; -} -/* Clickpick mode */ -.mbsc-ios .dwpm .dw-li { - text-align: center; -} -.mbsc-ios .dwpm .dwwol { - display: block; -} -.mbsc-ios .dwwb { - color: #007aff; - background: #f7f7f7; -} -.mbsc-ios .dwwbp { - bottom: 0; - top: auto; -} -.mbsc-ios .dwwbm { - top: 0; - bottom: auto; -} -.mbsc-ios .dwwb span { - display: none; -} -.mbsc-ios .dwwb:before { - position: absolute; - left: 0; - top: 0; - width: 100%; - font-size: 24px; - text-align: center; -} -/* Select */ -.mbsc-ios.dw-select .dwwo { - display: none; -} -/* Multiple select */ -.mbsc-ios .dwwms .dw-li { - padding: 0 5px 0 40px; - color: #000; -} -.mbsc-ios .dwwms .dw-msel { - color: #007aff; -} -.mbsc-ios .dw-msel:before { - font-size: 40px; -} -/* Group select */ -.mbsc-ios .dw-select-gr .dw-li { - padding-left: 40px; -} -.mbsc-ios .dw-select-gr .dw-w-gr { - padding-left: 5px; - font-weight: normal; - font-size: 18px; -} \ No newline at end of file diff --git a/personcentor/src/main/resources/static/css/datetime/mobiscroll.widget.css b/personcentor/src/main/resources/static/css/datetime/mobiscroll.widget.css deleted file mode 100644 index 6b7ab6a1560c14932da6739fca870ebb055c4aa2..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/datetime/mobiscroll.widget.css +++ /dev/null @@ -1,202 +0,0 @@ -.dw, -.dwo { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -.dw { - max-width: 98%; - position: absolute; - top: 0; - left: 0; - z-index: 2; - font-size: 12px; - text-shadow: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -ms-touch-action: none; - user-select: none; - /*touch-action: none;*/ /* Kills native scroll in Chrome >=35 */ -} -.dw:focus { - /*outline-color: transparent;*/ - outline: none; -} -.dw-rtl { - direction: rtl; -} -/* Box sizing */ -.dw, -.dwbc { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.dwwr { - min-width: 170px; - zoom: 1; - overflow: hidden; - text-align: center; - font-family: arial, verdana, sans-serif; -} -/* Modal overlay */ -.dw-persp, -.dwo { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; -} -.dw-persp { - z-index: 99998; -} -.dwo { - z-index: 1; - background: #000; - background: rgba(0,0,0,.7); - filter: Alpha(Opacity=70); -} -/* Liquid mode */ -.dw-liq .dw { - max-width: 100%; -} -/* Top/Bottom mode */ -.dw-top .dw, -.dw-bottom .dw { - width: 100%; - max-width: 100%; -} -/* Inline mode */ -.dw-inline .dw { - position: static; - display: inline-block; - max-width: 100%; -} -.dw-inline.dw-liq .dw-persp .dw { - display: block; -} -.dw-inline .dw-persp { - position: static; -} -/* Bubble mode */ -.dw-bubble .dw { - margin: 20px 0; -} -.dw-bubble .dw-arrw { - position: absolute; - left: 0; - width: 100%; -} -.dw-bubble-top .dw-arrw { - bottom: -36px; -} -.dw-bubble-bottom .dw-arrw { - top: -36px; -} -.dw-bubble .dw-arrw-i { - margin: 0 30px; - position: relative; - height: 36px; -} -.dw-bubble .dw-arr { - display: block; -} -.dw-arr { - display: none; - position: absolute; - left: 0; - width: 0; - height: 0; - border-width: 18px 18px; - border-style: solid; - margin-left: -18px; -} -.dw-bubble-bottom .dw-arr { - top: 0; -} -.dw-bubble-top .dw-arr { - bottom: 0; -} -.dw-hidden { - width: 0; - height: 0; - margin: 0; - padding: 0; - border: 0; - overflow: hidden; -} -/* Buttons */ -.dwb { - overflow: hidden; - display: block; - text-decoration: none; - white-space: nowrap; - text-overflow: ellipsis; - vertical-align: top; -} -.dwb-e { - cursor: pointer; -} -.dwb-d { - cursor: default; -} -/* Button container */ -.dwbc { - display: table; - width: 100%; - text-align: center; -} -/* Button wrapper */ -.dwbw { - vertical-align: top; - display: table-cell; - position: relative; - z-index: 5; -} -.dwbw .dwb:before { - padding: .375em; -} - -/* Default theme */ -.mbsc-mobiscroll .dwwr { - min-width: 220px; - background: #f7f7f7; - color: #454545; - font-size: 16px; -} -.mbsc-mobiscroll .dwv { - padding-top: .6666em; - color: #4eccc4; - font-size: .75em; - text-transform: uppercase; - line-height: 2em; -} -.mbsc-mobiscroll .dwbc { - display: block; - overflow: hidden; - text-align: right; - padding: 0 .5em .5em .5em; -} -.mbsc-mobiscroll .dwbw { - display: block; - float: right; -} -.mbsc-mobiscroll .dw-rtl .dwbw { - float: left; -} -.mbsc-mobiscroll .dwb { - height: 2.5em; - line-height: 2.5em; - padding: 0 1em; - color: #4eccc4; - text-transform: uppercase; -} -.mbsc-mobiscroll .dwb-a { - background: rgba(78,204,196,.3); -} -.mbsc-mobiscroll .dw-bubble-bottom .dw-arr { - border-color: transparent transparent #f7f7f7 transparent; -} -.mbsc-mobiscroll .dw-bubble-top .dw-arr { - border-color: #f7f7f7 transparent transparent transparent; -} diff --git a/personcentor/src/main/resources/static/css/datetime/mobiscroll.widget.ios.css b/personcentor/src/main/resources/static/css/datetime/mobiscroll.widget.ios.css deleted file mode 100644 index 23aa7723b5918dc741e82f382cb2b2171c3e7db1..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/datetime/mobiscroll.widget.ios.css +++ /dev/null @@ -1,59 +0,0 @@ -.mbsc-ios .dwo { - background: rgba(0,0,0,.2); - filter: Alpha(Opacity=20); -} -.mbsc-ios .dwwr { - position: relative; - background: #f7f7f7; - color: #000; - padding-top: 40px; -} -.mbsc-ios .dwv { - color: #9d9d9d; - line-height: 30px; - font-size: 12px; - border-bottom: 1px solid #acacac; -} -.mbsc-ios .dwbc { - position: absolute; - top: 0; - left: 0; - width: 100%; - border-bottom: 1px solid #acacac; -} -.mbsc-ios .dwb { - height: 40px; - line-height: 40px; - padding: 0 10px; - display: inline-block; - color: #5cb188; - font-size: 17px; -} -.mbsc-ios .dwb-a { - opacity: .5; -} -.mbsc-ios .dwbw { - display: block; - float: right; -} -.mbsc-ios .dwb-c { - float: left; -} -.mbsc-ios .dwb-s .dwb { - /*font-weight: bold;*/ -} -/* Bubble arrow */ -.mbsc-ios .dw-bubble-bottom .dw-arr { - border-color: transparent transparent #f7f7f7 transparent; -} -.mbsc-ios .dw-bubble-top .dw-arr { - border-color: #f7f7f7 transparent transparent transparent; -} -.mbsc-ios.dw-bubble .dwwr { - -webkit-border-radius: 8px; - border-radius: 8px; -} -/* Inline display */ -.mbsc-ios.dw-nobtn .dwwr { - padding-top: 0; -} diff --git a/personcentor/src/main/resources/static/css/font-awesome.min.css b/personcentor/src/main/resources/static/css/font-awesome.min.css deleted file mode 100644 index 866437fa415f1874c0855718445c7aff915a915a..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/font-awesome.min.css +++ /dev/null @@ -1,403 +0,0 @@ -@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;} -[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;} -.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;} -a [class^="icon-"],a [class*=" icon-"]{display:inline;} -[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;} -.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;} -.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;} -[class^="icon-"].hide,[class*=" icon-"].hide{display:none;} -.icon-muted{color:#eeeeee;} -.icon-light{color:#ffffff;} -.icon-dark{color:#333333;} -.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} -.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} -.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;} -.pull-right{float:right;} -.pull-left{float:left;} -[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;} -[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;} -[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;} -.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;} -.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;} -.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;} -.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;} -.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;} -.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;} -.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;} -.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;} -.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;} -.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;} -.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;} -.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;} -.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;} -.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;} -a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;} -@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);} -.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);} -.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);} -.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);} -.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);} -a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;} -.icon-glass:before{content:"\f000";} -.icon-music:before{content:"\f001";} -.icon-search:before{content:"\f002";} -.icon-envelope-alt:before{content:"\f003";} -.icon-heart:before{content:"\f004";} -.icon-star:before{content:"\f005";} -.icon-star-empty:before{content:"\f006";} -.icon-user:before{content:"\f007";} -.icon-film:before{content:"\f008";} -.icon-th-large:before{content:"\f009";} -.icon-th:before{content:"\f00a";} -.icon-th-list:before{content:"\f00b";} -.icon-ok:before{content:"\f00c";} -.icon-remove:before{content:"\f00d";} -.icon-zoom-in:before{content:"\f00e";} -.icon-zoom-out:before{content:"\f010";} -.icon-power-off:before,.icon-off:before{content:"\f011";} -.icon-signal:before{content:"\f012";} -.icon-gear:before,.icon-cog:before{content:"\f013";} -.icon-trash:before{content:"\f014";} -.icon-home:before{content:"\f015";} -.icon-file-alt:before{content:"\f016";} -.icon-time:before{content:"\f017";} -.icon-road:before{content:"\f018";} -.icon-download-alt:before{content:"\f019";} -.icon-download:before{content:"\f01a";} -.icon-upload:before{content:"\f01b";} -.icon-inbox:before{content:"\f01c";} -.icon-play-circle:before{content:"\f01d";} -.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";} -.icon-refresh:before{content:"\f021";} -.icon-list-alt:before{content:"\f022";} -.icon-lock:before{content:"\f023";} -.icon-flag:before{content:"\f024";} -.icon-headphones:before{content:"\f025";} -.icon-volume-off:before{content:"\f026";} -.icon-volume-down:before{content:"\f027";} -.icon-volume-up:before{content:"\f028";} -.icon-qrcode:before{content:"\f029";} -.icon-barcode:before{content:"\f02a";} -.icon-tag:before{content:"\f02b";} -.icon-tags:before{content:"\f02c";} -.icon-book:before{content:"\f02d";} -.icon-bookmark:before{content:"\f02e";} -.icon-print:before{content:"\f02f";} -.icon-camera:before{content:"\f030";} -.icon-font:before{content:"\f031";} -.icon-bold:before{content:"\f032";} -.icon-italic:before{content:"\f033";} -.icon-text-height:before{content:"\f034";} -.icon-text-width:before{content:"\f035";} -.icon-align-left:before{content:"\f036";} -.icon-align-center:before{content:"\f037";} -.icon-align-right:before{content:"\f038";} -.icon-align-justify:before{content:"\f039";} -.icon-list:before{content:"\f03a";} -.icon-indent-left:before{content:"\f03b";} -.icon-indent-right:before{content:"\f03c";} -.icon-facetime-video:before{content:"\f03d";} -.icon-picture:before{content:"\f03e";} -.icon-pencil:before{content:"\f040";} -.icon-map-marker:before{content:"\f041";} -.icon-adjust:before{content:"\f042";} -.icon-tint:before{content:"\f043";} -.icon-edit:before{content:"\f044";} -.icon-share:before{content:"\f045";} -.icon-check:before{content:"\f046";} -.icon-move:before{content:"\f047";} -.icon-step-backward:before{content:"\f048";} -.icon-fast-backward:before{content:"\f049";} -.icon-backward:before{content:"\f04a";} -.icon-play:before{content:"\f04b";} -.icon-pause:before{content:"\f04c";} -.icon-stop:before{content:"\f04d";} -.icon-forward:before{content:"\f04e";} -.icon-fast-forward:before{content:"\f050";} -.icon-step-forward:before{content:"\f051";} -.icon-eject:before{content:"\f052";} -.icon-chevron-left:before{content:"\f053";} -.icon-chevron-right:before{content:"\f054";} -.icon-plus-sign:before{content:"\f055";} -.icon-minus-sign:before{content:"\f056";} -.icon-remove-sign:before{content:"\f057";} -.icon-ok-sign:before{content:"\f058";} -.icon-question-sign:before{content:"\f059";} -.icon-info-sign:before{content:"\f05a";} -.icon-screenshot:before{content:"\f05b";} -.icon-remove-circle:before{content:"\f05c";} -.icon-ok-circle:before{content:"\f05d";} -.icon-ban-circle:before{content:"\f05e";} -.icon-arrow-left:before{content:"\f060";} -.icon-arrow-right:before{content:"\f061";} -.icon-arrow-up:before{content:"\f062";} -.icon-arrow-down:before{content:"\f063";} -.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";} -.icon-resize-full:before{content:"\f065";} -.icon-resize-small:before{content:"\f066";} -.icon-plus:before{content:"\f067";} -.icon-minus:before{content:"\f068";} -.icon-asterisk:before{content:"\f069";} -.icon-exclamation-sign:before{content:"\f06a";} -.icon-gift:before{content:"\f06b";} -.icon-leaf:before{content:"\f06c";} -.icon-fire:before{content:"\f06d";} -.icon-eye-open:before{content:"\f06e";} -.icon-eye-close:before{content:"\f070";} -.icon-warning-sign:before{content:"\f071";} -.icon-plane:before{content:"\f072";} -.icon-calendar:before{content:"\f073";} -.icon-random:before{content:"\f074";} -.icon-comment:before{content:"\f075";} -.icon-magnet:before{content:"\f076";} -.icon-chevron-up:before{content:"\f077";} -.icon-chevron-down:before{content:"\f078";} -.icon-retweet:before{content:"\f079";} -.icon-shopping-cart:before{content:"\f07a";} -.icon-folder-close:before{content:"\f07b";} -.icon-folder-open:before{content:"\f07c";} -.icon-resize-vertical:before{content:"\f07d";} -.icon-resize-horizontal:before{content:"\f07e";} -.icon-bar-chart:before{content:"\f080";} -.icon-twitter-sign:before{content:"\f081";} -.icon-facebook-sign:before{content:"\f082";} -.icon-camera-retro:before{content:"\f083";} -.icon-key:before{content:"\f084";} -.icon-gears:before,.icon-cogs:before{content:"\f085";} -.icon-comments:before{content:"\f086";} -.icon-thumbs-up-alt:before{content:"\f087";} -.icon-thumbs-down-alt:before{content:"\f088";} -.icon-star-half:before{content:"\f089";} -.icon-heart-empty:before{content:"\f08a";} -.icon-signout:before{content:"\f08b";} -.icon-linkedin-sign:before{content:"\f08c";} -.icon-pushpin:before{content:"\f08d";} -.icon-external-link:before{content:"\f08e";} -.icon-signin:before{content:"\f090";} -.icon-trophy:before{content:"\f091";} -.icon-github-sign:before{content:"\f092";} -.icon-upload-alt:before{content:"\f093";} -.icon-lemon:before{content:"\f094";} -.icon-phone:before{content:"\f095";} -.icon-unchecked:before,.icon-check-empty:before{content:"\f096";} -.icon-bookmark-empty:before{content:"\f097";} -.icon-phone-sign:before{content:"\f098";} -.icon-twitter:before{content:"\f099";} -.icon-facebook:before{content:"\f09a";} -.icon-github:before{content:"\f09b";} -.icon-unlock:before{content:"\f09c";} -.icon-credit-card:before{content:"\f09d";} -.icon-rss:before{content:"\f09e";} -.icon-hdd:before{content:"\f0a0";} -.icon-bullhorn:before{content:"\f0a1";} -.icon-bell:before{content:"\f0a2";} -.icon-certificate:before{content:"\f0a3";} -.icon-hand-right:before{content:"\f0a4";} -.icon-hand-left:before{content:"\f0a5";} -.icon-hand-up:before{content:"\f0a6";} -.icon-hand-down:before{content:"\f0a7";} -.icon-circle-arrow-left:before{content:"\f0a8";} -.icon-circle-arrow-right:before{content:"\f0a9";} -.icon-circle-arrow-up:before{content:"\f0aa";} -.icon-circle-arrow-down:before{content:"\f0ab";} -.icon-globe:before{content:"\f0ac";} -.icon-wrench:before{content:"\f0ad";} -.icon-tasks:before{content:"\f0ae";} -.icon-filter:before{content:"\f0b0";} -.icon-briefcase:before{content:"\f0b1";} -.icon-fullscreen:before{content:"\f0b2";} -.icon-group:before{content:"\f0c0";} -.icon-link:before{content:"\f0c1";} -.icon-cloud:before{content:"\f0c2";} -.icon-beaker:before{content:"\f0c3";} -.icon-cut:before{content:"\f0c4";} -.icon-copy:before{content:"\f0c5";} -.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";} -.icon-save:before{content:"\f0c7";} -.icon-sign-blank:before{content:"\f0c8";} -.icon-reorder:before{content:"\f0c9";} -.icon-list-ul:before{content:"\f0ca";} -.icon-list-ol:before{content:"\f0cb";} -.icon-strikethrough:before{content:"\f0cc";} -.icon-underline:before{content:"\f0cd";} -.icon-table:before{content:"\f0ce";} -.icon-magic:before{content:"\f0d0";} -.icon-truck:before{content:"\f0d1";} -.icon-pinterest:before{content:"\f0d2";} -.icon-pinterest-sign:before{content:"\f0d3";} -.icon-google-plus-sign:before{content:"\f0d4";} -.icon-google-plus:before{content:"\f0d5";} -.icon-money:before{content:"\f0d6";} -.icon-caret-down:before{content:"\f0d7";} -.icon-caret-up:before{content:"\f0d8";} -.icon-caret-left:before{content:"\f0d9";} -.icon-caret-right:before{content:"\f0da";} -.icon-columns:before{content:"\f0db";} -.icon-sort:before{content:"\f0dc";} -.icon-sort-down:before{content:"\f0dd";} -.icon-sort-up:before{content:"\f0de";} -.icon-envelope:before{content:"\f0e0";} -.icon-linkedin:before{content:"\f0e1";} -.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";} -.icon-legal:before{content:"\f0e3";} -.icon-dashboard:before{content:"\f0e4";} -.icon-comment-alt:before{content:"\f0e5";} -.icon-comments-alt:before{content:"\f0e6";} -.icon-bolt:before{content:"\f0e7";} -.icon-sitemap:before{content:"\f0e8";} -.icon-umbrella:before{content:"\f0e9";} -.icon-paste:before{content:"\f0ea";} -.icon-lightbulb:before{content:"\f0eb";} -.icon-exchange:before{content:"\f0ec";} -.icon-cloud-download:before{content:"\f0ed";} -.icon-cloud-upload:before{content:"\f0ee";} -.icon-user-md:before{content:"\f0f0";} -.icon-stethoscope:before{content:"\f0f1";} -.icon-suitcase:before{content:"\f0f2";} -.icon-bell-alt:before{content:"\f0f3";} -.icon-coffee:before{content:"\f0f4";} -.icon-food:before{content:"\f0f5";} -.icon-file-text-alt:before{content:"\f0f6";} -.icon-building:before{content:"\f0f7";} -.icon-hospital:before{content:"\f0f8";} -.icon-ambulance:before{content:"\f0f9";} -.icon-medkit:before{content:"\f0fa";} -.icon-fighter-jet:before{content:"\f0fb";} -.icon-beer:before{content:"\f0fc";} -.icon-h-sign:before{content:"\f0fd";} -.icon-plus-sign-alt:before{content:"\f0fe";} -.icon-double-angle-left:before{content:"\f100";} -.icon-double-angle-right:before{content:"\f101";} -.icon-double-angle-up:before{content:"\f102";} -.icon-double-angle-down:before{content:"\f103";} -.icon-angle-left:before{content:"\f104";} -.icon-angle-right:before{content:"\f105";} -.icon-angle-up:before{content:"\f106";} -.icon-angle-down:before{content:"\f107";} -.icon-desktop:before{content:"\f108";} -.icon-laptop:before{content:"\f109";} -.icon-tablet:before{content:"\f10a";} -.icon-mobile-phone:before{content:"\f10b";} -.icon-circle-blank:before{content:"\f10c";} -.icon-quote-left:before{content:"\f10d";} -.icon-quote-right:before{content:"\f10e";} -.icon-spinner:before{content:"\f110";} -.icon-circle:before{content:"\f111";} -.icon-mail-reply:before,.icon-reply:before{content:"\f112";} -.icon-github-alt:before{content:"\f113";} -.icon-folder-close-alt:before{content:"\f114";} -.icon-folder-open-alt:before{content:"\f115";} -.icon-expand-alt:before{content:"\f116";} -.icon-collapse-alt:before{content:"\f117";} -.icon-smile:before{content:"\f118";} -.icon-frown:before{content:"\f119";} -.icon-meh:before{content:"\f11a";} -.icon-gamepad:before{content:"\f11b";} -.icon-keyboard:before{content:"\f11c";} -.icon-flag-alt:before{content:"\f11d";} -.icon-flag-checkered:before{content:"\f11e";} -.icon-terminal:before{content:"\f120";} -.icon-code:before{content:"\f121";} -.icon-reply-all:before{content:"\f122";} -.icon-mail-reply-all:before{content:"\f122";} -.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";} -.icon-location-arrow:before{content:"\f124";} -.icon-crop:before{content:"\f125";} -.icon-code-fork:before{content:"\f126";} -.icon-unlink:before{content:"\f127";} -.icon-question:before{content:"\f128";} -.icon-info:before{content:"\f129";} -.icon-exclamation:before{content:"\f12a";} -.icon-superscript:before{content:"\f12b";} -.icon-subscript:before{content:"\f12c";} -.icon-eraser:before{content:"\f12d";} -.icon-puzzle-piece:before{content:"\f12e";} -.icon-microphone:before{content:"\f130";} -.icon-microphone-off:before{content:"\f131";} -.icon-shield:before{content:"\f132";} -.icon-calendar-empty:before{content:"\f133";} -.icon-fire-extinguisher:before{content:"\f134";} -.icon-rocket:before{content:"\f135";} -.icon-maxcdn:before{content:"\f136";} -.icon-chevron-sign-left:before{content:"\f137";} -.icon-chevron-sign-right:before{content:"\f138";} -.icon-chevron-sign-up:before{content:"\f139";} -.icon-chevron-sign-down:before{content:"\f13a";} -.icon-html5:before{content:"\f13b";} -.icon-css3:before{content:"\f13c";} -.icon-anchor:before{content:"\f13d";} -.icon-unlock-alt:before{content:"\f13e";} -.icon-bullseye:before{content:"\f140";} -.icon-ellipsis-horizontal:before{content:"\f141";} -.icon-ellipsis-vertical:before{content:"\f142";} -.icon-rss-sign:before{content:"\f143";} -.icon-play-sign:before{content:"\f144";} -.icon-ticket:before{content:"\f145";} -.icon-minus-sign-alt:before{content:"\f146";} -.icon-check-minus:before{content:"\f147";} -.icon-level-up:before{content:"\f148";} -.icon-level-down:before{content:"\f149";} -.icon-check-sign:before{content:"\f14a";} -.icon-edit-sign:before{content:"\f14b";} -.icon-external-link-sign:before{content:"\f14c";} -.icon-share-sign:before{content:"\f14d";} -.icon-compass:before{content:"\f14e";} -.icon-collapse:before{content:"\f150";} -.icon-collapse-top:before{content:"\f151";} -.icon-expand:before{content:"\f152";} -.icon-euro:before,.icon-eur:before{content:"\f153";} -.icon-gbp:before{content:"\f154";} -.icon-dollar:before,.icon-usd:before{content:"\f155";} -.icon-rupee:before,.icon-inr:before{content:"\f156";} -.icon-yen:before,.icon-jpy:before{content:"\f157";} -.icon-renminbi:before,.icon-cny:before{content:"\f158";} -.icon-won:before,.icon-krw:before{content:"\f159";} -.icon-bitcoin:before,.icon-btc:before{content:"\f15a";} -.icon-file:before{content:"\f15b";} -.icon-file-text:before{content:"\f15c";} -.icon-sort-by-alphabet:before{content:"\f15d";} -.icon-sort-by-alphabet-alt:before{content:"\f15e";} -.icon-sort-by-attributes:before{content:"\f160";} -.icon-sort-by-attributes-alt:before{content:"\f161";} -.icon-sort-by-order:before{content:"\f162";} -.icon-sort-by-order-alt:before{content:"\f163";} -.icon-thumbs-up:before{content:"\f164";} -.icon-thumbs-down:before{content:"\f165";} -.icon-youtube-sign:before{content:"\f166";} -.icon-youtube:before{content:"\f167";} -.icon-xing:before{content:"\f168";} -.icon-xing-sign:before{content:"\f169";} -.icon-youtube-play:before{content:"\f16a";} -.icon-dropbox:before{content:"\f16b";} -.icon-stackexchange:before{content:"\f16c";} -.icon-instagram:before{content:"\f16d";} -.icon-flickr:before{content:"\f16e";} -.icon-adn:before{content:"\f170";} -.icon-bitbucket:before{content:"\f171";} -.icon-bitbucket-sign:before{content:"\f172";} -.icon-tumblr:before{content:"\f173";} -.icon-tumblr-sign:before{content:"\f174";} -.icon-long-arrow-down:before{content:"\f175";} -.icon-long-arrow-up:before{content:"\f176";} -.icon-long-arrow-left:before{content:"\f177";} -.icon-long-arrow-right:before{content:"\f178";} -.icon-apple:before{content:"\f179";} -.icon-windows:before{content:"\f17a";} -.icon-android:before{content:"\f17b";} -.icon-linux:before{content:"\f17c";} -.icon-dribbble:before{content:"\f17d";} -.icon-skype:before{content:"\f17e";} -.icon-foursquare:before{content:"\f180";} -.icon-trello:before{content:"\f181";} -.icon-female:before{content:"\f182";} -.icon-male:before{content:"\f183";} -.icon-gittip:before{content:"\f184";} -.icon-sun:before{content:"\f185";} -.icon-moon:before{content:"\f186";} -.icon-archive:before{content:"\f187";} -.icon-bug:before{content:"\f188";} -.icon-vk:before{content:"\f189";} -.icon-weibo:before{content:"\f18a";} -.icon-renren:before{content:"\f18b";} diff --git a/personcentor/src/main/resources/static/css/font/iconfont.eot b/personcentor/src/main/resources/static/css/font/iconfont.eot deleted file mode 100644 index a24b99879fa25c8589ca5c655267c38e0bce0423..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/css/font/iconfont.eot and /dev/null differ diff --git a/personcentor/src/main/resources/static/css/font/iconfont.svg b/personcentor/src/main/resources/static/css/font/iconfont.svg deleted file mode 100644 index ce72a551e3c82d372f698a7093e076a96f6adb25..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/font/iconfont.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - -Created by FontForge 20120731 at Fri Mar 20 11:22:39 2015 - By Ads - - - - - - - - - - - - - - - - - - - diff --git a/personcentor/src/main/resources/static/css/font/iconfont.ttf b/personcentor/src/main/resources/static/css/font/iconfont.ttf deleted file mode 100644 index c3e7f5a13e7fbeeb443631d69b8483c925dfcf63..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/css/font/iconfont.ttf and /dev/null differ diff --git a/personcentor/src/main/resources/static/css/font/iconfont.woff b/personcentor/src/main/resources/static/css/font/iconfont.woff deleted file mode 100644 index 672198315fab5a6052660018aa3fef6149d7aaa9..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/css/font/iconfont.woff and /dev/null differ diff --git a/personcentor/src/main/resources/static/css/iconfont.css b/personcentor/src/main/resources/static/css/iconfont.css deleted file mode 100644 index 6321cc7f8e0bd67115fa2d86b173114d42552e71..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/iconfont.css +++ /dev/null @@ -1,25 +0,0 @@ - -@font-face {font-family: "iconfont"; - src: url('iconfont.eot'); /* IE9*/ - src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('iconfont.woff') format('woff'), /* chrome、firefox */ - url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ - url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */ -} - -.iconfont { - font-family:"iconfont" !important; - font-size:16px; - font-style:normal; - -webkit-font-smoothing: antialiased; - -webkit-text-stroke-width: 0.2px; - -moz-osx-font-smoothing: grayscale; -} -.icon-weixin:before { content: "\e600"; } -.icon-dianhua:before { content: "\e601"; } -.icon-Go:before { content: "\e606"; } -.icon-youxiang:before { content: "\e602"; } -.icon-xinlang:before { content: "\e603"; } -.icon-coordinate:before { content: "\e604"; } -.icon-you:before { content: "\e605"; } -.icon-xiangyouhover:before { content: "\e607"; } diff --git a/personcentor/src/main/resources/static/css/idangerous.swiper.css b/personcentor/src/main/resources/static/css/idangerous.swiper.css deleted file mode 100644 index 98d6a4dc4a54f6e83f832de2c5cf6f818505c8ea..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/idangerous.swiper.css +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Swiper 3.2.7 - * Most modern mobile touch slider and framework with hardware accelerated transitions - * - * http://www.idangero.us/swiper/ - * - * Copyright 2015, Vladimir Kharlampidi - * The iDangero.us - * http://www.idangero.us/ - * - * Licensed under MIT - * - * Released on: December 7, 2015 - */ -.swiper-container{margin:0 auto;position:relative;overflow:hidden;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-white .swiper-pagination-bullet{background:#fff}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination{bottom:10px;left:0;width:100%}.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet{margin:0 5px}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-coverflow .swiper-wrapper{-ms-perspective:1200px}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;width:100%;height:100%;z-index:1}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}} \ No newline at end of file diff --git a/personcentor/src/main/resources/static/css/layui.css b/personcentor/src/main/resources/static/css/layui.css deleted file mode 100644 index 5a1046950efa0b0ce03b7f3bd194485e904b1b93..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/layui.css +++ /dev/null @@ -1,2 +0,0 @@ -/** layui-v2.5.6 MIT License By https://www.layui.com */ - .layui-inline,img{display:inline-block;vertical-align:middle}h1,h2,h3,h4,h5,h6{font-weight:400}.layui-edge,.layui-header,.layui-inline,.layui-main{position:relative}.layui-body,.layui-edge,.layui-elip{overflow:hidden}.layui-btn,.layui-edge,.layui-inline,img{vertical-align:middle}.layui-btn,.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-elip,.layui-form-checkbox span,.layui-form-pane .layui-form-label{text-overflow:ellipsis;white-space:nowrap}.layui-breadcrumb,.layui-tree-btnGroup{visibility:hidden}blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{border:none}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h4,h5,h6{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:24px;font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{height:1px;margin:10px 0;border:0;clear:both}a{color:#333;text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-inline{*display:inline;*zoom:1}.layui-edge{display:inline-block;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=256);src:url(../font/iconfont.eot?v=256#iefix) format('embedded-opentype'),url(../font/iconfont.woff2?v=256) format('woff2'),url(../font/iconfont.woff?v=256) format('woff'),url(../font/iconfont.ttf?v=256) format('truetype'),url(../font/iconfont.svg?v=256#layui-icon) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-search:before{content:"\e615"}.layui-icon-share:before{content:"\e641"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-engine:before{content:"\e628"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-star:before{content:"\e600"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-chat:before{content:"\e606"}.layui-icon-release:before{content:"\e609"}.layui-icon-list:before{content:"\e60a"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-ok-circle:before{content:"\1005"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-table:before{content:"\e62d"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-ie:before{content:"\e7bb"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-edit:before{content:"\e642"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-down:before{content:"\e61a"}.layui-icon-file:before{content:"\e621"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-read:before{content:"\e705"}.layui-icon-404:before{content:"\e61c"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-help:before{content:"\e607"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-windows:before{content:"\e67f"}.layui-icon-water:before{content:"\e636"}.layui-icon-username:before{content:"\e66f"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-about:before{content:"\e60b"}.layui-icon-location:before{content:"\e715"}.layui-icon-up:before{content:"\e619"}.layui-icon-pause:before{content:"\e651"}.layui-icon-date:before{content:"\e637"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-delete:before{content:"\e640"}.layui-icon-play:before{content:"\e652"}.layui-icon-top:before{content:"\e604"}.layui-icon-firefox:before{content:"\e686"}.layui-icon-friends:before{content:"\e612"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-ok:before{content:"\e605"}.layui-icon-layer:before{content:"\e638"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-group:before{content:"\e613"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-link:before{content:"\e64c"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-log:before{content:"\e60e"}.layui-icon-key:before{content:"\e683"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-return:before{content:"\e65c"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-form:before{content:"\e63c"}.layui-icon-cart:before{content:"\e657"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-heart-fill:before{content:"\e68f"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-ios:before{content:"\e680"}.layui-icon-at:before{content:"\e687"}.layui-icon-fire:before{content:"\e756"}.layui-icon-set:before{content:"\e716"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-tips:before{content:"\e702"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-bluetooth:before{content:"\e689"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-addition:before{content:"\e624"}.layui-icon-home:before{content:"\e68e"}.layui-icon-time:before{content:"\e68d"}.layui-icon-user:before{content:"\e770"}.layui-icon-notice:before{content:"\e667"}.layui-icon-chrome:before{content:"\e68a"}.layui-icon-edge:before{content:"\e68b"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-voice:before{content:"\e688"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-heart:before{content:"\e68c"}.layui-icon-logout:before{content:"\e682"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-template:before{content:"\e663"}.layui-icon-transfer:before{content:"\e691"}.layui-icon-auz:before{content:"\e672"}.layui-icon-console:before{content:"\e665"}.layui-icon-app:before{content:"\e653"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-next:before{content:"\e65b"}.layui-icon-component:before{content:"\e857"}.layui-icon-android:before{content:"\e684"}.layui-icon-more:before{content:"\e65f"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-camera:before{content:"\e660"}.layui-icon-note:before{content:"\e66e"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-password:before{content:"\e673"}.layui-icon-senior:before{content:"\e674"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-service:before{content:"\e626"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-print:before{content:"\e66d"}.layui-icon-cols:before{content:"\e610"}.layui-icon-wifi:before{content:"\e7e0"}.layui-icon-export:before{content:"\e67d"}.layui-icon-rss:before{content:"\e808"}.layui-icon-slider:before{content:"\e714"}.layui-icon-email:before{content:"\e618"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-mike:before{content:"\e6dc"}.layui-icon-light:before{content:"\e748"}.layui-icon-gift:before{content:"\e627"}.layui-icon-mute:before{content:"\e685"}.layui-icon-reduce-circle:before{content:"\e616"}.layui-icon-music:before{content:"\e690"}.layui-main{width:1140px;margin:0 auto}.layui-header{z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px;overflow-x:hidden}.layui-side-scroll{position:relative;width:220px;height:100%;overflow-x:hidden}.layui-body{position:absolute;left:200px;right:0;top:0;bottom:0;z-index:998;width:auto;overflow-y:auto;box-sizing:border-box}.layui-layout-body{overflow:hidden}.layui-layout-admin .layui-header{background-color:#23262E}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{position:fixed;top:60px;bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;height:44px;line-height:44px;padding:0 15px;background-color:#eee}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#009688;font-size:16px}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;padding:0 15px;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:'';display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:768px){.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:750px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:970px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1170px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space2{margin:-1px}.layui-col-space2>*{padding:1px}.layui-col-space4{margin:-2px}.layui-col-space4>*{padding:2px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space6{margin:-3px}.layui-col-space6>*{padding:3px}.layui-col-space8{margin:-4px}.layui-col-space8>*{padding:4px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space14{margin:-7px}.layui-col-space14>*{padding:7px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space16{margin:-8px}.layui-col-space16>*{padding:8px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space24{margin:-12px}.layui-col-space24>*{padding:12px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space26{margin:-13px}.layui-col-space26>*{padding:13px}.layui-col-space28{margin:-14px}.layui-col-space28>*{padding:14px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:22px;border-left:5px solid #009688;border-radius:0 2px 2px 0;background-color:#f2f2f2}.layui-quote-nm{border-style:solid;border-width:1px 1px 1px 5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px;font-weight:300}.layui-field-title{margin:10px 0 20px;border-width:1px 0 0}.layui-field-box{padding:10px 15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#e2e2e2}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#5FB878;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#666}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#f2f2f2;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:22px;color:#666}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-bg-black,.layui-bg-blue,.layui-bg-cyan,.layui-bg-green,.layui-bg-orange,.layui-bg-red{color:#fff!important}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #E6E6E6;background-color:#fff}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999}.layui-form-label,.layui-form-mid,.layui-form-select,.layui-input-block,.layui-input-inline,.layui-textarea{position:relative}.layui-bg-red{background-color:#FF5722!important}.layui-bg-orange{background-color:#FFB800!important}.layui-bg-green{background-color:#009688!important}.layui-bg-cyan{background-color:#2F4056!important}.layui-bg-blue{background-color:#1E9FFF!important}.layui-bg-black{background-color:#393D49!important}.layui-bg-gray{background-color:#eee!important;color:#666!important}.layui-badge-rim,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-layedit,.layui-layedit-tool,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#e6e6e6}.layui-timeline-item:before,hr{background-color:#e6e6e6}.layui-text{line-height:22px;font-size:14px;color:#666}.layui-text h1,.layui-text h2,.layui-text h3{font-weight:500;color:#333}.layui-text h1{font-size:30px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text a:not(.layui-btn){color:#01AAED}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text ul{padding:5px 0 5px 15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text em,.layui-word-aux{color:#999!important;padding:0 5px!important}.layui-btn{display:inline-block;height:38px;line-height:38px;padding:0 18px;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border:none;border-radius:2px;cursor:pointer}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{font-size:0}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{margin-right:3px;font-size:18px;vertical-align:bottom;vertical-align:middle\9}.layui-btn-primary{border:1px solid #C9C9C9;background-color:#fff;color:#555}.layui-btn-primary:hover{border-color:#009688;color:#333}.layui-btn-normal{background-color:#1E9FFF}.layui-btn-warm{background-color:#FFB800}.layui-btn-danger{background-color:#FF5722}.layui-btn-checked{background-color:#5FB878}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border:1px solid #e6e6e6;background-color:#FBFBFB;color:#C9C9C9;cursor:not-allowed;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-sm i{font-size:16px!important}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:14px!important}.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#C9C9C9;color:#009688}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #c9c9c9}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#D2D2D2!important}.layui-input:focus,.layui-textarea:focus{border-color:#C9C9C9!important}.layui-textarea{min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#FF5722!important}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#f2f2f2;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#5FB878;color:#fff}.layui-form-checkbox,.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-checkbox,.layui-form-checkbox *,.layui-form-switch{display:inline-block;vertical-align:middle}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-top:-3px\9}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;height:30px;line-height:30px;margin-right:10px;padding-right:30px;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox span{padding:0 10px;height:100%;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden}.layui-form-checkbox:hover span{background-color:#c2c2c2}.layui-form-checkbox i{position:absolute;right:0;top:0;width:30px;height:28px;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;font-size:20px;text-align:center}.layui-form-checkbox:hover i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#5FB878}.layui-form-checked span,.layui-form-checked:hover span{background-color:#5FB878}.layui-form-checked i,.layui-form-checked:hover i{color:#5FB878}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:28px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary] span{padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#666}.layui-form-checkbox[lay-skin=primary] i{right:auto;left:0;width:16px;height:16px;line-height:16px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover i{border-color:#5FB878;color:#fff}.layui-form-checked[lay-skin=primary] i{border-color:#5FB878!important;background-color:#5FB878;color:#fff}.layui-checkbox-disbaled[lay-skin=primary] span{background:0 0!important;color:#c2c2c2}.layui-checkbox-disbaled[lay-skin=primary]:hover i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-switch{position:relative;height:22px;line-height:22px;min-width:35px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch em{position:relative;top:0;width:25px;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#5FB878;background-color:#5FB878}.layui-checkbox-disbaled,.layui-checkbox-disbaled i{border-color:#e2e2e2!important}.layui-form-onswitch i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch em{margin-left:5px;margin-right:21px;color:#fff!important}.layui-checkbox-disbaled span{background-color:#e2e2e2!important}.layui-checkbox-disbaled:hover i{color:#fff!important}[lay-radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio>i:hover,.layui-form-radioed>i{color:#5FB878}.layui-radio-disbaled>i{color:#e2e2e2!important}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#FBFBFB;overflow:hidden;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0 1px 0 0}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-layedit{border-width:1px;border-style:solid;border-radius:2px}.layui-layedit-tool{padding:3px 5px;border-bottom-width:1px;border-bottom-style:solid;font-size:0}.layedit-tool-fixed{position:fixed;top:0;border-top:1px solid #e2e2e2}.layui-layedit-tool .layedit-tool-mid,.layui-layedit-tool .layui-icon{display:inline-block;vertical-align:middle;text-align:center;font-size:14px}.layui-layedit-tool .layui-icon{position:relative;width:32px;height:30px;line-height:30px;margin:3px 5px;color:#777;cursor:pointer;border-radius:2px}.layui-layedit-tool .layui-icon:hover{color:#393D49}.layui-layedit-tool .layui-icon:active{color:#000}.layui-layedit-tool .layedit-tool-active{background-color:#e2e2e2;color:#000}.layui-layedit-tool .layui-disabled,.layui-layedit-tool .layui-disabled:hover{color:#d2d2d2;cursor:not-allowed}.layui-layedit-tool .layedit-tool-mid{width:1px;height:18px;margin:0 10px;background-color:#d2d2d2}.layedit-tool-html{width:50px!important;font-size:30px!important}.layedit-tool-b,.layedit-tool-code,.layedit-tool-help{font-size:16px!important}.layedit-tool-d,.layedit-tool-face,.layedit-tool-image,.layedit-tool-unlink{font-size:18px!important}.layedit-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-layedit-iframe iframe{display:block;width:100%}#LAY_layedit_code{overflow:hidden}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #e2e2e2}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-flow-more a *,.layui-laypage input,.layui-table-view select[lay-ignore]{display:inline-block}.layui-laypage a:hover{color:#009688}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage a{text-decoration:none}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#009688}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#009688!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-table,.layui-table-view{margin:10px 0}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;background-color:#fff;color:#666}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:400}.layui-table tbody tr:hover,.layui-table thead tr,.layui-table-click,.layui-table-header,.layui-table-hover,.layui-table-mend,.layui-table-patch,.layui-table-tool,.layui-table-total,.layui-table-total tr,.layui-table[lay-even] tr:nth-child(even){background-color:#f2f2f2}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#e6e6e6}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0 0 1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0 1px 0 0}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding:15px 30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:40px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{font-size:12px;padding:5px 10px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:20px;line-height:20px}.layui-table[lay-data]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view .layui-table{position:relative;width:auto;margin:0}.layui-table-view .layui-table[lay-skin=line]{border-width:0 1px 0 0}.layui-table-view .layui-table[lay-skin=row]{border-width:0 0 1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:5px 0;border-top:none;border-left:none}.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td{cursor:default}.layui-table-view .layui-table td[data-edit=text]{cursor:text}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:110}.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0 0 1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;padding:5px 0;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-cell,.layui-table-tool-panel li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-table-tool-panel li{padding:0 10px;line-height:30px;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%;padding-left:28px}.layui-table-tool-panel li:hover{background-color:#f2f2f2}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0 0 0 1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#666}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#666}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:28px;line-height:28px;padding:0 15px;position:relative;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-table-link{color:#01AAED}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{padding:0;text-align:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:0 -1px 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0 0 0 1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px}.layui-table-tool{position:relative;z-index:890;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0 0 1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-page,.layui-table-total{border-width:1px 0 0;margin-bottom:-1px;overflow:hidden}.layui-table-page{position:relative;width:100%;padding:7px 7px 0;height:41px;font-size:12px;white-space:nowrap}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-7px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 14px 1px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15)}.layui-table-edit:focus{border-color:#5FB878!important}select.layui-table-edit{padding:0 0 0 10px;border-color:#C9C9C9}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0;box-sizing:content-box}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:26px;height:100%;padding:5px 0;border-width:0 0 0 1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px}.layui-table-grid-down:hover{background-color:#fbfbfb}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-44px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#666}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#666;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-drag,.layui-upload-form,.layui-upload-wrap{display:inline-block}.layui-upload-list{margin:10px 0}.layui-upload-choose{padding:0 10px;color:#999}.layui-upload-drag{position:relative;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#009688}.layui-upload-drag[lay-over]{border-color:#009688}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-transfer-active,.layui-transfer-box{display:inline-block;vertical-align:middle}.layui-transfer-box,.layui-transfer-header,.layui-transfer-search{border-width:0;border-style:solid;border-color:#e6e6e6}.layui-transfer-box{position:relative;border-width:1px;width:200px;height:360px;border-radius:2px;background-color:#fff}.layui-transfer-box .layui-form-checkbox{width:100%;margin:0!important}.layui-transfer-header{height:38px;line-height:38px;padding:0 10px;border-bottom-width:1px}.layui-transfer-search{position:relative;padding:10px;border-bottom-width:1px}.layui-transfer-search .layui-input{height:32px;padding-left:30px;font-size:12px}.layui-transfer-search .layui-icon-search{position:absolute;left:20px;top:50%;margin-top:-8px;color:#666}.layui-transfer-active{margin:0 15px}.layui-transfer-active .layui-btn{display:block;margin:0;padding:0 15px;background-color:#5FB878;border-color:#5FB878;color:#fff}.layui-transfer-active .layui-btn-disabled{background-color:#FBFBFB;border-color:#e6e6e6;color:#C9C9C9}.layui-transfer-active .layui-btn:first-child{margin-bottom:15px}.layui-transfer-active .layui-btn .layui-icon{margin:0;font-size:14px!important}.layui-transfer-data{padding:5px 0;overflow:auto}.layui-transfer-data li{height:32px;line-height:32px;padding:0 10px}.layui-transfer-data li:hover{background-color:#f2f2f2;transition:.5s all}.layui-transfer-data .layui-none{padding:15px 10px;text-align:center;color:#999}.layui-nav{position:relative;padding:0 20px;background-color:#393D49;color:#fff;border-radius:2px;font-size:0;box-sizing:border-box}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar,.layui-nav-tree .layui-nav-itemed:after{position:absolute;left:0;top:0;width:0;height:5px;background-color:#5FB878;transition:all .2s;-webkit-transition:all .2s}.layui-nav-bar{z-index:1000}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff}.layui-nav .layui-this:after{content:'';top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{content:'';width:0;height:0;border-style:solid dashed dashed;border-color:#fff transparent transparent;overflow:hidden;cursor:pointer;transition:all .2s;-webkit-transition:all .2s;position:absolute;top:50%;right:3px;margin-top:-3px;border-width:6px;border-top-color:rgba(255,255,255,.7)}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{margin-top:-9px;border-style:dashed dashed solid;border-color:transparent transparent #fff}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap}.layui-nav .layui-nav-child a{color:#333}.layui-nav .layui-nav-child a:hover{background-color:#f2f2f2;color:#000}.layui-nav-child dd{position:relative}.layui-nav .layui-nav-child dd.layui-this a,.layui-nav-child dd.layui-this{background-color:#5FB878;color:#fff}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:45px}.layui-nav-tree .layui-nav-item a{position:relative;height:45px;line-height:45px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item a:hover{background-color:#4E5465}.layui-nav-tree .layui-nav-bar{width:5px;height:0;background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#009688;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;box-shadow:none}.layui-nav-tree .layui-nav-child a{height:40px;line-height:40px;color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-tree .layui-nav-more{right:10px}.layui-nav-itemed>.layui-nav-child{display:block;padding:0;background-color:rgba(0,0,0,.3)!important}.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-bg-blue .layui-nav-bar,.layui-bg-blue .layui-nav-itemed:after,.layui-bg-blue .layui-this:after{background-color:#93D1FF}.layui-bg-blue .layui-nav-child dd.layui-this{background-color:#1E9FFF}.layui-bg-blue .layui-nav-itemed>a,.layui-nav-tree.layui-bg-blue .layui-nav-title a,.layui-nav-tree.layui-bg-blue .layui-nav-title a:hover{background-color:#007DDB!important}.layui-breadcrumb{font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#5FB878!important}.layui-breadcrumb a cite{color:#666;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s;position:relative;line-height:40px;min-width:65px;padding:0 15px;text-align:center;cursor:pointer}.layui-tab-title li a{display:block}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:'';width:100%;height:41px;border-width:1px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#e2e2e2;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\9;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:10px}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#FF5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#009688}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #5FB878}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#f2f2f2}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#5FB878}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#5FB878;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#FF5722}.layui-timeline-item:before{content:'';position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:last-child:before{display:none}.layui-timeline-item:first-child:before{display:block}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#FF5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#666}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-8px 6px 0}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\9;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add],.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\9;opacity:1;left:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#e2e2e2;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown]>[carousel-item]>*,.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9F9F9F;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#666;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #D9D9D9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{position:relative;margin:10px 0;padding:15px;line-height:20px;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New;font-size:12px}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:10px 5px 10px 0;font-size:0}.layui-rate li i.layui-icon{font-size:20px;color:#FFB800;margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:26px;height:26px;border:1px solid #e6e6e6;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:34px;height:34px;line-height:32px}.layui-colorpicker.layui-colorpicker-sm{width:24px;height:24px;line-height:22px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:20px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#FFF;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;z-index:66666666;width:280px;padding:7px;background:#FFF;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#FFF,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #FFF;border-radius:50%;position:absolute;top:-3px;right:-3px;cursor:pointer}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#FF0,#0F0,#0FF,#00F,#F0F,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;margin-right:10px;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:150px;height:30px;color:#666}.layui-slider{height:4px;background:#e2e2e2;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#FFF;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#FFF;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:66666666;white-space:nowrap;display:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#FFF;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:'';position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #e6e6e6;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-15px}.layui-slider-input-btn{display:none;position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #d2d2d2}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #d2d2d2}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none}.layui-slider-input-btn i:hover{color:#009688}.layui-slider-vertical{width:4px;margin-left:34px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-tree{line-height:22px}.layui-tree .layui-form-checkbox{margin:0!important}.layui-tree-set{width:100%;position:relative}.layui-tree-pack{display:none;padding-left:20px;position:relative}.layui-tree-iconClick,.layui-tree-main{display:inline-block;vertical-align:middle}.layui-tree-line .layui-tree-pack{padding-left:27px}.layui-tree-line .layui-tree-set .layui-tree-set:after{content:'';position:absolute;top:14px;left:-9px;width:17px;height:0;border-top:1px dotted #c0c4cc}.layui-tree-entry{position:relative;padding:3px 0;height:20px;white-space:nowrap}.layui-tree-entry:hover{background-color:#eee}.layui-tree-line .layui-tree-entry:hover{background-color:rgba(0,0,0,0)}.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color:#999;text-decoration:underline;transition:.3s}.layui-tree-main{cursor:pointer;padding-right:10px}.layui-tree-line .layui-tree-set:before{content:'';position:absolute;top:0;left:-9px;width:0;height:100%;border-left:1px dotted #c0c4cc}.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height:13px}.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height:0}.layui-tree-iconClick{position:relative;height:20px;line-height:20px;margin:0 10px;color:#c0c4cc}.layui-tree-icon{height:12px;line-height:12px;width:12px;text-align:center;border:1px solid #c0c4cc}.layui-tree-iconClick .layui-icon{font-size:18px}.layui-tree-icon .layui-icon{font-size:12px;color:#666}.layui-tree-iconArrow{padding:0 5px}.layui-tree-iconArrow:after{content:'';position:absolute;left:4px;top:3px;z-index:100;width:0;height:0;border-width:5px;border-style:solid;border-color:transparent transparent transparent #c0c4cc;transition:.5s}.layui-tree-btnGroup,.layui-tree-editInput{position:relative;vertical-align:middle;display:inline-block}.layui-tree-spread>.layui-tree-entry>.layui-tree-iconClick>.layui-tree-iconArrow:after{transform:rotate(90deg) translate(3px,4px)}.layui-tree-txt{display:inline-block;vertical-align:middle;color:#555}.layui-tree-search{margin-bottom:15px;color:#666}.layui-tree-btnGroup .layui-icon{display:inline-block;vertical-align:middle;padding:0 2px;cursor:pointer}.layui-tree-btnGroup .layui-icon:hover{color:#999;transition:.3s}.layui-tree-entry:hover .layui-tree-btnGroup{visibility:visible}.layui-tree-editInput{height:20px;line-height:20px;padding:0 3px;border:none;background-color:rgba(0,0,0,.05)}.layui-tree-emptyText{text-align:center;color:#999}.layui-anim{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .3s;-webkit-transition:all .3s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,30px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,30px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout} \ No newline at end of file diff --git a/personcentor/src/main/resources/static/css/main.css b/personcentor/src/main/resources/static/css/main.css deleted file mode 100644 index 8b781bded07d76b3d70721a584ef3e947d84b2d3..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/main.css +++ /dev/null @@ -1,2314 +0,0 @@ -@charset "utf-8"; -/* CSS Document */ - - -html { - font-size: 62.5% -} -@media screen and (min-width:375px) { - html { - font-size:73.24% - } -} -@media screen and (min-width:414px) { - html { - font-size:73.24% - } -} -@media screen and (min-width:481px) { - html { - font-size:94% - } -} -@media screen and (min-width:561px) { - html { - font-size:109% - } -} -@media screen and (min-width:641px) { - html { - font-size:125% - } -} -body{ - background-color: #f3f3f3 !important; -} -.warpe { - margin: 0 auto; - min-width: 320px; - max-width: 640px; - min-height: 500px; - font-family: "Microsoft YaHei", Arial, "Helvetica"; - color: #333; - font-size: 1.4rem; - position: relative; - background: url("../img/bg.jpg") no-repeat !important; - background-size: 100% 100% !important; - padding-bottom: 4rem; -} -.main{ - height: auto; - overflow: hidden; - padding: 1rem; - background-color: #fff; - } -.banner{ - position:relative; - height: auto; - overflow: hidden; - } -.banner img{ - width: 100%; - } -/*幻灯*/ -.swipe { - width: 100%; - overflow: hidden; - position: relative; - margin:0 auto; -} -.swipe a, .swipe img { - border: 0; - display: block; -} -.swipe ul { - -webkit-transition: left 800ms ease-in 0; - -moz-transition: left 800ms ease-in 0; - transition: left 800ms ease-in 0 -} -.swipe ul li { - display: none -} -.swipe ul li img { - width:100%; -} -.swipe #pagenavi { - width:100%; - position: absolute; - bottom: 2px; - text-align:center; - overflow:hidden; - left: 0; -} -.swipe #pagenavi a { - width: .7rem; - height: .7rem; - line-height: 99em; - background: #fff; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - margin: 0; - overflow: hidden; - cursor: pointer; - display: inline-block; - opacity: .5; -} -.swipe #pagenavi a.active { - background: #fff; - opacity:1; -} -.title{ - height:4rem; - line-height: 4rem; - padding: 0rem 1rem; - background-color: #fff; - font-size: 1.3rem; -} -.title i{ - font-size: 1.8rem; -} -.id_nav{ - height: auto; - overflow: hidden; - background-color: #fff; - margin-top: 1rem; - width: 100%; - border-bottom: .1rem #ededed solid; -} -.id_nav_l{ - width: 40%; - text-align: center; - border-right: .1rem #ededed solid; - padding: 5% 0%; -} -.id_nav_l img{ - width: 100%; - -webkit-animation-delay: 1s; //动画延迟时间 -} -.id_nav_l span{ - display: block; - width: 50%; - margin: 0 auto; - margin-top: 1rem; -} -.id_nav_l a p{ - color: #e6202f; -} -.id_nav_r{ - width: 59%; -} -.id_nav_rt{ - position: relative; - border-bottom: .1rem #ededed solid; - padding: 5% 0%; - padding-left: 5%; - line-height:2rem; - font-size: 1.2rem; -} -.id_nav_rt img{ - position: absolute; - height: 2.5rem; - top: 1.5rem; - right: 5%; -} -.id_nav_rt a p{ - color: #67c148; -} -.id_nav_rt a span{ - color: #888; -} -.nav{ - background-color: #fff; - margin-top: 1rem; - height: auto; - overflow: hidden; - padding-bottom: 2rem; -} -.nav ul li{ - width: 15%; - float: left; - margin-left: 8%; - font-size: 1.2rem; - text-align: center; - margin-top: 2rem; - line-height:1.5rem; -} -.nav ul li a{ - color: #8b8b8b; -} -.nav ul li img{ - width: 100%; - -webkit-animation-delay: 1.5s; //动画延迟时间; - -webkit-animation-duration: 2s; -} -.center{ - height:auto; - overflow: hidden; - background-color: #fff; - margin-top: 1rem; - padding: 1rem 0rem; - font-size: 1.4rem; - line-height:2rem; -} -.picbg{ - float: left; - height: 1.5rem; - width: 1rem; - background-color: #ff9813; - margin-right: .5rem; - border-radius: 0px .75rem .75rem 0px; - position: relative; - top: .2rem; -} -.pictitle a{ - margin-right: 1rem; - color: #b6b6b6; -} -.bannerside{ - margin-top: 1rem; -} -.bannerside img{ - width: 100%; -} -.id_bth a{ - display: block; - width: 90%; - height: 3rem; - line-height:3rem; - font-size: 1.4rem; - margin: 0 auto; - background-color: #f3f3f3; - text-align: center; - border-radius: 2rem; - color: #0b8bab; - margin-bottom: 1rem; -} -.navside{ - height:4rem; - width: 100%; - background-color: #fff; - padding-top: .5rem; - border-top: .1rem #ededed solid; - position: fixed; - bottom: 0rem; - z-index: 100; -} -.navside ul li{ - font-size: 1.2rem; - float: left; - text-align: center; - width: 16%; - margin-left: 5%; - line-height:1rem; -} -.navside ul li a{ - display: block; - color: #838383; -} -.navside ul li a p{ - font-size: 2rem; - margin-bottom: .5rem; -} -.navside_hover{ - color: #e67c3c !important; -} -.head{ - height:5rem; - line-height: 5rem; - text-align: center; - background-color: #182e4c; - color: #fff; - position: relative; - font-size: 1.8rem; -} -.return{ - font-size: 1.6rem; - color: #fff; - position: absolute; - left: 1rem; - top: 0rem; -} -.plus{ - color: #fff; - position: absolute; - right: 4rem; -} -.search{ - color: #fff; - position: absolute; - right: 1rem; -} -.my_tab{ - height:4rem; - line-height: 4rem; - width: 100%; - border-bottom: .1rem #b1b1b1 solid; - background-color: #fff; - position: relative; - z-index: 100; -} -.my_tab a{ - float: left; - width: 50%; - text-align: center; - height:3.8rem; - font-size: 1.5rem; - color: #000; -} -.my_tab a.active{ - color: #ff8400 !important; - border-bottom: .2rem #ff8400 solid; -} -.interest_list{ - height:auto; - overflow: hidden; - padding:1rem; -} -.interest_list ul li{ - font-size: 1.2rem; - border-bottom: .1rem #ededed solid; - padding-bottom: 1.5rem; - margin-top: 1.5rem; - position: relative; - -webkit-animation-duration: 2s; -} -.interest_list a img{ - width: 4rem; - height:4rem; - display: inline-block; - border-radius: 1rem; - float: left; - margin-right: .5rem; -} -.list_r{ - line-height: 2rem; -} -.interest_list a { - color: #000; -} -.list_r p{ - color: #666; -} -.list_r p span{ - margin-right: 1rem; - color: #000; -} -.list_r i{ - font-size: 3rem; - position: absolute; - right: 0rem; - top: .5rem; - color: #999; -} -.inter_txt{ - padding:1rem; - color: #666; - font-size: 1.2rem; - line-height:2rem; - -webkit-animation-delay: 3s; -} -.inter_txt p a{ - display: block; - width: 2rem; - height:2rem; - font-size: 2rem; - color: #9f9e9c; - line-height:1.8rem; - text-align: center; - border-radius: 50%; - background-color: #f0f0f0; - margin-top: .5rem; - border: .08rem #9f9e9c solid; -} -.hot_list{ - padding: 1rem; - height: auto; - overflow: hidden; - border-bottom: 1rem #f3f3f3 solid; -} -.hottxt{ - font-size: 1.4rem; -} -.hot_list ul li{ - width: 25%; - float: left; - margin-top: 1rem; - text-align: center; - font-size: 1.4rem; - margin-left: 12%; -} -.hot_list ul li p img{ - width: 100%; - height:7rem; - border-radius: 2rem; - display: block; - margin-bottom: .5rem; -} -.hot_list ul li a{ - display: block; - color: #666; -} -.searchall{ - padding:1rem; - height:2rem; - background-color: #ededed; -} -.searchall_l{ - float: left; - width: 95%; - position: absolute; -} -.searchall_l input{ - height:2rem; - line-height:2rem; - width: 80%; - border-radius: 1rem; - border: none; - font-size: 1.2rem; - text-indent: 3rem; - color: #999; - float: left; -} -.searchall_l i{ - font-size: 1.6rem; - color: #aaaaaa; - position: absolute; - top: .4rem; - left: 1rem; -} -.searchall_l a{ - font-size: 1.6rem; - color: #666; - line-height: 2rem; - margin-left: .5rem; -} -.search_txt{ - padding: 1rem; - font-size: 1.4rem; -} -.search_t{ - height:3rem; - line-height: 3rem; - color: #666; - border-bottom: .1rem #ededed solid; -} -.search_list ul li{ - float: left; - padding: .5rem 1rem; - margin-left: 1rem; - margin-top: 1rem; - border: .1rem #ff8400 solid; - border-radius: 1rem; - -webkit-animation-delay: 1s; -} -.search_list ul li a{ - display: block; - color: #ff8400; -} -.inter_add{ - padding:0rem 1rem; - height: auto; - overflow: hidden; - background-color: #fff; - margin-bottom: 1rem; -} -.inter_add ul li{ - padding:1.2rem 0rem; - border-bottom: .1rem #EFEFEF solid; - font-size: 1.4rem; - height:auto; - overflow: hidden; - position: relative; - padding-right: 2rem; -} -.inter_add ul li a{ - display: block; - color: #666; -} -.inter_add ul li a i{ - font-size: 2rem; - position: absolute; - top: 1.2rem; - right: 0rem; -} -.inter_add ul li span font{ - font-size: 1.2rem; - color: #999; -} -.inter_add ul li span img{ - display: block; - width: 2rem; - height:2rem; - border-radius: .5rem; -} -.xqtitle{ - padding:1rem; - height:auto; - overflow: hidden; - background-color: #fff; - font-size: 1.4rem; - line-height:1.8rem; - margin-bottom: 1rem; -} -.xqtitle_tl{ - float: left; -} -.xqtitle_tl img{ - width: 6rem; - height:6rem; - display: block; - border-radius: 1rem; -} -.xqtitle_tr{ - float: left; - margin-left: 1rem; -} -.xqtitle_tr p span{ - font-size: 1.2rem; - margin-right: 1rem; -} -.xqtitle_tr p a{ - padding: .2rem 1rem; - color: #ff5400; - background-color: #f6f6f6; - border: .1rem #f3f3f3 solid; - border-radius: 1rem; - margin-top: .5rem; - display: inline-block; -} -.postall{ - height:auto; - overflow: hidden; - margin-top: 1rem; - padding-bottom:1rem; - font-size: 1.2rem; - border-bottom: .1rem #ededed solid; -} -.postall a{ - display: block; - color: #949494; -} -.post_t img{ - width: 2rem; - height:2rem; - border-radius: .5rem; - margin-right: .5rem; -} -.post_t span{ - position: relative; - top:-.5rem; -} -.post_m{ - font-size: 1.2rem; - color: #333; - line-height: 1.5rem; - margin-top: .5rem; - clear: both; - height:auto; - overflow: hidden; -} -.post_m_l { - font-size: 1.2rem; - color: #333; - line-height: 1.6rem; - margin-top: .5rem; - clear: both; - max-height: 5rem; - overflow: hidden; -} -.postimg_list li{ - float: left; - width: 50%; - position: relative; - height:6rem; -} -.post_img li img{ - width: 90% !important; - height: 100%; - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translate(-50%,-50%); - -ms-transform: translate(-50%,-50%); - -moz-transform: translate(-50%,-50%); -} -.post_img{ - height: auto; - overflow: hidden; - margin-top: .5rem; -} -.post_b span label{ - margin-left: 1rem; -} -.post_b{ - margin-top: 1rem; - height: auto; - overflow: hidden; -} -.postimg_list2 li{ - float: left; - width: 25%; - position: relative; - height:6rem; -} -.postinput{ - height:3rem; - padding: .5rem; - background-color: #fff; - border-top: .1rem #ededed solid; - width: 100%; - position: fixed; - bottom: 0rem; - font-size: 1.4rem; -} -.postinput input{ - width: 70%; - height:2rem; - border: .1rem #ededed solid; - border-radius: 1rem; - line-height:2rem; - color: #999; - text-indent: 1em; - float: left; -} -.postinput a{ - float: left; - width: 11%; - height: 2rem; - margin-left: 2%; -} -.postinput a i{ - color: #109DCD; - font-size: 2rem; - position: relative; - top: .3rem; -} -.postinput a img{ - height: 100%; -} -.post_user{ - padding:1rem 0rem; - height:auto; - overflow: hidden; - background-color: #fff; - font-size: 1.2rem; - text-align: center; - line-height:1.5rem; - color: #666; - border-bottom: 1rem #f3f3f3 solid; -} -.post_user ul li{ - float: left; - width: 19%; - height:auto; - overflow: hidden; - margin-left: 5%; - margin-bottom: 1rem; -} -.post_user ul li img{ - display: block; - width: 100%; - height:5rem; - border-radius: 1rem; -} -.user_add{ - display: block; - width: 100%; - height:5rem; - border-radius: 1rem; - background-color: #f1f1f1; - font-size: 3rem; - color: #c1c1c1; - line-height:4.8rem; -} -.inersest_bth a{ - background-color: #ff8400; - color: #fff; -} -.post_img02 img{ - width: 100%; -} -.post_t label{ - line-height: 2rem; - margin-left: 1rem; -} -.post_t2 span{ - top: 0rem; - line-height:2rem; - font-size: 1.4rem; - margin-right: .5rem; -} -.xqtitle_t{ - height:auto; - overflow: hidden; - margin-bottom: .5rem; -} -.comnav{ - padding: 1rem 0rem; - background-color: #fff; - height:auto; - overflow: hidden; -} -.comnav ul li{ - width: 20%; - float: left; - font-size: 1.2rem; - line-height: 1.5rem; - text-align: center; - margin-left: 10%; -} -.comnav ul li img{ - width: 100%; -} -.comnav ul li a{ - display: block; - color: #666; -} -.com_ad{ - height:auto; - overflow: hidden; - margin-top: 1rem; - position: relative; - background-color: #fff; -} -.com_ad_l{ - width: 38%; - float: left; - border-right: .1rem #ededed solid; -} -.com_ad_l img,.com_ad_r img{ - width: 100%; -} -.com_ad_r{ - width: 61%; - float: right; -} -.com_ad_rt{ - border-bottom: .1rem #ededed solid; -} -.activity{ - height:auto; - overflow: hidden; - padding:0rem 1rem; -} -.activity ul li{ - height:auto; - overflow: hidden; - margin-top: 1rem; -} -.activity ul li img{ - width: 40%; - height:6rem; - float: left; -} -.activity_txt{ - width: 58%; - margin-left: 2%; - float: left; -} -.activity_txt p{ - display: block; - height:2rem; - line-height:2rem; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 1.4rem; -} -.activity ul li a{ - display: block; - color: #666; -} -.activity_txt p span{ - color: #999; -} -.post_t span font{ - margin: 0rem .5rem; -} -.sqh_tab a{ - width: 33%; -} -.edit_t textarea{ - font-size: 1.4rem; - color: #666; - width: 100%; - border:none; - line-height:1.2rem; - padding-top: .5rem; - text-indent: 1em; -} -.edit_b ul li{ - width: 5rem; - height: 5rem; - float: left; - margin-left:5%; - margin-bottom: 1rem; - position: relative; -} -.edit_b ul li img{ - width: 100%; - height:5rem; -} -.add_img{ - display: block; - width: 5rem; - height: 5rem; - position: relative; - background-color: #eee; - line-height: 4rem; - text-align: center; - color: #b3b3b3; - font-size: 5rem; - float: left; - margin-left: 5%; -} -.add_img input{ - display: block; - width: 5rem; - height: 5rem; - position: absolute; - top: 0rem; - left:0rem; - opacity: 0; -} -.postinput select{ - background-color: #FFF; - height: 2.5rem; - margin-right: 1rem; - padding: 0rem 1rem; - border-radius: 2rem; - color: #999; - border: .1rem #ededed solid; -} -.place{ - top:0rem !important; - -webkit-animation-delay: 1s; -} -.signTxt{ - border-top: 1rem #f3f3f3 solid; -} -.signTxt ul li{ - height: 4rem; - line-height: 4rem; - font-size: 1.3rem; - color: #bcbcbc; - border-bottom: .1rem #ededed solid; -} -.edit{ - height:auto; - overflow: hidden; -} -.partTxt{ - padding:1rem; - font-size: 1.4rem; - line-height:2rem; - color: #666; -} -.partTxt p{ - margin-top: 1rem; -} -.part{ - padding:0rem 1rem; - background-color: #fff; - height:auto; - overflow: hidden; - font-size: 1.4rem; - color: #666; - margin-bottom: 1rem; -} -.part ul li{ - height: 4rem; - line-height:4rem; - border-bottom: .1rem #ededed solid; - position: relative; -} -.p_user a{ - padding: 0rem .5rem; - font-size: 1.6rem; - color: #666; -} -.p_user input{ - background: none; - width: 3rem; - text-align: center; - font-size: 1.4rem; - border: none; -} -.part2 input{ - width: 100%; - height: 3rem; - line-height:3rem; - background: none; - border: none; - text-indent: 5em; - font-size: 1.4rem; -} -.part2 ul li label { - position: absolute; - top: 0rem; - left: 0rem; -} -.part2{ - margin-top: 1rem; -} -.second{ - height:auto; - line-height:3rem; - font-size: 1.2rem; - border-bottom: .1rem #ededed solid; - overflow: hidden; -} -.second2{ - height:4rem; - line-height:4rem; - font-size: 1.2rem; - border-bottom: .1rem #ededed solid; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.second span font,.second2 span font{ - color: #333; -} -.secondnav{ - height:4rem; - line-height:4rem; - font-size: 1.4rem; - border-top: .1rem #ededed solid; - position: fixed; - width: 100%; - bottom: 0rem; - text-align: center; - background-color: #fff; -} -.secondnav ul li{ - width: 23%; - height:4rem; - border-right: .1rem #ededed solid; - display: inline-block; -} -.secondnav ul li a{ - color: #666; - display: block; -} -.second p{ - font-size: 1.4rem; - color: #000; -} -.carpooling{ - padding:1rem; - margin-bottom: 1rem; - background-color: #fff; -} -.car_tab { - width: 50%; - margin: 0 auto; - font-size: 1.4rem; - background-color: #f3f3f3; - height: 3rem; - line-height: 3rem; - position: relative; - top: 1rem; - border-radius: 2rem; - overflow: hidden; -} -.car_tab a{ - display: inline-block; - color: #333; - width: 48%; - border-right: .1rem #ededed solid; - float: left; - text-align: center; -} -.car_tab a.active{ - background-color: #fff !important; - color: #ff5400 !important; -} -.cardiv{ - height:auto; - overflow: hidden; - margin-bottom: 1rem; -} -.car_t{ - padding:1rem; - font-size: 1.4rem; - color: #666; - line-height: 1.8rem; -} -.car_b{ - background-color: #fff; - padding: 0rem 1rem; -} -.car_b ul li{ - height:3rem; - line-height:3rem; - border-bottom: .1rem #ededed solid; - position: relative; -} -.car_b ul li input{ - width: 100%; - height:3rem; - border: none; - background: none; - font-size: 1.4rem; - color: #AAA6A6; - font-family: 微软雅黑; -} -.car_b ul li a{ - position: absolute; - right: 1rem; - top:0rem; - font-size: 2rem; -} -.cardiv textarea{ - padding:1rem; -} -.postimg_list3 li{ - float: left; - width: 50%; - position: relative; - height:6rem; -} -.navcenter{ - width: 100%; - height: auto; - overflow: hidden; - position: fixed; - z-index: 201; - top: 12rem; - text-align: center; -} -.navcenter ul li{ - width: 18%; - display: inline-block; - text-align: center; - margin-bottom: 1rem; - font-size: 1.2rem; - line-height:2rem; - margin-left: 5%; -} -.navcenter ul li img{ - width: 80%; - display: block; - margin: 0 auto; -} -.navcenter ul li a{ - display: block; - color: #333; -} -.comlist ul li{ - height:auto; - overflow: hidden; - line-height: 3rem; - font-size: 1.4rem; - padding: 1rem 0rem; - border-bottom: .1rem #ededed solid; - position: relative; -} -.comlist ul li img{ - width: 2rem; - height:2rem; - border-radius: .5rem; - position: relative; - top: .5rem; - margin-right: .3rem; -} -.comlist ul li span{ - width: 24%; - float: left; - text-align: center; -} -.comlist ul li a{ - margin-right: .5rem; - right: 1rem; - font-size: 1.6rem; - color: #999; - font-weight: bold; - top: 1.7rem; -} -.car_b ul li span{ - position: relative; - top: -3rem; - background-color: #ff8400; - color: #fff; - padding: .2rem .8rem; - height: 2rem; - line-height: 2rem; - border-radius: 1rem; - font-size: 1.2rem; -} - -.edit_b { - position: relative; -} -.file-input-wrapper { - position: absolute; - width: 6rem; - height: 6rem; - top: 0rem; - opacity: 0; -} -.action { - text-align: center; - display: block; - font-size: 1.2rem; - color: #999; -} -.part select{ - margin-left: auto; - margin-right: 20%; - height: 2rem; - position: relative; - top: 1rem; - border: none; - font-size: 1.4rem; - color: #999; -} -.uploader-error { - font-size: 1.2rem; - line-height: 2rem; - color: #E64747; -} -.post_t i{ - font-size: 1.8rem; -} -.file-input-wrapper input{ - position: absolute; - width: 6rem; - height: 6rem; - top: 0rem; - opacity: 0; -} -/*20160519*/ -.secondlist{ - position: absolute; - width: 48%; - background-color: #fff; - top:4.1rem; - z-index: 100; - border: .1rem #ECECEC solid; -} -.secondlist ul li { - width: 100%; - height: auto; - overflow: hidden; -} -.secondlist ul li a{ - display: block; - width: 100%; - height: 3rem; - line-height: 3rem; - font-size: 1.4rem; - border-bottom: .1rem #ECECEC solid; - color: #999; -} -.secondlist2{ - left: 49%; -} -.group_txt{ - padding: .5rem 0rem; - font-size: 1.4rem; - line-height:2rem; - border-top:.1rem #ededed solid ; - margin-top: 1rem; -} -.group_txt p span{ - color: #666; -} -.group_img{ - position: relative; - top: .5rem; -} -.report{ - background-color: #fff; - margin-bottom: 1rem; -} -.report ul li{ - height:3.5rem; - line-height:3.5rem; - border-bottom:.1rem #ededed solid ; - font-size: 1.4rem; - padding: 0rem 1rem; -} -.report ul li span{ - color: #00CC00; - margin-top: 1rem; -} - -.invit{ - background-color: #fff; - margin-bottom: 1rem; -} -.invit ul li{ - height:3.5rem; - line-height:3.5rem; - border-bottom:.1rem #ededed solid ; - font-size: 1.2rem; - padding: 0rem 1rem; -} -.invit ul li img{ - width: 2rem; - height:2rem; - border-radius: .5rem; - position: relative; - top: .5rem; - margin-right: .5rem; -} -.useradmin span{ - padding: 0rem 1rem; - border: .1rem #ededed solid; - font-size: 1.2rem; - border-radius: 1rem; -} -.useradmin { - position: absolute; - top: -.5rem; - right: 0rem; - padding-right: 1rem; -} -.useradmin i{ - position: relative; - margin-left: 1rem; -} -.publish_tab a{ - width: 20%; -} -.inter_add ul li select{ - font-size: 1.2rem; - color: #999; - border: none; - -webkit-appearance: none; - font-family: 微软雅黑; -} -.regall{ - height:auto; - overflow: hidden; -} -.reginput{ - border:.1rem #ededed solid; - position: relative; - margin-top: 1rem; -} -.reginput input{ - width: 100%; - height:3rem; - line-height:3rem; - text-indent: 1em; - color: #999; - font-size: 1.4rem; - border: none; -} -.yzmdiv a{ - width: 7rem; - height:3.2rem; - line-height: 3.2rem; - background-color: #f2f2f2; - display: block; - color: #666; - font-size: 1.4rem; - text-align: center; -} -.yzmdiv img{ - width: 7rem; - height:3.2rem; - line-height: 3.2rem; - display: block; - font-size: 1.4rem; - text-align: center; -} -.yzmdiv { - position: absolute; - bottom: 0rem; - right: 0rem; -} -.regTxt{ - margin: 1rem 0rem; - font-size: 1.2rem; - color: #666; -} -.regTxt p a{ - color: #666; -} -.mess ul li{ - padding: 1rem; - height: auto; - overflow: hidden; - border-bottom: .1rem #ededed solid; -} -.mess ul li a{ - display: block; - color: #333; -} -.mess ul li a img{ - float: left; - width: 4rem; - height:4rem; - margin-right: .5rem; - border-radius: 1rem; -} -.mess_t span{ - font-size: 1.4rem; - line-height:2rem; -} -.mess_t font{ - font-size: 1.2rem; -} -.mess_b { - height: 2rem; - line-height: 2rem; - overflow: hidden; -} -.mess_b p span{ - float: right; - width: 1.5rem; - height:1.5rem; - line-height:1.5rem; - border-radius: 50%; - font-size: 1.2rem; - text-align: center; - color: #fff; - background-color: #f43530; -} -.mess_txt{ - padding:1rem; - font-size: 1.2rem; - background-color: #f4f4f4; - color: #9b9b9b; - margin-top: 2rem; - position: relative; -} -.mess_bth{ - margin-top: 1rem; - text-align: right; - font-size: 1.2rem; -} -.mess_bth a{ - color: #629d23 !important; -} -.arrow-up { - width: 0; - height: 0; - border-left: 1rem solid transparent; - border-right: 1rem solid transparent; - border-bottom: 1rem solid #F4F4F4; - position: absolute; - top: -1rem; - left: 1rem; -} -.title_name { - width: 100%; - text-align: center; - position: absolute; - top: 1rem; - z-index: 100; - color: #fff; - font-size: 1.6rem; -} -.mess_iocn { - text-align: center; - position: absolute; - top:2rem; - left: 1rem; - z-index: 100; - color: #fff; - font-size: 1.6rem; -} -.mess_iocn span{ - float: left; - width: .5rem; - height: .5rem; - border-radius: 50%; - background-color: #EE414D; -} -.mess_iocn a{ - display: block; - color: #fff; -} -.more_public{ - text-align: center; - font-size: 1.2rem; - color: #999; - line-height: 2rem; -} -.chatside{ - padding: 1rem; - height: auto; - overflow: hidden; - margin-bottom: 1rem; -} -.chat_limg{ - width: 3rem; - height:3rem; - overflow: hidden; - border-radius: 50%; - margin-top: .5rem; -} -.chat_limg a img{ - width: 3rem; - height:3rem; -} -.chat_txt{ - max-width: 20rem; - margin-left: 1rem; - padding: .8rem .4rem; - font-size: 1.2rem; - line-height:1.5rem; - background-color: #eeeeee; - color:#000; - position: relative; - border-radius: .5rem; -} -.chat_txt2{ - max-width: 18rem; - margin-right: 1rem; - padding: .8rem .4rem; - font-size: 1.2rem; - line-height:1.5rem; - background-color: #84c757; - color:#fff; - position: relative; - border-radius: .5rem; -} -.chat_txt span{ - color: #999; - display: block; -} -.let_icon { - display: block; - width: 0; - height: 0; - border-width: 1rem; - border-style: dashed; - border-color: transparent; - border-left-width: 0; - border-right-color: #EEEEEE; - border-right-style: solid; - top: 1rem; - left: -.6rem; - position: absolute; -} -.right_icon { - display: block; - width: 0; - height: 0; - border-width: 1rem; - border-style: dashed; - border-color: transparent; - border-right-width: 0; - border-left-color: #84c757; - border-left-style: solid; - top: 1rem; - right: -.6rem; - position: absolute; -} - -.radio_bth label{ - position: relative !important; - width: 2rem !important; - height: 2rem !important; -} -.radio_bth label input{ - width: 1.5rem !important; - height: 1.5rem !important; - position: relative; - top: .3rem; -} -.radio_bth{ - float: right; - position: relative; -} -.post_one { - height: 8rem; - overflow: hidden; - margin-top: .5rem; - position: relative; -} -.post_one img{ - max-width: 100%; - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translate(-50%,-50%); - -ms-transform: translate(-50%,-50%); - -moz-transform: translate(-50%,-50%); -}· -.post_title{ - clear: both; - font-size: 1.4rem; - height: auto; - overflow: hidden; - color: #000; - padding: .5rem 0rem; - text-align: left; -} -.post_title span{ - display: inline-block; - font-size: 1.2rem; - border: .1rem #67BCF5 solid; - padding: .2rem .5rem; - margin-left: .5rem; - color: #67BCF5; - border-radius: .4rem; -} -.post_user2{ - border-bottom: 0rem; - border-top: 1rem #f3f3f3 solid; - padding: 0rem; -} -.post_user2 ul li { - float: left; - width: 14%; - height: auto; - overflow: hidden; - margin-left: 5%; - margin-bottom: 1rem; -} -.post_user2 ul li img { - display: block; - width: 100%; - height: 4rem; - border-radius: 1rem; -} -.edit_t input{ - width: 100%; - height: 3rem; - line-height: 3rem; - font-size: 1.2rem; - text-indent: 1em; - border: none; - border-bottom: .1rem #ededed solid; - font-family: 微软雅黑; -} -.post_title_l p{ - display: block; - height: 2rem; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -/*20160713*/ -.mess_iocn2{ - right: 1rem; - left: inherit; -} -.span_delete{ - font-size: 1.2rem; - float: right; - display: block; -} -.span_delete a{ - color: #DD3D3D; -} -.post_title { - clear: both; - margin-top: 1rem; -} -.comlist ul li p{ - clear: both; - line-height: 1.6rem; - font-size: 1.2rem; - padding-left: .5rem; - color: #999; -} -.finance ul li{ - height: auto; - overflow: hidden; - padding: 1rem 0rem; - line-height: 2rem; - border-bottom: .1rem #eeeeee solid; -} -.finance ul li a{ - display: block; -} -.finance ul li a p{ - font-size: 1.4rem; - color: #000; - margin-bottom: .5rem; - height:auto; - overflow: hidden; - clear: both; -} -.finance ul li a p span{ - font-size: 1.2rem; - color: #666; -} -.fin_p{ - display: block; - height: 1.5rem; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.finance ul li a p label{ - font-size: 1.2rem; - color: #666; - font-family: 微软雅黑; - margin-right: .5rem; -} -.xx_tab a{ - font-size: 1.2rem !important; - width: 16% !important; -} -.head2 { - background-color: #fff; - border-bottom: .1rem #ccc solid; - height: 4rem; - line-height: 4rem; -} -.zz_tab { - position: absolute; - top: 0px; - width: 70%; - left: 15%; -} -.zz_txt p{ - font-size: 1.4rem; - font-weight: bold; -} -.zz_txt p span{ - font-size: 1.2rem; - color: #666; - font-weight: 100; -} -.zz_txt{ - line-height:2rem; - margin-bottom: 1rem; -} -.zz_search{ - height: 2rem; - width: 70%; - border-radius: 1rem; - border: .1rem #ccc solid; - font-size: 1.2rem; - text-indent: 1em; -} -.fin_txt p span{ - font-size: 1.2rem !important; - margin-top: 1rem; - text-indent: 2em; - color: #999 !important; -} -.fin_txt p img{ - width: 100%; -} -.Collection{ - padding:1rem; - position: fixed; - bottom: 0rem; - width: 100%; - font-size: 1.2rem; - color: #fff; - background-color: #4b4b4b; -} -.Collection a{ - margin-right: 2rem; - color: #68d518; -} -.bq_span span { - float: left; - padding: .2rem 1rem; - border-radius: 2rem; - font-size: 1.2rem; - margin-top: .5rem; - border: .1rem #eeeeee solid; - margin-left: 1rem; - -} -.bq_span span a{ - margin-left: .5rem; - color: #fff; -} -.bq_add input{ - height:2rem; - line-height: 2rem; - width: 99%; - border: .1rem #eeeeee solid; - border-radius: 1rem; - font-size: 1.2rem; - color: #999; - margin-top: 1rem; - text-indent: 1em; -} -.nav ul{ - height: auto; - overflow: hidden; - clear: both; -} -.s_title{ - height: auto; - overflow: hidden; - font-size: 1.4rem; - padding: 1rem; - margin-bottom: 1rem; - border-bottom: .1rem #efefef solid; -} -.s_title p a{ - font-size: 1.6rem; - color: #999; -} -.id_nav_rt a p img{ - position: relative; - top: .8rem; - margin-left:2.5rem; - margin-right: 1rem; -} -.s_list ul li{ - height: 4rem; - border-bottom: .1rem #EFEFEF solid; - width: 100%; - margin-left: 0%; - padding: 1rem 1rem; - margin-top: 0rem; - position: relative; -} -.s_list ul li img{ - float: left; - width: 2.5rem; - margin-right: .5rem; - position: relative; - top: .5rem; -} -.s_l_l{ - text-align: left; - line-height:1.8rem; - float: left; -} -.s_l_l p{ - font-size: 1.4rem; -} -.s_l_l p font{ - font-size: 1.2rem; - color: #999; -} -.s_l_l span{ - position: absolute; - font-size: 1.2rem; - color: #999; - right: 3rem; - top: 2rem; -} -.I_list{ - height: auto; - overflow: hidden; - padding:0rem 1rem; - background-color: #fff; -} -.I_list ul li{ - padding:1rem 0rem; - height:auto; - overflow: hidden; - line-height:2rem; - border-bottom: .1rem #EFEFEF solid; - position: relative; -} -.I_list ul li p{ - font-size: 1.4rem; - color: #333; -} -.I_list ul li p font{ - color: #999; - font-size: 1.2rem; -} -.I_list ul li span{ - position: absolute; - right:1rem; - top:2rem; - font-size: 1.2rem; -} -.w_txt{ - font-size: 1.2rem; - color: #999; - text-align: center; - line-height: 2rem; -} -.er_div{ - margin: 1rem; - background-color: #fff; - line-height: 2rem; - text-align: center; - font-size: 1.2rem; - height: auto; - overflow: hidden; - padding: 1rem; -} -.er_t{ - font-size: 1.6rem; - margin: 2rem 0rem; -} -.er_m{ - font-size: 2.6rem; - font-weight: bold; - margin: 2rem 0rem; -} -.er_b p span{ - color: #999; -} -.er_img img{ - width: 100%; -} -.er_btn{ - height:4rem; - line-height: 4rem; - background-color: #666; - font-size: 1.4rem; -} -.er_btn a{ - width: 50%; - float: left; - color: #fff; - text-align: center; -} -.inter_add2 { - padding: 1rem; - height: auto; - overflow: hidden; - background-color: #fff; - margin-bottom: 1rem; -} -.inter_add2 ul li { - padding: 1.2rem 0rem; - border-bottom: .1rem #EFEFEF solid; - font-size: 1.4rem; - height: auto; - overflow: hidden; - position: relative; - padding-right: 2rem; -} -.inter_add2 ul li a { - display: block; - color: #666; -} -.inter_add2 ul li select { - font-size: 1.4rem; - color: #999; - border: none; - font-family: 微软雅黑; - position: relative; - top: .1rem; -} -.inter_add2 ul li a i { - font-size: 2rem; - position: absolute; - top: 1.2rem; - right: 0rem; -} -.inter_add2 ul li span font { - font-size: 1.4rem; - color: #999; -} -.Push_bth{ - display: block; - width: 4rem; - height: 2rem; - float: right; - border: .1rem #EFEFEF solid; - border-radius: 2rem; - position: absolute; - right: 0rem; -} -.pushall{ - width:2rem; - height:2rem; - border-radius: 50%; - background-color:#9ad04d; - position:absolute; - left:.2rem; -} -.Push{ - width:0px; - height:2rem; - border-radius: 2rem; - position:absolute; - background-color:#fda100; -} -.inter_add2 ul li a input{ - height: 2rem; - border: none; - font-size: 1.4rem; - font-family: 微软雅黑; -} -.inter_add ul li a input{ - height: 2rem; - border: none; - font-size: 1.4rem; - font-family: 微软雅黑; - position: relative; - top: -.5rem; -} -.bq_span{ - height: auto; - overflow: hidden; -} -/*20161012*/ -.pictitle2{ - margin-top: 1rem; - line-height: 1.8rem; -} -.sc_list li{ - width: 25%; - float: left; - margin-right: 5%; - font-size: 1.2rem; - text-align: center; - margin-top: 1rem; - line-height: 1.5rem; - margin-left: 3%; -} -.sc_list li a,.Area ul li a { - color: #8b8b8b; -} -.sc_list li img { - width: 80%; - -webkit-animation-delay: 1.5s; - -webkit-animation-duration: 2s; -} -.sc_list{ - padding: 0rem 7%; -} -.sc_div { - background-color: #fff; - margin-top: 1rem; - height: auto; - overflow: hidden; - padding-bottom: 2rem; -} -.Area{ - background-color: #fff; - margin-top: 1rem; - height: auto; - overflow: hidden; - padding-bottom: 2rem; -} -.Area ul li{ - width: 30%; - float: left; - margin-left: 3%; - font-size: 1.2rem; - text-align: center; - margin-top: 1rem; - line-height: 3rem; -} -.Area ul li img{ - width: 3rem; - float: left; -} -/*20161018*/ -.M_t{ - background-color: #182e4c; - padding: 1rem 0rem; - font-size: 1.4rem; - text-align: center; - color: #fff; -} -.M_t img{ - width: 7rem; - height:7rem; - display: block; - margin: 0 auto; - border-radius: 1rem; - margin-bottom: 1rem; -} -.M_list{ - height:4rem; - background-color: #fff; - margin-bottom: 1rem; -} -.M_list ul li{ - padding-top: .5rem; - float: left; - height: 3rem; - font-size: 1.4rem; - text-align: center; - line-height: 1.6rem; - width: 25%; -} -.M_list ul li a{ - display: block; - color: #999; -} -.M_no{ - padding: 5rem 0px; - text-align: center; - font-size: 1.4rem; - color: #666; -} -.M_no p img{ - width: 1.5rem; - position: relative; - margin-right: .5rem; - top: .3rem; -} -.M_no p{ - margin-bottom: 2rem; -} -.scene ul li{ - float: left; - text-align: center; - font-size: 1.2rem; - width: 20%; - margin-left: 10%; - margin-top: 2rem; -} -.scene ul li img{ - width: 80%; - display: block; - margin: 0 auto; - margin-bottom: 1rem; -} -.scene ul li a{ - display: block; - color: #666; -} -.scene_modal{ - position: absolute; - width: 80%; - margin-left: 5%; - padding: 5%; - height: auto; - overflow: hidden; - background-color: #fff; - z-index: 201; - top: 10%; - border-radius: 1rem; -} -.scene_t{ - text-align: center; - font-size: 1.4rem; -} -.scene_t p input{ - width: 100%; - height:2rem; - line-height:2rem; - color: #999; - margin-top: 1rem; - border: .1rem #EFEFEF solid; - text-indent: 10px; -} -.scene_m ul li{ - margin-left: 5%; - font-size: 1.2rem; -} -.scene_b div{ - height:3rem; - line-height:3rem; -} -.bottomnav{ - position: fixed; - bottom: -100%; - background-color: #fff; - border-radius: 1rem; - width: 90%; - margin-left: 5%; -} -.bottomnav ul li{ - height:3rem; - line-height:3rem; - font-size: 1.2rem; - text-align: center; - font-family: 微软雅黑; - border-bottom: .1rem #EFEFEF solid; -} -.bottomnav ul li a{ - display: block; - color: #666; -} -.inter_add ul li a span input{ - top: 0rem; - text-align: right; - height: auto; - font-size: 1.2rem; -} -.eq_tab{ - height:5rem; - background-color: #fff; -} -.eq_tab a{ - width: 33%; - text-align: center; - float: left; - padding-top: .5rem; - color: #666; -} -.eq_tab a img{ - width: 2rem; - display: inline-block; - margin-bottom: .5rem; -} -.eq_tab a span{ - display: block; - clear: both; - font-size: 1.4rem; -} -.eq_tab a.active{ - color: #fb6a00; -} -.eq_div{ - margin-top: 1rem; - background-color: #FFFFFF; -} -.eq_list{ - height:auto; - overflow: hidden; - margin-top: 1rem; - background-color: #fff; -} -.eq_list ul li{ - height: 4rem; - overflow: hidden; - line-height: 4rem; - border-bottom: .1rem #EFEFEF solid; - padding: 0rem 1rem; -} -.eq_list ul li a{ - display: block; - color:#666; -} -.eq_list ul li a span img{ - width: 2rem; - margin-right: 1rem; - position: relative; - top: .7rem; -} -.eq_list ul li a span font{ - font-size: 1.2rem; - line-height: 3rem; - margin-right: 1rem; - color: #999; -} -.eq_list ul li a span i{ - position: relative; - top:.5rem; -} -.auto a{ - height: 4rem; - display: block; - width: 95%; - margin: 0 auto; - line-height:4rem; - font-size: 1.4rem; - background-color: #fff; - text-align: center; - color: #333; - border-radius: .5rem; -} -.auto input{ - height: 3rem; - display: block; - width: 95%; - margin: 0 auto; - line-height:3rem; - font-size: 1.4rem; - background-color: #fff; - text-align: center; - color: #333; - border-radius: .5rem; - border: none; -} -.yz_t1{ - font-size: 1.6rem; - text-align: center; - margin-top:2rem; -} -.yz_t2{ - font-size: 1.2rem; - text-align: center; - margin-top: 2rem; - margin-bottom: 2rem; -} -.ser_list ul li{ - padding: 1rem; - line-height:1.6rem; - border-bottom: .1rem #EFEFEF solid; -} -.ser_list ul li a p{ - font-size: 1.4rem; - color: #333; -} -.ser_list ul li a p span{ - font-size: 1.2rem; - color: #999; - margin-left: 1rem; -} -.pro_t{ - padding: 1rem; - text-align: center; - background-color: #102037; - color: #fff; - line-height:2rem; - font-size: 1.2rem; -} -.pro_t p span{ - font-size:2.2rem; - color: #ff9c00; -} -.pro_tab a{ - width: 33%; -} -.pro_b{ - height:4rem; - line-height:4rem; - text-align: center; - position: fixed; - bottom: 0rem; - width: 100%; - z-index: 100; -} -.pro_b a{ - width: 50%; - float: left; - color: #fff; - font-size: 1.4rem; - background-color: #224370; -} -.pro_btn{ - background-color: #F6F6F6; - position: absolute; - right: 1rem; - top: 1rem; - font-size: 1.2rem; - padding: 0rem .8rem; - border-radius: 1rem; - color: #000; - border: .1rem #E7E7E7 solid; -} -.pro_b2 a{ - width: 100%; -} -.repall{ - height:auto; - overflow: hidden; - background-color: #fff; - font-family: 微软雅黑; -} -.repall ul li{ - padding:1rem; - border-bottom: .1rem #EFEFEF solid; - font-size: 1.2rem; - color: #000; - line-height:1.6rem; -} -.repall ul li p span{ - color: #999; -} -.repall ul li p a{ - padding: .2rem 1rem; - color: #21568F; - border: .1rem #EFEFEF solid; - border-radius: 1rem; - background-color: #F6F6F6; -} -.repall ul li p{ - margin-bottom: .5rem; -} -.rep_star{ - padding: 1rem; - background-color: #fff; - border-bottom: .1rem #EFEFEF solid; -} -.edit_b ul li span{ - color: #E9203D; - position: absolute; - top: 0rem; - right: 0rem; - font-size: 1.6rem; -} -.title_name a{ - color: #fff; -} -.p_list ul li{ - padding: 1rem; - position: relative; - border-bottom: .1rem #EFEFEF solid; -} -.p_list ul li p{ - text-align: right; - font-size: 1.1rem; - line-height:1.6rem; -} -.p_list ul li p font{ - font-size: 1.4rem; -} -.p_list{ - background-color: #fff; -} -.p_list ul li label{ - position: absolute; - top: 1.5rem; - font-size: 1.4rem; -} -.p_list ul li label input{ - position: relative; - top:.1rem; -} -.inter_add2 ul li a img{ - float: right; - width: 1.5rem; - margin-left: 1rem; -} - - - - - - - - - - - - - - - - diff --git a/personcentor/src/main/resources/static/css/shake.css b/personcentor/src/main/resources/static/css/shake.css deleted file mode 100644 index 80e73e959d95ffb6a5c72c71260f238ab2befc10..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/shake.css +++ /dev/null @@ -1,4018 +0,0 @@ -/* ������������֮�� www.lanrenzhijia.com */ -#wrapper { - margin: 0 auto; - width: 90%; - text-align: center; -} -#wrapper p { - font-family: helvetica; - font-weight: bold; - font-size: 80px; - color: red; -} -.shake { - display: inline-block; - -webkit-transform-origin: center center; - -ms-transform-origin: center center; - transform-origin: center center -} -.shake:hover { - -webkit-animation-name: shake-base; - -ms-animation-name: shake-base; - animation-name: shake-base; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez { - -webkit-animation-play-state: paused !important; - -ms-animation-play-state: paused !important; - animation-play-state: paused !important -} -.shake.freez.shake-hard { - -webkit-animation-name: shake-hard; - -ms-animation-name: shake-hard; - animation-name: shake-hard; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez.shake-slow { - -webkit-animation-name: shake-slow; - -ms-animation-name: shake-slow; - animation-name: shake-slow; - -webkit-animation-duration: 5s; - -ms-animation-duration: 5s; - animation-duration: 5s; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez.shake-little { - -webkit-animation-name: shake-little; - -ms-animation-name: shake-little; - animation-name: shake-little; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez.shake-horizontal { - -webkit-animation-name: shake-horizontal; - -ms-animation-name: shake-horizontal; - animation-name: shake-horizontal; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez.shake-vertical { - -webkit-animation-name: shake-vertical; - -ms-animation-name: shake-vertical; - animation-name: shake-vertical; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez.shake-rotate { - -webkit-animation-name: shake-rotate; - -ms-animation-name: shake-rotate; - animation-name: shake-rotate; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez.shake-opacity { - -webkit-animation-name: shake-opacity; - -ms-animation-name: shake-opacity; - animation-name: shake-opacity; - -webkit-animation-duration: 200ms; - -ms-animation-duration: 200ms; - animation-duration: 200ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez.shake-crazy { - -webkit-animation-name: shake-crazy; - -ms-animation-name: shake-crazy; - animation-name: shake-crazy; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.freez:hover { - -webkit-animation-play-state: running !important; - -ms-animation-play-state: running !important; - animation-play-state: running !important -} -.shake.shake-hard:hover { - -webkit-animation-name: shake-hard; - -ms-animation-name: shake-hard; - animation-name: shake-hard; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-slow { - -webkit-animation-name: shake-slow; - -ms-animation-name: shake-slow; - animation-name: shake-slow; - -webkit-animation-duration: 5s; - -ms-animation-duration: 5s; - animation-duration: 5s; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-little { - -webkit-animation-name: shake-little; - -ms-animation-name: shake-little; - animation-name: shake-little; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-horizontal:hover { - -webkit-animation-name: shake-horizontal; - -ms-animation-name: shake-horizontal; - animation-name: shake-horizontal; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-vertical:hover { - -webkit-animation-name: shake-vertical; - -ms-animation-name: shake-vertical; - animation-name: shake-vertical; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-rotate:hover { - -webkit-animation-name: shake-rotate; - -ms-animation-name: shake-rotate; - animation-name: shake-rotate; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-opacity:hover { - -webkit-animation-name: shake-opacity; - -ms-animation-name: shake-opacity; - animation-name: shake-opacity; - -webkit-animation-duration: 200ms; - -ms-animation-duration: 200ms; - animation-duration: 200ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-crazy:hover { - -webkit-animation-name: shake-crazy; - -ms-animation-name: shake-crazy; - animation-name: shake-crazy; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant { - -webkit-animation-name: shake-base; - -ms-animation-name: shake-base; - animation-name: shake-base; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.shake-hard { - -webkit-animation-name: shake-hard; - -ms-animation-name: shake-hard; - animation-name: shake-hard; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.shake-slow { - -webkit-animation-name: shake-slow; - -ms-animation-name: shake-slow; - animation-name: shake-slow; - -webkit-animation-duration: 5s; - -ms-animation-duration: 5s; - animation-duration: 5s; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.shake-little { - -webkit-animation-name: shake-little; - -ms-animation-name: shake-little; - animation-name: shake-little; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.shake-horizontal { - -webkit-animation-name: shake-horizontal; - -ms-animation-name: shake-horizontal; - animation-name: shake-horizontal; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.shake-vertical { - -webkit-animation-name: shake-vertical; - -ms-animation-name: shake-vertical; - animation-name: shake-vertical; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.shake-rotate { - -webkit-animation-name: shake-rotate; - -ms-animation-name: shake-rotate; - animation-name: shake-rotate; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.shake-opacity { - -webkit-animation-name: shake-opacity; - -ms-animation-name: shake-opacity; - animation-name: shake-opacity; - -webkit-animation-duration: 200ms; - -ms-animation-duration: 200ms; - animation-duration: 200ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.shake-crazy { - -webkit-animation-name: shake-crazy; - -ms-animation-name: shake-crazy; - animation-name: shake-crazy; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 0s; - -ms-animation-delay: 0s; - animation-delay: 0s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -.shake.shake-constant.hover-stop:hover { - -webkit-animation-play-state: paused; - -ms-animation-play-state: paused; - animation-play-state: paused -} -.shake.shake-delay { - -webkit-animation-name: shake-base; - -ms-animation-name: shake-base; - animation-name: shake-base; - -webkit-animation-duration: 100ms; - -ms-animation-duration: 100ms; - animation-duration: 100ms; - -webkit-animation-iteration-count: infinite; - -ms-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-timing-function: ease-in-out; - -ms-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-delay: 4s; - -ms-animation-delay: 4s; - animation-delay: 4s; - -webkit-animation-play-state: running; - -ms-animation-play-state: running; - animation-play-state: running -} -@-webkit-keyframes shake-base { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -webkit-transform: translate(1.5px, -2.5px) rotate(-1.5deg) -} - 4% { - -webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg) -} - 6% { - -webkit-transform: translate(1.5px, 1.5px) rotate(0.5deg) -} - 8% { - -webkit-transform: translate(1.5px, 1.5px) rotate(-0.5deg) -} - 10% { - -webkit-transform: translate(1.5px, 0.5px) rotate(0.5deg) -} - 12% { - -webkit-transform: translate(0.5px, -1.5px) rotate(-1.5deg) -} - 14% { - -webkit-transform: translate(-2.5px, -0.5px) rotate(-0.5deg) -} - 16% { - -webkit-transform: translate(0.5px, 1.5px) rotate(-1.5deg) -} - 18% { - -webkit-transform: translate(-1.5px, 1.5px) rotate(-0.5deg) -} - 20% { - -webkit-transform: translate(0.5px, 1.5px) rotate(0.5deg) -} - 22% { - -webkit-transform: translate(-1.5px, 0.5px) rotate(-0.5deg) -} - 24% { - -webkit-transform: translate(-2.5px, 1.5px) rotate(-1.5deg) -} - 26% { - -webkit-transform: translate(0.5px, 0.5px) rotate(-0.5deg) -} - 28% { - -webkit-transform: translate(-0.5px, -2.5px) rotate(-1.5deg) -} - 30% { - -webkit-transform: translate(-1.5px, 1.5px) rotate(-1.5deg) -} - 32% { - -webkit-transform: translate(0.5px, 0.5px) rotate(-0.5deg) -} - 34% { - -webkit-transform: translate(1.5px, -0.5px) rotate(0.5deg) -} - 36% { - -webkit-transform: translate(-1.5px, -1.5px) rotate(-0.5deg) -} - 38% { - -webkit-transform: translate(-2.5px, -2.5px) rotate(-1.5deg) -} - 40% { - -webkit-transform: translate(-1.5px, 0.5px) rotate(-0.5deg) -} - 42% { - -webkit-transform: translate(-0.5px, 1.5px) rotate(-1.5deg) -} - 44% { - -webkit-transform: translate(-2.5px, -0.5px) rotate(0.5deg) -} - 46% { - -webkit-transform: translate(-2.5px, -1.5px) rotate(0.5deg) -} - 48% { - -webkit-transform: translate(-2.5px, -2.5px) rotate(0.5deg) -} - 50% { - -webkit-transform: translate(0.5px, -1.5px) rotate(-1.5deg) -} - 52% { - -webkit-transform: translate(0.5px, 1.5px) rotate(0.5deg) -} - 54% { - -webkit-transform: translate(1.5px, -0.5px) rotate(-1.5deg) -} - 56% { - -webkit-transform: translate(-1.5px, -1.5px) rotate(-1.5deg) -} - 58% { - -webkit-transform: translate(0.5px, 1.5px) rotate(-0.5deg) -} - 60% { - -webkit-transform: translate(-0.5px, -0.5px) rotate(0.5deg) -} - 62% { - -webkit-transform: translate(0.5px, 1.5px) rotate(-0.5deg) -} - 64% { - -webkit-transform: translate(-2.5px, 0.5px) rotate(0.5deg) -} - 66% { - -webkit-transform: translate(-0.5px, -2.5px) rotate(0.5deg) -} - 68% { - -webkit-transform: translate(-2.5px, -2.5px) rotate(-1.5deg) -} - 70% { - -webkit-transform: translate(-1.5px, 0.5px) rotate(-1.5deg) -} - 72% { - -webkit-transform: translate(-1.5px, 0.5px) rotate(-0.5deg) -} - 74% { - -webkit-transform: translate(-1.5px, 1.5px) rotate(-0.5deg) -} - 76% { - -webkit-transform: translate(-1.5px, -2.5px) rotate(0.5deg) -} - 78% { - -webkit-transform: translate(-1.5px, -2.5px) rotate(-0.5deg) -} - 80% { - -webkit-transform: translate(-0.5px, 1.5px) rotate(-0.5deg) -} - 82% { - -webkit-transform: translate(1.5px, -1.5px) rotate(-0.5deg) -} - 84% { - -webkit-transform: translate(-0.5px, -1.5px) rotate(-1.5deg) -} - 86% { - -webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg) -} - 88% { - -webkit-transform: translate(-2.5px, -0.5px) rotate(-0.5deg) -} - 90% { - -webkit-transform: translate(-0.5px, 0.5px) rotate(-1.5deg) -} - 92% { - -webkit-transform: translate(1.5px, -2.5px) rotate(0.5deg) -} - 94% { - -webkit-transform: translate(0.5px, 1.5px) rotate(-1.5deg) -} - 96% { - -webkit-transform: translate(1.5px, -0.5px) rotate(-1.5deg) -} - 98% { - -webkit-transform: translate(-0.5px, 0.5px) rotate(-0.5deg) -} -} -@-ms-keyframes shake-base { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -ms-transform: translate(-2.5px, 1.5px) rotate(-1.5deg) -} - 4% { - -ms-transform: translate(0.5px, -0.5px) rotate(-0.5deg) -} - 6% { - -ms-transform: translate(1.5px, 1.5px) rotate(0.5deg) -} - 8% { - -ms-transform: translate(1.5px, -2.5px) rotate(0.5deg) -} - 10% { - -ms-transform: translate(1.5px, 1.5px) rotate(-1.5deg) -} - 12% { - -ms-transform: translate(1.5px, -2.5px) rotate(-1.5deg) -} - 14% { - -ms-transform: translate(-1.5px, -1.5px) rotate(-1.5deg) -} - 16% { - -ms-transform: translate(-1.5px, -0.5px) rotate(-1.5deg) -} - 18% { - -ms-transform: translate(-1.5px, -1.5px) rotate(0.5deg) -} - 20% { - -ms-transform: translate(-1.5px, 0.5px) rotate(-1.5deg) -} - 22% { - -ms-transform: translate(1.5px, 1.5px) rotate(-1.5deg) -} - 24% { - -ms-transform: translate(-1.5px, 0.5px) rotate(-0.5deg) -} - 26% { - -ms-transform: translate(1.5px, -2.5px) rotate(0.5deg) -} - 28% { - -ms-transform: translate(-2.5px, -0.5px) rotate(-0.5deg) -} - 30% { - -ms-transform: translate(-1.5px, 1.5px) rotate(0.5deg) -} - 32% { - -ms-transform: translate(0.5px, -1.5px) rotate(-1.5deg) -} - 34% { - -ms-transform: translate(0.5px, -2.5px) rotate(0.5deg) -} - 36% { - -ms-transform: translate(-1.5px, 1.5px) rotate(0.5deg) -} - 38% { - -ms-transform: translate(-1.5px, -0.5px) rotate(0.5deg) -} - 40% { - -ms-transform: translate(1.5px, -1.5px) rotate(0.5deg) -} - 42% { - -ms-transform: translate(0.5px, 0.5px) rotate(-0.5deg) -} - 44% { - -ms-transform: translate(-0.5px, -1.5px) rotate(0.5deg) -} - 46% { - -ms-transform: translate(-0.5px, -0.5px) rotate(-1.5deg) -} - 48% { - -ms-transform: translate(-1.5px, 1.5px) rotate(-1.5deg) -} - 50% { - -ms-transform: translate(-0.5px, -2.5px) rotate(-1.5deg) -} - 52% { - -ms-transform: translate(0.5px, 0.5px) rotate(-1.5deg) -} - 54% { - -ms-transform: translate(0.5px, 1.5px) rotate(-0.5deg) -} - 56% { - -ms-transform: translate(0.5px, -0.5px) rotate(-0.5deg) -} - 58% { - -ms-transform: translate(-2.5px, -0.5px) rotate(0.5deg) -} - 60% { - -ms-transform: translate(1.5px, 0.5px) rotate(-0.5deg) -} - 62% { - -ms-transform: translate(-2.5px, 1.5px) rotate(-1.5deg) -} - 64% { - -ms-transform: translate(0.5px, -1.5px) rotate(-0.5deg) -} - 66% { - -ms-transform: translate(-1.5px, -2.5px) rotate(-0.5deg) -} - 68% { - -ms-transform: translate(1.5px, 1.5px) rotate(-0.5deg) -} - 70% { - -ms-transform: translate(-0.5px, 1.5px) rotate(-1.5deg) -} - 72% { - -ms-transform: translate(1.5px, -1.5px) rotate(-0.5deg) -} - 74% { - -ms-transform: translate(-0.5px, 1.5px) rotate(-1.5deg) -} - 76% { - -ms-transform: translate(1.5px, -2.5px) rotate(-1.5deg) -} - 78% { - -ms-transform: translate(-0.5px, 0.5px) rotate(0.5deg) -} - 80% { - -ms-transform: translate(0.5px, -0.5px) rotate(-1.5deg) -} - 82% { - -ms-transform: translate(1.5px, 0.5px) rotate(0.5deg) -} - 84% { - -ms-transform: translate(-2.5px, 0.5px) rotate(-1.5deg) -} - 86% { - -ms-transform: translate(-1.5px, -0.5px) rotate(-1.5deg) -} - 88% { - -ms-transform: translate(-2.5px, -1.5px) rotate(0.5deg) -} - 90% { - -ms-transform: translate(1.5px, 1.5px) rotate(-0.5deg) -} - 92% { - -ms-transform: translate(0.5px, -0.5px) rotate(-1.5deg) -} - 94% { - -ms-transform: translate(-1.5px, -2.5px) rotate(-0.5deg) -} - 96% { - -ms-transform: translate(1.5px, -1.5px) rotate(-0.5deg) -} - 98% { - -ms-transform: translate(0.5px, 1.5px) rotate(-0.5deg) -} -} -@keyframes shake-base { - 0% { - transform: translate(0px, 0px) rotate(0deg) -} - 2% { - transform: translate(-1.5px, 1.5px) rotate(0.5deg) -} - 4% { - transform: translate(-2.5px, -1.5px) rotate(-1.5deg) -} - 6% { - transform: translate(-0.5px, 1.5px) rotate(-1.5deg) -} - 8% { - transform: translate(1.5px, -0.5px) rotate(-1.5deg) -} - 10% { - transform: translate(0.5px, -0.5px) rotate(-0.5deg) -} - 12% { - transform: translate(0.5px, -1.5px) rotate(-0.5deg) -} - 14% { - transform: translate(-0.5px, 0.5px) rotate(-1.5deg) -} - 16% { - transform: translate(1.5px, -0.5px) rotate(0.5deg) -} - 18% { - transform: translate(1.5px, 1.5px) rotate(0.5deg) -} - 20% { - transform: translate(-2.5px, 0.5px) rotate(0.5deg) -} - 22% { - transform: translate(-0.5px, 0.5px) rotate(-0.5deg) -} - 24% { - transform: translate(1.5px, -1.5px) rotate(0.5deg) -} - 26% { - transform: translate(-2.5px, 1.5px) rotate(-0.5deg) -} - 28% { - transform: translate(-2.5px, 0.5px) rotate(-0.5deg) -} - 30% { - transform: translate(1.5px, 1.5px) rotate(-0.5deg) -} - 32% { - transform: translate(0.5px, 1.5px) rotate(0.5deg) -} - 34% { - transform: translate(1.5px, 1.5px) rotate(-0.5deg) -} - 36% { - transform: translate(1.5px, -1.5px) rotate(-0.5deg) -} - 38% { - transform: translate(-1.5px, 1.5px) rotate(0.5deg) -} - 40% { - transform: translate(0.5px, -2.5px) rotate(-0.5deg) -} - 42% { - transform: translate(-2.5px, -0.5px) rotate(-0.5deg) -} - 44% { - transform: translate(-2.5px, -0.5px) rotate(-0.5deg) -} - 46% { - transform: translate(-1.5px, -0.5px) rotate(-0.5deg) -} - 48% { - transform: translate(-2.5px, 1.5px) rotate(-0.5deg) -} - 50% { - transform: translate(-0.5px, -2.5px) rotate(0.5deg) -} - 52% { - transform: translate(0.5px, 1.5px) rotate(-1.5deg) -} - 54% { - transform: translate(-0.5px, -2.5px) rotate(0.5deg) -} - 56% { - transform: translate(-0.5px, 0.5px) rotate(-0.5deg) -} - 58% { - transform: translate(-0.5px, 1.5px) rotate(0.5deg) -} - 60% { - transform: translate(0.5px, -2.5px) rotate(0.5deg) -} - 62% { - transform: translate(1.5px, -2.5px) rotate(0.5deg) -} - 64% { - transform: translate(-1.5px, 1.5px) rotate(-0.5deg) -} - 66% { - transform: translate(-0.5px, 1.5px) rotate(-0.5deg) -} - 68% { - transform: translate(-1.5px, -0.5px) rotate(0.5deg) -} - 70% { - transform: translate(0.5px, 0.5px) rotate(-0.5deg) -} - 72% { - transform: translate(1.5px, 1.5px) rotate(0.5deg) -} - 74% { - transform: translate(1.5px, -1.5px) rotate(-1.5deg) -} - 76% { - transform: translate(1.5px, 1.5px) rotate(-1.5deg) -} - 78% { - transform: translate(-2.5px, -1.5px) rotate(-1.5deg) -} - 80% { - transform: translate(0.5px, 1.5px) rotate(-0.5deg) -} - 82% { - transform: translate(-2.5px, -1.5px) rotate(0.5deg) -} - 84% { - transform: translate(-0.5px, -1.5px) rotate(-0.5deg) -} - 86% { - transform: translate(-1.5px, 0.5px) rotate(-0.5deg) -} - 88% { - transform: translate(1.5px, 0.5px) rotate(-0.5deg) -} - 90% { - transform: translate(0.5px, -1.5px) rotate(-1.5deg) -} - 92% { - transform: translate(0.5px, 0.5px) rotate(-1.5deg) -} - 94% { - transform: translate(1.5px, 1.5px) rotate(0.5deg) -} - 96% { - transform: translate(-1.5px, -1.5px) rotate(-1.5deg) -} - 98% { - transform: translate(-2.5px, -0.5px) rotate(-1.5deg) -} -} -@-webkit-keyframes shake-little { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 4% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 6% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 8% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 10% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 12% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 14% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 16% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 18% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 20% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 22% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 24% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 26% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 28% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 30% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 32% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 34% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 36% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 38% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 40% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 42% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 44% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 46% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 48% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 50% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 52% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 54% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 56% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 58% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 60% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 62% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 64% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 66% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 68% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 70% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 72% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 74% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 76% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 78% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 80% { - -webkit-transform: translate(0px, -1px) rotate(-0.5deg) -} - 82% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 84% { - -webkit-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 86% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 88% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 90% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 92% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 94% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 96% { - -webkit-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 98% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} -} -@-ms-keyframes shake-little { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 4% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 6% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 8% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 10% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 12% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 14% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 16% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 18% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 20% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 22% { - -ms-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 24% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 26% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 28% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 30% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 32% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 34% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 36% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 38% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 40% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 42% { - -ms-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 44% { - -ms-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 46% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 48% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 50% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 52% { - -ms-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 54% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 56% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 58% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 60% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 62% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 64% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 66% { - -ms-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 68% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 70% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 72% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 74% { - -ms-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 76% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 78% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 80% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 82% { - -ms-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 84% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 86% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 88% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 90% { - -ms-transform: translate(-1px, -1px) rotate(-0.5deg) -} - 92% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 94% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} - 96% { - -ms-transform: translate(-1px, 0px) rotate(-0.5deg) -} - 98% { - -ms-transform: translate(0px, -1px) rotate(-0.5deg) -} -} -@keyframes shake-little { - 0% { - transform: translate(0px, 0px) rotate(0deg) -} - 2% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 4% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 6% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 8% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 10% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 12% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 14% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 16% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 18% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 20% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 22% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 24% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 26% { - transform: translate(-1px, 0px) rotate(-0.5deg) -} - 28% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 30% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 32% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 34% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 36% { - transform: translate(-1px, 0px) rotate(-0.5deg) -} - 38% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 40% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 42% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 44% { - transform: translate(-1px, 0px) rotate(-0.5deg) -} - 46% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 48% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 50% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 52% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 54% { - transform: translate(-1px, 0px) rotate(-0.5deg) -} - 56% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 58% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 60% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 62% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 64% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 66% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 68% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 70% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 72% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 74% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 76% { - transform: translate(-1px, 0px) rotate(-0.5deg) -} - 78% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 80% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 82% { - transform: translate(-1px, 0px) rotate(-0.5deg) -} - 84% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 86% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 88% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 90% { - transform: translate(-1px, -1px) rotate(-0.5deg) -} - 92% { - transform: translate(-1px, 0px) rotate(-0.5deg) -} - 94% { - transform: translate(-1px, 0px) rotate(-0.5deg) -} - 96% { - transform: translate(0px, -1px) rotate(-0.5deg) -} - 98% { - transform: translate(0px, -1px) rotate(-0.5deg) -} -} -@-webkit-keyframes shake-slow { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -webkit-transform: translate(-1px, 8px) rotate(1.5deg) -} - 4% { - -webkit-transform: translate(7px, 0px) rotate(-0.5deg) -} - 6% { - -webkit-transform: translate(8px, 8px) rotate(-3.5deg) -} - 8% { - -webkit-transform: translate(-4px, -3px) rotate(-1.5deg) -} - 10% { - -webkit-transform: translate(5px, 0px) rotate(-2.5deg) -} - 12% { - -webkit-transform: translate(-10px, -3px) rotate(-3.5deg) -} - 14% { - -webkit-transform: translate(5px, 7px) rotate(2.5deg) -} - 16% { - -webkit-transform: translate(8px, -8px) rotate(-1.5deg) -} - 18% { - -webkit-transform: translate(9px, -6px) rotate(-3.5deg) -} - 20% { - -webkit-transform: translate(3px, 1px) rotate(-0.5deg) -} - 22% { - -webkit-transform: translate(6px, 8px) rotate(-2.5deg) -} - 24% { - -webkit-transform: translate(-8px, -1px) rotate(2.5deg) -} - 26% { - -webkit-transform: translate(7px, -10px) rotate(0.5deg) -} - 28% { - -webkit-transform: translate(7px, -4px) rotate(-3.5deg) -} - 30% { - -webkit-transform: translate(-2px, -6px) rotate(-1.5deg) -} - 32% { - -webkit-transform: translate(-1px, 0px) rotate(2.5deg) -} - 34% { - -webkit-transform: translate(6px, 2px) rotate(-0.5deg) -} - 36% { - -webkit-transform: translate(2px, 7px) rotate(1.5deg) -} - 38% { - -webkit-transform: translate(2px, -9px) rotate(1.5deg) -} - 40% { - -webkit-transform: translate(-5px, -1px) rotate(-0.5deg) -} - 42% { - -webkit-transform: translate(-8px, 2px) rotate(-0.5deg) -} - 44% { - -webkit-transform: translate(-4px, 3px) rotate(0.5deg) -} - 46% { - -webkit-transform: translate(-10px, -2px) rotate(-0.5deg) -} - 48% { - -webkit-transform: translate(1px, 9px) rotate(1.5deg) -} - 50% { - -webkit-transform: translate(6px, 7px) rotate(1.5deg) -} - 52% { - -webkit-transform: translate(-8px, 4px) rotate(0.5deg) -} - 54% { - -webkit-transform: translate(6px, -8px) rotate(-2.5deg) -} - 56% { - -webkit-transform: translate(2px, -9px) rotate(-2.5deg) -} - 58% { - -webkit-transform: translate(-2px, -9px) rotate(0.5deg) -} - 60% { - -webkit-transform: translate(2px, 7px) rotate(-0.5deg) -} - 62% { - -webkit-transform: translate(0px, 0px) rotate(-1.5deg) -} - 64% { - -webkit-transform: translate(-9px, -4px) rotate(-3.5deg) -} - 66% { - -webkit-transform: translate(6px, -6px) rotate(0.5deg) -} - 68% { - -webkit-transform: translate(0px, -7px) rotate(-2.5deg) -} - 70% { - -webkit-transform: translate(-10px, 1px) rotate(1.5deg) -} - 72% { - -webkit-transform: translate(-7px, 9px) rotate(2.5deg) -} - 74% { - -webkit-transform: translate(2px, -6px) rotate(-0.5deg) -} - 76% { - -webkit-transform: translate(5px, 1px) rotate(-0.5deg) -} - 78% { - -webkit-transform: translate(-1px, 5px) rotate(2.5deg) -} - 80% { - -webkit-transform: translate(3px, 7px) rotate(2.5deg) -} - 82% { - -webkit-transform: translate(-6px, -7px) rotate(-0.5deg) -} - 84% { - -webkit-transform: translate(-8px, 8px) rotate(-2.5deg) -} - 86% { - -webkit-transform: translate(8px, 3px) rotate(-2.5deg) -} - 88% { - -webkit-transform: translate(-8px, 3px) rotate(-1.5deg) -} - 90% { - -webkit-transform: translate(-7px, -4px) rotate(-3.5deg) -} - 92% { - -webkit-transform: translate(-8px, 4px) rotate(2.5deg) -} - 94% { - -webkit-transform: translate(-6px, -6px) rotate(-3.5deg) -} - 96% { - -webkit-transform: translate(-3px, 2px) rotate(-3.5deg) -} - 98% { - -webkit-transform: translate(2px, 1px) rotate(-0.5deg) -} -} -@-ms-keyframes shake-slow { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -ms-transform: translate(-9px, 1px) rotate(-1.5deg) -} - 4% { - -ms-transform: translate(-10px, -1px) rotate(-3.5deg) -} - 6% { - -ms-transform: translate(6px, 2px) rotate(-1.5deg) -} - 8% { - -ms-transform: translate(-3px, -6px) rotate(-1.5deg) -} - 10% { - -ms-transform: translate(-10px, -3px) rotate(-0.5deg) -} - 12% { - -ms-transform: translate(-8px, 6px) rotate(-2.5deg) -} - 14% { - -ms-transform: translate(7px, 5px) rotate(-1.5deg) -} - 16% { - -ms-transform: translate(2px, 2px) rotate(1.5deg) -} - 18% { - -ms-transform: translate(8px, -2px) rotate(-3.5deg) -} - 20% { - -ms-transform: translate(-9px, 3px) rotate(-3.5deg) -} - 22% { - -ms-transform: translate(8px, -4px) rotate(-1.5deg) -} - 24% { - -ms-transform: translate(-1px, -7px) rotate(2.5deg) -} - 26% { - -ms-transform: translate(9px, 9px) rotate(-0.5deg) -} - 28% { - -ms-transform: translate(9px, -4px) rotate(-3.5deg) -} - 30% { - -ms-transform: translate(6px, -7px) rotate(-0.5deg) -} - 32% { - -ms-transform: translate(9px, 2px) rotate(1.5deg) -} - 34% { - -ms-transform: translate(3px, -9px) rotate(2.5deg) -} - 36% { - -ms-transform: translate(-6px, -4px) rotate(2.5deg) -} - 38% { - -ms-transform: translate(-5px, -9px) rotate(0.5deg) -} - 40% { - -ms-transform: translate(6px, 9px) rotate(-2.5deg) -} - 42% { - -ms-transform: translate(5px, -5px) rotate(0.5deg) -} - 44% { - -ms-transform: translate(8px, 5px) rotate(-3.5deg) -} - 46% { - -ms-transform: translate(-2px, 9px) rotate(1.5deg) -} - 48% { - -ms-transform: translate(-10px, -5px) rotate(-2.5deg) -} - 50% { - -ms-transform: translate(8px, -1px) rotate(-3.5deg) -} - 52% { - -ms-transform: translate(-5px, -7px) rotate(2.5deg) -} - 54% { - -ms-transform: translate(7px, 0px) rotate(2.5deg) -} - 56% { - -ms-transform: translate(-5px, -1px) rotate(-0.5deg) -} - 58% { - -ms-transform: translate(0px, -4px) rotate(-3.5deg) -} - 60% { - -ms-transform: translate(-10px, 2px) rotate(2.5deg) -} - 62% { - -ms-transform: translate(9px, 8px) rotate(0.5deg) -} - 64% { - -ms-transform: translate(-4px, -4px) rotate(-1.5deg) -} - 66% { - -ms-transform: translate(-1px, -9px) rotate(-0.5deg) -} - 68% { - -ms-transform: translate(-6px, -9px) rotate(-2.5deg) -} - 70% { - -ms-transform: translate(-6px, -8px) rotate(-1.5deg) -} - 72% { - -ms-transform: translate(-2px, -3px) rotate(-2.5deg) -} - 74% { - -ms-transform: translate(-8px, 1px) rotate(-0.5deg) -} - 76% { - -ms-transform: translate(-7px, 7px) rotate(2.5deg) -} - 78% { - -ms-transform: translate(7px, 2px) rotate(-3.5deg) -} - 80% { - -ms-transform: translate(-10px, -4px) rotate(-0.5deg) -} - 82% { - -ms-transform: translate(2px, -9px) rotate(1.5deg) -} - 84% { - -ms-transform: translate(3px, 5px) rotate(1.5deg) -} - 86% { - -ms-transform: translate(5px, 2px) rotate(2.5deg) -} - 88% { - -ms-transform: translate(-5px, -1px) rotate(-1.5deg) -} - 90% { - -ms-transform: translate(-1px, -9px) rotate(1.5deg) -} - 92% { - -ms-transform: translate(8px, -6px) rotate(-3.5deg) -} - 94% { - -ms-transform: translate(7px, -9px) rotate(-2.5deg) -} - 96% { - -ms-transform: translate(4px, -5px) rotate(2.5deg) -} - 98% { - -ms-transform: translate(8px, 0px) rotate(-3.5deg) -} -} -@keyframes shake-slow { - 0% { - transform: translate(0px, 0px) rotate(0deg) -} - 2% { - transform: translate(-6px, -8px) rotate(2.5deg) -} - 4% { - transform: translate(3px, -9px) rotate(-0.5deg) -} - 6% { - transform: translate(3px, -8px) rotate(2.5deg) -} - 8% { - transform: translate(0px, 5px) rotate(0.5deg) -} - 10% { - transform: translate(3px, 2px) rotate(0.5deg) -} - 12% { - transform: translate(8px, 0px) rotate(0.5deg) -} - 14% { - transform: translate(4px, 7px) rotate(-3.5deg) -} - 16% { - transform: translate(-4px, 0px) rotate(-0.5deg) -} - 18% { - transform: translate(1px, 3px) rotate(-1.5deg) -} - 20% { - transform: translate(-8px, -1px) rotate(-3.5deg) -} - 22% { - transform: translate(5px, 9px) rotate(2.5deg) -} - 24% { - transform: translate(-9px, -10px) rotate(-2.5deg) -} - 26% { - transform: translate(0px, 7px) rotate(-1.5deg) -} - 28% { - transform: translate(-10px, 7px) rotate(2.5deg) -} - 30% { - transform: translate(8px, -7px) rotate(-1.5deg) -} - 32% { - transform: translate(0px, -8px) rotate(-0.5deg) -} - 34% { - transform: translate(9px, 7px) rotate(-0.5deg) -} - 36% { - transform: translate(-7px, 6px) rotate(0.5deg) -} - 38% { - transform: translate(8px, -10px) rotate(-0.5deg) -} - 40% { - transform: translate(8px, 0px) rotate(0.5deg) -} - 42% { - transform: translate(0px, -2px) rotate(1.5deg) -} - 44% { - transform: translate(5px, -2px) rotate(-0.5deg) -} - 46% { - transform: translate(1px, -10px) rotate(-2.5deg) -} - 48% { - transform: translate(4px, -1px) rotate(2.5deg) -} - 50% { - transform: translate(-5px, -4px) rotate(2.5deg) -} - 52% { - transform: translate(3px, 2px) rotate(-3.5deg) -} - 54% { - transform: translate(1px, -6px) rotate(-0.5deg) -} - 56% { - transform: translate(-3px, -4px) rotate(-0.5deg) -} - 58% { - transform: translate(-10px, -10px) rotate(2.5deg) -} - 60% { - transform: translate(8px, 7px) rotate(-3.5deg) -} - 62% { - transform: translate(9px, -6px) rotate(-3.5deg) -} - 64% { - transform: translate(-5px, 8px) rotate(-0.5deg) -} - 66% { - transform: translate(1px, -3px) rotate(0.5deg) -} - 68% { - transform: translate(-6px, 9px) rotate(1.5deg) -} - 70% { - transform: translate(-5px, 8px) rotate(-1.5deg) -} - 72% { - transform: translate(-10px, -2px) rotate(2.5deg) -} - 74% { - transform: translate(0px, -4px) rotate(1.5deg) -} - 76% { - transform: translate(-2px, -5px) rotate(0.5deg) -} - 78% { - transform: translate(-2px, 9px) rotate(-3.5deg) -} - 80% { - transform: translate(7px, 4px) rotate(-3.5deg) -} - 82% { - transform: translate(-1px, -4px) rotate(-1.5deg) -} - 84% { - transform: translate(3px, -6px) rotate(0.5deg) -} - 86% { - transform: translate(7px, -8px) rotate(-1.5deg) -} - 88% { - transform: translate(4px, -9px) rotate(1.5deg) -} - 90% { - transform: translate(1px, -6px) rotate(2.5deg) -} - 92% { - transform: translate(-8px, -1px) rotate(-1.5deg) -} - 94% { - transform: translate(-4px, -1px) rotate(0.5deg) -} - 96% { - transform: translate(-6px, 9px) rotate(1.5deg) -} - 98% { - transform: translate(7px, 4px) rotate(-0.5deg) -} -} -@-webkit-keyframes shake-hard { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -webkit-transform: translate(5px, -4px) rotate(-2.5deg) -} - 4% { - -webkit-transform: translate(-10px, 5px) rotate(2.5deg) -} - 6% { - -webkit-transform: translate(0px, 5px) rotate(-3.5deg) -} - 8% { - -webkit-transform: translate(-6px, -10px) rotate(-1.5deg) -} - 10% { - -webkit-transform: translate(2px, -7px) rotate(1.5deg) -} - 12% { - -webkit-transform: translate(0px, 1px) rotate(0.5deg) -} - 14% { - -webkit-transform: translate(7px, -9px) rotate(-0.5deg) -} - 16% { - -webkit-transform: translate(-8px, 4px) rotate(-2.5deg) -} - 18% { - -webkit-transform: translate(-9px, -4px) rotate(-0.5deg) -} - 20% { - -webkit-transform: translate(-8px, -8px) rotate(0.5deg) -} - 22% { - -webkit-transform: translate(-7px, 0px) rotate(-0.5deg) -} - 24% { - -webkit-transform: translate(-10px, -5px) rotate(-3.5deg) -} - 26% { - -webkit-transform: translate(1px, -10px) rotate(-0.5deg) -} - 28% { - -webkit-transform: translate(5px, 2px) rotate(-1.5deg) -} - 30% { - -webkit-transform: translate(-8px, 5px) rotate(-0.5deg) -} - 32% { - -webkit-transform: translate(-4px, 2px) rotate(1.5deg) -} - 34% { - -webkit-transform: translate(-9px, 8px) rotate(1.5deg) -} - 36% { - -webkit-transform: translate(8px, -3px) rotate(1.5deg) -} - 38% { - -webkit-transform: translate(-10px, 7px) rotate(-0.5deg) -} - 40% { - -webkit-transform: translate(-7px, 1px) rotate(-3.5deg) -} - 42% { - -webkit-transform: translate(-9px, 7px) rotate(0.5deg) -} - 44% { - -webkit-transform: translate(4px, 2px) rotate(-3.5deg) -} - 46% { - -webkit-transform: translate(8px, 4px) rotate(2.5deg) -} - 48% { - -webkit-transform: translate(-5px, -1px) rotate(-2.5deg) -} - 50% { - -webkit-transform: translate(-7px, 5px) rotate(-2.5deg) -} - 52% { - -webkit-transform: translate(-1px, -7px) rotate(-3.5deg) -} - 54% { - -webkit-transform: translate(-2px, -3px) rotate(0.5deg) -} - 56% { - -webkit-transform: translate(-4px, -6px) rotate(-2.5deg) -} - 58% { - -webkit-transform: translate(5px, 4px) rotate(-2.5deg) -} - 60% { - -webkit-transform: translate(-3px, 2px) rotate(-0.5deg) -} - 62% { - -webkit-transform: translate(-4px, -10px) rotate(-1.5deg) -} - 64% { - -webkit-transform: translate(-4px, -9px) rotate(-2.5deg) -} - 66% { - -webkit-transform: translate(3px, -8px) rotate(-1.5deg) -} - 68% { - -webkit-transform: translate(-5px, -2px) rotate(0.5deg) -} - 70% { - -webkit-transform: translate(-3px, -1px) rotate(-3.5deg) -} - 72% { - -webkit-transform: translate(9px, -2px) rotate(0.5deg) -} - 74% { - -webkit-transform: translate(7px, -6px) rotate(-2.5deg) -} - 76% { - -webkit-transform: translate(1px, 2px) rotate(-1.5deg) -} - 78% { - -webkit-transform: translate(-3px, -5px) rotate(-1.5deg) -} - 80% { - -webkit-transform: translate(-5px, 3px) rotate(2.5deg) -} - 82% { - -webkit-transform: translate(-2px, -1px) rotate(-3.5deg) -} - 84% { - -webkit-transform: translate(-8px, 7px) rotate(0.5deg) -} - 86% { - -webkit-transform: translate(-2px, 4px) rotate(-0.5deg) -} - 88% { - -webkit-transform: translate(4px, 7px) rotate(-3.5deg) -} - 90% { - -webkit-transform: translate(2px, 7px) rotate(0.5deg) -} - 92% { - -webkit-transform: translate(-3px, 6px) rotate(-3.5deg) -} - 94% { - -webkit-transform: translate(1px, 8px) rotate(1.5deg) -} - 96% { - -webkit-transform: translate(-8px, -2px) rotate(1.5deg) -} - 98% { - -webkit-transform: translate(-5px, 6px) rotate(0.5deg) -} -} -@-ms-keyframes shake-hard { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -ms-transform: translate(-1px, 3px) rotate(-1.5deg) -} - 4% { - -ms-transform: translate(0px, -6px) rotate(2.5deg) -} - 6% { - -ms-transform: translate(3px, 6px) rotate(-0.5deg) -} - 8% { - -ms-transform: translate(-1px, -7px) rotate(0.5deg) -} - 10% { - -ms-transform: translate(-3px, -2px) rotate(-2.5deg) -} - 12% { - -ms-transform: translate(-6px, 7px) rotate(-3.5deg) -} - 14% { - -ms-transform: translate(4px, -4px) rotate(1.5deg) -} - 16% { - -ms-transform: translate(-1px, 4px) rotate(0.5deg) -} - 18% { - -ms-transform: translate(2px, 9px) rotate(0.5deg) -} - 20% { - -ms-transform: translate(-4px, -2px) rotate(0.5deg) -} - 22% { - -ms-transform: translate(0px, 1px) rotate(0.5deg) -} - 24% { - -ms-transform: translate(-2px, 0px) rotate(1.5deg) -} - 26% { - -ms-transform: translate(3px, -2px) rotate(-3.5deg) -} - 28% { - -ms-transform: translate(4px, -9px) rotate(-0.5deg) -} - 30% { - -ms-transform: translate(6px, -7px) rotate(2.5deg) -} - 32% { - -ms-transform: translate(6px, -9px) rotate(-2.5deg) -} - 34% { - -ms-transform: translate(1px, 4px) rotate(-3.5deg) -} - 36% { - -ms-transform: translate(7px, -5px) rotate(-0.5deg) -} - 38% { - -ms-transform: translate(9px, -6px) rotate(-1.5deg) -} - 40% { - -ms-transform: translate(-7px, 6px) rotate(2.5deg) -} - 42% { - -ms-transform: translate(-8px, -9px) rotate(0.5deg) -} - 44% { - -ms-transform: translate(-9px, -6px) rotate(1.5deg) -} - 46% { - -ms-transform: translate(6px, 6px) rotate(-3.5deg) -} - 48% { - -ms-transform: translate(-6px, 9px) rotate(-1.5deg) -} - 50% { - -ms-transform: translate(8px, 1px) rotate(2.5deg) -} - 52% { - -ms-transform: translate(-8px, 2px) rotate(-3.5deg) -} - 54% { - -ms-transform: translate(3px, 3px) rotate(0.5deg) -} - 56% { - -ms-transform: translate(-7px, -7px) rotate(0.5deg) -} - 58% { - -ms-transform: translate(-6px, -5px) rotate(0.5deg) -} - 60% { - -ms-transform: translate(-4px, 9px) rotate(-3.5deg) -} - 62% { - -ms-transform: translate(-2px, -4px) rotate(-3.5deg) -} - 64% { - -ms-transform: translate(9px, -2px) rotate(-3.5deg) -} - 66% { - -ms-transform: translate(-4px, 0px) rotate(-0.5deg) -} - 68% { - -ms-transform: translate(3px, -2px) rotate(-2.5deg) -} - 70% { - -ms-transform: translate(6px, -6px) rotate(-3.5deg) -} - 72% { - -ms-transform: translate(4px, -6px) rotate(-3.5deg) -} - 74% { - -ms-transform: translate(1px, 7px) rotate(-0.5deg) -} - 76% { - -ms-transform: translate(-2px, 8px) rotate(2.5deg) -} - 78% { - -ms-transform: translate(2px, -2px) rotate(-1.5deg) -} - 80% { - -ms-transform: translate(6px, 8px) rotate(0.5deg) -} - 82% { - -ms-transform: translate(0px, 0px) rotate(-3.5deg) -} - 84% { - -ms-transform: translate(-5px, -5px) rotate(-2.5deg) -} - 86% { - -ms-transform: translate(-3px, 2px) rotate(2.5deg) -} - 88% { - -ms-transform: translate(7px, -9px) rotate(-2.5deg) -} - 90% { - -ms-transform: translate(5px, -5px) rotate(-3.5deg) -} - 92% { - -ms-transform: translate(-2px, 8px) rotate(0.5deg) -} - 94% { - -ms-transform: translate(-5px, -9px) rotate(-2.5deg) -} - 96% { - -ms-transform: translate(8px, -9px) rotate(0.5deg) -} - 98% { - -ms-transform: translate(-9px, 4px) rotate(1.5deg) -} -} -@keyframes shake-hard { - 0% { - transform: translate(0px, 0px) rotate(0deg) -} - 2% { - transform: translate(0px, 4px) rotate(0.5deg) -} - 4% { - transform: translate(6px, -2px) rotate(-3.5deg) -} - 6% { - transform: translate(-3px, -8px) rotate(-2.5deg) -} - 8% { - transform: translate(-1px, 9px) rotate(2.5deg) -} - 10% { - transform: translate(6px, 5px) rotate(-2.5deg) -} - 12% { - transform: translate(-3px, 6px) rotate(-2.5deg) -} - 14% { - transform: translate(-9px, 1px) rotate(-0.5deg) -} - 16% { - transform: translate(-6px, 5px) rotate(2.5deg) -} - 18% { - transform: translate(-9px, 8px) rotate(0.5deg) -} - 20% { - transform: translate(-9px, 6px) rotate(-2.5deg) -} - 22% { - transform: translate(-5px, 6px) rotate(0.5deg) -} - 24% { - transform: translate(6px, 3px) rotate(1.5deg) -} - 26% { - transform: translate(8px, -10px) rotate(-2.5deg) -} - 28% { - transform: translate(0px, -5px) rotate(-3.5deg) -} - 30% { - transform: translate(6px, -10px) rotate(2.5deg) -} - 32% { - transform: translate(3px, 0px) rotate(-3.5deg) -} - 34% { - transform: translate(4px, -6px) rotate(-3.5deg) -} - 36% { - transform: translate(-5px, 4px) rotate(-0.5deg) -} - 38% { - transform: translate(-7px, -6px) rotate(-1.5deg) -} - 40% { - transform: translate(4px, -9px) rotate(-3.5deg) -} - 42% { - transform: translate(-9px, -2px) rotate(-1.5deg) -} - 44% { - transform: translate(0px, -3px) rotate(1.5deg) -} - 46% { - transform: translate(-5px, -5px) rotate(-2.5deg) -} - 48% { - transform: translate(-6px, 2px) rotate(-3.5deg) -} - 50% { - transform: translate(0px, -5px) rotate(-1.5deg) -} - 52% { - transform: translate(6px, 1px) rotate(-2.5deg) -} - 54% { - transform: translate(9px, 6px) rotate(2.5deg) -} - 56% { - transform: translate(-8px, -10px) rotate(-0.5deg) -} - 58% { - transform: translate(6px, -2px) rotate(-1.5deg) -} - 60% { - transform: translate(-4px, -8px) rotate(-1.5deg) -} - 62% { - transform: translate(0px, -9px) rotate(0.5deg) -} - 64% { - transform: translate(-7px, -6px) rotate(2.5deg) -} - 66% { - transform: translate(8px, 6px) rotate(2.5deg) -} - 68% { - transform: translate(-10px, -7px) rotate(-2.5deg) -} - 70% { - transform: translate(-1px, 9px) rotate(-2.5deg) -} - 72% { - transform: translate(-6px, 8px) rotate(-2.5deg) -} - 74% { - transform: translate(2px, 5px) rotate(-1.5deg) -} - 76% { - transform: translate(-7px, 6px) rotate(1.5deg) -} - 78% { - transform: translate(3px, -9px) rotate(0.5deg) -} - 80% { - transform: translate(-4px, -9px) rotate(-1.5deg) -} - 82% { - transform: translate(0px, 7px) rotate(0.5deg) -} - 84% { - transform: translate(-4px, -3px) rotate(-1.5deg) -} - 86% { - transform: translate(-10px, 8px) rotate(-0.5deg) -} - 88% { - transform: translate(-9px, 1px) rotate(-0.5deg) -} - 90% { - transform: translate(-3px, 6px) rotate(1.5deg) -} - 92% { - transform: translate(-8px, -10px) rotate(-3.5deg) -} - 94% { - transform: translate(-8px, -7px) rotate(2.5deg) -} - 96% { - transform: translate(-2px, 1px) rotate(2.5deg) -} - 98% { - transform: translate(-3px, 4px) rotate(-2.5deg) -} -} -@-webkit-keyframes shake-horizontal { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -webkit-transform: translate(-8px, 0px) rotate(0deg) -} - 4% { - -webkit-transform: translate(3px, 0px) rotate(0deg) -} - 6% { - -webkit-transform: translate(7px, 0px) rotate(0deg) -} - 8% { - -webkit-transform: translate(1px, 0px) rotate(0deg) -} - 10% { - -webkit-transform: translate(4px, 0px) rotate(0deg) -} - 12% { - -webkit-transform: translate(3px, 0px) rotate(0deg) -} - 14% { - -webkit-transform: translate(7px, 0px) rotate(0deg) -} - 16% { - -webkit-transform: translate(-3px, 0px) rotate(0deg) -} - 18% { - -webkit-transform: translate(-5px, 0px) rotate(0deg) -} - 20% { - -webkit-transform: translate(-10px, 0px) rotate(0deg) -} - 22% { - -webkit-transform: translate(8px, 0px) rotate(0deg) -} - 24% { - -webkit-transform: translate(2px, 0px) rotate(0deg) -} - 26% { - -webkit-transform: translate(2px, 0px) rotate(0deg) -} - 28% { - -webkit-transform: translate(3px, 0px) rotate(0deg) -} - 30% { - -webkit-transform: translate(7px, 0px) rotate(0deg) -} - 32% { - -webkit-transform: translate(-8px, 0px) rotate(0deg) -} - 34% { - -webkit-transform: translate(-10px, 0px) rotate(0deg) -} - 36% { - -webkit-transform: translate(8px, 0px) rotate(0deg) -} - 38% { - -webkit-transform: translate(-5px, 0px) rotate(0deg) -} - 40% { - -webkit-transform: translate(-1px, 0px) rotate(0deg) -} - 42% { - -webkit-transform: translate(6px, 0px) rotate(0deg) -} - 44% { - -webkit-transform: translate(-3px, 0px) rotate(0deg) -} - 46% { - -webkit-transform: translate(-1px, 0px) rotate(0deg) -} - 48% { - -webkit-transform: translate(9px, 0px) rotate(0deg) -} - 50% { - -webkit-transform: translate(-3px, 0px) rotate(0deg) -} - 52% { - -webkit-transform: translate(8px, 0px) rotate(0deg) -} - 54% { - -webkit-transform: translate(4px, 0px) rotate(0deg) -} - 56% { - -webkit-transform: translate(4px, 0px) rotate(0deg) -} - 58% { - -webkit-transform: translate(2px, 0px) rotate(0deg) -} - 60% { - -webkit-transform: translate(2px, 0px) rotate(0deg) -} - 62% { - -webkit-transform: translate(-9px, 0px) rotate(0deg) -} - 64% { - -webkit-transform: translate(-6px, 0px) rotate(0deg) -} - 66% { - -webkit-transform: translate(-10px, 0px) rotate(0deg) -} - 68% { - -webkit-transform: translate(6px, 0px) rotate(0deg) -} - 70% { - -webkit-transform: translate(7px, 0px) rotate(0deg) -} - 72% { - -webkit-transform: translate(-1px, 0px) rotate(0deg) -} - 74% { - -webkit-transform: translate(-1px, 0px) rotate(0deg) -} - 76% { - -webkit-transform: translate(4px, 0px) rotate(0deg) -} - 78% { - -webkit-transform: translate(1px, 0px) rotate(0deg) -} - 80% { - -webkit-transform: translate(-6px, 0px) rotate(0deg) -} - 82% { - -webkit-transform: translate(-3px, 0px) rotate(0deg) -} - 84% { - -webkit-transform: translate(-8px, 0px) rotate(0deg) -} - 86% { - -webkit-transform: translate(5px, 0px) rotate(0deg) -} - 88% { - -webkit-transform: translate(-3px, 0px) rotate(0deg) -} - 90% { - -webkit-transform: translate(-7px, 0px) rotate(0deg) -} - 92% { - -webkit-transform: translate(-4px, 0px) rotate(0deg) -} - 94% { - -webkit-transform: translate(2px, 0px) rotate(0deg) -} - 96% { - -webkit-transform: translate(-9px, 0px) rotate(0deg) -} - 98% { - -webkit-transform: translate(3px, 0px) rotate(0deg) -} -} -@-ms-keyframes shake-horizontal { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -ms-transform: translate(-9px, 0px) rotate(0deg) -} - 4% { - -ms-transform: translate(3px, 0px) rotate(0deg) -} - 6% { - -ms-transform: translate(-10px, 0px) rotate(0deg) -} - 8% { - -ms-transform: translate(2px, 0px) rotate(0deg) -} - 10% { - -ms-transform: translate(5px, 0px) rotate(0deg) -} - 12% { - -ms-transform: translate(-9px, 0px) rotate(0deg) -} - 14% { - -ms-transform: translate(-8px, 0px) rotate(0deg) -} - 16% { - -ms-transform: translate(6px, 0px) rotate(0deg) -} - 18% { - -ms-transform: translate(1px, 0px) rotate(0deg) -} - 20% { - -ms-transform: translate(7px, 0px) rotate(0deg) -} - 22% { - -ms-transform: translate(4px, 0px) rotate(0deg) -} - 24% { - -ms-transform: translate(9px, 0px) rotate(0deg) -} - 26% { - -ms-transform: translate(2px, 0px) rotate(0deg) -} - 28% { - -ms-transform: translate(4px, 0px) rotate(0deg) -} - 30% { - -ms-transform: translate(-9px, 0px) rotate(0deg) -} - 32% { - -ms-transform: translate(9px, 0px) rotate(0deg) -} - 34% { - -ms-transform: translate(-4px, 0px) rotate(0deg) -} - 36% { - -ms-transform: translate(-6px, 0px) rotate(0deg) -} - 38% { - -ms-transform: translate(-3px, 0px) rotate(0deg) -} - 40% { - -ms-transform: translate(-8px, 0px) rotate(0deg) -} - 42% { - -ms-transform: translate(-8px, 0px) rotate(0deg) -} - 44% { - -ms-transform: translate(-2px, 0px) rotate(0deg) -} - 46% { - -ms-transform: translate(-7px, 0px) rotate(0deg) -} - 48% { - -ms-transform: translate(-1px, 0px) rotate(0deg) -} - 50% { - -ms-transform: translate(-8px, 0px) rotate(0deg) -} - 52% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 54% { - -ms-transform: translate(6px, 0px) rotate(0deg) -} - 56% { - -ms-transform: translate(1px, 0px) rotate(0deg) -} - 58% { - -ms-transform: translate(-5px, 0px) rotate(0deg) -} - 60% { - -ms-transform: translate(9px, 0px) rotate(0deg) -} - 62% { - -ms-transform: translate(-3px, 0px) rotate(0deg) -} - 64% { - -ms-transform: translate(-5px, 0px) rotate(0deg) -} - 66% { - -ms-transform: translate(-6px, 0px) rotate(0deg) -} - 68% { - -ms-transform: translate(5px, 0px) rotate(0deg) -} - 70% { - -ms-transform: translate(-3px, 0px) rotate(0deg) -} - 72% { - -ms-transform: translate(-1px, 0px) rotate(0deg) -} - 74% { - -ms-transform: translate(-6px, 0px) rotate(0deg) -} - 76% { - -ms-transform: translate(-2px, 0px) rotate(0deg) -} - 78% { - -ms-transform: translate(1px, 0px) rotate(0deg) -} - 80% { - -ms-transform: translate(4px, 0px) rotate(0deg) -} - 82% { - -ms-transform: translate(7px, 0px) rotate(0deg) -} - 84% { - -ms-transform: translate(-7px, 0px) rotate(0deg) -} - 86% { - -ms-transform: translate(-4px, 0px) rotate(0deg) -} - 88% { - -ms-transform: translate(9px, 0px) rotate(0deg) -} - 90% { - -ms-transform: translate(-6px, 0px) rotate(0deg) -} - 92% { - -ms-transform: translate(-3px, 0px) rotate(0deg) -} - 94% { - -ms-transform: translate(-8px, 0px) rotate(0deg) -} - 96% { - -ms-transform: translate(4px, 0px) rotate(0deg) -} - 98% { - -ms-transform: translate(6px, 0px) rotate(0deg) -} -} -@keyframes shake-horizontal { - 0% { - transform: translate(0px, 0px) rotate(0deg) -} - 2% { - transform: translate(-7px, 0px) rotate(0deg) -} - 4% { - transform: translate(7px, 0px) rotate(0deg) -} - 6% { - transform: translate(5px, 0px) rotate(0deg) -} - 8% { - transform: translate(9px, 0px) rotate(0deg) -} - 10% { - transform: translate(9px, 0px) rotate(0deg) -} - 12% { - transform: translate(3px, 0px) rotate(0deg) -} - 14% { - transform: translate(9px, 0px) rotate(0deg) -} - 16% { - transform: translate(-6px, 0px) rotate(0deg) -} - 18% { - transform: translate(8px, 0px) rotate(0deg) -} - 20% { - transform: translate(-2px, 0px) rotate(0deg) -} - 22% { - transform: translate(-1px, 0px) rotate(0deg) -} - 24% { - transform: translate(0px, 0px) rotate(0deg) -} - 26% { - transform: translate(-6px, 0px) rotate(0deg) -} - 28% { - transform: translate(-5px, 0px) rotate(0deg) -} - 30% { - transform: translate(-4px, 0px) rotate(0deg) -} - 32% { - transform: translate(-10px, 0px) rotate(0deg) -} - 34% { - transform: translate(9px, 0px) rotate(0deg) -} - 36% { - transform: translate(4px, 0px) rotate(0deg) -} - 38% { - transform: translate(-1px, 0px) rotate(0deg) -} - 40% { - transform: translate(2px, 0px) rotate(0deg) -} - 42% { - transform: translate(2px, 0px) rotate(0deg) -} - 44% { - transform: translate(-4px, 0px) rotate(0deg) -} - 46% { - transform: translate(8px, 0px) rotate(0deg) -} - 48% { - transform: translate(-6px, 0px) rotate(0deg) -} - 50% { - transform: translate(4px, 0px) rotate(0deg) -} - 52% { - transform: translate(-5px, 0px) rotate(0deg) -} - 54% { - transform: translate(6px, 0px) rotate(0deg) -} - 56% { - transform: translate(-5px, 0px) rotate(0deg) -} - 58% { - transform: translate(0px, 0px) rotate(0deg) -} - 60% { - transform: translate(3px, 0px) rotate(0deg) -} - 62% { - transform: translate(5px, 0px) rotate(0deg) -} - 64% { - transform: translate(-4px, 0px) rotate(0deg) -} - 66% { - transform: translate(-8px, 0px) rotate(0deg) -} - 68% { - transform: translate(4px, 0px) rotate(0deg) -} - 70% { - transform: translate(-5px, 0px) rotate(0deg) -} - 72% { - transform: translate(7px, 0px) rotate(0deg) -} - 74% { - transform: translate(-5px, 0px) rotate(0deg) -} - 76% { - transform: translate(1px, 0px) rotate(0deg) -} - 78% { - transform: translate(8px, 0px) rotate(0deg) -} - 80% { - transform: translate(8px, 0px) rotate(0deg) -} - 82% { - transform: translate(7px, 0px) rotate(0deg) -} - 84% { - transform: translate(-10px, 0px) rotate(0deg) -} - 86% { - transform: translate(9px, 0px) rotate(0deg) -} - 88% { - transform: translate(-1px, 0px) rotate(0deg) -} - 90% { - transform: translate(0px, 0px) rotate(0deg) -} - 92% { - transform: translate(-2px, 0px) rotate(0deg) -} - 94% { - transform: translate(5px, 0px) rotate(0deg) -} - 96% { - transform: translate(5px, 0px) rotate(0deg) -} - 98% { - transform: translate(-8px, 0px) rotate(0deg) -} -} -@-webkit-keyframes shake-vertical { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 4% { - -webkit-transform: translate(0px, -6px) rotate(0deg) -} - 6% { - -webkit-transform: translate(0px, -7px) rotate(0deg) -} - 8% { - -webkit-transform: translate(0px, -5px) rotate(0deg) -} - 10% { - -webkit-transform: translate(0px, 1px) rotate(0deg) -} - 12% { - -webkit-transform: translate(0px, -1px) rotate(0deg) -} - 14% { - -webkit-transform: translate(0px, -9px) rotate(0deg) -} - 16% { - -webkit-transform: translate(0px, -10px) rotate(0deg) -} - 18% { - -webkit-transform: translate(0px, -9px) rotate(0deg) -} - 20% { - -webkit-transform: translate(0px, 3px) rotate(0deg) -} - 22% { - -webkit-transform: translate(0px, -7px) rotate(0deg) -} - 24% { - -webkit-transform: translate(0px, 2px) rotate(0deg) -} - 26% { - -webkit-transform: translate(0px, 9px) rotate(0deg) -} - 28% { - -webkit-transform: translate(0px, 8px) rotate(0deg) -} - 30% { - -webkit-transform: translate(0px, 8px) rotate(0deg) -} - 32% { - -webkit-transform: translate(0px, 4px) rotate(0deg) -} - 34% { - -webkit-transform: translate(0px, -1px) rotate(0deg) -} - 36% { - -webkit-transform: translate(0px, 7px) rotate(0deg) -} - 38% { - -webkit-transform: translate(0px, 5px) rotate(0deg) -} - 40% { - -webkit-transform: translate(0px, -5px) rotate(0deg) -} - 42% { - -webkit-transform: translate(0px, 5px) rotate(0deg) -} - 44% { - -webkit-transform: translate(0px, 4px) rotate(0deg) -} - 46% { - -webkit-transform: translate(0px, 3px) rotate(0deg) -} - 48% { - -webkit-transform: translate(0px, 6px) rotate(0deg) -} - 50% { - -webkit-transform: translate(0px, -6px) rotate(0deg) -} - 52% { - -webkit-transform: translate(0px, -3px) rotate(0deg) -} - 54% { - -webkit-transform: translate(0px, -4px) rotate(0deg) -} - 56% { - -webkit-transform: translate(0px, -5px) rotate(0deg) -} - 58% { - -webkit-transform: translate(0px, 2px) rotate(0deg) -} - 60% { - -webkit-transform: translate(0px, -2px) rotate(0deg) -} - 62% { - -webkit-transform: translate(0px, 2px) rotate(0deg) -} - 64% { - -webkit-transform: translate(0px, -7px) rotate(0deg) -} - 66% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 68% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 70% { - -webkit-transform: translate(0px, -1px) rotate(0deg) -} - 72% { - -webkit-transform: translate(0px, 2px) rotate(0deg) -} - 74% { - -webkit-transform: translate(0px, 3px) rotate(0deg) -} - 76% { - -webkit-transform: translate(0px, 3px) rotate(0deg) -} - 78% { - -webkit-transform: translate(0px, -10px) rotate(0deg) -} - 80% { - -webkit-transform: translate(0px, -5px) rotate(0deg) -} - 82% { - -webkit-transform: translate(0px, 9px) rotate(0deg) -} - 84% { - -webkit-transform: translate(0px, 9px) rotate(0deg) -} - 86% { - -webkit-transform: translate(0px, 1px) rotate(0deg) -} - 88% { - -webkit-transform: translate(0px, 6px) rotate(0deg) -} - 90% { - -webkit-transform: translate(0px, -2px) rotate(0deg) -} - 92% { - -webkit-transform: translate(0px, 4px) rotate(0deg) -} - 94% { - -webkit-transform: translate(0px, -4px) rotate(0deg) -} - 96% { - -webkit-transform: translate(0px, -1px) rotate(0deg) -} - 98% { - -webkit-transform: translate(0px, -8px) rotate(0deg) -} -} -@-ms-keyframes shake-vertical { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -ms-transform: translate(0px, -5px) rotate(0deg) -} - 4% { - -ms-transform: translate(0px, -1px) rotate(0deg) -} - 6% { - -ms-transform: translate(0px, -8px) rotate(0deg) -} - 8% { - -ms-transform: translate(0px, 5px) rotate(0deg) -} - 10% { - -ms-transform: translate(0px, 9px) rotate(0deg) -} - 12% { - -ms-transform: translate(0px, -3px) rotate(0deg) -} - 14% { - -ms-transform: translate(0px, -7px) rotate(0deg) -} - 16% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 18% { - -ms-transform: translate(0px, -7px) rotate(0deg) -} - 20% { - -ms-transform: translate(0px, -6px) rotate(0deg) -} - 22% { - -ms-transform: translate(0px, -7px) rotate(0deg) -} - 24% { - -ms-transform: translate(0px, 2px) rotate(0deg) -} - 26% { - -ms-transform: translate(0px, 5px) rotate(0deg) -} - 28% { - -ms-transform: translate(0px, -3px) rotate(0deg) -} - 30% { - -ms-transform: translate(0px, -5px) rotate(0deg) -} - 32% { - -ms-transform: translate(0px, 6px) rotate(0deg) -} - 34% { - -ms-transform: translate(0px, -1px) rotate(0deg) -} - 36% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 38% { - -ms-transform: translate(0px, 4px) rotate(0deg) -} - 40% { - -ms-transform: translate(0px, 6px) rotate(0deg) -} - 42% { - -ms-transform: translate(0px, -8px) rotate(0deg) -} - 44% { - -ms-transform: translate(0px, -6px) rotate(0deg) -} - 46% { - -ms-transform: translate(0px, -9px) rotate(0deg) -} - 48% { - -ms-transform: translate(0px, -3px) rotate(0deg) -} - 50% { - -ms-transform: translate(0px, -3px) rotate(0deg) -} - 52% { - -ms-transform: translate(0px, -2px) rotate(0deg) -} - 54% { - -ms-transform: translate(0px, -3px) rotate(0deg) -} - 56% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 58% { - -ms-transform: translate(0px, 8px) rotate(0deg) -} - 60% { - -ms-transform: translate(0px, 9px) rotate(0deg) -} - 62% { - -ms-transform: translate(0px, 7px) rotate(0deg) -} - 64% { - -ms-transform: translate(0px, 1px) rotate(0deg) -} - 66% { - -ms-transform: translate(0px, -5px) rotate(0deg) -} - 68% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 70% { - -ms-transform: translate(0px, 9px) rotate(0deg) -} - 72% { - -ms-transform: translate(0px, 4px) rotate(0deg) -} - 74% { - -ms-transform: translate(0px, -4px) rotate(0deg) -} - 76% { - -ms-transform: translate(0px, 5px) rotate(0deg) -} - 78% { - -ms-transform: translate(0px, -5px) rotate(0deg) -} - 80% { - -ms-transform: translate(0px, -2px) rotate(0deg) -} - 82% { - -ms-transform: translate(0px, -8px) rotate(0deg) -} - 84% { - -ms-transform: translate(0px, -5px) rotate(0deg) -} - 86% { - -ms-transform: translate(0px, -9px) rotate(0deg) -} - 88% { - -ms-transform: translate(0px, -8px) rotate(0deg) -} - 90% { - -ms-transform: translate(0px, 7px) rotate(0deg) -} - 92% { - -ms-transform: translate(0px, 5px) rotate(0deg) -} - 94% { - -ms-transform: translate(0px, -6px) rotate(0deg) -} - 96% { - -ms-transform: translate(0px, -2px) rotate(0deg) -} - 98% { - -ms-transform: translate(0px, -1px) rotate(0deg) -} -} -@keyframes shake-vertical { - 0% { - transform: translate(0px, 0px) rotate(0deg) -} - 2% { - transform: translate(0px, -2px) rotate(0deg) -} - 4% { - transform: translate(0px, -3px) rotate(0deg) -} - 6% { - transform: translate(0px, 9px) rotate(0deg) -} - 8% { - transform: translate(0px, 7px) rotate(0deg) -} - 10% { - transform: translate(0px, -6px) rotate(0deg) -} - 12% { - transform: translate(0px, 6px) rotate(0deg) -} - 14% { - transform: translate(0px, -3px) rotate(0deg) -} - 16% { - transform: translate(0px, 6px) rotate(0deg) -} - 18% { - transform: translate(0px, 8px) rotate(0deg) -} - 20% { - transform: translate(0px, 9px) rotate(0deg) -} - 22% { - transform: translate(0px, -4px) rotate(0deg) -} - 24% { - transform: translate(0px, -7px) rotate(0deg) -} - 26% { - transform: translate(0px, -9px) rotate(0deg) -} - 28% { - transform: translate(0px, 7px) rotate(0deg) -} - 30% { - transform: translate(0px, 7px) rotate(0deg) -} - 32% { - transform: translate(0px, 6px) rotate(0deg) -} - 34% { - transform: translate(0px, 4px) rotate(0deg) -} - 36% { - transform: translate(0px, 0px) rotate(0deg) -} - 38% { - transform: translate(0px, 4px) rotate(0deg) -} - 40% { - transform: translate(0px, 7px) rotate(0deg) -} - 42% { - transform: translate(0px, -5px) rotate(0deg) -} - 44% { - transform: translate(0px, 0px) rotate(0deg) -} - 46% { - transform: translate(0px, -2px) rotate(0deg) -} - 48% { - transform: translate(0px, -5px) rotate(0deg) -} - 50% { - transform: translate(0px, -4px) rotate(0deg) -} - 52% { - transform: translate(0px, 1px) rotate(0deg) -} - 54% { - transform: translate(0px, -1px) rotate(0deg) -} - 56% { - transform: translate(0px, -2px) rotate(0deg) -} - 58% { - transform: translate(0px, 5px) rotate(0deg) -} - 60% { - transform: translate(0px, 6px) rotate(0deg) -} - 62% { - transform: translate(0px, -3px) rotate(0deg) -} - 64% { - transform: translate(0px, -3px) rotate(0deg) -} - 66% { - transform: translate(0px, -9px) rotate(0deg) -} - 68% { - transform: translate(0px, -8px) rotate(0deg) -} - 70% { - transform: translate(0px, -7px) rotate(0deg) -} - 72% { - transform: translate(0px, 5px) rotate(0deg) -} - 74% { - transform: translate(0px, 5px) rotate(0deg) -} - 76% { - transform: translate(0px, -6px) rotate(0deg) -} - 78% { - transform: translate(0px, 8px) rotate(0deg) -} - 80% { - transform: translate(0px, 2px) rotate(0deg) -} - 82% { - transform: translate(0px, -8px) rotate(0deg) -} - 84% { - transform: translate(0px, -6px) rotate(0deg) -} - 86% { - transform: translate(0px, 5px) rotate(0deg) -} - 88% { - transform: translate(0px, -9px) rotate(0deg) -} - 90% { - transform: translate(0px, 1px) rotate(0deg) -} - 92% { - transform: translate(0px, -9px) rotate(0deg) -} - 94% { - transform: translate(0px, -8px) rotate(0deg) -} - 96% { - transform: translate(0px, -3px) rotate(0deg) -} - 98% { - transform: translate(0px, 1px) rotate(0deg) -} -} -@-webkit-keyframes shake-rotate { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -webkit-transform: translate(0px, 0px) rotate(-5.5deg) -} - 4% { - -webkit-transform: translate(0px, 0px) rotate(1.5deg) -} - 6% { - -webkit-transform: translate(0px, 0px) rotate(-7.5deg) -} - 8% { - -webkit-transform: translate(0px, 0px) rotate(-7.5deg) -} - 10% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 12% { - -webkit-transform: translate(0px, 0px) rotate(-5.5deg) -} - 14% { - -webkit-transform: translate(0px, 0px) rotate(-4.5deg) -} - 16% { - -webkit-transform: translate(0px, 0px) rotate(0.5deg) -} - 18% { - -webkit-transform: translate(0px, 0px) rotate(3.5deg) -} - 20% { - -webkit-transform: translate(0px, 0px) rotate(-6.5deg) -} - 22% { - -webkit-transform: translate(0px, 0px) rotate(-5.5deg) -} - 24% { - -webkit-transform: translate(0px, 0px) rotate(3.5deg) -} - 26% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 28% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 30% { - -webkit-transform: translate(0px, 0px) rotate(5.5deg) -} - 32% { - -webkit-transform: translate(0px, 0px) rotate(3.5deg) -} - 34% { - -webkit-transform: translate(0px, 0px) rotate(-5.5deg) -} - 36% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 38% { - -webkit-transform: translate(0px, 0px) rotate(-1.5deg) -} - 40% { - -webkit-transform: translate(0px, 0px) rotate(4.5deg) -} - 42% { - -webkit-transform: translate(0px, 0px) rotate(6.5deg) -} - 44% { - -webkit-transform: translate(0px, 0px) rotate(0.5deg) -} - 46% { - -webkit-transform: translate(0px, 0px) rotate(4.5deg) -} - 48% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 50% { - -webkit-transform: translate(0px, 0px) rotate(0.5deg) -} - 52% { - -webkit-transform: translate(0px, 0px) rotate(-7.5deg) -} - 54% { - -webkit-transform: translate(0px, 0px) rotate(-1.5deg) -} - 56% { - -webkit-transform: translate(0px, 0px) rotate(0.5deg) -} - 58% { - -webkit-transform: translate(0px, 0px) rotate(6.5deg) -} - 60% { - -webkit-transform: translate(0px, 0px) rotate(-3.5deg) -} - 62% { - -webkit-transform: translate(0px, 0px) rotate(-6.5deg) -} - 64% { - -webkit-transform: translate(0px, 0px) rotate(1.5deg) -} - 66% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 68% { - -webkit-transform: translate(0px, 0px) rotate(2.5deg) -} - 70% { - -webkit-transform: translate(0px, 0px) rotate(-4.5deg) -} - 72% { - -webkit-transform: translate(0px, 0px) rotate(-1.5deg) -} - 74% { - -webkit-transform: translate(0px, 0px) rotate(-6.5deg) -} - 76% { - -webkit-transform: translate(0px, 0px) rotate(3.5deg) -} - 78% { - -webkit-transform: translate(0px, 0px) rotate(-5.5deg) -} - 80% { - -webkit-transform: translate(0px, 0px) rotate(1.5deg) -} - 82% { - -webkit-transform: translate(0px, 0px) rotate(4.5deg) -} - 84% { - -webkit-transform: translate(0px, 0px) rotate(-1.5deg) -} - 86% { - -webkit-transform: translate(0px, 0px) rotate(-2.5deg) -} - 88% { - -webkit-transform: translate(0px, 0px) rotate(-3.5deg) -} - 90% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 92% { - -webkit-transform: translate(0px, 0px) rotate(-0.5deg) -} - 94% { - -webkit-transform: translate(0px, 0px) rotate(-6.5deg) -} - 96% { - -webkit-transform: translate(0px, 0px) rotate(-7.5deg) -} - 98% { - -webkit-transform: translate(0px, 0px) rotate(6.5deg) -} -} -@-ms-keyframes shake-rotate { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg) -} - 2% { - -ms-transform: translate(0px, 0px) rotate(0.5deg) -} - 4% { - -ms-transform: translate(0px, 0px) rotate(5.5deg) -} - 6% { - -ms-transform: translate(0px, 0px) rotate(-3.5deg) -} - 8% { - -ms-transform: translate(0px, 0px) rotate(-2.5deg) -} - 10% { - -ms-transform: translate(0px, 0px) rotate(-6.5deg) -} - 12% { - -ms-transform: translate(0px, 0px) rotate(6.5deg) -} - 14% { - -ms-transform: translate(0px, 0px) rotate(5.5deg) -} - 16% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 18% { - -ms-transform: translate(0px, 0px) rotate(-6.5deg) -} - 20% { - -ms-transform: translate(0px, 0px) rotate(6.5deg) -} - 22% { - -ms-transform: translate(0px, 0px) rotate(3.5deg) -} - 24% { - -ms-transform: translate(0px, 0px) rotate(-4.5deg) -} - 26% { - -ms-transform: translate(0px, 0px) rotate(4.5deg) -} - 28% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 30% { - -ms-transform: translate(0px, 0px) rotate(-5.5deg) -} - 32% { - -ms-transform: translate(0px, 0px) rotate(-6.5deg) -} - 34% { - -ms-transform: translate(0px, 0px) rotate(1.5deg) -} - 36% { - -ms-transform: translate(0px, 0px) rotate(-3.5deg) -} - 38% { - -ms-transform: translate(0px, 0px) rotate(0.5deg) -} - 40% { - -ms-transform: translate(0px, 0px) rotate(-3.5deg) -} - 42% { - -ms-transform: translate(0px, 0px) rotate(-5.5deg) -} - 44% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 46% { - -ms-transform: translate(0px, 0px) rotate(-7.5deg) -} - 48% { - -ms-transform: translate(0px, 0px) rotate(1.5deg) -} - 50% { - -ms-transform: translate(0px, 0px) rotate(0.5deg) -} - 52% { - -ms-transform: translate(0px, 0px) rotate(-4.5deg) -} - 54% { - -ms-transform: translate(0px, 0px) rotate(0.5deg) -} - 56% { - -ms-transform: translate(0px, 0px) rotate(-4.5deg) -} - 58% { - -ms-transform: translate(0px, 0px) rotate(2.5deg) -} - 60% { - -ms-transform: translate(0px, 0px) rotate(-2.5deg) -} - 62% { - -ms-transform: translate(0px, 0px) rotate(4.5deg) -} - 64% { - -ms-transform: translate(0px, 0px) rotate(-1.5deg) -} - 66% { - -ms-transform: translate(0px, 0px) rotate(-5.5deg) -} - 68% { - -ms-transform: translate(0px, 0px) rotate(0.5deg) -} - 70% { - -ms-transform: translate(0px, 0px) rotate(-3.5deg) -} - 72% { - -ms-transform: translate(0px, 0px) rotate(-2.5deg) -} - 74% { - -ms-transform: translate(0px, 0px) rotate(-1.5deg) -} - 76% { - -ms-transform: translate(0px, 0px) rotate(-1.5deg) -} - 78% { - -ms-transform: translate(0px, 0px) rotate(6.5deg) -} - 80% { - -ms-transform: translate(0px, 0px) rotate(3.5deg) -} - 82% { - -ms-transform: translate(0px, 0px) rotate(1.5deg) -} - 84% { - -ms-transform: translate(0px, 0px) rotate(-0.5deg) -} - 86% { - -ms-transform: translate(0px, 0px) rotate(2.5deg) -} - 88% { - -ms-transform: translate(0px, 0px) rotate(-6.5deg) -} - 90% { - -ms-transform: translate(0px, 0px) rotate(2.5deg) -} - 92% { - -ms-transform: translate(0px, 0px) rotate(6.5deg) -} - 94% { - -ms-transform: translate(0px, 0px) rotate(-7.5deg) -} - 96% { - -ms-transform: translate(0px, 0px) rotate(6.5deg) -} - 98% { - -ms-transform: translate(0px, 0px) rotate(-4.5deg) -} -} -@keyframes shake-rotate { - 0% { - transform: translate(0px, 0px) rotate(0deg) -} - 2% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 4% { - transform: translate(0px, 0px) rotate(-4.5deg) -} - 6% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 8% { - transform: translate(0px, 0px) rotate(4.5deg) -} - 10% { - transform: translate(0px, 0px) rotate(-5.5deg) -} - 12% { - transform: translate(0px, 0px) rotate(-3.5deg) -} - 14% { - transform: translate(0px, 0px) rotate(-1.5deg) -} - 16% { - transform: translate(0px, 0px) rotate(-1.5deg) -} - 18% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 20% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 22% { - transform: translate(0px, 0px) rotate(6.5deg) -} - 24% { - transform: translate(0px, 0px) rotate(0.5deg) -} - 26% { - transform: translate(0px, 0px) rotate(-5.5deg) -} - 28% { - transform: translate(0px, 0px) rotate(-4.5deg) -} - 30% { - transform: translate(0px, 0px) rotate(-1.5deg) -} - 32% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 34% { - transform: translate(0px, 0px) rotate(0.5deg) -} - 36% { - transform: translate(0px, 0px) rotate(6.5deg) -} - 38% { - transform: translate(0px, 0px) rotate(-6.5deg) -} - 40% { - transform: translate(0px, 0px) rotate(3.5deg) -} - 42% { - transform: translate(0px, 0px) rotate(-4.5deg) -} - 44% { - transform: translate(0px, 0px) rotate(5.5deg) -} - 46% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 48% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 50% { - transform: translate(0px, 0px) rotate(5.5deg) -} - 52% { - transform: translate(0px, 0px) rotate(-1.5deg) -} - 54% { - transform: translate(0px, 0px) rotate(5.5deg) -} - 56% { - transform: translate(0px, 0px) rotate(-7.5deg) -} - 58% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 60% { - transform: translate(0px, 0px) rotate(6.5deg) -} - 62% { - transform: translate(0px, 0px) rotate(1.5deg) -} - 64% { - transform: translate(0px, 0px) rotate(-7.5deg) -} - 66% { - transform: translate(0px, 0px) rotate(-2.5deg) -} - 68% { - transform: translate(0px, 0px) rotate(3.5deg) -} - 70% { - transform: translate(0px, 0px) rotate(-4.5deg) -} - 72% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 74% { - transform: translate(0px, 0px) rotate(2.5deg) -} - 76% { - transform: translate(0px, 0px) rotate(-2.5deg) -} - 78% { - transform: translate(0px, 0px) rotate(-0.5deg) -} - 80% { - transform: translate(0px, 0px) rotate(-3.5deg) -} - 82% { - transform: translate(0px, 0px) rotate(5.5deg) -} - 84% { - transform: translate(0px, 0px) rotate(-1.5deg) -} - 86% { - transform: translate(0px, 0px) rotate(-1.5deg) -} - 88% { - transform: translate(0px, 0px) rotate(4.5deg) -} - 90% { - transform: translate(0px, 0px) rotate(5.5deg) -} - 92% { - transform: translate(0px, 0px) rotate(4.5deg) -} - 94% { - transform: translate(0px, 0px) rotate(-1.5deg) -} - 96% { - transform: translate(0px, 0px) rotate(3.5deg) -} - 98% { - transform: translate(0px, 0px) rotate(-7.5deg) -} -} -@-webkit-keyframes shake-opacity { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg); - opacity: 0.7 -} - 10% { - -webkit-transform: translate(-4px, 1px) rotate(-1.5deg); - opacity: 0.1 -} - 20% { - -webkit-transform: translate(-4px, -4px) rotate(-2.5deg); - opacity: 0.4 -} - 30% { - -webkit-transform: translate(-3px, -5px) rotate(-1.5deg); - opacity: 0 -} - 40% { - -webkit-transform: translate(0px, 0px) rotate(0.5deg); - opacity: 0.6 -} - 50% { - -webkit-transform: translate(0px, 0px) rotate(-2.5deg); - opacity: 0.8 -} - 60% { - -webkit-transform: translate(-5px, -2px) rotate(1.5deg); - opacity: 0.4 -} - 70% { - -webkit-transform: translate(-1px, 3px) rotate(-0.5deg); - opacity: 0.1 -} - 80% { - -webkit-transform: translate(-2px, -2px) rotate(1.5deg); - opacity: 0.2 -} - 90% { - -webkit-transform: translate(-3px, -3px) rotate(1.5deg); - opacity: 0.3 -} -} -@-ms-keyframes shake-opacity { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg); - opacity: 0.9 -} - 10% { - -ms-transform: translate(0px, -4px) rotate(-1.5deg); - opacity: 0.9 -} - 20% { - -ms-transform: translate(-2px, 0px) rotate(0.5deg); - opacity: 0 -} - 30% { - -ms-transform: translate(-1px, 1px) rotate(-2.5deg); - opacity: 0.8 -} - 40% { - -ms-transform: translate(-2px, 4px) rotate(-1.5deg); - opacity: 0.9 -} - 50% { - -ms-transform: translate(-4px, 2px) rotate(-2.5deg); - opacity: 0.1 -} - 60% { - -ms-transform: translate(3px, 0px) rotate(0.5deg); - opacity: 0 -} - 70% { - -ms-transform: translate(-4px, -5px) rotate(-0.5deg); - opacity: 0 -} - 80% { - -ms-transform: translate(4px, -1px) rotate(1.5deg); - opacity: 0.7 -} - 90% { - -ms-transform: translate(4px, 0px) rotate(1.5deg); - opacity: 0.9 -} -} -@keyframes shake-opacity { - 0% { - transform: translate(0px, 0px) rotate(0deg); - opacity: 0.6 -} - 10% { - transform: translate(-2px, -1px) rotate(-0.5deg); - opacity: 0.5 -} - 20% { - transform: translate(-4px, 4px) rotate(1.5deg); - opacity: 0.4 -} - 30% { - transform: translate(-4px, -1px) rotate(-1.5deg); - opacity: 0.8 -} - 40% { - transform: translate(-2px, -1px) rotate(-2.5deg); - opacity: 0.3 -} - 50% { - transform: translate(-4px, 1px) rotate(-2.5deg); - opacity: 0.5 -} - 60% { - transform: translate(-2px, 4px) rotate(0.5deg); - opacity: 0.1 -} - 70% { - transform: translate(-3px, 1px) rotate(-0.5deg); - opacity: 0.4 -} - 80% { - transform: translate(0px, 0px) rotate(-0.5deg); - opacity: 0.5 -} - 90% { - transform: translate(2px, -1px) rotate(-2.5deg); - opacity: 0.8 -} -} -@-webkit-keyframes shake-crazy { - 0% { - -webkit-transform: translate(0px, 0px) rotate(0deg); - opacity: 0.6 -} - 10% { - -webkit-transform: translate(14px, 19px) rotate(-1deg); - opacity: 0.8 -} - 20% { - -webkit-transform: translate(14px, 11px) rotate(5deg); - opacity: 0.7 -} - 30% { - -webkit-transform: translate(9px, -6px) rotate(-9deg); - opacity: 0.9 -} - 40% { - -webkit-transform: translate(0px, -19px) rotate(-6deg); - opacity: 0.6 -} - 50% { - -webkit-transform: translate(16px, 19px) rotate(9deg); - opacity: 0.7 -} - 60% { - -webkit-transform: translate(-11px, -10px) rotate(4deg); - opacity: 0.4 -} - 70% { - -webkit-transform: translate(-1px, 13px) rotate(-9deg); - opacity: 0.2 -} - 80% { - -webkit-transform: translate(-9px, -16px) rotate(0deg); - opacity: 0.1 -} - 90% { - -webkit-transform: translate(3px, 2px) rotate(-2deg); - opacity: 0.7 -} -} -@-ms-keyframes shake-crazy { - 0% { - -ms-transform: translate(0px, 0px) rotate(0deg); - opacity: 0.8 -} - 10% { - -ms-transform: translate(18px, -4px) rotate(9deg); - opacity: 0.2 -} - 20% { - -ms-transform: translate(6px, 1px) rotate(8deg); - opacity: 0.8 -} - 30% { - -ms-transform: translate(-4px, 9px) rotate(8deg); - opacity: 0.2 -} - 40% { - -ms-transform: translate(-13px, 1px) rotate(7deg); - opacity: 0.5 -} - 50% { - -ms-transform: translate(-19px, 16px) rotate(-5deg); - opacity: 0.3 -} - 60% { - -ms-transform: translate(9px, 16px) rotate(7deg); - opacity: 0.3 -} - 70% { - -ms-transform: translate(-8px, -6px) rotate(-6deg); - opacity: 0.8 -} - 80% { - -ms-transform: translate(12px, 14px) rotate(-4deg); - opacity: 0.2 -} - 90% { - -ms-transform: translate(-12px, 12px) rotate(-8deg); - opacity: 0.2 -} -} -@keyframes shake-crazy { - 0% { - transform: translate(0px, 0px) rotate(0deg); - opacity: 0.4 -} - 10% { - transform: translate(3px, 10px) rotate(-1deg); - opacity: 0.8 -} - 20% { - transform: translate(5px, 14px) rotate(-3deg); - opacity: 0.5 -} - 30% { - transform: translate(14px, 3px) rotate(4deg); - opacity: 0.6 -} - 40% { - transform: translate(-17px, 0px) rotate(9deg); - opacity: 0.7 -} - 50% { - transform: translate(1px, 17px) rotate(-4deg); - opacity: 0.7 -} - 60% { - transform: translate(9px, -4px) rotate(-10deg); - opacity: 0.2 -} - 70% { - transform: translate(13px, 7px) rotate(7deg); - opacity: 0.4 -} - 80% { - transform: translate(10px, 12px) rotate(9deg); - opacity: 0.1 -} - 90% { - transform: translate(0px, 3px) rotate(5deg); - opacity: 0.6 -} -} -/* ������������֮�� www.lanrenzhijia.com */ \ No newline at end of file diff --git a/personcentor/src/main/resources/static/css/style.css b/personcentor/src/main/resources/static/css/style.css deleted file mode 100644 index 3c297432e5b080f62ef42082cc812bb053705073..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/css/style.css +++ /dev/null @@ -1,163 +0,0 @@ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td { - margin: 0; - padding: 0; - border: 0; - outline: 0; - vertical-align: baseline; - background: transparent; -} -body { - line-height: 1; -} -ol, ul { - list-style: none; -} -a{ - text-decoration:none; - } -blockquote, q { - quotes: none; -} -blockquote:before, blockquote:after, -q:before, q:after { - content: ''; - content: none; -} - -/* remember to define focus styles! */ -:focus { - outline: 0; -} - -/* remember to highlight inserts somehow! */ -ins { - text-decoration: none; -} -del { - text-decoration: line-through; -} - -/* tables still need 'cellspacing="0"' in the markup */ -table { - border-collapse: collapse; - border-spacing: 0; -} -.clear_border{ - border:none !important; - } -.clear_bg{ - background:none !important; -} -.margin_left{ - margin-left:0px !important; - } -.color_r{ - color:#f7350a !important; - } -.color_r2{ - color:#f7350a !important; - font-weight: bold; -} -.color_w{ - color:#fff !important; - } -.color_d{ - color:#000 !important; - } -.color_g{ - color:#b0b0b0 !important; - } -.color_g2{ - color:#378001 !important; - } -.color_y{ - color:#ff5400 !important; - } -.reveal-modal-bg { - position: fixed; - height: 100%; - width: 100%; - background: #000; - z-index:1; - top: 0; - left: 0; - opacity: 0.5; - filter: alpha(opacity:50); -} -.reveal-modal-bg2 { - position: fixed; - height: 100%; - width: 100%; - background: #fff; - z-index:100; - top: 0; - left: 0; - opacity: 0.7; - filter: alpha(opacity:70); -} -.margin{ - margin:0; - } -.puff_left{ - float:left !important; - } -.puff_right{ - float:right !important; - } -.margin_top{ - margin-top:0px !important; - } -.color_border{ - border:1px #ff6600 solid !important; - } -.text_c{ - text-align:center !important; - } -.text_r{ - text-align:right !important; -} -.dis_none{ - display:none; - } -/*橙色*/ -.bg_01{ - background-color:#ca0b0b !important; - } -.bg_02{ - background-color:#ffe79d !important; - } -.bg_03{ - background-color:#ff8712 !important; - } -.bg_04{ - background:#666 !important; - color: #fff !important; - } - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/personcentor/src/main/resources/static/font/FontAwesome.otf b/personcentor/src/main/resources/static/font/FontAwesome.otf deleted file mode 100644 index 70125459f7d593b79cabc75bd60b91943aa65e93..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/font/FontAwesome.otf and /dev/null differ diff --git a/personcentor/src/main/resources/static/font/fontawesome-webfont.eot b/personcentor/src/main/resources/static/font/fontawesome-webfont.eot deleted file mode 100644 index 0662cb96bfb78cb2603df4bc9995314bd6806312..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/font/fontawesome-webfont.eot and /dev/null differ diff --git a/personcentor/src/main/resources/static/font/fontawesome-webfont.svg b/personcentor/src/main/resources/static/font/fontawesome-webfont.svg deleted file mode 100644 index 2edb4ec34cbc0b6559b808a3a1f31e0e587742ff..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/font/fontawesome-webfont.svg +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/personcentor/src/main/resources/static/font/fontawesome-webfont.ttf b/personcentor/src/main/resources/static/font/fontawesome-webfont.ttf deleted file mode 100644 index d3659246915cacb0c9204271f1f9fc5f77049eac..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/font/fontawesome-webfont.ttf and /dev/null differ diff --git a/personcentor/src/main/resources/static/font/fontawesome-webfont.woff b/personcentor/src/main/resources/static/font/fontawesome-webfont.woff deleted file mode 100644 index b9bd17e158d87fb1477f7ac3ddbb5a676f3c26d2..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/font/fontawesome-webfont.woff and /dev/null differ diff --git a/personcentor/src/main/resources/static/font/iconfont.eot b/personcentor/src/main/resources/static/font/iconfont.eot deleted file mode 100644 index a24b99879fa25c8589ca5c655267c38e0bce0423..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/font/iconfont.eot and /dev/null differ diff --git a/personcentor/src/main/resources/static/font/iconfont.svg b/personcentor/src/main/resources/static/font/iconfont.svg deleted file mode 100644 index ce72a551e3c82d372f698a7093e076a96f6adb25..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/font/iconfont.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - -Created by FontForge 20120731 at Fri Mar 20 11:22:39 2015 - By Ads - - - - - - - - - - - - - - - - - - - diff --git a/personcentor/src/main/resources/static/font/iconfont.ttf b/personcentor/src/main/resources/static/font/iconfont.ttf deleted file mode 100644 index c3e7f5a13e7fbeeb443631d69b8483c925dfcf63..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/font/iconfont.ttf and /dev/null differ diff --git a/personcentor/src/main/resources/static/font/iconfont.woff b/personcentor/src/main/resources/static/font/iconfont.woff deleted file mode 100644 index 672198315fab5a6052660018aa3fef6149d7aaa9..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/font/iconfont.woff and /dev/null differ diff --git a/personcentor/src/main/resources/static/iconfont.css b/personcentor/src/main/resources/static/iconfont.css deleted file mode 100644 index 6321cc7f8e0bd67115fa2d86b173114d42552e71..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/iconfont.css +++ /dev/null @@ -1,25 +0,0 @@ - -@font-face {font-family: "iconfont"; - src: url('iconfont.eot'); /* IE9*/ - src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('iconfont.woff') format('woff'), /* chrome、firefox */ - url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ - url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */ -} - -.iconfont { - font-family:"iconfont" !important; - font-size:16px; - font-style:normal; - -webkit-font-smoothing: antialiased; - -webkit-text-stroke-width: 0.2px; - -moz-osx-font-smoothing: grayscale; -} -.icon-weixin:before { content: "\e600"; } -.icon-dianhua:before { content: "\e601"; } -.icon-Go:before { content: "\e606"; } -.icon-youxiang:before { content: "\e602"; } -.icon-xinlang:before { content: "\e603"; } -.icon-coordinate:before { content: "\e604"; } -.icon-you:before { content: "\e605"; } -.icon-xiangyouhover:before { content: "\e607"; } diff --git a/personcentor/src/main/resources/static/img/20160307231006_PL4ia.jpg b/personcentor/src/main/resources/static/img/20160307231006_PL4ia.jpg deleted file mode 100644 index b98c2475521d4ca4efbf2a78a278ebe15af20c40..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/20160307231006_PL4ia.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/4-140H2221J8.jpg b/personcentor/src/main/resources/static/img/4-140H2221J8.jpg deleted file mode 100644 index fa16e2ed6c38c495bbb1e7a295970c5f82b4c223..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/4-140H2221J8.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/Img346436473.jpg b/personcentor/src/main/resources/static/img/Img346436473.jpg deleted file mode 100644 index 90e9fbbe9294a92d9f4eb2844814abd2dc238393..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/Img346436473.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/Thumbs.db b/personcentor/src/main/resources/static/img/Thumbs.db deleted file mode 100644 index 3249565071b4ca767891b9305d6f20a643434f48..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/Thumbs.db and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/banner.jpg b/personcentor/src/main/resources/static/img/banner.jpg deleted file mode 100644 index 04fa04885faa839d0427c13022b9a33d1a681f97..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/banner.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/er.png b/personcentor/src/main/resources/static/img/er.png deleted file mode 100644 index 13ebaaeeb6c863be385ab8b6d2a28e4514d26462..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/er.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/fangwu.png b/personcentor/src/main/resources/static/img/fangwu.png deleted file mode 100644 index 11886141ed9d51a8e8093fe47bf2352e0c04fd17..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/fangwu.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/gengduo.png b/personcentor/src/main/resources/static/img/gengduo.png deleted file mode 100644 index 1c52e54c519bef8b97fbb7d360cdd40f05e10396..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/gengduo.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_add.png b/personcentor/src/main/resources/static/img/icon_add.png deleted file mode 100644 index f445f83358e5e7924ddb7af2c44206e44c634dd9..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_add.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_bj.png b/personcentor/src/main/resources/static/img/icon_bj.png deleted file mode 100644 index 9ed9264a0035aea61266fed9f7b04123da236e89..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_bj.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_bq.png b/personcentor/src/main/resources/static/img/icon_bq.png deleted file mode 100644 index 90796654013984d48f61c89f91e4e0e542aee1c2..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_bq.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_cy.png b/personcentor/src/main/resources/static/img/icon_cy.png deleted file mode 100644 index 151b69d8ec6ace51fc6d41418d0719ff283cfe18..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_cy.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_cyfw.png b/personcentor/src/main/resources/static/img/icon_cyfw.png deleted file mode 100644 index 6c467f6d0074ac7685bc38236e0b6ede3405d784..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_cyfw.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_cysb.png b/personcentor/src/main/resources/static/img/icon_cysb.png deleted file mode 100644 index 21f978faa6710842b664807bae32e8299d377067..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_cysb.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_ddcl.png b/personcentor/src/main/resources/static/img/icon_ddcl.png deleted file mode 100644 index 1de5c52cb1206810352a443ab2641e8fddfeccf4..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_ddcl.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_dzg.png b/personcentor/src/main/resources/static/img/icon_dzg.png deleted file mode 100644 index 347f466b63ab5551afccdb17887a8c077ecb88fb..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_dzg.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_et.png b/personcentor/src/main/resources/static/img/icon_et.png deleted file mode 100644 index 02fb14910dd9f380696ea25901f4ee5f5d02b8f8..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_et.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_fk.png b/personcentor/src/main/resources/static/img/icon_fk.png deleted file mode 100644 index 9b6d7831d874b0f539f57490127785bdcdcc73cb..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_fk.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_gb.png b/personcentor/src/main/resources/static/img/icon_gb.png deleted file mode 100644 index cd91b0bae68e1153dd3fa35b1f8686915ad3daff..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_gb.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_gz.png b/personcentor/src/main/resources/static/img/icon_gz.png deleted file mode 100644 index 1bbe6d85a464fd956022a466ef80c671b8cba544..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_gz.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_hd.png b/personcentor/src/main/resources/static/img/icon_hd.png deleted file mode 100644 index 2327ba64653136e06dc7c274c463255ec1790570..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_hd.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_hj.png b/personcentor/src/main/resources/static/img/icon_hj.png deleted file mode 100644 index b6ba55f1fd62de7901c3a2b038ecee22b597eb5f..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_hj.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jb.png b/personcentor/src/main/resources/static/img/icon_jb.png deleted file mode 100644 index e583cf52f7a1a577a023b31fb287dc1d853b02c8..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jb.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jc.png b/personcentor/src/main/resources/static/img/icon_jc.png deleted file mode 100644 index 88f6a5206c79ae8ff0197335db303901383e5ad8..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jc.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jjqy.png b/personcentor/src/main/resources/static/img/icon_jjqy.png deleted file mode 100644 index b702062ce3316c5e9f0c43273d4e1218edaf4d90..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jjqy.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jk.png b/personcentor/src/main/resources/static/img/icon_jk.png deleted file mode 100644 index 7edd7343375cf1b4b6ffe05ffafede3558435f87..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jk.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jkda.png b/personcentor/src/main/resources/static/img/icon_jkda.png deleted file mode 100644 index 23ea5665e70edb841f0e183408da5cd83f6ea3da..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jkda.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jkjz.png b/personcentor/src/main/resources/static/img/icon_jkjz.png deleted file mode 100644 index 6bb76afa94628deecd105775ea81d90fb0e19d05..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jkjz.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jkzx.png b/personcentor/src/main/resources/static/img/icon_jkzx.png deleted file mode 100644 index 032b4900236d2c1e4851d6baf8b636c10d249df0..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jkzx.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jq.png b/personcentor/src/main/resources/static/img/icon_jq.png deleted file mode 100644 index 8010f7d294f1aa8ea3645f006fba974367cbf5c1..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jq.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jz.png b/personcentor/src/main/resources/static/img/icon_jz.png deleted file mode 100644 index a31f0bd9ed7686ddea84c6b1c2156850a0b7684a..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jz.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_jz2.png b/personcentor/src/main/resources/static/img/icon_jz2.png deleted file mode 100644 index 0b9bf88b9545a3b007e3ba6d562e43f29c8b80f9..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_jz2.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_km.png b/personcentor/src/main/resources/static/img/icon_km.png deleted file mode 100644 index 86a5fe7bd7355b469448435b88f242dcdea4f7e3..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_km.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_kt.png b/personcentor/src/main/resources/static/img/icon_kt.png deleted file mode 100644 index 6fad48f6dd46727269fafb9325d90eae1a74110c..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_kt.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_list.png b/personcentor/src/main/resources/static/img/icon_list.png deleted file mode 100644 index 8c559b194624a22c7d8bb4e5110150f6fce49456..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_list.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_mj.png b/personcentor/src/main/resources/static/img/icon_mj.png deleted file mode 100644 index a0ad1a2b8a62ff05fe1826dd77b0e73ccfaa7fa2..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_mj.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_mrfj.png b/personcentor/src/main/resources/static/img/icon_mrfj.png deleted file mode 100644 index f4975bf04800457e8cfb262e376059a7b63c14e6..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_mrfj.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_mrmj.png b/personcentor/src/main/resources/static/img/icon_mrmj.png deleted file mode 100644 index 7adff544e2c84ddad9adfad621b863d4f74e4c05..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_mrmj.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_phone.png b/personcentor/src/main/resources/static/img/icon_phone.png deleted file mode 100644 index dc6762039b6279ebe214168f65e1b2f2b143157b..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_phone.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sb.png b/personcentor/src/main/resources/static/img/icon_sb.png deleted file mode 100644 index fe55630186439cb79445d49c7b242c81ad1a8458..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sb.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sc.png b/personcentor/src/main/resources/static/img/icon_sc.png deleted file mode 100644 index b7c47201f313ca3b8263802dba3bf42269107453..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sc.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sm.png b/personcentor/src/main/resources/static/img/icon_sm.png deleted file mode 100644 index 3f6ccd172d0abc0812f119129cce6d1baa5f4c51..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sm.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sm2.png b/personcentor/src/main/resources/static/img/icon_sm2.png deleted file mode 100644 index ee806382dde04561cdd38a4ff4e270a75e347c19..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sm2.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sos.png b/personcentor/src/main/resources/static/img/icon_sos.png deleted file mode 100644 index 9e8adf9c746431d1f5caa1da5821ce4f7c4fbda1..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sos.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sp.png b/personcentor/src/main/resources/static/img/icon_sp.png deleted file mode 100644 index 706c329945f9a448f5ca686aa8cc30b5b22d0768..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sp.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sq.png b/personcentor/src/main/resources/static/img/icon_sq.png deleted file mode 100644 index 48d898d883e007011f77c9ac824148213e0728ff..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sq.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sq01.png b/personcentor/src/main/resources/static/img/icon_sq01.png deleted file mode 100644 index 440e55ebc85a568da250219c17fcfacb43e81682..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sq01.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sq02.png b/personcentor/src/main/resources/static/img/icon_sq02.png deleted file mode 100644 index 8bfc6d08082842b14d255715e9a289c8db6f6537..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sq02.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sq03.png b/personcentor/src/main/resources/static/img/icon_sq03.png deleted file mode 100644 index 279680428ded20177e577ff8af699b7669f7d01b..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sq03.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sq04.png b/personcentor/src/main/resources/static/img/icon_sq04.png deleted file mode 100644 index fcd7b2985054658b0a2cee87eaa96fc70b5a7eb0..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sq04.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sq05.png b/personcentor/src/main/resources/static/img/icon_sq05.png deleted file mode 100644 index f28dbde0c6bd30d55f277d79470398d5f5315f8f..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sq05.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sq06.png b/personcentor/src/main/resources/static/img/icon_sq06.png deleted file mode 100644 index 828f1396338745457db7d54f2c8ef58b73ff024c..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sq06.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sqh.png b/personcentor/src/main/resources/static/img/icon_sqh.png deleted file mode 100644 index 9139fa6c3f7b9da5608cd9bb75a09228e6e089d0..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sqh.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sy.png b/personcentor/src/main/resources/static/img/icon_sy.png deleted file mode 100644 index fb80ec6581d1307f46737c95f633fccf47819c4d..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sy.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sys.png b/personcentor/src/main/resources/static/img/icon_sys.png deleted file mode 100644 index 5e5addfedfbe3f74c7201f7c500c4ae212406b1c..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sys.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_sysb.png b/personcentor/src/main/resources/static/img/icon_sysb.png deleted file mode 100644 index 89266890a22cded3d675f2f3022a47698828e20c..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_sysb.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_tc.png b/personcentor/src/main/resources/static/img/icon_tc.png deleted file mode 100644 index 8c49544455db847ec2cd3ee7750c2669da5ada2c..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_tc.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_tg01.png b/personcentor/src/main/resources/static/img/icon_tg01.png deleted file mode 100644 index e7b81b5e630024eebdbc219f81239c2613fc9ade..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_tg01.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_tg02.png b/personcentor/src/main/resources/static/img/icon_tg02.png deleted file mode 100644 index b0da013bf0039bf773007a21dc9a148d7701b131..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_tg02.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_tg03.png b/personcentor/src/main/resources/static/img/icon_tg03.png deleted file mode 100644 index 97c3a0211b1135a5e1fa7a33281949fcdc9ba116..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_tg03.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_tg04.png b/personcentor/src/main/resources/static/img/icon_tg04.png deleted file mode 100644 index 41fe18a85960ec8ff53d6e932649f5bd0c6737c7..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_tg04.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_tj.png b/personcentor/src/main/resources/static/img/icon_tj.png deleted file mode 100644 index 6dcc983db9708ef64ad09e17cf8a3878b5881e2a..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_tj.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_ts.png b/personcentor/src/main/resources/static/img/icon_ts.png deleted file mode 100644 index e5cd15e48a40a11e16d974efd8db9ff244c479f1..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_ts.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_wc.png b/personcentor/src/main/resources/static/img/icon_wc.png deleted file mode 100644 index b49e482c38e7a20e698c6f6caae9efaf497bad5c..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_wc.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_wc2.png b/personcentor/src/main/resources/static/img/icon_wc2.png deleted file mode 100644 index 6fb5bbc4302df712f85532c5bf48a146c20186a7..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_wc2.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_wifi.png b/personcentor/src/main/resources/static/img/icon_wifi.png deleted file mode 100644 index ad8b2b3d78a10a92b63ef7d97e7e0700a02b21ae..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_wifi.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_wifi2.png b/personcentor/src/main/resources/static/img/icon_wifi2.png deleted file mode 100644 index f5dfdd904b11964b1fe929d070eed72b00d67095..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_wifi2.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_wy.png b/personcentor/src/main/resources/static/img/icon_wy.png deleted file mode 100644 index e4fc7efadcf2466e6ff606690900f84d369ed2b6..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_wy.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_xhyd.png b/personcentor/src/main/resources/static/img/icon_xhyd.png deleted file mode 100644 index 9f72af4cf0ed44f307ec75a852c6b07c3968f60d..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_xhyd.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_xq.png b/personcentor/src/main/resources/static/img/icon_xq.png deleted file mode 100644 index f0b954265710f24b64775ebdbb4658f8930d3bd8..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_xq.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_xx.png b/personcentor/src/main/resources/static/img/icon_xx.png deleted file mode 100644 index eaf05e701c2d46a638e3da8928dd5d87300acee6..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_xx.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_yd.png b/personcentor/src/main/resources/static/img/icon_yd.png deleted file mode 100644 index a026605d4fe8e0092e337b8132e74ea9504e90f2..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_yd.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_yq.png b/personcentor/src/main/resources/static/img/icon_yq.png deleted file mode 100644 index c54fed672e1c6a22c5e543441a4a2c983b904e9b..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_yq.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_yy.png b/personcentor/src/main/resources/static/img/icon_yy.png deleted file mode 100644 index 64cabb717c9f5526d42b74f8a4e1a5dc3210c5ef..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_yy.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_yzm.png b/personcentor/src/main/resources/static/img/icon_yzm.png deleted file mode 100644 index 4dfad572ea4982f72a24aff4292fbbecb90947ac..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_yzm.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_zd.png b/personcentor/src/main/resources/static/img/icon_zd.png deleted file mode 100644 index f70ca8f2a2e923701d063c25f3c96011fbddbdca..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_zd.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_zmkm.png b/personcentor/src/main/resources/static/img/icon_zmkm.png deleted file mode 100644 index 1b3bcb493c07375568c070fe2374f0a48104e164..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_zmkm.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_zn.png b/personcentor/src/main/resources/static/img/icon_zn.png deleted file mode 100644 index 8f45c8064295c02668f4ef0e0df0ecd5a1f09adf..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_zn.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/icon_zs.png b/personcentor/src/main/resources/static/img/icon_zs.png deleted file mode 100644 index 205cd09bff3708aa18f19614254153c1db8c1f59..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/icon_zs.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/jiaofei.png b/personcentor/src/main/resources/static/img/jiaofei.png deleted file mode 100644 index 83968abbf33405afa30cbcaaf537ba3ad8149b77..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/jiaofei.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/jiazheng.png b/personcentor/src/main/resources/static/img/jiazheng.png deleted file mode 100644 index 3b2794d64a2b442876b79fe2e0463e88e5f17741..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/jiazheng.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/kuaidi.png b/personcentor/src/main/resources/static/img/kuaidi.png deleted file mode 100644 index b2f4c01420d0e5ab111c550b95da61f4ca438f72..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/kuaidi.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/luntan.png b/personcentor/src/main/resources/static/img/luntan.png deleted file mode 100644 index e0681ac20ed64e077219897237ae6c7b1c531c37..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/luntan.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/pic1.jpg b/personcentor/src/main/resources/static/img/pic1.jpg deleted file mode 100644 index 7b7625650dbcf850fe671ce298d62e766bc523fc..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/pic1.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/pic2.jpg b/personcentor/src/main/resources/static/img/pic2.jpg deleted file mode 100644 index 1bf34f4dd5012a9aa96b7105268595095907f54a..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/pic2.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/pic3.jpg b/personcentor/src/main/resources/static/img/pic3.jpg deleted file mode 100644 index 99f63ccdbfc9f5ada08dafe983d171ac219aac5b..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/pic3.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/pic4.jpg b/personcentor/src/main/resources/static/img/pic4.jpg deleted file mode 100644 index bfdc52c784f47ca4ee48f4e214728af2e059559c..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/pic4.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/pic5.jpg b/personcentor/src/main/resources/static/img/pic5.jpg deleted file mode 100644 index ae0605425a0b7df8a546560a8c33cca47942f5a4..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/pic5.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/pic6.jpg b/personcentor/src/main/resources/static/img/pic6.jpg deleted file mode 100644 index c9e5dfd30031dedb2c28a43ab1b57c6b00c44ae4..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/pic6.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/pic7.jpg b/personcentor/src/main/resources/static/img/pic7.jpg deleted file mode 100644 index 37e1443cf2e9179d27d930ed8014b27b4efa16c2..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/pic7.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/pic8.jpg b/personcentor/src/main/resources/static/img/pic8.jpg deleted file mode 100644 index 27f65da90ab62e6b4248a8e2c17a68b829e936f8..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/pic8.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/qq_icon.jpg b/personcentor/src/main/resources/static/img/qq_icon.jpg deleted file mode 100644 index 9618579d75d0e81e6ad538f1e87bbdbae04df670..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/qq_icon.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/stopcar.png b/personcentor/src/main/resources/static/img/stopcar.png deleted file mode 100644 index 8a89611285ae8ff19f1c8cf1ba61054d0b8429ed..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/stopcar.png and /dev/null differ diff --git a/personcentor/src/main/resources/static/img/tkm002_111926.jpg b/personcentor/src/main/resources/static/img/tkm002_111926.jpg deleted file mode 100644 index d2d162599eb34972d0be65c367fbe37ac1115c8e..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/img/tkm002_111926.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/jquery/css/font/iconfont.eot b/personcentor/src/main/resources/static/jquery/css/font/iconfont.eot deleted file mode 100644 index a24b99879fa25c8589ca5c655267c38e0bce0423..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/jquery/css/font/iconfont.eot and /dev/null differ diff --git a/personcentor/src/main/resources/static/jquery/css/font/iconfont.svg b/personcentor/src/main/resources/static/jquery/css/font/iconfont.svg deleted file mode 100644 index ce72a551e3c82d372f698a7093e076a96f6adb25..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/jquery/css/font/iconfont.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - -Created by FontForge 20120731 at Fri Mar 20 11:22:39 2015 - By Ads - - - - - - - - - - - - - - - - - - - diff --git a/personcentor/src/main/resources/static/jquery/css/font/iconfont.ttf b/personcentor/src/main/resources/static/jquery/css/font/iconfont.ttf deleted file mode 100644 index c3e7f5a13e7fbeeb443631d69b8483c925dfcf63..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/jquery/css/font/iconfont.ttf and /dev/null differ diff --git a/personcentor/src/main/resources/static/jquery/css/font/iconfont.woff b/personcentor/src/main/resources/static/jquery/css/font/iconfont.woff deleted file mode 100644 index 672198315fab5a6052660018aa3fef6149d7aaa9..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/jquery/css/font/iconfont.woff and /dev/null differ diff --git a/personcentor/src/main/resources/static/jquery/css/iconfont.css b/personcentor/src/main/resources/static/jquery/css/iconfont.css deleted file mode 100644 index 6321cc7f8e0bd67115fa2d86b173114d42552e71..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/jquery/css/iconfont.css +++ /dev/null @@ -1,25 +0,0 @@ - -@font-face {font-family: "iconfont"; - src: url('iconfont.eot'); /* IE9*/ - src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('iconfont.woff') format('woff'), /* chrome、firefox */ - url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ - url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */ -} - -.iconfont { - font-family:"iconfont" !important; - font-size:16px; - font-style:normal; - -webkit-font-smoothing: antialiased; - -webkit-text-stroke-width: 0.2px; - -moz-osx-font-smoothing: grayscale; -} -.icon-weixin:before { content: "\e600"; } -.icon-dianhua:before { content: "\e601"; } -.icon-Go:before { content: "\e606"; } -.icon-youxiang:before { content: "\e602"; } -.icon-xinlang:before { content: "\e603"; } -.icon-coordinate:before { content: "\e604"; } -.icon-you:before { content: "\e605"; } -.icon-xiangyouhover:before { content: "\e607"; } diff --git a/personcentor/src/main/resources/static/jquery/css/style.css b/personcentor/src/main/resources/static/jquery/css/style.css deleted file mode 100644 index a2245e319b9e896c7230b9c388f1ae875d3606c3..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/jquery/css/style.css +++ /dev/null @@ -1,314 +0,0 @@ -body, div, ul, ol, li, p, i, em, h1, h2, h3, h4, a, strong, span, img, form, input, textarea, button{ - padding: 0; - margin:0; -} -body{ - font-family:"Microsoft YaHei", "Simsun", Tahoma, Arial,"Helvetica Neue","Hiragino Sans GB", "sans-self"; - font-size: 14px; - line-height: 24px; -} -@font-face {font-family: 'iconfont'; - src: url('font/iconfont.eot'); /* IE9*/ - src: url('font/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('font/iconfont.woff') format('woff'), /* chrome、firefox */ - url('font/iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ - url('font/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */ -} -input, textarea{ - outline: none; -} -li{ - list-style: none; -} -a{ - text-decoration: none; - color: inherit; -} -img{ - border: 0; -} -.pr{ - position: relative; -} -.pa{ - position: absolute; -} -.pf{ - position: fixed; -} -.f-l{ - float: left; -} -.f-r{ - float: right; -} -li, div, ul{ - *zoom:1; -} -li:after, div:after, ul:after{ - content: ''; - display: table; - clear: both; -} -.tran{ - transition:all 0.3s ease-out; - -webkit-transition:all 0.3s ease-out; - -moz-transition:all 0.3s ease-out; - -o-transition:all 0.3s ease-out; -} -.container{ - width: 1000px; - margin: 0 auto; -} -/*--------------样式重置------------*/ -/***********/ - -.login-banner{ - width: 100%; - background: url(../images/banner.jpg) center bottom no-repeat \9; - background: url(../images/banner.jpg) center bottom/cover no-repeat; -} -@media screen and (min-width: 320px) { - .login-banner{ - height: 100px; - } -} -@media screen and (min-width: 480px) { - .login-banner{ - height: 120px; - } -} -@media screen and (min-width: 640px) { - .login-banner{ - height: 160px; - } -} -@media screen and (min-width: 768px) { - .login-banner{ - height: 180px; - } -} -@media screen and (min-width: 1024px) { - .login-banner{ - height: 200px; - } -} -@media screen and (min-width: 1280px) { - .login-banner{ - height: 220px; - } -} -@media screen and (min-width: 1366px) { - .login-banner{ - height: 240px; - } -} -@media screen and (min-width: 1680px) { - .login-banner{ - height: 260px; - } -} -.login-banner{ - height: 260px \9; -} -.login-box{ - width: 320px; - margin:0 auto; - overflow-x: hidden; -} -.box-con{ - width: 1600px; -} -.login-con{ - width: 300px; - margin:0 10px; -} -.login-box .form-group{ - margin-top: 20px; -} - -.login-box input, .signup-form{ - width: 300px; - height:50px; - line-height: 48px \9; - padding-left: 10px; - border: 1px #d9d9d9 solid; - border-radius: 5px; - font-size: 14px; - box-sizing:border-box; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - transition:all 0.3s ease-out; - -webkit-transition:all 0.3s ease-out; - -moz-transition:all 0.3s ease-out; -} -.login-box input:focus{ - border-color: #03a9f4; - box-shadow: 0 0 15px #03a9f4; - -webkit-box-shadow: 0 0 15px #03a9f4; - -moz-box-shadow: 0 0 15px #03a9f4; -} -.login-box button{ - width: 300px; - height: 50px; - line-height: 50px; - font-size: 16px; - border: 0; - background-color: #03a9f4; - color: #fff; - border-radius: 5px; -} -.login-box button a{ - display: block; -} -.login-box button a:hover{ - padding-top: 3px; -} -.login-box button:hover{ - background-color: #0096da; -} -.from-line{ - height: 0; - overflow: hidden; - border-top: 1px #c2c2c2 solid; - margin-top: 20px; -} -.a-tag{ - position: relative; - display: block; - height: 48px; - border: 1px #c2c2c2 solid; - text-align: center; - line-height: 48px; - color: #c2c2c2; - border-radius: 5px; - background-color: #fff; -} -.blue-border{ - border:1px #03a9f4 solid; - color: #03a9f4; -} - -.a-tag:hover{ - background-color: #aaa; - color: #fff; -} -.blue-border:hover{ - background-color: #03a9f4; - color: #fff; -} -.a-tag i{ - position: absolute; - right: 20px; - top: 0; - font-size: 24px; - color: #fff; -} -.a-tag:hover i{ - right: 10px; -} -.signup, .other-way, .mimachongzhi, .mobile-success{ - width: 300px; - margin: 0 10px; -} - - -.signup-form { - margin-top: 20px; -} -.signup-form input{ - border: 0; - height: 48px; - width: 220px; -} -.signup-form input:focus{ - box-shadow:0 0 0 #fff; -} -.signup-form.border{ - border-color: #03a9f4; - box-shadow: 0 0 15px #03a9f4; - -webkit-box-shadow: 0 0 15px #03a9f4; - -moz-box-shadow: 0 0 15px #03a9f4; -} -.signup-form a{ - color: #03a9f4; -} -.view-clause{ - padding-top: 20px; - line-height: 14px; - text-align: center; - color: #808080; -} -.view-clause a{ - color: #03a9f4; -} -.view-clause a:hover{ - text-decoration: underline; -} -a.reacquire{ - color: #c1c1c1; -} -.error-notic{ - color: #ff4e00; - display: none; -} -.login-footer{ - position: fixed; - left: 0; - bottom: 0; - width: 100%; - padding: 10px 0; - border-top: 1px #c1c1c1 solid; - text-align: center; - font-size: 12px; - background-color: #fff; - line-height: 20px; -} -.login-footer h1{ - font-size: 18px; - font-weight: normal; -} -.login-nav{ - width: 100%; - height: 30px; - background-color: rgba(0,0,0,0.7); - color: #fff; - border-bottom: 1px #c1c1c1 solid; -} -.login-nav ul{ - padding-right: 50px; -} -.login-nav li{ - float: left; - line-height: 30px; - padding: 0 10px; -} -.login-nav a:hover{ - text-decoration: underline; - color: #03a9f4; -} -.mobile-success{ - padding-top: 20px; -} -.mobile-success p{ - text-align: center; - color: #666; -} -.mobile-success p span{ - font-weight: bold; - padding: 0 10px; -} -.mobile-success p a{ - color: #03a9f4; - padding-left: 5px; -} -.mobile-success p a:hover{ - text-decoration: underline; -} -.loading{ - position: absolute; - top: 10px; - right: 20px; - display: none; - -} diff --git a/personcentor/src/main/resources/static/jquery/images/banner.jpg b/personcentor/src/main/resources/static/jquery/images/banner.jpg deleted file mode 100644 index 6a97855128e7819a0691a938ce79f3258d74f6bd..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/jquery/images/banner.jpg and /dev/null differ diff --git a/personcentor/src/main/resources/static/jquery/images/loading.gif b/personcentor/src/main/resources/static/jquery/images/loading.gif deleted file mode 100644 index 8b81cf124b70364218f5eb98d4f49dcaefefc41e..0000000000000000000000000000000000000000 Binary files a/personcentor/src/main/resources/static/jquery/images/loading.gif and /dev/null differ diff --git a/personcentor/src/main/resources/static/jquery/js/jquery.js b/personcentor/src/main/resources/static/jquery/js/jquery.js deleted file mode 100644 index ee0233703da37c9cc42591620e0befa769cd6a2a..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/jquery/js/jquery.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.1 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; -f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() -{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/personcentor/src/main/resources/static/js/area.js b/personcentor/src/main/resources/static/js/area.js deleted file mode 100644 index d653e2a40d3ef69ee8ec1e700cce7277c4174dd8..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/js/area.js +++ /dev/null @@ -1,427 +0,0 @@ -/* -* 全国三级城市联动 js版 -* author: mrasong -* homepage: http://asong.us/ -* E-mail: mrasong#163.com -* version: 1.0.2 -* data: tencent -**/ -function Dsy(){ - this.Items = {}; -} -Dsy.prototype.add = function(id,iArray){ - this.Items[id] = iArray; -} -Dsy.prototype.Exists = function(id){ - if(typeof(this.Items[id]) == "undefined") return false; - return true; -} - -function change(v){ - var str="0"; - for(i=0;i0 || !v){ - if(dsy.Exists(str)){ - ar = dsy.Items[str]; - for(i=0;i - * @license MIT - */ - e.exports=function(e){return null!=e&&(n(e)||r(e)||!!e._isBuffer)}},function(e,t,n){"use strict";function r(e){this.defaults=e,this.interceptors={request:new s,response:new s}}var o=n(6),i=n(2),s=n(17),u=n(18);r.prototype.request=function(e){"string"==typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),e=i.merge(o,{method:"get"},this.defaults,e),e.method=e.method.toLowerCase();var t=[u,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},i.forEach(["delete","get","head","options"],function(e){r.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))}}),i.forEach(["post","put","patch"],function(e){r.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))}}),e.exports=r},function(e,t,n){"use strict";function r(e,t){!i.isUndefined(e)&&i.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function o(){var e;return"undefined"!=typeof XMLHttpRequest?e=n(8):"undefined"!=typeof process&&(e=n(8)),e}var i=n(2),s=n(7),u={"Content-Type":"application/x-www-form-urlencoded"},a={adapter:o(),transformRequest:[function(e,t){return s(t,"Content-Type"),i.isFormData(e)||i.isArrayBuffer(e)||i.isBuffer(e)||i.isStream(e)||i.isFile(e)||i.isBlob(e)?e:i.isArrayBufferView(e)?e.buffer:i.isURLSearchParams(e)?(r(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):i.isObject(e)?(r(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};a.headers={common:{Accept:"application/json, text/plain, */*"}},i.forEach(["delete","get","head"],function(e){a.headers[e]={}}),i.forEach(["post","put","patch"],function(e){a.headers[e]=i.merge(u)}),e.exports=a},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(9),i=n(12),s=n(13),u=n(14),a=n(10),c="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||n(15);e.exports=function(e){return new Promise(function(t,f){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest,h="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in l||u(e.url)||(l=new window.XDomainRequest,h="onload",m=!0,l.onprogress=function(){},l.ontimeout=function(){}),e.auth){var y=e.auth.username||"",w=e.auth.password||"";d.Authorization="Basic "+c(y+":"+w)}if(l.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l[h]=function(){if(l&&(4===l.readyState||m)&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in l?s(l.getAllResponseHeaders()):null,r=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:r,status:1223===l.status?204:l.status,statusText:1223===l.status?"No Content":l.statusText,headers:n,config:e,request:l};o(t,f,i),l=null}},l.onerror=function(){f(a("Network Error",e,null,l)),l=null},l.ontimeout=function(){f(a("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=n(16),v=(e.withCredentials||u(e.url))&&e.xsrfCookieName?g.read(e.xsrfCookieName):void 0;v&&(d[e.xsrfHeaderName]=v)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),e.withCredentials&&(l.withCredentials=!0),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),f(e),l=null)}),void 0===p&&(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(10);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var r=n(11);e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e}},function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=n(2);e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(o.isURLSearchParams(t))i=t.toString();else{var s=[];o.forEach(t,function(e,t){null!==e&&"undefined"!=typeof e&&(o.isArray(e)?t+="[]":e=[e],o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),s.push(r(t)+"="+r(e))}))}),i=s.join("&")}return i&&(e+=(e.indexOf("?")===-1?"?":"&")+i),e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?s[t]=(s[t]?s[t]:[]).concat([n]):s[t]=s[t]?s[t]+", "+n:n}}),s):s}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t){"use strict";function n(){this.message="String contains an invalid character"}function r(e){for(var t,r,i=String(e),s="",u=0,a=o;i.charAt(0|u)||(a="=",u%1);s+=a.charAt(63&t>>8-u%1*8)){if(r=i.charCodeAt(u+=.75),r>255)throw new n;t=t<<8|r}return s}var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.prototype=new Error,n.prototype.code=5,n.prototype.name="InvalidCharacterError",e.exports=r},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var u=[];u.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&u.push("expires="+new Date(n).toGMTString()),r.isString(o)&&u.push("path="+o),r.isString(i)&&u.push("domain="+i),s===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";function r(){this.handlers=[]}var o=n(2);r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){o.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=r},function(e,t,n){"use strict";function r(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var o=n(2),i=n(19),s=n(20),u=n(6),a=n(21),c=n(22);e.exports=function(e){r(e),e.baseURL&&!a(e.url)&&(e.url=c(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=o.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),o.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=e.adapter||u.adapter;return t(e).then(function(t){return r(e),t.data=i(t.data,t.headers,e.transformResponse),t},function(t){return s(t)||(r(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},function(e,t){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}}])}); -//# sourceMappingURL=axios.min.map \ No newline at end of file diff --git a/personcentor/src/main/resources/static/js/common.js b/personcentor/src/main/resources/static/js/common.js deleted file mode 100644 index 75d906c6023daaed018da67a845dabd06a70b007..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/js/common.js +++ /dev/null @@ -1,36 +0,0 @@ - - -function bindGalleryEvent() { - if (!document.getElementById('pagenavi') || !document.getElementById('pagenavi').getElementsByTagName('a')) return false; - var active = 0, - as = document.getElementById('pagenavi').getElementsByTagName('a'); - for (var i = 0; i < as.length; i++) { (function() { - var j = i; - as[i].onclick = function() { - t2.slide(j); - return false; - } - })(); - } - var t2 = new TouchSlider({ - id: 'slider', - speed: 600, - timeout: 6000, - before: function(index) { - as[active].className = ''; - active = index; - as[active].className = 'active'; - } - }); - var t2 = new TouchSlider({ - id: 'slider2', - speed: 600, - timeout: 6000, - before: function(index) { - as[active].className = ''; - active = index; - as[active].className = 'active'; - } - }); -} -bindGalleryEvent(); diff --git a/personcentor/src/main/resources/static/js/datetime/jquery-1.11.1.min.js b/personcentor/src/main/resources/static/js/datetime/jquery-1.11.1.min.js deleted file mode 100644 index ab28a24729b320bffd3d2f60302af949db39ab85..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/js/datetime/jquery-1.11.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
    ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; -if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
    a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:k.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
      '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
    • '+(t[0].content||"no content")+"
    • ";i'+(t[i].content||"no content")+"";return a}()+"
    ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
    '+(u.length>1?'':"")+'
    '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
    ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
    是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); \ No newline at end of file diff --git a/personcentor/src/main/resources/static/js/lay/modules/upload.js b/personcentor/src/main/resources/static/js/lay/modules/upload.js deleted file mode 100644 index 9298ecf94df4789e1363e4411892e4b3632d5ccf..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/js/lay/modules/upload.js +++ /dev/null @@ -1,2 +0,0 @@ -/** layui-v2.5.6 MIT License By https://www.layui.com */ - ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),o=layui.device(),a={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},reload:function(t){e.reload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,a.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),a=i.elem.next();(a.hasClass(u)||a.hasClass(c))&&a.remove(),o.ie&&o.ie<10&&i.elem.wrap('
    '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),o.ie&&o.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),o=t(['
    ',""].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(c)||(e.elemFile.wrap(o),i.elem.next("."+c).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,a=this,l=a.config,r=a.elemFile[0],u=function(){var i=0,n=0,o=e||a.files||a.chooseFiles||r.files,u=function(){l.multiple&&i+n===a.fileLength&&"function"==typeof l.allDone&&l.allDone({total:a.fileLength,successful:i,aborted:n})};layui.each(o,function(e,o){var r=new FormData;r.append(l.field,o),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)});var c={url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,a.msg("请求上传接口出现异常"),m(e),u()}};"function"==typeof l.progress&&(c.xhr=function(){var e=t.ajaxSettings.xhr();return e.upload.addEventListener("progress",function(e){if(e.lengthComputable){var t=Math.floor(e.loaded/e.total*100);l.progress(t,l.item[0],e)}}),e}),t.ajax(c)})},c=function(){var e=t("#"+f);a.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){a.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(a.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},a.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){a.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){a.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||a.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){a.preview(e)},upload:function(e,t){var i={};i[e]=t,a.upload(i)},pushFile:function(){return a.files=a.files||{},layui.each(a.chooseFiles,function(e,t){a.files[e]=t}),a.files},resetFile:function(e,t,i){var n=new File([t],i);a.files=a.files||{},a.files[e]=n}},y=function(){if("choose"!==i&&!l.auto||(l.choose&&l.choose(g),"choose"!==i))return l.before&&l.before(g),o.ie?o.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return a.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return a.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return a.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return a.msg("选择的图片中包含不支持的格式"),r.value=""}if(a.fileLength=function(){var t=0,i=e||a.files||a.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&a.fileLength>l.number)return a.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(o.ie&&o.ie<10)){var F;if(layui.each(a.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?i.toFixed(2)+"MB":l.size+"KB",r.value="",F=i}}),F)return a.msg("文件不能超过"+F)}y()}},p.prototype.reload=function(e){e=e||{},delete e.elem,delete e.bindAction;var i=this,e=i.config=t.extend({},i.config,a.config,e),n=e.elem.next();n.attr({name:e.name,accept:e.acceptMime,multiple:e.multiple})},p.prototype.events=function(){var e=this,i=e.config,a=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var o=e.elemFile,a=t.length>1?t.length+"个文件":(t[0]||{}).name||o[0].value.match(/[^\/\\]+\..+/g)||[]||"";o.next().hasClass(s)&&o.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||o.after(''+a+"")};i.elem.off("upload.start").on("upload.start",function(){var o=t(this),a=o.attr("lay-data");if(a)try{a=new Function("return "+a)(),e.config=t.extend({},i,a)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+a)}e.config.item=o,e.elemFile[0].click()}),o.ie&&o.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,o){var r=t(this),u=o.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),a(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];a(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},a.render=function(e){var t=new p(e);return l.call(t)},e(r,a)}); \ No newline at end of file diff --git a/personcentor/src/main/resources/static/js/layui.js b/personcentor/src/main/resources/static/js/layui.js deleted file mode 100644 index 99dba905ff953277b14dffc41e58bc7f6b07de1e..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/js/layui.js +++ /dev/null @@ -1,2 +0,0 @@ -/** layui-v2.5.6 MIT License By https://www.layui.com */ - ;!function(e){"use strict";var t=document,n={modules:{},status:{},timeout:10,event:{}},r=function(){this.v="2.5.6"},o=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,n=t.scripts,r=n.length-1,o=r;o>0;o--)if("interactive"===n[o].readyState){e=n[o].src;break}return e||n[r].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",transfer:"modules/transfer",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};r.prototype.cache=n,r.prototype.define=function(e,t){var r=this,o="function"==typeof e,a=function(){var e=function(e,t){layui[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(r,o){e(r,o),n.callback[r]=function(){t(e)}}),this};return o&&(t=e,e=[]),!layui["layui.all"]&&layui["layui.mobile"]?a.call(r):(r.use(e,a),r)},r.prototype.use=function(e,r,l){function c(e,t){var r="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||r.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[d]=t,y.removeChild(h),function o(){return++m>1e3*n.timeout/4?a(d+" is not a valid module"):void(n.status[d]?s():setTimeout(o,4))}())}function s(){l.push(layui[d]),e.length>1?p.use(e.slice(1),r,l):"function"==typeof r&&r.apply(layui,l)}var p=this,f=n.dir=n.dir?n.dir:o,y=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(p.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var d=e[0],m=0;if(l=l||[],n.host=n.host||(f.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[d]||!layui["layui.all"]&&layui["layui.mobile"]&&u[d])return s(),p;var v=(u[d]?f+"lay/":/^\{\/\}/.test(p.modules[d])?"":n.base||"")+(p.modules[d]||d)+".js";if(v=v.replace(/^\{\/\}/,""),!n.modules[d]&&layui[d]&&(n.modules[d]=v),n.modules[d])!function g(){return++m>1e3*n.timeout/4?a(d+" is not a valid module"):void("string"==typeof n.modules[d]&&n.status[d]?s():setTimeout(g,4))}();else{var h=t.createElement("script");h.async=!0,h.charset="utf-8",h.src=v+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),y.appendChild(h),!h.attachEvent||h.attachEvent.toString&&h.attachEvent.toString().indexOf("[native code")<0||i?h.addEventListener("load",function(e){c(e,v)},!1):h.attachEvent("onreadystatechange",function(e){c(e,v)}),n.modules[d]=v}return p},r.prototype.getStyle=function(t,n){var r=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return r[r.getPropertyValue?"getPropertyValue":"getAttribute"](n)},r.prototype.link=function(e,r,o){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof r&&(o=r);var c=(o||e).replace(/\.|\//g,""),s=u.id="layuicss-"+c,p=0;return u.rel="stylesheet",u.href=e+(n.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(s)||l.appendChild(u),"function"!=typeof r?i:(function f(){return++p>1e3*n.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(s),"width"))?function(){r()}():setTimeout(f,100))}(),i)},n.callback={},r.prototype.factory=function(e){if(layui[e])return"function"==typeof n.callback[e]?n.callback[e]:null},r.prototype.addcss=function(e,t,r){return layui.link(n.dir+"css/"+e,t,r)},r.prototype.img=function(e,t,n){var r=new Image;return r.src=e,r.complete?t(r):(r.onload=function(){r.onload=null,"function"==typeof t&&t(r)},void(r.onerror=function(e){r.onerror=null,"function"==typeof n&&n(e)}))},r.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},r.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),r.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?a("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},r.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),n.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},r.prototype.url=function(e){var t=this,n={pathname:function(){var t=e?function(){var t=(e.match(/\.[^.]+?\/.+/)||[])[0]||"";return t.replace(/^[^\/]+/,"").replace(/\?.+/,"")}():location.pathname;return t.replace(/^\//,"").split("/")}(),search:function(){var n={},r=(e?function(){var t=(e.match(/\?.+/)||[])[0]||"";return t.replace(/\#.+/,"")}():location.search).replace(/^\?+/,"").split("&");return t.each(r,function(e,t){var r=t.indexOf("="),o=function(){return r<0?t.substr(0,t.length):0!==r&&t.substr(0,r)}();o&&(n[o]=r>0?t.substr(r+1):null)}),n}(),hash:t.router(function(){return e?(e.match(/#.+/)||[])[0]||"":location.hash}())};return n},r.prototype.data=function(t,n,r){if(t=t||"layui",r=r||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete r[t];n="object"==typeof n?n:{key:n};try{var o=JSON.parse(r[t])}catch(a){var o={}}return"value"in n&&(o[n.key]=n.value),n.remove&&delete o[n.key],r[t]=JSON.stringify(o),n.key?o[n.key]:o}},r.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},r.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),r=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},o={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:r("micromessenger")};return t&&!o[t]&&(o[t]=r(t)),o.android=/android/.test(n),o.ios="ios"===o.os,o.mobile=!(!o.android&&!o.ios),o},r.prototype.hint=function(){return{error:a}},r.prototype.each=function(e,t){var n,r=this;if("function"!=typeof t)return r;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;na?1:o= this.length ? 0: this.cfg.begin; - if (this.length < 1) return false; - switch (this.cfg.direction) { - case 'up': - case 'down': - this.direction = this.cfg.direction; - this.vertical = 1; - break; - case 'right': - this.direction = 'right'; - default: - this.direction = this.direction || 'left'; - this.vertical = 0; - break; - } - this.addListener(this.element, startEvent, this.bind(this._start, this), false); - this.addListener(document, moveEvent, this.bind(this._move, this), false); - this.addListener(document, endEvent, this.bind(this._end, this), false); - this.addListener(document, 'touchcancel', this.bind(this._end, this), false); - this.addListener(this.element, transitionend, this.bind(this.transitionend, this), false); - this.addListener(window, 'resize', this.bind(function() { - clearTimeout(this.resizeTimer); - this.resizeTimer = setTimeout(this.bind(this.resize, this), 100); - }, - this), false); - if (this.cfg.mouseWheel) { - this.addListener(this.element, 'mousewheel', this.bind(this.mouseScroll, this), false); - this.addListener(this.element, 'DOMMouseScroll', this.bind(this.mouseScroll, this), false); - } - this.playing = this.cfg.auto; - this.resize(); - }, - getSum: function(type, start, end) { - var sum = 0, - i = start, - _type = toCase('-' + type); - for (; i < end; i++) { - sum += this['getOuter' + _type](this.slides[i]); - } - return sum; - }, - getPos: function(type, index) { - var _type = toCase('-' + type), - myWidth = this.getSum(type, index, index + 1), - sum = this.getSum(type, 0, index) + this['getOuter' + _type](this.element) / 2 - this['get' + _type](this.element) / 2; - switch (this.cfg.align) { - case 'left': - return - sum; - case 'right': - return this[type] - myWidth - sum; - default: - return (this[type] - myWidth) / 2 - sum; - } - }, - resize: function() { - clearTimeout(this.aniTimer); - var _this = this, - css, - type = sg[this.vertical][0], - _type = toCase('-' + type), - pst = this.css(this.container, 'position'); - this.css(this.container, { - 'overflow': 'hidden', - 'visibility': 'hidden', - 'listStyle': 'none', - 'position': pst == 'static' ? 'relative': pst - }); - this[type] = this['get' + _type](this.container); - css = { - float: this.vertical ? 'none': 'left', - display: 'block' - }; - each(this.slides, - function() { - if (_this.cfg.fixWidth) { - css[type] = _this[type] - _this['margin' + _type](this) - _this['padding' + _type](this) - _this['border' + _type](this) + 'px'; - } - _this.css(this, css); - }); - this.total = this.getSum(type, 0, this.length); - css = { - position: 'relative', - overflow: 'hidden' - }; - css[cssVendor + 'transition-duration'] = '0ms'; - css[type] = this.total + 'px'; - css[sg[this.vertical][1]] = this.getPos(type, this.index) + 'px'; - this.css(this.element, css); - this.css(this.container, { - 'visibility': 'visible' - }); - this.playing && this.play(); - return this; - }, - slide: function(index, speed) { - var direction = sg[this.vertical][1], - type = sg[this.vertical][0], - transition = testCSS('transition'), - nowPos = parseFloat(this.css(this.element, direction)) || 0, - endPos, - css = {}, - change, - size = this.getSum(type, index, index + 1); - index = Math.min(Math.max(0, index), this.length - 1); - speed = typeof speed == 'undefined' ? this.cfg.speed: parseInt(speed); - endPos = this.getPos(type, index); - change = endPos - nowPos, - speed = Math.abs(change) < size ? Math.ceil(Math.abs(change) / size * speed) : speed; - if (transition) { - css[transition] = direction + ' ease ' + speed + 'ms'; - css[direction] = endPos + 'px'; - this.css(this.element, css); - } else { - var _this = this, - begin = 0, - time = speed / 10, - animate = function(t, b, c, d) { - return - c * ((t = t / d - 1) * t * t * t - 1) + b; - }, - run = function() { - if (begin < time) { - begin++; - _this.element.style[direction] = Math.ceil(animate(begin, nowPos, change, time)) + 'px'; - _this.aniTimer = setTimeout(run, 10); - } else { - _this.element.style[direction] = endPos + 'px'; - _this.transitionend({ - propertyName: direction - }); - } - } - clearTimeout(this.aniTimer); - run(); - } - this.cfg.before.call(this, index, this.slides[this.index]); - this.index = index; - return this; - }, - play: function() { - clearTimeout(this.timer); - this.playing = true; - this.timer = setTimeout(this.bind(function() { - this.direction == 'left' || this.direction == 'up' ? this.next() : this.prev(); - }, - this), this.cfg.timeout); - return this; - }, - pause: function() { - clearTimeout(this.timer); - this.playing = false; - return this; - }, - stop: function() { - this.pause(); - return this.slide(0); - }, - prev: function(offset, sync) { - clearTimeout(this.timer); - var index = this.index; - offset = typeof offset == 'undefined' ? offset = 1: offset % this.length; - index -= offset; - if (sync === false) { - index = Math.max(index, 0); - } else { - index = index < 0 ? this.length + index: index; - } - return this.slide(index); - }, - next: function(offset, sync) { - clearTimeout(this.timer); - var index = this.index; - if (typeof offset == 'undefined') offset = 1; - index += offset; - if (sync === false) { - index = Math.min(index, this.length - 1); - } else { - index %= this.length - } - return this.slide(index); - }, - _start: function(evt) { - evt = this.eventHook(evt); - if (!this.touching) evt.preventDefault(); - this.removeListener(this.element, 'click', returnFalse); - this.startPos = [evt.pageX, evt.pageY]; - this.element.style[toCase(cssVendor + 'transition-duration')] = '0ms'; - this.startTime = +new Date; - this._pos = parseFloat(this.css(this.element, sg[this.vertical][1])) || 0; - }, - _move: function(evt) { - if (!this.startPos || evt.scale && evt.scale !== 1) return; - evt = this.eventHook(evt); - this.stopPos = [evt.pageX, evt.pageY]; - var direction = sg[this.vertical][1], - type = sg[this.vertical][0], - offset = this.stopPos[this.vertical] - this.startPos[this.vertical]; - if (this.scrolling || typeof this.scrolling == 'undefined' && Math.abs(offset) >= Math.abs(this.stopPos[1 - this.vertical] - this.startPos[1 - this.vertical])) { - evt.preventDefault(); - offset = offset / ((!this.index && offset > 0 || this.index == this.length - 1 && offset < 0) ? (Math.abs(offset) / this[type] + 1) : 1); - this.element.style[direction] = this._pos + offset + 'px'; - if (offset && typeof this.scrolling == 'undefined') { - this.scrolling = true; - clearTimeout(this.timer); - clearTimeout(this.aniTimer); - } - } else this.scrolling = false; - }, - _end: function(evt) { - if (this.startPos) { - if (this.scrolling) { - var type = sg[this.vertical][0], - direction = sg[this.vertical][1], - offset = this.stopPos[this.vertical] - this.startPos[this.vertical], - absOff = Math.abs(offset), - sub = absOff / offset, - myWidth, - curPos, - tarPos, - next = this.index, - off = 0; - this.addListener(this.element, 'click', returnFalse); - if (absOff > 20) { - curPos = parseFloat(this.css(this.element, sg[this.vertical][1])); - do { - if (next >= 0 && next < this.length) { - tarPos = this.getPos(type, next); - myWidth = this.getSum(type, next, next + 1); - } else { - next += sub; - break; - } - } - while (Math.abs(tarPos - curPos) > myWidth / 2 && (next -= sub)); - off = Math.abs(next - this.index); - if (!off && +new Date - this.startTime < 250) { - off = 1; - } - } - offset > 0 ? this.prev(off, false) : this.next(off, false); - this.playing && this.play(); - } - delete this._pos; - delete this.stopPos; - delete this.startPos; - delete this.scrolling; - delete this.startTime; - } - }, - mouseScroll: function(evt) { - if (this.cfg.mouseWheel) { - evt = this.eventHook(evt); - evt.preventDefault(); - var _e = evt.origEvent; - var wheelDelta = _e.wheelDelta || _e.detail && _e.detail * -1 || 0, - flag = wheelDelta / Math.abs(wheelDelta); - wheelDelta > 0 ? this.prev(1, false) : this.next(1, false); - } - }, - transitionend: function(evt) { - if (evt.propertyName == sg[this.vertical][1]) { - this.cfg.after.call(this, this.index, this.slides[this.index]); - this.playing && this.play(); - } - } - } - each(['Width', 'Height'], - function(i, type) { - var _type = type.toLowerCase(); - each(['margin', 'padding', 'border'], - function(j, name) { - TouchSlider.fn[name + type] = function(elem) { - return parseFloat(this.css(elem, name + '-' + sg[i][1] + (name == 'border' ? '-width': ''))) + parseFloat(this.css(elem, name + '-' + sg[i][2] + (name == 'border' ? '-width': ''))); - } - }); - TouchSlider.fn['get' + type] = function(elem) { - return elem['offset' + type] - this['padding' + type](elem) - this['border' + type](elem); - } - TouchSlider.fn['getOuter' + type] = function(elem) { - return elem['offset' + type] + this['margin' + type](elem); - } - }); - window.TouchSlider = TouchSlider; -})(window); \ No newline at end of file diff --git a/personcentor/src/main/resources/static/js/tabSlideBox/tabSlideBox.css b/personcentor/src/main/resources/static/js/tabSlideBox/tabSlideBox.css deleted file mode 100644 index d2fdd5fcdaaf102d596a52ce85745d308abcd962..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/js/tabSlideBox/tabSlideBox.css +++ /dev/null @@ -1,89 +0,0 @@ -.tabbed-slidebox .slider { - height: 100%; -} -.tabbed-slidebox.btm .slider { - margin-bottom: -50px; -} -.tabbed-slidebox .slider-slides { - width: 100%; -} - -.tabbed-slidebox .slider-slide { - padding-top: 0px; - color: #000; - background-color: #fff; - text-align: center; - font-weight: 300; - background-color: #0398dc; -} - -.tabbed-slidebox .tsb-icons { - text-align: center; - margin: 10px 0; - position: relative; - background-color:#fff; -} - -.tabbed-slidebox .tsb-ic-wrp { - display: flex; - position: relative; - -webkit-transition: -webkit-transform 0.3s; /* For Safari 3.1 to 6.0 */ - -webkit-transform:translate3d(0,0,0); -} - -.tabbed-slidebox .tsb-icons a { - display: inline-block; - width: 54px; - font-size: 2.5em; - color: rgba(0, 0, 0, 0.3); - -webkit-transform:translate3d(0,8px,0); -} - -.tabbed-slidebox .tsb-icons a.active { - color: rgba(0, 0, 0, 1); - font-size: 3.5em; - -webkit-transform:translate3d(0,0,0); -} - -.tabbed-slidebox .tabbed-slidebox { - position: relative; - height: 100%; - overflow: hidden; -} - -.tabbed-slidebox .tsb-icons:after { - width: 0; - height: 0; - border-style: solid; - border-width: 0 1.4em 1.4em 1.4em; - border-color: transparent transparent #0398dc transparent; - position: absolute; - content: ""; - display: block; - bottom: -12px; - left: 50%; - margin-left: -14px; -} -.tsb-hscroll.scroll-view{ - white-space: nowrap; - margin:0 auto; -} -.tsb-hscroll.scroll-view .scroll-bar{ - visibility:hidden; -} -.tsb-hscroll.scroll-view .scroll.onscroll{ - -webkit-transition: -webkit-transform 0.3s; /* For Safari 3.1 to 6.0 */ -} - -.tabbed-slidebox .tsb-icons .scroll a{ - width:auto; - font-size: 1.5em; - line-height: 1.5em; - text-decoration: none; - margin: 0 15px; - border-bottom: 3px solid transparent; -} -.tabbed-slidebox .tsb-icons .scroll a.active { - font-size: 1.8em; - border-bottom: 3px solid #ccc; -} \ No newline at end of file diff --git a/personcentor/src/main/resources/static/js/tabSlideBox/tabSlideBox.js b/personcentor/src/main/resources/static/js/tabSlideBox/tabSlideBox.js deleted file mode 100644 index ed174115e98aedd7ba396ccbdb25bd4c51a76094..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/js/tabSlideBox/tabSlideBox.js +++ /dev/null @@ -1,169 +0,0 @@ -/* - * SimplePubSub from https://github.com/mbenford/ngTagsInput/blob/master/src/util.js - * */ -'use strict'; - -function SimplePubSub() { - var events = {}; - return { - on: function(names, handler) { - names.split(' ').forEach(function(name) { - if (!events[name]) { - events[name] = []; - } - events[name].push(handler); - }); - return this; - }, - trigger: function(name, args) { - angular.forEach(events[name], function(handler) { - handler.call(null, args); - }); - return this; - } - }; -}; - -angular.module('tabSlideBox', []) -.directive('onFinishRender', function ($timeout) { - return { - restrict: 'A', - link: function (scope, element, attr) { - if (scope.$last === true) { - $timeout(function () { - scope.$emit('ngRepeatFinished'); - }); - } - } - } -}) -.directive('tabSlideBox', [ '$timeout', '$window', '$ionicSlideBoxDelegate', '$ionicScrollDelegate', - function($timeout, $window, $ionicSlideBoxDelegate, $ionicScrollDelegate) { - 'use strict'; - - return { - restrict : 'A, E, C', - link : function(scope, element, attrs, ngModel) { - - var ta = element[0], $ta = element; - $ta.addClass("tabbed-slidebox"); - if(attrs.tabsPosition === "bottom"){ - $ta.addClass("btm"); - } - - //Handle multiple slide/scroll boxes - var handle = ta.querySelector('.slider').getAttribute('delegate-handle'); - - var ionicSlideBoxDelegate = $ionicSlideBoxDelegate; - if(handle){ - ionicSlideBoxDelegate = ionicSlideBoxDelegate.$getByHandle(handle); - } - - var ionicScrollDelegate = $ionicScrollDelegate; - if(handle){ - ionicScrollDelegate = ionicScrollDelegate.$getByHandle(handle); - } - - function renderScrollableTabs(){ - var iconsDiv = angular.element(ta.querySelector(".tsb-icons")), icons = iconsDiv.find("a"), wrap = iconsDiv[0].querySelector(".tsb-ic-wrp"), totalTabs = icons.length; - var scrollDiv = wrap.querySelector(".scroll"); - - angular.forEach(icons, function(value, key){ - var a = angular.element(value); - a.on('click', function(){ - ionicSlideBoxDelegate.slide(key); - }); - - if(a.attr('icon-off')) { - a.attr("class", a.attr('icon-off')); - } - }); - - var initialIndex = attrs.tab; - //Initializing the middle tab - if(typeof attrs.tab === 'undefined' || (totalTabs <= initialIndex) || initialIndex < 0){ - initialIndex = Math.floor(icons.length/2); - } - - //If initial element is 0, set position of the tab to 0th tab - if(initialIndex == 0){ - setPosition(0); - } - - $timeout(function() { - ionicSlideBoxDelegate.slide(initialIndex); - }, 0); - } - function setPosition(index){ - var iconsDiv = angular.element(ta.querySelector(".tsb-icons")), icons = iconsDiv.find("a"), wrap = iconsDiv[0].querySelector(".tsb-ic-wrp"), totalTabs = icons.length; - var scrollDiv = wrap.querySelector(".scroll"); - - var middle = iconsDiv[0].offsetWidth/2; - var curEl = angular.element(icons[index]); - var prvEl = angular.element(iconsDiv[0].querySelector(".active")); - if(curEl && curEl.length){ - var curElWidth = curEl[0].offsetWidth, curElLeft = curEl[0].offsetLeft; - - if(prvEl.attr('icon-off')) { - prvEl.attr("class", prvEl.attr('icon-off')); - }else{ - prvEl.removeClass("active"); - } - if(curEl.attr('icon-on')) { - curEl.attr("class", curEl.attr('icon-on')); - } - curEl.addClass("active"); - - var leftStr = (middle - (curElLeft) - curElWidth/2 + 5); - //If tabs are not scrollable - if(!scrollDiv){ - var leftStr = (middle - (curElLeft) - curElWidth/2 + 5) + "px"; - wrap.style.webkitTransform = "translate3d("+leftStr+",0,0)" ; - }else{ - //If scrollable tabs - var wrapWidth = wrap.offsetWidth; - var currentX = Math.abs(getX(scrollDiv.style.webkitTransform)); - var leftOffset = 100; - var elementOffset = 40; - //If tabs are reaching right end or left end - if(((currentX + wrapWidth) < (curElLeft + curElWidth + elementOffset)) || (currentX > (curElLeft - leftOffset))){ - if(leftStr > 0){ - leftStr = 0; - } - //Use this scrollTo, so when scrolling tab manually will not flicker - ionicScrollDelegate.scrollTo(Math.abs(leftStr), 0, true); - } - } - } - }; - function getX(matrix) { - matrix = matrix.replace("translate3d(",""); - matrix = matrix.replace("translate(",""); - return (parseInt(matrix)); - } - var events = scope.events; - events.on('slideChange', function(data){ - setPosition(data.index); - }); - events.on('ngRepeatFinished', function(ngRepeatFinishedEvent) { - renderScrollableTabs(); - }); - - renderScrollableTabs(); - }, - controller : function($scope, $attrs, $element) { - $scope.events = new SimplePubSub(); - - $scope.slideHasChanged = function(index){ - $scope.events.trigger("slideChange", {"index" : index}); - $timeout(function(){if($scope.onSlideMove) $scope.onSlideMove({"index" : eval(index)});},100); - }; - - $scope.$on('ngRepeatFinished', function(ngRepeatFinishedEvent) { - $scope.events.trigger("ngRepeatFinished", {"event" : ngRepeatFinishedEvent}); - }); - } - }; - - } -]); diff --git a/personcentor/src/main/resources/static/js/vuejs-2.5.16.js b/personcentor/src/main/resources/static/js/vuejs-2.5.16.js deleted file mode 100644 index 4dbd2c7ddb9c94d573fba52319bb1930995743c0..0000000000000000000000000000000000000000 --- a/personcentor/src/main/resources/static/js/vuejs-2.5.16.js +++ /dev/null @@ -1,10947 +0,0 @@ -/*! - * Vue.js v2.5.16 - * (c) 2014-2018 Evan You - * Released under the MIT License. - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.Vue = factory()); -}(this, (function () { 'use strict'; - -/* */ - -var emptyObject = Object.freeze({}); - -// these helpers produces better vm code in JS engines due to their -// explicitness and function inlining -function isUndef (v) { - return v === undefined || v === null -} - -function isDef (v) { - return v !== undefined && v !== null -} - -function isTrue (v) { - return v === true -} - -function isFalse (v) { - return v === false -} - -/** - * Check if value is primitive - */ -function isPrimitive (value) { - return ( - typeof value === 'string' || - typeof value === 'number' || - // $flow-disable-line - typeof value === 'symbol' || - typeof value === 'boolean' - ) -} - -/** - * Quick object check - this is primarily used to tell - * Objects from primitive values when we know the value - * is a JSON-compliant type. - */ -function isObject (obj) { - return obj !== null && typeof obj === 'object' -} - -/** - * Get the raw type string of a value e.g. [object Object] - */ -var _toString = Object.prototype.toString; - -function toRawType (value) { - return _toString.call(value).slice(8, -1) -} - -/** - * Strict object type check. Only returns true - * for plain JavaScript objects. - */ -function isPlainObject (obj) { - return _toString.call(obj) === '[object Object]' -} - -function isRegExp (v) { - return _toString.call(v) === '[object RegExp]' -} - -/** - * Check if val is a valid array index. - */ -function isValidArrayIndex (val) { - var n = parseFloat(String(val)); - return n >= 0 && Math.floor(n) === n && isFinite(val) -} - -/** - * Convert a value to a string that is actually rendered. - */ -function toString (val) { - return val == null - ? '' - : typeof val === 'object' - ? JSON.stringify(val, null, 2) - : String(val) -} - -/** - * Convert a input value to a number for persistence. - * If the conversion fails, return original string. - */ -function toNumber (val) { - var n = parseFloat(val); - return isNaN(n) ? val : n -} - -/** - * Make a map and return a function for checking if a key - * is in that map. - */ -function makeMap ( - str, - expectsLowerCase -) { - var map = Object.create(null); - var list = str.split(','); - for (var i = 0; i < list.length; i++) { - map[list[i]] = true; - } - return expectsLowerCase - ? function (val) { return map[val.toLowerCase()]; } - : function (val) { return map[val]; } -} - -/** - * Check if a tag is a built-in tag. - */ -var isBuiltInTag = makeMap('slot,component', true); - -/** - * Check if a attribute is a reserved attribute. - */ -var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); - -/** - * Remove an item from an array - */ -function remove (arr, item) { - if (arr.length) { - var index = arr.indexOf(item); - if (index > -1) { - return arr.splice(index, 1) - } - } -} - -/** - * Check whether the object has the property. - */ -var hasOwnProperty = Object.prototype.hasOwnProperty; -function hasOwn (obj, key) { - return hasOwnProperty.call(obj, key) -} - -/** - * Create a cached version of a pure function. - */ -function cached (fn) { - var cache = Object.create(null); - return (function cachedFn (str) { - var hit = cache[str]; - return hit || (cache[str] = fn(str)) - }) -} - -/** - * Camelize a hyphen-delimited string. - */ -var camelizeRE = /-(\w)/g; -var camelize = cached(function (str) { - return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) -}); - -/** - * Capitalize a string. - */ -var capitalize = cached(function (str) { - return str.charAt(0).toUpperCase() + str.slice(1) -}); - -/** - * Hyphenate a camelCase string. - */ -var hyphenateRE = /\B([A-Z])/g; -var hyphenate = cached(function (str) { - return str.replace(hyphenateRE, '-$1').toLowerCase() -}); - -/** - * Simple bind polyfill for environments that do not support it... e.g. - * PhantomJS 1.x. Technically we don't need this anymore since native bind is - * now more performant in most browsers, but removing it would be breaking for - * code that was able to run in PhantomJS 1.x, so this must be kept for - * backwards compatibility. - */ - -/* istanbul ignore next */ -function polyfillBind (fn, ctx) { - function boundFn (a) { - var l = arguments.length; - return l - ? l > 1 - ? fn.apply(ctx, arguments) - : fn.call(ctx, a) - : fn.call(ctx) - } - - boundFn._length = fn.length; - return boundFn -} - -function nativeBind (fn, ctx) { - return fn.bind(ctx) -} - -var bind = Function.prototype.bind - ? nativeBind - : polyfillBind; - -/** - * Convert an Array-like object to a real Array. - */ -function toArray (list, start) { - start = start || 0; - var i = list.length - start; - var ret = new Array(i); - while (i--) { - ret[i] = list[i + start]; - } - return ret -} - -/** - * Mix properties into target object. - */ -function extend (to, _from) { - for (var key in _from) { - to[key] = _from[key]; - } - return to -} - -/** - * Merge an Array of Objects into a single Object. - */ -function toObject (arr) { - var res = {}; - for (var i = 0; i < arr.length; i++) { - if (arr[i]) { - extend(res, arr[i]); - } - } - return res -} - -/** - * Perform no operation. - * Stubbing args to make Flow happy without leaving useless transpiled code - * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/) - */ -function noop (a, b, c) {} - -/** - * Always return false. - */ -var no = function (a, b, c) { return false; }; - -/** - * Return same value - */ -var identity = function (_) { return _; }; - -/** - * Generate a static keys string from compiler modules. - */ -function genStaticKeys (modules) { - return modules.reduce(function (keys, m) { - return keys.concat(m.staticKeys || []) - }, []).join(',') -} - -/** - * Check if two values are loosely equal - that is, - * if they are plain objects, do they have the same shape? - */ -function looseEqual (a, b) { - if (a === b) { return true } - var isObjectA = isObject(a); - var isObjectB = isObject(b); - if (isObjectA && isObjectB) { - try { - var isArrayA = Array.isArray(a); - var isArrayB = Array.isArray(b); - if (isArrayA && isArrayB) { - return a.length === b.length && a.every(function (e, i) { - return looseEqual(e, b[i]) - }) - } else if (!isArrayA && !isArrayB) { - var keysA = Object.keys(a); - var keysB = Object.keys(b); - return keysA.length === keysB.length && keysA.every(function (key) { - return looseEqual(a[key], b[key]) - }) - } else { - /* istanbul ignore next */ - return false - } - } catch (e) { - /* istanbul ignore next */ - return false - } - } else if (!isObjectA && !isObjectB) { - return String(a) === String(b) - } else { - return false - } -} - -function looseIndexOf (arr, val) { - for (var i = 0; i < arr.length; i++) { - if (looseEqual(arr[i], val)) { return i } - } - return -1 -} - -/** - * Ensure a function is called only once. - */ -function once (fn) { - var called = false; - return function () { - if (!called) { - called = true; - fn.apply(this, arguments); - } - } -} - -var SSR_ATTR = 'data-server-rendered'; - -var ASSET_TYPES = [ - 'component', - 'directive', - 'filter' -]; - -var LIFECYCLE_HOOKS = [ - 'beforeCreate', - 'created', - 'beforeMount', - 'mounted', - 'beforeUpdate', - 'updated', - 'beforeDestroy', - 'destroyed', - 'activated', - 'deactivated', - 'errorCaptured' -]; - -/* */ - -var config = ({ - /** - * Option merge strategies (used in core/util/options) - */ - // $flow-disable-line - optionMergeStrategies: Object.create(null), - - /** - * Whether to suppress warnings. - */ - silent: false, - - /** - * Show production mode tip message on boot? - */ - productionTip: "development" !== 'production', - - /** - * Whether to enable devtools - */ - devtools: "development" !== 'production', - - /** - * Whether to record perf - */ - performance: false, - - /** - * Error handler for watcher errors - */ - errorHandler: null, - - /** - * Warn handler for watcher warns - */ - warnHandler: null, - - /** - * Ignore certain custom elements - */ - ignoredElements: [], - - /** - * Custom user key aliases for v-on - */ - // $flow-disable-line - keyCodes: Object.create(null), - - /** - * Check if a tag is reserved so that it cannot be registered as a - * component. This is platform-dependent and may be overwritten. - */ - isReservedTag: no, - - /** - * Check if an attribute is reserved so that it cannot be used as a component - * prop. This is platform-dependent and may be overwritten. - */ - isReservedAttr: no, - - /** - * Check if a tag is an unknown element. - * Platform-dependent. - */ - isUnknownElement: no, - - /** - * Get the namespace of an element - */ - getTagNamespace: noop, - - /** - * Parse the real tag name for the specific platform. - */ - parsePlatformTagName: identity, - - /** - * Check if an attribute must be bound using property, e.g. value - * Platform-dependent. - */ - mustUseProp: no, - - /** - * Exposed for legacy reasons - */ - _lifecycleHooks: LIFECYCLE_HOOKS -}) - -/* */ - -/** - * Check if a string starts with $ or _ - */ -function isReserved (str) { - var c = (str + '').charCodeAt(0); - return c === 0x24 || c === 0x5F -} - -/** - * Define a property. - */ -function def (obj, key, val, enumerable) { - Object.defineProperty(obj, key, { - value: val, - enumerable: !!enumerable, - writable: true, - configurable: true - }); -} - -/** - * Parse simple path. - */ -var bailRE = /[^\w.$]/; -function parsePath (path) { - if (bailRE.test(path)) { - return - } - var segments = path.split('.'); - return function (obj) { - for (var i = 0; i < segments.length; i++) { - if (!obj) { return } - obj = obj[segments[i]]; - } - return obj - } -} - -/* */ - -// can we use __proto__? -var hasProto = '__proto__' in {}; - -// Browser environment sniffing -var inBrowser = typeof window !== 'undefined'; -var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; -var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); -var UA = inBrowser && window.navigator.userAgent.toLowerCase(); -var isIE = UA && /msie|trident/.test(UA); -var isIE9 = UA && UA.indexOf('msie 9.0') > 0; -var isEdge = UA && UA.indexOf('edge/') > 0; -var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); -var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); -var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; - -// Firefox has a "watch" function on Object.prototype... -var nativeWatch = ({}).watch; - -var supportsPassive = false; -if (inBrowser) { - try { - var opts = {}; - Object.defineProperty(opts, 'passive', ({ - get: function get () { - /* istanbul ignore next */ - supportsPassive = true; - } - })); // https://github.com/facebook/flow/issues/285 - window.addEventListener('test-passive', null, opts); - } catch (e) {} -} - -// this needs to be lazy-evaled because vue may be required before -// vue-server-renderer can set VUE_ENV -var _isServer; -var isServerRendering = function () { - if (_isServer === undefined) { - /* istanbul ignore if */ - if (!inBrowser && !inWeex && typeof global !== 'undefined') { - // detect presence of vue-server-renderer and avoid - // Webpack shimming the process - _isServer = global['process'].env.VUE_ENV === 'server'; - } else { - _isServer = false; - } - } - return _isServer -}; - -// detect devtools -var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; - -/* istanbul ignore next */ -function isNative (Ctor) { - return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) -} - -var hasSymbol = - typeof Symbol !== 'undefined' && isNative(Symbol) && - typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); - -var _Set; -/* istanbul ignore if */ // $flow-disable-line -if (typeof Set !== 'undefined' && isNative(Set)) { - // use native Set when available. - _Set = Set; -} else { - // a non-standard Set polyfill that only works with primitive keys. - _Set = (function () { - function Set () { - this.set = Object.create(null); - } - Set.prototype.has = function has (key) { - return this.set[key] === true - }; - Set.prototype.add = function add (key) { - this.set[key] = true; - }; - Set.prototype.clear = function clear () { - this.set = Object.create(null); - }; - - return Set; - }()); -} - -/* */ - -var warn = noop; -var tip = noop; -var generateComponentTrace = (noop); // work around flow check -var formatComponentName = (noop); - -{ - var hasConsole = typeof console !== 'undefined'; - var classifyRE = /(?:^|[-_])(\w)/g; - var classify = function (str) { return str - .replace(classifyRE, function (c) { return c.toUpperCase(); }) - .replace(/[-_]/g, ''); }; - - warn = function (msg, vm) { - var trace = vm ? generateComponentTrace(vm) : ''; - - if (config.warnHandler) { - config.warnHandler.call(null, msg, vm, trace); - } else if (hasConsole && (!config.silent)) { - console.error(("[Vue warn]: " + msg + trace)); - } - }; - - tip = function (msg, vm) { - if (hasConsole && (!config.silent)) { - console.warn("[Vue tip]: " + msg + ( - vm ? generateComponentTrace(vm) : '' - )); - } - }; - - formatComponentName = function (vm, includeFile) { - if (vm.$root === vm) { - return '' - } - var options = typeof vm === 'function' && vm.cid != null - ? vm.options - : vm._isVue - ? vm.$options || vm.constructor.options - : vm || {}; - var name = options.name || options._componentTag; - var file = options.__file; - if (!name && file) { - var match = file.match(/([^/\\]+)\.vue$/); - name = match && match[1]; - } - - return ( - (name ? ("<" + (classify(name)) + ">") : "") + - (file && includeFile !== false ? (" at " + file) : '') - ) - }; - - var repeat = function (str, n) { - var res = ''; - while (n) { - if (n % 2 === 1) { res += str; } - if (n > 1) { str += str; } - n >>= 1; - } - return res - }; - - generateComponentTrace = function (vm) { - if (vm._isVue && vm.$parent) { - var tree = []; - var currentRecursiveSequence = 0; - while (vm) { - if (tree.length > 0) { - var last = tree[tree.length - 1]; - if (last.constructor === vm.constructor) { - currentRecursiveSequence++; - vm = vm.$parent; - continue - } else if (currentRecursiveSequence > 0) { - tree[tree.length - 1] = [last, currentRecursiveSequence]; - currentRecursiveSequence = 0; - } - } - tree.push(vm); - vm = vm.$parent; - } - return '\n\nfound in\n\n' + tree - .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) - ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") - : formatComponentName(vm))); }) - .join('\n') - } else { - return ("\n\n(found in " + (formatComponentName(vm)) + ")") - } - }; -} - -/* */ - - -var uid = 0; - -/** - * A dep is an observable that can have multiple - * directives subscribing to it. - */ -var Dep = function Dep () { - this.id = uid++; - this.subs = []; -}; - -Dep.prototype.addSub = function addSub (sub) { - this.subs.push(sub); -}; - -Dep.prototype.removeSub = function removeSub (sub) { - remove(this.subs, sub); -}; - -Dep.prototype.depend = function depend () { - if (Dep.target) { - Dep.target.addDep(this); - } -}; - -Dep.prototype.notify = function notify () { - // stabilize the subscriber list first - var subs = this.subs.slice(); - for (var i = 0, l = subs.length; i < l; i++) { - subs[i].update(); - } -}; - -// the current target watcher being evaluated. -// this is globally unique because there could be only one -// watcher being evaluated at any time. -Dep.target = null; -var targetStack = []; - -function pushTarget (_target) { - if (Dep.target) { targetStack.push(Dep.target); } - Dep.target = _target; -} - -function popTarget () { - Dep.target = targetStack.pop(); -} - -/* */ - -var VNode = function VNode ( - tag, - data, - children, - text, - elm, - context, - componentOptions, - asyncFactory -) { - this.tag = tag; - this.data = data; - this.children = children; - this.text = text; - this.elm = elm; - this.ns = undefined; - this.context = context; - this.fnContext = undefined; - this.fnOptions = undefined; - this.fnScopeId = undefined; - this.key = data && data.key; - this.componentOptions = componentOptions; - this.componentInstance = undefined; - this.parent = undefined; - this.raw = false; - this.isStatic = false; - this.isRootInsert = true; - this.isComment = false; - this.isCloned = false; - this.isOnce = false; - this.asyncFactory = asyncFactory; - this.asyncMeta = undefined; - this.isAsyncPlaceholder = false; -}; - -var prototypeAccessors = { child: { configurable: true } }; - -// DEPRECATED: alias for componentInstance for backwards compat. -/* istanbul ignore next */ -prototypeAccessors.child.get = function () { - return this.componentInstance -}; - -Object.defineProperties( VNode.prototype, prototypeAccessors ); - -var createEmptyVNode = function (text) { - if ( text === void 0 ) text = ''; - - var node = new VNode(); - node.text = text; - node.isComment = true; - return node -}; - -function createTextVNode (val) { - return new VNode(undefined, undefined, undefined, String(val)) -} - -// optimized shallow clone -// used for static nodes and slot nodes because they may be reused across -// multiple renders, cloning them avoids errors when DOM manipulations rely -// on their elm reference. -function cloneVNode (vnode) { - var cloned = new VNode( - vnode.tag, - vnode.data, - vnode.children, - vnode.text, - vnode.elm, - vnode.context, - vnode.componentOptions, - vnode.asyncFactory - ); - cloned.ns = vnode.ns; - cloned.isStatic = vnode.isStatic; - cloned.key = vnode.key; - cloned.isComment = vnode.isComment; - cloned.fnContext = vnode.fnContext; - cloned.fnOptions = vnode.fnOptions; - cloned.fnScopeId = vnode.fnScopeId; - cloned.isCloned = true; - return cloned -} - -/* - * not type checking this file because flow doesn't play well with - * dynamically accessing methods on Array prototype - */ - -var arrayProto = Array.prototype; -var arrayMethods = Object.create(arrayProto); - -var methodsToPatch = [ - 'push', - 'pop', - 'shift', - 'unshift', - 'splice', - 'sort', - 'reverse' -]; - -/** - * Intercept mutating methods and emit events - */ -methodsToPatch.forEach(function (method) { - // cache original method - var original = arrayProto[method]; - def(arrayMethods, method, function mutator () { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - var result = original.apply(this, args); - var ob = this.__ob__; - var inserted; - switch (method) { - case 'push': - case 'unshift': - inserted = args; - break - case 'splice': - inserted = args.slice(2); - break - } - if (inserted) { ob.observeArray(inserted); } - // notify change - ob.dep.notify(); - return result - }); -}); - -/* */ - -var arrayKeys = Object.getOwnPropertyNames(arrayMethods); - -/** - * In some cases we may want to disable observation inside a component's - * update computation. - */ -var shouldObserve = true; - -function toggleObserving (value) { - shouldObserve = value; -} - -/** - * Observer class that is attached to each observed - * object. Once attached, the observer converts the target - * object's property keys into getter/setters that - * collect dependencies and dispatch updates. - */ -var Observer = function Observer (value) { - this.value = value; - this.dep = new Dep(); - this.vmCount = 0; - def(value, '__ob__', this); - if (Array.isArray(value)) { - var augment = hasProto - ? protoAugment - : copyAugment; - augment(value, arrayMethods, arrayKeys); - this.observeArray(value); - } else { - this.walk(value); - } -}; - -/** - * Walk through each property and convert them into - * getter/setters. This method should only be called when - * value type is Object. - */ -Observer.prototype.walk = function walk (obj) { - var keys = Object.keys(obj); - for (var i = 0; i < keys.length; i++) { - defineReactive(obj, keys[i]); - } -}; - -/** - * Observe a list of Array items. - */ -Observer.prototype.observeArray = function observeArray (items) { - for (var i = 0, l = items.length; i < l; i++) { - observe(items[i]); - } -}; - -// helpers - -/** - * Augment an target Object or Array by intercepting - * the prototype chain using __proto__ - */ -function protoAugment (target, src, keys) { - /* eslint-disable no-proto */ - target.__proto__ = src; - /* eslint-enable no-proto */ -} - -/** - * Augment an target Object or Array by defining - * hidden properties. - */ -/* istanbul ignore next */ -function copyAugment (target, src, keys) { - for (var i = 0, l = keys.length; i < l; i++) { - var key = keys[i]; - def(target, key, src[key]); - } -} - -/** - * Attempt to create an observer instance for a value, - * returns the new observer if successfully observed, - * or the existing observer if the value already has one. - */ -function observe (value, asRootData) { - if (!isObject(value) || value instanceof VNode) { - return - } - var ob; - if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { - ob = value.__ob__; - } else if ( - shouldObserve && - !isServerRendering() && - (Array.isArray(value) || isPlainObject(value)) && - Object.isExtensible(value) && - !value._isVue - ) { - ob = new Observer(value); - } - if (asRootData && ob) { - ob.vmCount++; - } - return ob -} - -/** - * Define a reactive property on an Object. - */ -function defineReactive ( - obj, - key, - val, - customSetter, - shallow -) { - var dep = new Dep(); - - var property = Object.getOwnPropertyDescriptor(obj, key); - if (property && property.configurable === false) { - return - } - - // cater for pre-defined getter/setters - var getter = property && property.get; - if (!getter && arguments.length === 2) { - val = obj[key]; - } - var setter = property && property.set; - - var childOb = !shallow && observe(val); - Object.defineProperty(obj, key, { - enumerable: true, - configurable: true, - get: function reactiveGetter () { - var value = getter ? getter.call(obj) : val; - if (Dep.target) { - dep.depend(); - if (childOb) { - childOb.dep.depend(); - if (Array.isArray(value)) { - dependArray(value); - } - } - } - return value - }, - set: function reactiveSetter (newVal) { - var value = getter ? getter.call(obj) : val; - /* eslint-disable no-self-compare */ - if (newVal === value || (newVal !== newVal && value !== value)) { - return - } - /* eslint-enable no-self-compare */ - if ("development" !== 'production' && customSetter) { - customSetter(); - } - if (setter) { - setter.call(obj, newVal); - } else { - val = newVal; - } - childOb = !shallow && observe(newVal); - dep.notify(); - } - }); -} - -/** - * Set a property on an object. Adds the new property and - * triggers change notification if the property doesn't - * already exist. - */ -function set (target, key, val) { - if ("development" !== 'production' && - (isUndef(target) || isPrimitive(target)) - ) { - warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); - } - if (Array.isArray(target) && isValidArrayIndex(key)) { - target.length = Math.max(target.length, key); - target.splice(key, 1, val); - return val - } - if (key in target && !(key in Object.prototype)) { - target[key] = val; - return val - } - var ob = (target).__ob__; - if (target._isVue || (ob && ob.vmCount)) { - "development" !== 'production' && warn( - 'Avoid adding reactive properties to a Vue instance or its root $data ' + - 'at runtime - declare it upfront in the data option.' - ); - return val - } - if (!ob) { - target[key] = val; - return val - } - defineReactive(ob.value, key, val); - ob.dep.notify(); - return val -} - -/** - * Delete a property and trigger change if necessary. - */ -function del (target, key) { - if ("development" !== 'production' && - (isUndef(target) || isPrimitive(target)) - ) { - warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); - } - if (Array.isArray(target) && isValidArrayIndex(key)) { - target.splice(key, 1); - return - } - var ob = (target).__ob__; - if (target._isVue || (ob && ob.vmCount)) { - "development" !== 'production' && warn( - 'Avoid deleting properties on a Vue instance or its root $data ' + - '- just set it to null.' - ); - return - } - if (!hasOwn(target, key)) { - return - } - delete target[key]; - if (!ob) { - return - } - ob.dep.notify(); -} - -/** - * Collect dependencies on array elements when the array is touched, since - * we cannot intercept array element access like property getters. - */ -function dependArray (value) { - for (var e = (void 0), i = 0, l = value.length; i < l; i++) { - e = value[i]; - e && e.__ob__ && e.__ob__.dep.depend(); - if (Array.isArray(e)) { - dependArray(e); - } - } -} - -/* */ - -/** - * Option overwriting strategies are functions that handle - * how to merge a parent option value and a child option - * value into the final value. - */ -var strats = config.optionMergeStrategies; - -/** - * Options with restrictions - */ -{ - strats.el = strats.propsData = function (parent, child, vm, key) { - if (!vm) { - warn( - "option \"" + key + "\" can only be used during instance " + - 'creation with the `new` keyword.' - ); - } - return defaultStrat(parent, child) - }; -} - -/** - * Helper that recursively merges two data objects together. - */ -function mergeData (to, from) { - if (!from) { return to } - var key, toVal, fromVal; - var keys = Object.keys(from); - for (var i = 0; i < keys.length; i++) { - key = keys[i]; - toVal = to[key]; - fromVal = from[key]; - if (!hasOwn(to, key)) { - set(to, key, fromVal); - } else if (isPlainObject(toVal) && isPlainObject(fromVal)) { - mergeData(toVal, fromVal); - } - } - return to -} - -/** - * Data - */ -function mergeDataOrFn ( - parentVal, - childVal, - vm -) { - if (!vm) { - // in a Vue.extend merge, both should be functions - if (!childVal) { - return parentVal - } - if (!parentVal) { - return childVal - } - // when parentVal & childVal are both present, - // we need to return a function that returns the - // merged result of both functions... no need to - // check if parentVal is a function here because - // it has to be a function to pass previous merges. - return function mergedDataFn () { - return mergeData( - typeof childVal === 'function' ? childVal.call(this, this) : childVal, - typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal - ) - } - } else { - return function mergedInstanceDataFn () { - // instance merge - var instanceData = typeof childVal === 'function' - ? childVal.call(vm, vm) - : childVal; - var defaultData = typeof parentVal === 'function' - ? parentVal.call(vm, vm) - : parentVal; - if (instanceData) { - return mergeData(instanceData, defaultData) - } else { - return defaultData - } - } - } -} - -strats.data = function ( - parentVal, - childVal, - vm -) { - if (!vm) { - if (childVal && typeof childVal !== 'function') { - "development" !== 'production' && warn( - 'The "data" option should be a function ' + - 'that returns a per-instance value in component ' + - 'definitions.', - vm - ); - - return parentVal - } - return mergeDataOrFn(parentVal, childVal) - } - - return mergeDataOrFn(parentVal, childVal, vm) -}; - -/** - * Hooks and props are merged as arrays. - */ -function mergeHook ( - parentVal, - childVal -) { - return childVal - ? parentVal - ? parentVal.concat(childVal) - : Array.isArray(childVal) - ? childVal - : [childVal] - : parentVal -} - -LIFECYCLE_HOOKS.forEach(function (hook) { - strats[hook] = mergeHook; -}); - -/** - * Assets - * - * When a vm is present (instance creation), we need to do - * a three-way merge between constructor options, instance - * options and parent options. - */ -function mergeAssets ( - parentVal, - childVal, - vm, - key -) { - var res = Object.create(parentVal || null); - if (childVal) { - "development" !== 'production' && assertObjectType(key, childVal, vm); - return extend(res, childVal) - } else { - return res - } -} - -ASSET_TYPES.forEach(function (type) { - strats[type + 's'] = mergeAssets; -}); - -/** - * Watchers. - * - * Watchers hashes should not overwrite one - * another, so we merge them as arrays. - */ -strats.watch = function ( - parentVal, - childVal, - vm, - key -) { - // work around Firefox's Object.prototype.watch... - if (parentVal === nativeWatch) { parentVal = undefined; } - if (childVal === nativeWatch) { childVal = undefined; } - /* istanbul ignore if */ - if (!childVal) { return Object.create(parentVal || null) } - { - assertObjectType(key, childVal, vm); - } - if (!parentVal) { return childVal } - var ret = {}; - extend(ret, parentVal); - for (var key$1 in childVal) { - var parent = ret[key$1]; - var child = childVal[key$1]; - if (parent && !Array.isArray(parent)) { - parent = [parent]; - } - ret[key$1] = parent - ? parent.concat(child) - : Array.isArray(child) ? child : [child]; - } - return ret -}; - -/** - * Other object hashes. - */ -strats.props = -strats.methods = -strats.inject = -strats.computed = function ( - parentVal, - childVal, - vm, - key -) { - if (childVal && "development" !== 'production') { - assertObjectType(key, childVal, vm); - } - if (!parentVal) { return childVal } - var ret = Object.create(null); - extend(ret, parentVal); - if (childVal) { extend(ret, childVal); } - return ret -}; -strats.provide = mergeDataOrFn; - -/** - * Default strategy. - */ -var defaultStrat = function (parentVal, childVal) { - return childVal === undefined - ? parentVal - : childVal -}; - -/** - * Validate component names - */ -function checkComponents (options) { - for (var key in options.components) { - validateComponentName(key); - } -} - -function validateComponentName (name) { - if (!/^[a-zA-Z][\w-]*$/.test(name)) { - warn( - 'Invalid component name: "' + name + '". Component names ' + - 'can only contain alphanumeric characters and the hyphen, ' + - 'and must start with a letter.' - ); - } - if (isBuiltInTag(name) || config.isReservedTag(name)) { - warn( - 'Do not use built-in or reserved HTML elements as component ' + - 'id: ' + name - ); - } -} - -/** - * Ensure all props option syntax are normalized into the - * Object-based format. - */ -function normalizeProps (options, vm) { - var props = options.props; - if (!props) { return } - var res = {}; - var i, val, name; - if (Array.isArray(props)) { - i = props.length; - while (i--) { - val = props[i]; - if (typeof val === 'string') { - name = camelize(val); - res[name] = { type: null }; - } else { - warn('props must be strings when using array syntax.'); - } - } - } else if (isPlainObject(props)) { - for (var key in props) { - val = props[key]; - name = camelize(key); - res[name] = isPlainObject(val) - ? val - : { type: val }; - } - } else { - warn( - "Invalid value for option \"props\": expected an Array or an Object, " + - "but got " + (toRawType(props)) + ".", - vm - ); - } - options.props = res; -} - -/** - * Normalize all injections into Object-based format - */ -function normalizeInject (options, vm) { - var inject = options.inject; - if (!inject) { return } - var normalized = options.inject = {}; - if (Array.isArray(inject)) { - for (var i = 0; i < inject.length; i++) { - normalized[inject[i]] = { from: inject[i] }; - } - } else if (isPlainObject(inject)) { - for (var key in inject) { - var val = inject[key]; - normalized[key] = isPlainObject(val) - ? extend({ from: key }, val) - : { from: val }; - } - } else { - warn( - "Invalid value for option \"inject\": expected an Array or an Object, " + - "but got " + (toRawType(inject)) + ".", - vm - ); - } -} - -/** - * Normalize raw function directives into object format. - */ -function normalizeDirectives (options) { - var dirs = options.directives; - if (dirs) { - for (var key in dirs) { - var def = dirs[key]; - if (typeof def === 'function') { - dirs[key] = { bind: def, update: def }; - } - } - } -} - -function assertObjectType (name, value, vm) { - if (!isPlainObject(value)) { - warn( - "Invalid value for option \"" + name + "\": expected an Object, " + - "but got " + (toRawType(value)) + ".", - vm - ); - } -} - -/** - * Merge two option objects into a new one. - * Core utility used in both instantiation and inheritance. - */ -function mergeOptions ( - parent, - child, - vm -) { - { - checkComponents(child); - } - - if (typeof child === 'function') { - child = child.options; - } - - normalizeProps(child, vm); - normalizeInject(child, vm); - normalizeDirectives(child); - var extendsFrom = child.extends; - if (extendsFrom) { - parent = mergeOptions(parent, extendsFrom, vm); - } - if (child.mixins) { - for (var i = 0, l = child.mixins.length; i < l; i++) { - parent = mergeOptions(parent, child.mixins[i], vm); - } - } - var options = {}; - var key; - for (key in parent) { - mergeField(key); - } - for (key in child) { - if (!hasOwn(parent, key)) { - mergeField(key); - } - } - function mergeField (key) { - var strat = strats[key] || defaultStrat; - options[key] = strat(parent[key], child[key], vm, key); - } - return options -} - -/** - * Resolve an asset. - * This function is used because child instances need access - * to assets defined in its ancestor chain. - */ -function resolveAsset ( - options, - type, - id, - warnMissing -) { - /* istanbul ignore if */ - if (typeof id !== 'string') { - return - } - var assets = options[type]; - // check local registration variations first - if (hasOwn(assets, id)) { return assets[id] } - var camelizedId = camelize(id); - if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } - var PascalCaseId = capitalize(camelizedId); - if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } - // fallback to prototype chain - var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; - if ("development" !== 'production' && warnMissing && !res) { - warn( - 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, - options - ); - } - return res -} - -/* */ - -function validateProp ( - key, - propOptions, - propsData, - vm -) { - var prop = propOptions[key]; - var absent = !hasOwn(propsData, key); - var value = propsData[key]; - // boolean casting - var booleanIndex = getTypeIndex(Boolean, prop.type); - if (booleanIndex > -1) { - if (absent && !hasOwn(prop, 'default')) { - value = false; - } else if (value === '' || value === hyphenate(key)) { - // only cast empty string / same name to boolean if - // boolean has higher priority - var stringIndex = getTypeIndex(String, prop.type); - if (stringIndex < 0 || booleanIndex < stringIndex) { - value = true; - } - } - } - // check default value - if (value === undefined) { - value = getPropDefaultValue(vm, prop, key); - // since the default value is a fresh copy, - // make sure to observe it. - var prevShouldObserve = shouldObserve; - toggleObserving(true); - observe(value); - toggleObserving(prevShouldObserve); - } - { - assertProp(prop, key, value, vm, absent); - } - return value -} - -/** - * Get the default value of a prop. - */ -function getPropDefaultValue (vm, prop, key) { - // no default, return undefined - if (!hasOwn(prop, 'default')) { - return undefined - } - var def = prop.default; - // warn against non-factory defaults for Object & Array - if ("development" !== 'production' && isObject(def)) { - warn( - 'Invalid default value for prop "' + key + '": ' + - 'Props with type Object/Array must use a factory function ' + - 'to return the default value.', - vm - ); - } - // the raw prop value was also undefined from previous render, - // return previous default value to avoid unnecessary watcher trigger - if (vm && vm.$options.propsData && - vm.$options.propsData[key] === undefined && - vm._props[key] !== undefined - ) { - return vm._props[key] - } - // call factory function for non-Function types - // a value is Function if its prototype is function even across different execution context - return typeof def === 'function' && getType(prop.type) !== 'Function' - ? def.call(vm) - : def -} - -/** - * Assert whether a prop is valid. - */ -function assertProp ( - prop, - name, - value, - vm, - absent -) { - if (prop.required && absent) { - warn( - 'Missing required prop: "' + name + '"', - vm - ); - return - } - if (value == null && !prop.required) { - return - } - var type = prop.type; - var valid = !type || type === true; - var expectedTypes = []; - if (type) { - if (!Array.isArray(type)) { - type = [type]; - } - for (var i = 0; i < type.length && !valid; i++) { - var assertedType = assertType(value, type[i]); - expectedTypes.push(assertedType.expectedType || ''); - valid = assertedType.valid; - } - } - if (!valid) { - warn( - "Invalid prop: type check failed for prop \"" + name + "\"." + - " Expected " + (expectedTypes.map(capitalize).join(', ')) + - ", got " + (toRawType(value)) + ".", - vm - ); - return - } - var validator = prop.validator; - if (validator) { - if (!validator(value)) { - warn( - 'Invalid prop: custom validator check failed for prop "' + name + '".', - vm - ); - } - } -} - -var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; - -function assertType (value, type) { - var valid; - var expectedType = getType(type); - if (simpleCheckRE.test(expectedType)) { - var t = typeof value; - valid = t === expectedType.toLowerCase(); - // for primitive wrapper objects - if (!valid && t === 'object') { - valid = value instanceof type; - } - } else if (expectedType === 'Object') { - valid = isPlainObject(value); - } else if (expectedType === 'Array') { - valid = Array.isArray(value); - } else { - valid = value instanceof type; - } - return { - valid: valid, - expectedType: expectedType - } -} - -/** - * Use function string name to check built-in types, - * because a simple equality check will fail when running - * across different vms / iframes. - */ -function getType (fn) { - var match = fn && fn.toString().match(/^\s*function (\w+)/); - return match ? match[1] : '' -} - -function isSameType (a, b) { - return getType(a) === getType(b) -} - -function getTypeIndex (type, expectedTypes) { - if (!Array.isArray(expectedTypes)) { - return isSameType(expectedTypes, type) ? 0 : -1 - } - for (var i = 0, len = expectedTypes.length; i < len; i++) { - if (isSameType(expectedTypes[i], type)) { - return i - } - } - return -1 -} - -/* */ - -function handleError (err, vm, info) { - if (vm) { - var cur = vm; - while ((cur = cur.$parent)) { - var hooks = cur.$options.errorCaptured; - if (hooks) { - for (var i = 0; i < hooks.length; i++) { - try { - var capture = hooks[i].call(cur, err, vm, info) === false; - if (capture) { return } - } catch (e) { - globalHandleError(e, cur, 'errorCaptured hook'); - } - } - } - } - } - globalHandleError(err, vm, info); -} - -function globalHandleError (err, vm, info) { - if (config.errorHandler) { - try { - return config.errorHandler.call(null, err, vm, info) - } catch (e) { - logError(e, null, 'config.errorHandler'); - } - } - logError(err, vm, info); -} - -function logError (err, vm, info) { - { - warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); - } - /* istanbul ignore else */ - if ((inBrowser || inWeex) && typeof console !== 'undefined') { - console.error(err); - } else { - throw err - } -} - -/* */ -/* globals MessageChannel */ - -var callbacks = []; -var pending = false; - -function flushCallbacks () { - pending = false; - var copies = callbacks.slice(0); - callbacks.length = 0; - for (var i = 0; i < copies.length; i++) { - copies[i](); - } -} - -// Here we have async deferring wrappers using both microtasks and (macro) tasks. -// In < 2.4 we used microtasks everywhere, but there are some scenarios where -// microtasks have too high a priority and fire in between supposedly -// sequential events (e.g. #4521, #6690) or even between bubbling of the same -// event (#6566). However, using (macro) tasks everywhere also has subtle problems -// when state is changed right before repaint (e.g. #6813, out-in transitions). -// Here we use microtask by default, but expose a way to force (macro) task when -// needed (e.g. in event handlers attached by v-on). -var microTimerFunc; -var macroTimerFunc; -var useMacroTask = false; - -// Determine (macro) task defer implementation. -// Technically setImmediate should be the ideal choice, but it's only available -// in IE. The only polyfill that consistently queues the callback after all DOM -// events triggered in the same loop is by using MessageChannel. -/* istanbul ignore if */ -if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { - macroTimerFunc = function () { - setImmediate(flushCallbacks); - }; -} else if (typeof MessageChannel !== 'undefined' && ( - isNative(MessageChannel) || - // PhantomJS - MessageChannel.toString() === '[object MessageChannelConstructor]' -)) { - var channel = new MessageChannel(); - var port = channel.port2; - channel.port1.onmessage = flushCallbacks; - macroTimerFunc = function () { - port.postMessage(1); - }; -} else { - /* istanbul ignore next */ - macroTimerFunc = function () { - setTimeout(flushCallbacks, 0); - }; -} - -// Determine microtask defer implementation. -/* istanbul ignore next, $flow-disable-line */ -if (typeof Promise !== 'undefined' && isNative(Promise)) { - var p = Promise.resolve(); - microTimerFunc = function () { - p.then(flushCallbacks); - // in problematic UIWebViews, Promise.then doesn't completely break, but - // it can get stuck in a weird state where callbacks are pushed into the - // microtask queue but the queue isn't being flushed, until the browser - // needs to do some other work, e.g. handle a timer. Therefore we can - // "force" the microtask queue to be flushed by adding an empty timer. - if (isIOS) { setTimeout(noop); } - }; -} else { - // fallback to macro - microTimerFunc = macroTimerFunc; -} - -/** - * Wrap a function so that if any code inside triggers state change, - * the changes are queued using a (macro) task instead of a microtask. - */ -function withMacroTask (fn) { - return fn._withTask || (fn._withTask = function () { - useMacroTask = true; - var res = fn.apply(null, arguments); - useMacroTask = false; - return res - }) -} - -function nextTick (cb, ctx) { - var _resolve; - callbacks.push(function () { - if (cb) { - try { - cb.call(ctx); - } catch (e) { - handleError(e, ctx, 'nextTick'); - } - } else if (_resolve) { - _resolve(ctx); - } - }); - if (!pending) { - pending = true; - if (useMacroTask) { - macroTimerFunc(); - } else { - microTimerFunc(); - } - } - // $flow-disable-line - if (!cb && typeof Promise !== 'undefined') { - return new Promise(function (resolve) { - _resolve = resolve; - }) - } -} - -/* */ - -var mark; -var measure; - -{ - var perf = inBrowser && window.performance; - /* istanbul ignore if */ - if ( - perf && - perf.mark && - perf.measure && - perf.clearMarks && - perf.clearMeasures - ) { - mark = function (tag) { return perf.mark(tag); }; - measure = function (name, startTag, endTag) { - perf.measure(name, startTag, endTag); - perf.clearMarks(startTag); - perf.clearMarks(endTag); - perf.clearMeasures(name); - }; - } -} - -/* not type checking this file because flow doesn't play well with Proxy */ - -var initProxy; - -{ - var allowedGlobals = makeMap( - 'Infinity,undefined,NaN,isFinite,isNaN,' + - 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + - 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + - 'require' // for Webpack/Browserify - ); - - var warnNonPresent = function (target, key) { - warn( - "Property or method \"" + key + "\" is not defined on the instance but " + - 'referenced during render. Make sure that this property is reactive, ' + - 'either in the data option, or for class-based components, by ' + - 'initializing the property. ' + - 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', - target - ); - }; - - var hasProxy = - typeof Proxy !== 'undefined' && isNative(Proxy); - - if (hasProxy) { - var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); - config.keyCodes = new Proxy(config.keyCodes, { - set: function set (target, key, value) { - if (isBuiltInModifier(key)) { - warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); - return false - } else { - target[key] = value; - return true - } - } - }); - } - - var hasHandler = { - has: function has (target, key) { - var has = key in target; - var isAllowed = allowedGlobals(key) || key.charAt(0) === '_'; - if (!has && !isAllowed) { - warnNonPresent(target, key); - } - return has || !isAllowed - } - }; - - var getHandler = { - get: function get (target, key) { - if (typeof key === 'string' && !(key in target)) { - warnNonPresent(target, key); - } - return target[key] - } - }; - - initProxy = function initProxy (vm) { - if (hasProxy) { - // determine which proxy handler to use - var options = vm.$options; - var handlers = options.render && options.render._withStripped - ? getHandler - : hasHandler; - vm._renderProxy = new Proxy(vm, handlers); - } else { - vm._renderProxy = vm; - } - }; -} - -/* */ - -var seenObjects = new _Set(); - -/** - * Recursively traverse an object to evoke all converted - * getters, so that every nested property inside the object - * is collected as a "deep" dependency. - */ -function traverse (val) { - _traverse(val, seenObjects); - seenObjects.clear(); -} - -function _traverse (val, seen) { - var i, keys; - var isA = Array.isArray(val); - if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { - return - } - if (val.__ob__) { - var depId = val.__ob__.dep.id; - if (seen.has(depId)) { - return - } - seen.add(depId); - } - if (isA) { - i = val.length; - while (i--) { _traverse(val[i], seen); } - } else { - keys = Object.keys(val); - i = keys.length; - while (i--) { _traverse(val[keys[i]], seen); } - } -} - -/* */ - -var normalizeEvent = cached(function (name) { - var passive = name.charAt(0) === '&'; - name = passive ? name.slice(1) : name; - var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first - name = once$$1 ? name.slice(1) : name; - var capture = name.charAt(0) === '!'; - name = capture ? name.slice(1) : name; - return { - name: name, - once: once$$1, - capture: capture, - passive: passive - } -}); - -function createFnInvoker (fns) { - function invoker () { - var arguments$1 = arguments; - - var fns = invoker.fns; - if (Array.isArray(fns)) { - var cloned = fns.slice(); - for (var i = 0; i < cloned.length; i++) { - cloned[i].apply(null, arguments$1); - } - } else { - // return handler return value for single handlers - return fns.apply(null, arguments) - } - } - invoker.fns = fns; - return invoker -} - -function updateListeners ( - on, - oldOn, - add, - remove$$1, - vm -) { - var name, def, cur, old, event; - for (name in on) { - def = cur = on[name]; - old = oldOn[name]; - event = normalizeEvent(name); - /* istanbul ignore if */ - if (isUndef(cur)) { - "development" !== 'production' && warn( - "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), - vm - ); - } else if (isUndef(old)) { - if (isUndef(cur.fns)) { - cur = on[name] = createFnInvoker(cur); - } - add(event.name, cur, event.once, event.capture, event.passive, event.params); - } else if (cur !== old) { - old.fns = cur; - on[name] = old; - } - } - for (name in oldOn) { - if (isUndef(on[name])) { - event = normalizeEvent(name); - remove$$1(event.name, oldOn[name], event.capture); - } - } -} - -/* */ - -function mergeVNodeHook (def, hookKey, hook) { - if (def instanceof VNode) { - def = def.data.hook || (def.data.hook = {}); - } - var invoker; - var oldHook = def[hookKey]; - - function wrappedHook () { - hook.apply(this, arguments); - // important: remove merged hook to ensure it's called only once - // and prevent memory leak - remove(invoker.fns, wrappedHook); - } - - if (isUndef(oldHook)) { - // no existing hook - invoker = createFnInvoker([wrappedHook]); - } else { - /* istanbul ignore if */ - if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { - // already a merged invoker - invoker = oldHook; - invoker.fns.push(wrappedHook); - } else { - // existing plain hook - invoker = createFnInvoker([oldHook, wrappedHook]); - } - } - - invoker.merged = true; - def[hookKey] = invoker; -} - -/* */ - -function extractPropsFromVNodeData ( - data, - Ctor, - tag -) { - // we are only extracting raw values here. - // validation and default values are handled in the child - // component itself. - var propOptions = Ctor.options.props; - if (isUndef(propOptions)) { - return - } - var res = {}; - var attrs = data.attrs; - var props = data.props; - if (isDef(attrs) || isDef(props)) { - for (var key in propOptions) { - var altKey = hyphenate(key); - { - var keyInLowerCase = key.toLowerCase(); - if ( - key !== keyInLowerCase && - attrs && hasOwn(attrs, keyInLowerCase) - ) { - tip( - "Prop \"" + keyInLowerCase + "\" is passed to component " + - (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + - " \"" + key + "\". " + - "Note that HTML attributes are case-insensitive and camelCased " + - "props need to use their kebab-case equivalents when using in-DOM " + - "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." - ); - } - } - checkProp(res, props, key, altKey, true) || - checkProp(res, attrs, key, altKey, false); - } - } - return res -} - -function checkProp ( - res, - hash, - key, - altKey, - preserve -) { - if (isDef(hash)) { - if (hasOwn(hash, key)) { - res[key] = hash[key]; - if (!preserve) { - delete hash[key]; - } - return true - } else if (hasOwn(hash, altKey)) { - res[key] = hash[altKey]; - if (!preserve) { - delete hash[altKey]; - } - return true - } - } - return false -} - -/* */ - -// The template compiler attempts to minimize the need for normalization by -// statically analyzing the template at compile time. -// -// For plain HTML markup, normalization can be completely skipped because the -// generated render function is guaranteed to return Array. There are -// two cases where extra normalization is needed: - -// 1. When the children contains components - because a functional component -// may return an Array instead of a single root. In this case, just a simple -// normalization is needed - if any child is an Array, we flatten the whole -// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep -// because functional components already normalize their own children. -function simpleNormalizeChildren (children) { - for (var i = 0; i < children.length; i++) { - if (Array.isArray(children[i])) { - return Array.prototype.concat.apply([], children) - } - } - return children -} - -// 2. When the children contains constructs that always generated nested Arrays, -// e.g.