Browse Source

first commit

张延森 5 years ago
commit
951d0506e9
100 changed files with 5341 additions and 0 deletions
  1. 29
    0
      .gitignore
  2. 114
    0
      .mvn/wrapper/MavenWrapperDownloader.java
  3. BIN
      .mvn/wrapper/maven-wrapper.jar
  4. 1
    0
      .mvn/wrapper/maven-wrapper.properties
  5. 0
    0
      git
  6. 286
    0
      mvnw
  7. 161
    0
      mvnw.cmd
  8. 105
    0
      pom.xml
  9. 19
    0
      src/main/java/com/huiju/estateagents/EstateagentsApplication.java
  10. 8
    0
      src/main/java/com/huiju/estateagents/base/BaseController.java
  11. 61
    0
      src/main/java/com/huiju/estateagents/base/ResponseBean.java
  12. 63
    0
      src/main/java/com/huiju/estateagents/common/AliOSSUtils.java
  13. 57
    0
      src/main/java/com/huiju/estateagents/common/CommConstant.java
  14. 30
    0
      src/main/java/com/huiju/estateagents/common/DateUtils.java
  15. 55
    0
      src/main/java/com/huiju/estateagents/common/JWTUtils.java
  16. 16
    0
      src/main/java/com/huiju/estateagents/common/MD5Utils.java
  17. 47
    0
      src/main/java/com/huiju/estateagents/common/StringUtils.java
  18. 62
    0
      src/main/java/com/huiju/estateagents/common/WxUtils.java
  19. 26
    0
      src/main/java/com/huiju/estateagents/config/AccessConfig.java
  20. 34
    0
      src/main/java/com/huiju/estateagents/config/AliOSSProperties.java
  21. 14
    0
      src/main/java/com/huiju/estateagents/config/MybatisPlusConfig.java
  22. 15
    0
      src/main/java/com/huiju/estateagents/config/WebSocketConfig.java
  23. 51
    0
      src/main/java/com/huiju/estateagents/config/WxProperties.java
  24. 96
    0
      src/main/java/com/huiju/estateagents/controller/CommonController.java
  25. 172
    0
      src/main/java/com/huiju/estateagents/controller/MiniAppController.java
  26. 21
    0
      src/main/java/com/huiju/estateagents/controller/TaApartmentImgController.java
  27. 21
    0
      src/main/java/com/huiju/estateagents/controller/TaBuildingApartmentController.java
  28. 179
    0
      src/main/java/com/huiju/estateagents/controller/TaBuildingController.java
  29. 121
    0
      src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java
  30. 21
    0
      src/main/java/com/huiju/estateagents/controller/TaBuildingImgController.java
  31. 21
    0
      src/main/java/com/huiju/estateagents/controller/TaBuildingTagController.java
  32. 71
    0
      src/main/java/com/huiju/estateagents/controller/TaChatController.java
  33. 55
    0
      src/main/java/com/huiju/estateagents/controller/TaFavorController.java
  34. 25
    0
      src/main/java/com/huiju/estateagents/controller/TaMiniFormidsController.java
  35. 21
    0
      src/main/java/com/huiju/estateagents/controller/TaPersonBuildingController.java
  36. 294
    0
      src/main/java/com/huiju/estateagents/controller/TaPersonController.java
  37. 21
    0
      src/main/java/com/huiju/estateagents/controller/TaPersonPointsController.java
  38. 21
    0
      src/main/java/com/huiju/estateagents/controller/TaPersonSignController.java
  39. 82
    0
      src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java
  40. 41
    0
      src/main/java/com/huiju/estateagents/controller/TaShareController.java
  41. 43
    0
      src/main/java/com/huiju/estateagents/controller/TaUvController.java
  42. 25
    0
      src/main/java/com/huiju/estateagents/entity/RealtyConsultant.java
  43. 40
    0
      src/main/java/com/huiju/estateagents/entity/TaApartmentImg.java
  44. 181
    0
      src/main/java/com/huiju/estateagents/entity/TaBuilding.java
  45. 82
    0
      src/main/java/com/huiju/estateagents/entity/TaBuildingApartment.java
  46. 84
    0
      src/main/java/com/huiju/estateagents/entity/TaBuildingDynamic.java
  47. 64
    0
      src/main/java/com/huiju/estateagents/entity/TaBuildingImg.java
  48. 43
    0
      src/main/java/com/huiju/estateagents/entity/TaBuildingTag.java
  49. 83
    0
      src/main/java/com/huiju/estateagents/entity/TaChat.java
  50. 63
    0
      src/main/java/com/huiju/estateagents/entity/TaFavor.java
  51. 32
    0
      src/main/java/com/huiju/estateagents/entity/TaMiniFormids.java
  52. 58
    0
      src/main/java/com/huiju/estateagents/entity/TaMiniappQrcode.java
  53. 185
    0
      src/main/java/com/huiju/estateagents/entity/TaPerson.java
  54. 45
    0
      src/main/java/com/huiju/estateagents/entity/TaPersonBuilding.java
  55. 58
    0
      src/main/java/com/huiju/estateagents/entity/TaPersonPoints.java
  56. 47
    0
      src/main/java/com/huiju/estateagents/entity/TaPersonSign.java
  57. 124
    0
      src/main/java/com/huiju/estateagents/entity/TaRecommendCustomer.java
  58. 64
    0
      src/main/java/com/huiju/estateagents/entity/TaShare.java
  59. 63
    0
      src/main/java/com/huiju/estateagents/entity/TaUv.java
  60. 119
    0
      src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java
  61. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaApartmentImgMapper.java
  62. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaBuildingApartmentMapper.java
  63. 46
    0
      src/main/java/com/huiju/estateagents/mapper/TaBuildingDynamicMapper.java
  64. 23
    0
      src/main/java/com/huiju/estateagents/mapper/TaBuildingImgMapper.java
  65. 28
    0
      src/main/java/com/huiju/estateagents/mapper/TaBuildingMapper.java
  66. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaBuildingTagMapper.java
  67. 29
    0
      src/main/java/com/huiju/estateagents/mapper/TaChatMapper.java
  68. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaFavorMapper.java
  69. 19
    0
      src/main/java/com/huiju/estateagents/mapper/TaMiniFormidsMapper.java
  70. 10
    0
      src/main/java/com/huiju/estateagents/mapper/TaMiniappQrcodeMapper.java
  71. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonBuildingMapper.java
  72. 31
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java
  73. 18
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonPointsMapper.java
  74. 20
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonSignMapper.java
  75. 20
    0
      src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java
  76. 17
    0
      src/main/java/com/huiju/estateagents/mapper/TaShareMapper.java
  77. 22
    0
      src/main/java/com/huiju/estateagents/mapper/TaUvMapper.java
  78. 27
    0
      src/main/java/com/huiju/estateagents/service/IMiniAppService.java
  79. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaApartmentImgService.java
  80. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaBuildingApartmentService.java
  81. 66
    0
      src/main/java/com/huiju/estateagents/service/ITaBuildingDynamicService.java
  82. 18
    0
      src/main/java/com/huiju/estateagents/service/ITaBuildingImgService.java
  83. 131
    0
      src/main/java/com/huiju/estateagents/service/ITaBuildingService.java
  84. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaBuildingTagService.java
  85. 25
    0
      src/main/java/com/huiju/estateagents/service/ITaChatService.java
  86. 20
    0
      src/main/java/com/huiju/estateagents/service/ITaFavorService.java
  87. 11
    0
      src/main/java/com/huiju/estateagents/service/ITaMiniFormidsService.java
  88. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonBuildingService.java
  89. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonPointsService.java
  90. 54
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonService.java
  91. 16
    0
      src/main/java/com/huiju/estateagents/service/ITaPersonSignService.java
  92. 24
    0
      src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java
  93. 20
    0
      src/main/java/com/huiju/estateagents/service/ITaShareService.java
  94. 20
    0
      src/main/java/com/huiju/estateagents/service/ITaUvService.java
  95. 172
    0
      src/main/java/com/huiju/estateagents/service/impl/MiniAppServiceImpl.java
  96. 20
    0
      src/main/java/com/huiju/estateagents/service/impl/TaApartmentImgServiceImpl.java
  97. 20
    0
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingApartmentServiceImpl.java
  98. 159
    0
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingDynamicServiceImpl.java
  99. 45
    0
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingImgServiceImpl.java
  100. 0
    0
      src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java

+ 29
- 0
.gitignore View File

@@ -0,0 +1,29 @@
1
+HELP.md
2
+/target/
3
+!.mvn/wrapper/maven-wrapper.jar
4
+
5
+### STS ###
6
+.apt_generated
7
+.classpath
8
+.factorypath
9
+.project
10
+.settings
11
+.springBeans
12
+.sts4-cache
13
+
14
+### IntelliJ IDEA ###
15
+.idea
16
+*.iws
17
+*.iml
18
+*.ipr
19
+
20
+### NetBeans ###
21
+/nbproject/private/
22
+/nbbuild/
23
+/dist/
24
+/nbdist/
25
+/.nb-gradle/
26
+/build/
27
+
28
+### VS Code ###
29
+.vscode/

+ 114
- 0
.mvn/wrapper/MavenWrapperDownloader.java View File

@@ -0,0 +1,114 @@
1
+/*
2
+Licensed to the Apache Software Foundation (ASF) under one
3
+or more contributor license agreements.  See the NOTICE file
4
+distributed with this work for additional information
5
+regarding copyright ownership.  The ASF licenses this file
6
+to you under the Apache License, Version 2.0 (the
7
+"License"); you may not use this file except in compliance
8
+with the License.  You may obtain a copy of the License at
9
+
10
+  https://www.apache.org/licenses/LICENSE-2.0
11
+
12
+Unless required by applicable law or agreed to in writing,
13
+software distributed under the License is distributed on an
14
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+KIND, either express or implied.  See the License for the
16
+specific language governing permissions and limitations
17
+under the License.
18
+*/
19
+
20
+import java.io.File;
21
+import java.io.FileInputStream;
22
+import java.io.FileOutputStream;
23
+import java.io.IOException;
24
+import java.net.URL;
25
+import java.nio.channels.Channels;
26
+import java.nio.channels.ReadableByteChannel;
27
+import java.util.Properties;
28
+
29
+public class MavenWrapperDownloader {
30
+
31
+    /**
32
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
33
+     */
34
+    private static final String DEFAULT_DOWNLOAD_URL =
35
+            "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
36
+
37
+    /**
38
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
39
+     * use instead of the default one.
40
+     */
41
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
42
+            ".mvn/wrapper/maven-wrapper.properties";
43
+
44
+    /**
45
+     * Path where the maven-wrapper.jar will be saved to.
46
+     */
47
+    private static final String MAVEN_WRAPPER_JAR_PATH =
48
+            ".mvn/wrapper/maven-wrapper.jar";
49
+
50
+    /**
51
+     * Name of the property which should be used to override the default download url for the wrapper.
52
+     */
53
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
54
+
55
+    public static void main(String args[]) {
56
+        System.out.println("- Downloader started");
57
+        File baseDirectory = new File(args[0]);
58
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
59
+
60
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
61
+        // wrapperUrl parameter.
62
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
63
+        String url = DEFAULT_DOWNLOAD_URL;
64
+        if(mavenWrapperPropertyFile.exists()) {
65
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
66
+            try {
67
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
68
+                Properties mavenWrapperProperties = new Properties();
69
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
70
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
71
+            } catch (IOException e) {
72
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
73
+            } finally {
74
+                try {
75
+                    if(mavenWrapperPropertyFileInputStream != null) {
76
+                        mavenWrapperPropertyFileInputStream.close();
77
+                    }
78
+                } catch (IOException e) {
79
+                    // Ignore ...
80
+                }
81
+            }
82
+        }
83
+        System.out.println("- Downloading from: : " + url);
84
+
85
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
86
+        if(!outputFile.getParentFile().exists()) {
87
+            if(!outputFile.getParentFile().mkdirs()) {
88
+                System.out.println(
89
+                        "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
90
+            }
91
+        }
92
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
93
+        try {
94
+            downloadFileFromURL(url, outputFile);
95
+            System.out.println("Done");
96
+            System.exit(0);
97
+        } catch (Throwable e) {
98
+            System.out.println("- Error downloading");
99
+            e.printStackTrace();
100
+            System.exit(1);
101
+        }
102
+    }
103
+
104
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
105
+        URL website = new URL(urlString);
106
+        ReadableByteChannel rbc;
107
+        rbc = Channels.newChannel(website.openStream());
108
+        FileOutputStream fos = new FileOutputStream(destination);
109
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
110
+        fos.close();
111
+        rbc.close();
112
+    }
113
+
114
+}

BIN
.mvn/wrapper/maven-wrapper.jar View File


+ 1
- 0
.mvn/wrapper/maven-wrapper.properties View File

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

+ 0
- 0
git View File


+ 286
- 0
mvnw View File

@@ -0,0 +1,286 @@
1
+#!/bin/sh
2
+# ----------------------------------------------------------------------------
3
+# Licensed to the Apache Software Foundation (ASF) under one
4
+# or more contributor license agreements.  See the NOTICE file
5
+# distributed with this work for additional information
6
+# regarding copyright ownership.  The ASF licenses this file
7
+# to you under the Apache License, Version 2.0 (the
8
+# "License"); you may not use this file except in compliance
9
+# with the License.  You may obtain a copy of the License at
10
+#
11
+#    https://www.apache.org/licenses/LICENSE-2.0
12
+#
13
+# Unless required by applicable law or agreed to in writing,
14
+# software distributed under the License is distributed on an
15
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+# KIND, either express or implied.  See the License for the
17
+# specific language governing permissions and limitations
18
+# under the License.
19
+# ----------------------------------------------------------------------------
20
+
21
+# ----------------------------------------------------------------------------
22
+# Maven2 Start Up Batch script
23
+#
24
+# Required ENV vars:
25
+# ------------------
26
+#   JAVA_HOME - location of a JDK home dir
27
+#
28
+# Optional ENV vars
29
+# -----------------
30
+#   M2_HOME - location of maven2's installed home dir
31
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
32
+#     e.g. to debug Maven itself, use
33
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35
+# ----------------------------------------------------------------------------
36
+
37
+if [ -z "$MAVEN_SKIP_RC" ] ; then
38
+
39
+  if [ -f /etc/mavenrc ] ; then
40
+    . /etc/mavenrc
41
+  fi
42
+
43
+  if [ -f "$HOME/.mavenrc" ] ; then
44
+    . "$HOME/.mavenrc"
45
+  fi
46
+
47
+fi
48
+
49
+# OS specific support.  $var _must_ be set to either true or false.
50
+cygwin=false;
51
+darwin=false;
52
+mingw=false
53
+case "`uname`" in
54
+  CYGWIN*) cygwin=true ;;
55
+  MINGW*) mingw=true;;
56
+  Darwin*) darwin=true
57
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
58
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
59
+    if [ -z "$JAVA_HOME" ]; then
60
+      if [ -x "/usr/libexec/java_home" ]; then
61
+        export JAVA_HOME="`/usr/libexec/java_home`"
62
+      else
63
+        export JAVA_HOME="/Library/Java/Home"
64
+      fi
65
+    fi
66
+    ;;
67
+esac
68
+
69
+if [ -z "$JAVA_HOME" ] ; then
70
+  if [ -r /etc/gentoo-release ] ; then
71
+    JAVA_HOME=`java-config --jre-home`
72
+  fi
73
+fi
74
+
75
+if [ -z "$M2_HOME" ] ; then
76
+  ## resolve links - $0 may be a link to maven's home
77
+  PRG="$0"
78
+
79
+  # need this for relative symlinks
80
+  while [ -h "$PRG" ] ; do
81
+    ls=`ls -ld "$PRG"`
82
+    link=`expr "$ls" : '.*-> \(.*\)$'`
83
+    if expr "$link" : '/.*' > /dev/null; then
84
+      PRG="$link"
85
+    else
86
+      PRG="`dirname "$PRG"`/$link"
87
+    fi
88
+  done
89
+
90
+  saveddir=`pwd`
91
+
92
+  M2_HOME=`dirname "$PRG"`/..
93
+
94
+  # make it fully qualified
95
+  M2_HOME=`cd "$M2_HOME" && pwd`
96
+
97
+  cd "$saveddir"
98
+  # echo Using m2 at $M2_HOME
99
+fi
100
+
101
+# For Cygwin, ensure paths are in UNIX format before anything is touched
102
+if $cygwin ; then
103
+  [ -n "$M2_HOME" ] &&
104
+    M2_HOME=`cygpath --unix "$M2_HOME"`
105
+  [ -n "$JAVA_HOME" ] &&
106
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
107
+  [ -n "$CLASSPATH" ] &&
108
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
109
+fi
110
+
111
+# For Mingw, ensure paths are in UNIX format before anything is touched
112
+if $mingw ; then
113
+  [ -n "$M2_HOME" ] &&
114
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
115
+  [ -n "$JAVA_HOME" ] &&
116
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117
+  # TODO classpath?
118
+fi
119
+
120
+if [ -z "$JAVA_HOME" ]; then
121
+  javaExecutable="`which javac`"
122
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
123
+    # readlink(1) is not available as standard on Solaris 10.
124
+    readLink=`which readlink`
125
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
126
+      if $darwin ; then
127
+        javaHome="`dirname \"$javaExecutable\"`"
128
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
129
+      else
130
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
131
+      fi
132
+      javaHome="`dirname \"$javaExecutable\"`"
133
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
134
+      JAVA_HOME="$javaHome"
135
+      export JAVA_HOME
136
+    fi
137
+  fi
138
+fi
139
+
140
+if [ -z "$JAVACMD" ] ; then
141
+  if [ -n "$JAVA_HOME"  ] ; then
142
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
143
+      # IBM's JDK on AIX uses strange locations for the executables
144
+      JAVACMD="$JAVA_HOME/jre/sh/java"
145
+    else
146
+      JAVACMD="$JAVA_HOME/bin/java"
147
+    fi
148
+  else
149
+    JAVACMD="`which java`"
150
+  fi
151
+fi
152
+
153
+if [ ! -x "$JAVACMD" ] ; then
154
+  echo "Error: JAVA_HOME is not defined correctly." >&2
155
+  echo "  We cannot execute $JAVACMD" >&2
156
+  exit 1
157
+fi
158
+
159
+if [ -z "$JAVA_HOME" ] ; then
160
+  echo "Warning: JAVA_HOME environment variable is not set."
161
+fi
162
+
163
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
164
+
165
+# traverses directory structure from process work directory to filesystem root
166
+# first directory with .mvn subdirectory is considered project base directory
167
+find_maven_basedir() {
168
+
169
+  if [ -z "$1" ]
170
+  then
171
+    echo "Path not specified to find_maven_basedir"
172
+    return 1
173
+  fi
174
+
175
+  basedir="$1"
176
+  wdir="$1"
177
+  while [ "$wdir" != '/' ] ; do
178
+    if [ -d "$wdir"/.mvn ] ; then
179
+      basedir=$wdir
180
+      break
181
+    fi
182
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
183
+    if [ -d "${wdir}" ]; then
184
+      wdir=`cd "$wdir/.."; pwd`
185
+    fi
186
+    # end of workaround
187
+  done
188
+  echo "${basedir}"
189
+}
190
+
191
+# concatenates all lines of a file
192
+concat_lines() {
193
+  if [ -f "$1" ]; then
194
+    echo "$(tr -s '\n' ' ' < "$1")"
195
+  fi
196
+}
197
+
198
+BASE_DIR=`find_maven_basedir "$(pwd)"`
199
+if [ -z "$BASE_DIR" ]; then
200
+  exit 1;
201
+fi
202
+
203
+##########################################################################################
204
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
205
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
206
+##########################################################################################
207
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
208
+    if [ "$MVNW_VERBOSE" = true ]; then
209
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
210
+    fi
211
+else
212
+    if [ "$MVNW_VERBOSE" = true ]; then
213
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
214
+    fi
215
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
216
+    while IFS="=" read key value; do
217
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
218
+      esac
219
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
220
+    if [ "$MVNW_VERBOSE" = true ]; then
221
+      echo "Downloading from: $jarUrl"
222
+    fi
223
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
224
+
225
+    if command -v wget > /dev/null; then
226
+        if [ "$MVNW_VERBOSE" = true ]; then
227
+          echo "Found wget ... using wget"
228
+        fi
229
+        wget "$jarUrl" -O "$wrapperJarPath"
230
+    elif command -v curl > /dev/null; then
231
+        if [ "$MVNW_VERBOSE" = true ]; then
232
+          echo "Found curl ... using curl"
233
+        fi
234
+        curl -o "$wrapperJarPath" "$jarUrl"
235
+    else
236
+        if [ "$MVNW_VERBOSE" = true ]; then
237
+          echo "Falling back to using Java to download"
238
+        fi
239
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
240
+        if [ -e "$javaClass" ]; then
241
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
242
+                if [ "$MVNW_VERBOSE" = true ]; then
243
+                  echo " - Compiling MavenWrapperDownloader.java ..."
244
+                fi
245
+                # Compiling the Java class
246
+                ("$JAVA_HOME/bin/javac" "$javaClass")
247
+            fi
248
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
249
+                # Running the downloader
250
+                if [ "$MVNW_VERBOSE" = true ]; then
251
+                  echo " - Running MavenWrapperDownloader.java ..."
252
+                fi
253
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
254
+            fi
255
+        fi
256
+    fi
257
+fi
258
+##########################################################################################
259
+# End of extension
260
+##########################################################################################
261
+
262
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
263
+if [ "$MVNW_VERBOSE" = true ]; then
264
+  echo $MAVEN_PROJECTBASEDIR
265
+fi
266
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
267
+
268
+# For Cygwin, switch paths to Windows format before running java
269
+if $cygwin; then
270
+  [ -n "$M2_HOME" ] &&
271
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
272
+  [ -n "$JAVA_HOME" ] &&
273
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
274
+  [ -n "$CLASSPATH" ] &&
275
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
276
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
277
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
278
+fi
279
+
280
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281
+
282
+exec "$JAVACMD" \
283
+  $MAVEN_OPTS \
284
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
285
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
286
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

+ 161
- 0
mvnw.cmd View File

@@ -0,0 +1,161 @@
1
+@REM ----------------------------------------------------------------------------
2
+@REM Licensed to the Apache Software Foundation (ASF) under one
3
+@REM or more contributor license agreements.  See the NOTICE file
4
+@REM distributed with this work for additional information
5
+@REM regarding copyright ownership.  The ASF licenses this file
6
+@REM to you under the Apache License, Version 2.0 (the
7
+@REM "License"); you may not use this file except in compliance
8
+@REM with the License.  You may obtain a copy of the License at
9
+@REM
10
+@REM    https://www.apache.org/licenses/LICENSE-2.0
11
+@REM
12
+@REM Unless required by applicable law or agreed to in writing,
13
+@REM software distributed under the License is distributed on an
14
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+@REM KIND, either express or implied.  See the License for the
16
+@REM specific language governing permissions and limitations
17
+@REM under the License.
18
+@REM ----------------------------------------------------------------------------
19
+
20
+@REM ----------------------------------------------------------------------------
21
+@REM Maven2 Start Up Batch script
22
+@REM
23
+@REM Required ENV vars:
24
+@REM JAVA_HOME - location of a JDK home dir
25
+@REM
26
+@REM Optional ENV vars
27
+@REM M2_HOME - location of maven2's installed home dir
28
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31
+@REM     e.g. to debug Maven itself, use
32
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34
+@REM ----------------------------------------------------------------------------
35
+
36
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37
+@echo off
38
+@REM set title of command window
39
+title %0
40
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
41
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
42
+
43
+@REM set %HOME% to equivalent of $HOME
44
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45
+
46
+@REM Execute a user defined script before this one
47
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51
+:skipRcPre
52
+
53
+@setlocal
54
+
55
+set ERROR_CODE=0
56
+
57
+@REM To isolate internal variables from possible post scripts, we use another setlocal
58
+@setlocal
59
+
60
+@REM ==== START VALIDATION ====
61
+if not "%JAVA_HOME%" == "" goto OkJHome
62
+
63
+echo.
64
+echo Error: JAVA_HOME not found in your environment. >&2
65
+echo Please set the JAVA_HOME variable in your environment to match the >&2
66
+echo location of your Java installation. >&2
67
+echo.
68
+goto error
69
+
70
+:OkJHome
71
+if exist "%JAVA_HOME%\bin\java.exe" goto init
72
+
73
+echo.
74
+echo Error: JAVA_HOME is set to an invalid directory. >&2
75
+echo JAVA_HOME = "%JAVA_HOME%" >&2
76
+echo Please set the JAVA_HOME variable in your environment to match the >&2
77
+echo location of your Java installation. >&2
78
+echo.
79
+goto error
80
+
81
+@REM ==== END VALIDATION ====
82
+
83
+:init
84
+
85
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86
+@REM Fallback to current working directory if not found.
87
+
88
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90
+
91
+set EXEC_DIR=%CD%
92
+set WDIR=%EXEC_DIR%
93
+:findBaseDir
94
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
95
+cd ..
96
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
97
+set WDIR=%CD%
98
+goto findBaseDir
99
+
100
+:baseDirFound
101
+set MAVEN_PROJECTBASEDIR=%WDIR%
102
+cd "%EXEC_DIR%"
103
+goto endDetectBaseDir
104
+
105
+:baseDirNotFound
106
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107
+cd "%EXEC_DIR%"
108
+
109
+:endDetectBaseDir
110
+
111
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112
+
113
+@setlocal EnableExtensions EnableDelayedExpansion
114
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116
+
117
+:endReadAdditionalConfig
118
+
119
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122
+
123
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
124
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
125
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
126
+)
127
+
128
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
129
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
130
+if exist %WRAPPER_JAR% (
131
+    echo Found %WRAPPER_JAR%
132
+) else (
133
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
134
+	echo Downloading from: %DOWNLOAD_URL%
135
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
136
+    echo Finished downloading %WRAPPER_JAR%
137
+)
138
+@REM End of extension
139
+
140
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
141
+if ERRORLEVEL 1 goto error
142
+goto end
143
+
144
+:error
145
+set ERROR_CODE=1
146
+
147
+:end
148
+@endlocal & set ERROR_CODE=%ERROR_CODE%
149
+
150
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
151
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
152
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
153
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
154
+:skipRcPost
155
+
156
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
157
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
158
+
159
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
160
+
161
+exit /B %ERROR_CODE%

+ 105
- 0
pom.xml View File

@@ -0,0 +1,105 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4
+	<modelVersion>4.0.0</modelVersion>
5
+	<parent>
6
+		<groupId>org.springframework.boot</groupId>
7
+		<artifactId>spring-boot-starter-parent</artifactId>
8
+		<version>2.1.4.RELEASE</version>
9
+		<relativePath/> <!-- lookup parent from repository -->
10
+	</parent>
11
+	<groupId>com.huiju</groupId>
12
+	<artifactId>estateagents</artifactId>
13
+	<version>v.0.01</version>
14
+	<name>estateagents</name>
15
+	<description>置业经纪人</description>
16
+
17
+	<properties>
18
+		<java.version>1.8</java.version>
19
+	</properties>
20
+
21
+	<dependencies>
22
+		<dependency>
23
+			<groupId>org.springframework.boot</groupId>
24
+			<artifactId>spring-boot-starter-web</artifactId>
25
+		</dependency>
26
+		<dependency>
27
+			<groupId>org.springframework.boot</groupId>
28
+			<artifactId>spring-boot-configuration-processor</artifactId>
29
+			<optional>true</optional>
30
+		</dependency>
31
+		<dependency>
32
+			<groupId>com.baomidou</groupId>
33
+			<artifactId>mybatis-plus-boot-starter</artifactId>
34
+			<version>3.1.1</version>
35
+		</dependency>
36
+		<dependency>
37
+			<groupId>org.springframework.boot</groupId>
38
+			<artifactId>spring-boot-starter-websocket</artifactId>
39
+		</dependency>
40
+
41
+		<dependency>
42
+			<groupId>mysql</groupId>
43
+			<artifactId>mysql-connector-java</artifactId>
44
+			<scope>runtime</scope>
45
+		</dependency>
46
+		<dependency>
47
+			<groupId>org.projectlombok</groupId>
48
+			<artifactId>lombok</artifactId>
49
+			<optional>true</optional>
50
+		</dependency>
51
+		<dependency>
52
+			<groupId>org.springframework.boot</groupId>
53
+			<artifactId>spring-boot-starter-test</artifactId>
54
+			<scope>test</scope>
55
+		</dependency>
56
+		<dependency>
57
+			<groupId>com.github.binarywang</groupId>
58
+			<artifactId>weixin-java-miniapp</artifactId>
59
+			<version>3.3.0</version>
60
+		</dependency>
61
+		<dependency>
62
+			<groupId>com.alibaba</groupId>
63
+			<artifactId>fastjson</artifactId>
64
+			<version>1.2.56</version>
65
+		</dependency>
66
+		<dependency>
67
+			<groupId>io.jsonwebtoken</groupId>
68
+			<artifactId>jjwt-api</artifactId>
69
+			<version>0.10.5</version>
70
+		</dependency>
71
+		<dependency>
72
+			<groupId>io.jsonwebtoken</groupId>
73
+			<artifactId>jjwt-impl</artifactId>
74
+			<version>0.10.5</version>
75
+			<scope>runtime</scope>
76
+		</dependency>
77
+		<dependency>
78
+			<groupId>io.jsonwebtoken</groupId>
79
+			<artifactId>jjwt-jackson</artifactId>
80
+			<version>0.10.5</version>
81
+			<scope>runtime</scope>
82
+		</dependency>
83
+		<dependency>
84
+			<groupId>com.aliyun.oss</groupId>
85
+			<artifactId>aliyun-sdk-oss</artifactId>
86
+			<version>2.8.3</version>
87
+		</dependency>
88
+		<!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
89
+		<dependency>
90
+			<groupId>org.dom4j</groupId>
91
+			<artifactId>dom4j</artifactId>
92
+			<version>2.1.1</version>
93
+		</dependency>
94
+	</dependencies>
95
+
96
+	<build>
97
+		<plugins>
98
+			<plugin>
99
+				<groupId>org.springframework.boot</groupId>
100
+				<artifactId>spring-boot-maven-plugin</artifactId>
101
+			</plugin>
102
+		</plugins>
103
+	</build>
104
+
105
+</project>

+ 19
- 0
src/main/java/com/huiju/estateagents/EstateagentsApplication.java View File

@@ -0,0 +1,19 @@
1
+package com.huiju.estateagents;
2
+
3
+import com.huiju.estateagents.websocket.ChatServer;
4
+import org.mybatis.spring.annotation.MapperScan;
5
+import org.springframework.boot.SpringApplication;
6
+import org.springframework.boot.autoconfigure.SpringBootApplication;
7
+import org.springframework.context.ConfigurableApplicationContext;
8
+
9
+@SpringBootApplication
10
+@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
11
+public class EstateagentsApplication {
12
+
13
+	public static void main(String[] args) {
14
+		SpringApplication springApplication = new SpringApplication(EstateagentsApplication.class);
15
+		ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args);
16
+		ChatServer.setApplicationContext(configurableApplicationContext);
17
+	}
18
+
19
+}

+ 8
- 0
src/main/java/com/huiju/estateagents/base/BaseController.java View File

@@ -0,0 +1,8 @@
1
+package com.huiju.estateagents.base;
2
+
3
+/**
4
+ * @author FXF
5
+ * @date 2018-12-18
6
+ */
7
+public class BaseController {
8
+}

+ 61
- 0
src/main/java/com/huiju/estateagents/base/ResponseBean.java View File

@@ -0,0 +1,61 @@
1
+package com.huiju.estateagents.base;
2
+
3
+import java.io.Serializable;
4
+
5
+/**
6
+ * 接口统一状态返回BEAN.
7
+ */
8
+public class ResponseBean<T> implements Serializable {
9
+
10
+    private static final long serialVersionUID = 3593827217136880822L;
11
+
12
+    public static final int CODE_SUCCESS = 1000;
13
+    public static final int ERROR_AUTH_FAIL = 1001;
14
+    public static final int ERROR_AUTH_EXPIRED = 1002;
15
+    public static final int ERROR_MISSING_PARAMS = 1003;
16
+    public static final int ERROR_ILLEGAL_PARAMS = 1004;
17
+    public static final int ERROR_UNAVAILABLE = 1005;
18
+
19
+    private int code;
20
+    private String message;
21
+    private T data;
22
+
23
+    public static <T> ResponseBean success(T data, String ...msgs) {
24
+        ResponseBean responseBean = new ResponseBean();
25
+        responseBean.code = ResponseBean.CODE_SUCCESS;
26
+        responseBean.data = data;
27
+
28
+        if (null != msgs && msgs.length > 0) {
29
+            responseBean.message = msgs[0];
30
+        }
31
+
32
+        return responseBean;
33
+    }
34
+
35
+    public static <T> ResponseBean error(String msg, int code, T ...datas) {
36
+        ResponseBean responseBean = new ResponseBean();
37
+        responseBean.code = code;
38
+        responseBean.message = msg;
39
+
40
+        if (null != datas && datas.length > 0) {
41
+            responseBean.data = datas[0];
42
+        }
43
+
44
+        return responseBean;
45
+    }
46
+
47
+    public T getData() {
48
+        return this.data;
49
+    }
50
+    public int getCode() {
51
+        return this.code;
52
+    }
53
+    public String getMessage() {
54
+        return this.message;
55
+    }
56
+
57
+    @Override
58
+    public String toString() {
59
+        return  "{ code: "+code+", message: "+message+", data: <T> }";
60
+    }
61
+}

+ 63
- 0
src/main/java/com/huiju/estateagents/common/AliOSSUtils.java View File

@@ -0,0 +1,63 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import com.aliyun.oss.OSSClient;
4
+import com.huiju.estateagents.config.AliOSSProperties;
5
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
6
+import org.springframework.context.annotation.Configuration;
7
+import org.springframework.web.multipart.MultipartFile;
8
+
9
+import java.io.*;
10
+import java.nio.channels.FileChannel;
11
+
12
+@Configuration
13
+@EnableConfigurationProperties(AliOSSProperties.class)
14
+public class AliOSSUtils {
15
+
16
+    /**
17
+     * 上传文件
18
+     * @param mf 上传的文件
19
+     * @param toDirs 上传到的目录
20
+     * @return
21
+     */
22
+    public static String putObject(MultipartFile mf, String ... toDirs) throws IOException {
23
+        String fName = StringUtils.ifNull(mf.getOriginalFilename(), StringUtils.random(16) + ".png");
24
+        String preFix = String.valueOf(System.currentTimeMillis());
25
+        String toDir = "/";
26
+        if (null != toDirs && toDirs.length > 0) {
27
+            toDir = toDirs[0];
28
+        }
29
+        String nwFName = toDir + preFix + "-" + fName;
30
+        nwFName = StringUtils.trim(nwFName,"/");
31
+
32
+        return putFile(nwFName, new ByteArrayInputStream(mf.getBytes()));
33
+    }
34
+
35
+    public static String putObject(File f, String ... toDirs) throws FileNotFoundException {
36
+        String fName = StringUtils.ifNull(f.getName(), StringUtils.random(16) + ".png");
37
+        String preFix = String.valueOf(System.currentTimeMillis());
38
+        String toDir = "/";
39
+        if (null != toDirs && toDirs.length > 0) {
40
+            toDir = toDirs[0];
41
+        }
42
+        String nwFName = toDir + preFix + "-" + fName;
43
+        nwFName = StringUtils.trim(nwFName,"/");
44
+
45
+        InputStream inputStream = new FileInputStream(f);
46
+        return putFile(nwFName, inputStream);
47
+    }
48
+
49
+    private static String putFile(String fname, InputStream input) {
50
+        OSSClient ossClient = new OSSClient(AliOSSProperties.oss.getEndpoint(), AliOSSProperties.accessKeyId, AliOSSProperties.accessKeySecret);
51
+        ossClient.putObject(AliOSSProperties.oss.getBucketName(), fname, input);
52
+        ossClient.shutdown();
53
+
54
+        // String url = ossClient.generatePresignedUrl(AliOSSUtils.oss.getBucketName(), fname, expiration).toString();
55
+
56
+        String preURL = AliOSSProperties.oss.getBucketURL();
57
+        if (!preURL.endsWith("/")) {
58
+            preURL += "/";
59
+        }
60
+
61
+        return preURL + fname;
62
+    }
63
+}

+ 57
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java View File

@@ -0,0 +1,57 @@
1
+package com.huiju.estateagents.common;
2
+
3
+public class CommConstant {
4
+    public final static String ALIOSS_DEFAULT_UPLOAD = "/miniapp/upload/images/";
5
+
6
+    /**
7
+     * 人员类型: 置业顾问
8
+     */
9
+    public final static String PERSON_REALTY_CONSULTANT = "Realty Consultant";
10
+
11
+    /**
12
+     * 人员类型: 销售主管
13
+     */
14
+    public final static String PERSON_SALES_EXECUTIVE = "Sales Executive";
15
+
16
+    /**
17
+     * 人员类型: 经纪人
18
+     */
19
+    public final static String PERSON_ESTATE_AGENT = "estate agent";
20
+
21
+    /**
22
+     * 状态: 正常
23
+     */
24
+    public final static int STATUS_NORMAL = 1;
25
+
26
+    /**
27
+     * 状态: 删除
28
+     */
29
+    public final static int STATUS_DELETE = -1;
30
+
31
+    /**
32
+     * 消息未读
33
+     */
34
+    public final static int MESSAGE_UNREAD = 0;
35
+
36
+    /**
37
+     * 消息已读
38
+     */
39
+    public final static int MESSAGE_READED = 1;
40
+
41
+    /**
42
+     * 点赞置业卡片
43
+     */
44
+    public final static String FAVOR_CONSULTANT = "consultant";
45
+
46
+    /**
47
+     * 点赞项目
48
+     */
49
+    public final static String FAVOR_PROJECT = "project";
50
+
51
+    /**
52
+     * 小程序默认首页
53
+     */
54
+    public final static String MINIAPP_INDEX = "/index/index";
55
+
56
+    public final static String MINIAPP_DEFAULT_AVATAR = "https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/default_avatar.jpg";
57
+}

+ 30
- 0
src/main/java/com/huiju/estateagents/common/DateUtils.java View File

@@ -0,0 +1,30 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import java.time.Instant;
4
+import java.time.LocalDateTime;
5
+import java.time.ZoneId;
6
+import java.time.format.DateTimeFormatter;
7
+import java.util.Date;
8
+
9
+public class DateUtils {
10
+    public static LocalDateTime date2LocalDateTime(Date date) {
11
+        Instant instant = date.toInstant();
12
+        ZoneId zone = ZoneId.systemDefault();
13
+        return LocalDateTime.ofInstant(instant, zone);
14
+    }
15
+
16
+    public static boolean sameDay(LocalDateTime d1, LocalDateTime d2) {
17
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
18
+        return d1.format(formatter).equals(d2.format(formatter));
19
+    }
20
+
21
+    public static String cutSecond(LocalDateTime dt) {
22
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
23
+        return dt.format(formatter);
24
+    }
25
+
26
+    public static LocalDateTime day2LocalDateime(String day) {
27
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
28
+        return LocalDateTime.parse(day + " 00:00:00",df);
29
+    }
30
+}

+ 55
- 0
src/main/java/com/huiju/estateagents/common/JWTUtils.java View File

@@ -0,0 +1,55 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import io.jsonwebtoken.Jwts;
4
+import io.jsonwebtoken.SignatureAlgorithm;
5
+import io.jsonwebtoken.security.Keys;
6
+
7
+import javax.servlet.http.HttpServletRequest;
8
+import java.security.Key;
9
+import java.util.Calendar;
10
+import java.util.Date;
11
+
12
+/**
13
+ * JWTUtils
14
+ * jwt 辅助类
15
+ * https://github.com/jwtk/jjwt
16
+ */
17
+public class JWTUtils {
18
+    // 直接定义常量是不安全的
19
+    public final static Key key = Keys.hmacShaKeyFor("yansenisahero,2019-5-17 16:18:14".getBytes());
20
+
21
+    /**
22
+     * getSubject 获取 jwt subject
23
+     * @param request
24
+     * @return
25
+     */
26
+    public static String getSubject(HttpServletRequest request) {
27
+        String jwtHeader = request.getHeader("authorization");
28
+        if (null == jwtHeader || "".equals(jwtHeader.trim())) return null;
29
+
30
+        String[] jwtAuths = jwtHeader.split("Bearer ");
31
+        if (null == jwtAuths || jwtAuths.length < 2) return null;
32
+
33
+        try {
34
+            return Jwts.parser().setSigningKey(key).parseClaimsJws(jwtAuths[1]).getBody().getSubject();
35
+        } catch (Exception e) {
36
+            e.printStackTrace();
37
+        }
38
+
39
+        return null;
40
+    }
41
+
42
+    /**
43
+     * newToken 生成新的 token
44
+     * @param subject
45
+     * @return
46
+     */
47
+    public static String newToken(String subject) {
48
+        // 有效期 7 天
49
+        Calendar calendar = Calendar.getInstance();
50
+        calendar.setTime(new Date());
51
+        calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+7);
52
+
53
+        return Jwts.builder().setSubject(subject).setExpiration(calendar.getTime()).signWith(key).compact();
54
+    }
55
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/common/MD5Utils.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import org.springframework.util.DigestUtils;
4
+
5
+public class MD5Utils {
6
+    public static String md5(String str, String ...slats) {
7
+        String slat = "";
8
+        if (null != slats && slats.length > 0) {
9
+            slat = slats[0];
10
+        }
11
+
12
+        String base = str + slat;
13
+        String md5 = DigestUtils.md5DigestAsHex(base.getBytes());
14
+        return md5;
15
+    }
16
+}

+ 47
- 0
src/main/java/com/huiju/estateagents/common/StringUtils.java View File

@@ -0,0 +1,47 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import java.io.UnsupportedEncodingException;
4
+import java.net.URLEncoder;
5
+import java.util.Random;
6
+
7
+public class StringUtils {
8
+    public static boolean isEmpty(String str) {
9
+        return null == str || "".equals(str.trim()) || "null".equals(str) || "undefined".equals(str);
10
+    }
11
+
12
+    public static String trim(String src, String ...st) {
13
+        if (null == src) return src;
14
+        if (null == st || st.length == 0) return src.trim();
15
+
16
+        String start = st[0];
17
+        if (!src.startsWith(start)) {
18
+            return src;
19
+        }
20
+
21
+        return src.substring(start.length());
22
+    }
23
+
24
+    public static String ifNull(String src, String defaultVal) {
25
+        return null == src || "".equals(src) ? defaultVal : src;
26
+    }
27
+
28
+    public static String random(int length) {
29
+        String str="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
30
+        Random random = new Random();
31
+        StringBuffer sb = new StringBuffer();
32
+        for(int i=0;i<length;i++){
33
+            int number=random.nextInt(62);
34
+            sb.append(str.charAt(number));
35
+        }
36
+        return sb.toString();
37
+    }
38
+
39
+    public static String urlEncode(String str) {
40
+        try {
41
+            return URLEncoder.encode(str, "UTF-8");
42
+        } catch (UnsupportedEncodingException e) {
43
+            e.printStackTrace();
44
+            return str;
45
+        }
46
+    }
47
+}

+ 62
- 0
src/main/java/com/huiju/estateagents/common/WxUtils.java View File

@@ -0,0 +1,62 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import cn.binarywang.wx.miniapp.api.WxMaService;
4
+import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
5
+import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
6
+import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
7
+import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;
8
+import com.huiju.estateagents.config.WxProperties;
9
+import me.chanjar.weixin.common.error.WxErrorException;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
12
+import org.springframework.context.annotation.Configuration;
13
+
14
+import javax.annotation.PostConstruct;
15
+import java.time.LocalDateTime;
16
+import java.util.ArrayList;
17
+import java.util.Arrays;
18
+import java.util.List;
19
+import java.util.Map;
20
+
21
+@Configuration
22
+@EnableConfigurationProperties(WxProperties.class)
23
+public class WxUtils {
24
+    static WxMaService miniApp;
25
+
26
+    static WxProperties properties;
27
+
28
+    @Autowired
29
+    public WxUtils(WxProperties properties) { WxUtils.properties = properties; }
30
+
31
+    public static WxMaService getMiniApp() {
32
+        return miniApp;
33
+    }
34
+
35
+    @PostConstruct
36
+    public void init() {
37
+        System.out.println("-------------PostConstruct----------------");
38
+        WxMaInMemoryConfig config = new WxMaInMemoryConfig();
39
+
40
+        WxProperties.Miniapp miniProperty = WxUtils.properties.getMiniapp();
41
+
42
+        config.setAppid(miniProperty.getAppid());
43
+        config.setSecret(miniProperty.getSecret());
44
+        config.setToken(miniProperty.getToken());
45
+        config.setAesKey(miniProperty.getAesKey());
46
+        config.setMsgDataFormat(miniProperty.getMsgDataFormat());
47
+
48
+        WxUtils.miniApp = new WxMaServiceImpl();
49
+        WxUtils.miniApp.setWxMaConfig(config);
50
+        System.out.println("-------------PostConstruct- 222---------------");
51
+        System.out.println(WxUtils.miniApp);
52
+    }
53
+
54
+    public static WxProperties.Tpl getTplByName(String name) {
55
+        for ( WxProperties.Tpl t: properties.getTpls()) {
56
+            if (t.getName().equals(name)) {
57
+                return t;
58
+            }
59
+        }
60
+        return null;
61
+    }
62
+}

+ 26
- 0
src/main/java/com/huiju/estateagents/config/AccessConfig.java View File

@@ -0,0 +1,26 @@
1
+package com.huiju.estateagents.config;
2
+
3
+import com.huiju.estateagents.interceptor.AccessInterceptor;
4
+import org.springframework.context.annotation.Configuration;
5
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
6
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
7
+
8
+import javax.annotation.Resource;
9
+
10
+/**
11
+ * @author FXF
12
+ * @date 2019-02-22
13
+ */
14
+@Configuration
15
+public class AccessConfig implements WebMvcConfigurer {
16
+
17
+	@Resource
18
+	private AccessInterceptor accessInterceptor;
19
+
20
+	@Override
21
+	public void addInterceptors(InterceptorRegistry registry) {
22
+		// 自定义拦截器,添加拦截路径和排除拦截路径
23
+		registry.addInterceptor(accessInterceptor).addPathPatterns("/**");
24
+	}
25
+	
26
+}

+ 34
- 0
src/main/java/com/huiju/estateagents/config/AliOSSProperties.java View File

@@ -0,0 +1,34 @@
1
+package com.huiju.estateagents.config;
2
+
3
+
4
+import lombok.Data;
5
+import org.springframework.boot.context.properties.ConfigurationProperties;
6
+
7
+@Data
8
+@ConfigurationProperties(prefix = "ali")
9
+public class AliOSSProperties {
10
+    public static String accessKeyId;
11
+    public static String accessKeySecret;
12
+    public static OSS oss = new AliOSSProperties.OSS();
13
+
14
+    public String getAccessKeyId() { return AliOSSProperties.accessKeyId; }
15
+    public String getAccessKeySecret() { return AliOSSProperties.accessKeySecret; }
16
+    public OSS getOss() { return AliOSSProperties.oss; }
17
+
18
+    // setters
19
+    public void setAccessKeyId(String accessKeyId) {
20
+        AliOSSProperties.accessKeyId = accessKeyId;
21
+    }
22
+    public void setAccessKeySecret(String accessKeySecret) { AliOSSProperties.accessKeySecret = accessKeySecret;}
23
+
24
+    public static void setOss(OSS oss) {
25
+        AliOSSProperties.oss = oss;
26
+    }
27
+
28
+    @Data
29
+    public static class OSS {
30
+        String endpoint;
31
+        String bucketName;
32
+        String bucketURL;
33
+    }
34
+}

+ 14
- 0
src/main/java/com/huiju/estateagents/config/MybatisPlusConfig.java View File

@@ -0,0 +1,14 @@
1
+package com.huiju.estateagents.config;
2
+
3
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
4
+import org.springframework.context.annotation.Bean;
5
+import org.springframework.context.annotation.Configuration;
6
+
7
+@Configuration
8
+public class MybatisPlusConfig {
9
+
10
+    @Bean
11
+    public PaginationInterceptor paginationInterceptor() {
12
+        return new PaginationInterceptor();
13
+    }
14
+}

+ 15
- 0
src/main/java/com/huiju/estateagents/config/WebSocketConfig.java View File

@@ -0,0 +1,15 @@
1
+package com.huiju.estateagents.config;
2
+
3
+import org.springframework.context.annotation.Bean;
4
+import org.springframework.context.annotation.Configuration;
5
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
6
+
7
+@Configuration
8
+public class WebSocketConfig {
9
+
10
+    @Bean
11
+    public ServerEndpointExporter serverEndpointExporter() {
12
+        return new ServerEndpointExporter();
13
+    }
14
+
15
+}

+ 51
- 0
src/main/java/com/huiju/estateagents/config/WxProperties.java View File

@@ -0,0 +1,51 @@
1
+package com.huiju.estateagents.config;
2
+
3
+import lombok.Data;
4
+import org.springframework.boot.context.properties.ConfigurationProperties;
5
+import org.springframework.context.annotation.Bean;
6
+
7
+import java.util.List;
8
+
9
+@Data
10
+@ConfigurationProperties(prefix = "wx")
11
+public class WxProperties {
12
+    private Miniapp  miniapp;
13
+    private List<Tpl> tpls;
14
+
15
+    @Data
16
+    public static class Miniapp {
17
+
18
+        /**
19
+         * 设置微信小程序的appid
20
+         */
21
+        private String appid;
22
+
23
+        /**
24
+         * 设置微信小程序的Secret
25
+         */
26
+        private String secret;
27
+
28
+        /**
29
+         * 设置微信小程序消息服务器配置的token
30
+         */
31
+        private String token;
32
+
33
+        /**
34
+         * 设置微信小程序消息服务器配置的EncodingAESKey
35
+         */
36
+        private String aesKey;
37
+
38
+        /**
39
+         * 消息格式,XML或者JSON
40
+         */
41
+        private String msgDataFormat;
42
+
43
+    }
44
+
45
+    @Data
46
+    public static class Tpl {
47
+        private String name;
48
+        private String id;
49
+        private Integer keywords;
50
+    }
51
+}

+ 96
- 0
src/main/java/com/huiju/estateagents/controller/CommonController.java View File

@@ -0,0 +1,96 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.common.AliOSSUtils;
6
+import com.huiju.estateagents.common.CommConstant;
7
+import org.apache.ibatis.annotations.Mapper;
8
+import org.springframework.web.bind.annotation.*;
9
+import org.springframework.web.multipart.MultipartFile;
10
+
11
+import java.io.IOException;
12
+import java.util.ArrayList;
13
+import java.util.HashMap;
14
+import java.util.Map;
15
+
16
+
17
+@RestController
18
+@RequestMapping("/api")
19
+public class CommonController {
20
+
21
+    /**
22
+     * 图片上传
23
+     * @param multipartFile
24
+     * @return
25
+     */
26
+    @PostMapping("/{plat}/image")
27
+    public ResponseBean uploadImage(@RequestParam("file") MultipartFile multipartFile) {
28
+        try {
29
+            String img = AliOSSUtils.putObject(multipartFile, CommConstant.ALIOSS_DEFAULT_UPLOAD);
30
+            return ResponseBean.success(img);
31
+        } catch (IOException e) {
32
+            return ResponseBean.error("上传图片失败: " + e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
33
+        }
34
+    }
35
+
36
+    @GetMapping("/wx/awesome/dict/{typeFor}")
37
+    public ResponseBean dicts(@PathVariable String typeFor) {
38
+
39
+        if ("recommendcustomer".equals(typeFor)) {
40
+
41
+            ArrayList<Map<String, String>> realtyManageType = new ArrayList<>();
42
+            realtyManageType.add(new HashMap<String, String>(){{
43
+                put("id", "1");
44
+                put("name", "公寓");
45
+            }});
46
+            realtyManageType.add(new HashMap<String, String>(){{
47
+                put("id", "2");
48
+                put("name", "住宅");
49
+            }});
50
+            realtyManageType.add(new HashMap<String, String>(){{
51
+                put("id", "3");
52
+                put("name", "商铺");
53
+            }});
54
+            realtyManageType.add(new HashMap<String, String>(){{
55
+                put("id", "4");
56
+                put("name", "别墅");
57
+            }});
58
+
59
+            ArrayList<Map<String, String>> priceRange = new ArrayList<>();
60
+            priceRange.add(new HashMap<String, String>(){{
61
+                put("id", "11");
62
+                put("name", "100万以下");
63
+            }});
64
+            priceRange.add(new HashMap<String, String>(){{
65
+                put("id", "12");
66
+                put("name", "100-200万");
67
+            }});
68
+            priceRange.add(new HashMap<String, String>(){{
69
+                put("id", "13");
70
+                put("name", "200-400万");
71
+            }});
72
+            priceRange.add(new HashMap<String, String>(){{
73
+                put("id", "14");
74
+                put("name", "400万以上");
75
+            }});
76
+
77
+            ArrayList<Map<String, String>> demandType = new ArrayList<>();
78
+            demandType.add(new HashMap<String, String>(){{
79
+                put("id", "21");
80
+                put("name", "自主");
81
+            }});
82
+            demandType.add(new HashMap<String, String>(){{
83
+                put("id", "22");
84
+                put("name", "投资");
85
+            }});
86
+
87
+            return ResponseBean.success(new HashMap<String, Object>(){{
88
+                put("realtyManageType", realtyManageType);
89
+                put("priceRange", priceRange);
90
+                put("demandType", demandType);
91
+            }});
92
+        } else {
93
+            return ResponseBean.error("暂时不支持的字典请求", ResponseBean.ERROR_ILLEGAL_PARAMS);
94
+        }
95
+    }
96
+}

+ 172
- 0
src/main/java/com/huiju/estateagents/controller/MiniAppController.java View File

@@ -0,0 +1,172 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+import cn.binarywang.wx.miniapp.api.WxMaService;
4
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
5
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
6
+import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
7
+import com.alibaba.fastjson.JSONObject;
8
+import com.huiju.estateagents.base.ResponseBean;
9
+import com.huiju.estateagents.common.WxUtils;
10
+import com.huiju.estateagents.entity.TaPerson;
11
+import com.huiju.estateagents.service.IMiniAppService;
12
+import com.huiju.estateagents.service.ITaPersonService;
13
+import com.huiju.estateagents.common.JWTUtils;
14
+import me.chanjar.weixin.common.error.WxErrorException;
15
+import org.apache.commons.lang3.StringUtils;
16
+import org.springframework.beans.factory.annotation.Autowired;
17
+import org.springframework.web.bind.annotation.*;
18
+
19
+import javax.servlet.http.HttpServletRequest;
20
+import java.util.HashMap;
21
+import java.util.List;
22
+import java.util.Map;
23
+
24
+@RestController
25
+@RequestMapping("/api/wx")
26
+public class MiniAppController {
27
+    @Autowired
28
+    private ITaPersonService taPersonService;
29
+
30
+    final WxMaService wxService = WxUtils.getMiniApp();
31
+
32
+    @Autowired
33
+    private IMiniAppService miniAppService;
34
+
35
+    /**
36
+     * 验证接入
37
+     */
38
+    @GetMapping(value = "/", produces = "text/plain;charset=utf-8")
39
+    public String access(@RequestParam(name = "signature", required = false) String signature,
40
+                          @RequestParam(name = "timestamp", required = false) String timestamp,
41
+                          @RequestParam(name = "nonce", required = false) String nonce,
42
+                          @RequestParam(name = "echostr", required = false) String echostr) {
43
+        return echostr;
44
+    }
45
+
46
+    /**
47
+     * 登陆接口
48
+     */
49
+    @PostMapping("/login")
50
+    public ResponseBean login(String code) {
51
+        if (StringUtils.isBlank(code)) {
52
+            return ResponseBean.error("参数 code 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
53
+        }
54
+
55
+        try {
56
+            WxMaJscode2SessionResult session = miniAppService.getSessionInfo(code);
57
+
58
+            Map<String, String> miniResp = new HashMap<>();
59
+            miniResp.put("openid", session.getOpenid());
60
+            miniResp.put("sessionKey", session.getSessionKey());
61
+            miniResp.put("unionid", session.getUnionid());
62
+            miniResp.put("token", JWTUtils.newToken(session.getOpenid()));
63
+
64
+            TaPerson taPerson = taPersonService.newPersonByOpenid(session.getOpenid());
65
+            if (null == taPerson) {
66
+                return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
67
+            }
68
+
69
+            taPerson.setPassword(null);
70
+
71
+            // 获取其余信息
72
+            Map<String, Object> extraInfo = taPersonService.getExtraInfo(taPerson.getPersonId());
73
+
74
+            Map<String, Object> result = new HashMap<>();
75
+            result.put("miniApp", miniResp);
76
+            result.put("person", taPerson);
77
+            result.put("extraInfo", extraInfo);
78
+            result.put("miniAuthorized", null != taPerson.getAvatarurl() && taPerson.getAvatarurl().indexOf("wx.qlogo.cn") > 0);
79
+
80
+            return ResponseBean.success(result);
81
+        } catch (WxErrorException e) {
82
+            System.err.println(e.getError());
83
+            return ResponseBean.error("解析小程序 code 失败", ResponseBean.ERROR_UNAVAILABLE);
84
+        }
85
+    }
86
+
87
+    /**
88
+     * 获取用户信息, 并写入内部人员表
89
+     */
90
+    @PostMapping("/signup")
91
+    public ResponseBean info(@RequestBody String paramStr, HttpServletRequest request) {
92
+        TaPerson person = null;
93
+
94
+        if (null == paramStr || "".equals(paramStr.trim()) || "{}".equals(paramStr.trim())) {
95
+            String openid = JWTUtils.getSubject(request);
96
+            List<TaPerson> taPersons = taPersonService.getPersonsByOpenId(openid);
97
+            if (null == taPersons || taPersons.size() != 1) {
98
+                return ResponseBean.error("验证人员信息失败", ResponseBean.ERROR_UNAVAILABLE);
99
+            }
100
+            person = taPersons.get(0);
101
+        } else {
102
+
103
+            JSONObject params = JSONObject.parseObject(paramStr);
104
+            if (null == params) {
105
+                return ResponseBean.error("校验参数失败", ResponseBean.ERROR_ILLEGAL_PARAMS);
106
+            }
107
+
108
+            String sessionKey = params.getString("sessionKey");
109
+            String signature = params.getString("signature");
110
+            String rawData = params.getString("rawData");
111
+            String encryptedData = params.getString("encryptedData");
112
+            String iv = params.getString("iv");
113
+
114
+            // 用户信息校验
115
+            if (!miniAppService.checkUserInfo(sessionKey, rawData, signature)) {
116
+                return ResponseBean.error("校验参数失败", ResponseBean.ERROR_ILLEGAL_PARAMS);
117
+            }
118
+
119
+            // 解密用户信息
120
+            WxMaUserInfo userInfo = miniAppService.getUserInfo(sessionKey, encryptedData, iv);
121
+
122
+            // 更新或保存用户信息
123
+            person = taPersonService.mergePersonWxInfo(userInfo);
124
+            if (null == person) {
125
+                return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
126
+            }
127
+        }
128
+
129
+        // 获取其余信息
130
+        Map<String, Object> extraInfo = taPersonService.getExtraInfo(person.getPersonId());
131
+        person.setPassword(null);
132
+
133
+        Map<String, Object> result = new HashMap<>();
134
+        result.put("person", person);
135
+        result.put("extraInfo", extraInfo);
136
+
137
+        return ResponseBean.success(result);
138
+    }
139
+
140
+    /**
141
+     * 获取用户绑定手机号信息
142
+     */
143
+    @PostMapping("/userPhone")
144
+    public ResponseBean phone(@RequestBody String paramStr, HttpServletRequest request) {
145
+        JSONObject params = JSONObject.parseObject(paramStr);
146
+        if (null == params) {
147
+            return ResponseBean.error("校验参数失败", ResponseBean.ERROR_ILLEGAL_PARAMS);
148
+        }
149
+
150
+        String sessionKey = params.getString("sessionKey");
151
+        String encryptedData = params.getString("encryptedData");
152
+        String iv = params.getString("iv");
153
+
154
+        // 解密
155
+        WxMaPhoneNumberInfo phoneNoInfo = miniAppService.getPhoneNoInfo(sessionKey, encryptedData, iv);
156
+
157
+        // 更新用户绑定手机
158
+        String openid = JWTUtils.getSubject(request);
159
+        taPersonService.updatePersonPhone(openid, phoneNoInfo.getPhoneNumber());
160
+
161
+        return ResponseBean.success(phoneNoInfo);
162
+    }
163
+
164
+    /**
165
+     * 生成二维码
166
+     * @return
167
+     */
168
+    @PostMapping("/qrcode")
169
+    public ResponseBean qrcode(@RequestBody String paramsStr) {
170
+        return miniAppService.getQrCode(paramsStr);
171
+    }
172
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/TaApartmentImgController.java View File

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import org.springframework.web.bind.annotation.RequestMapping;
5
+
6
+import org.springframework.web.bind.annotation.RestController;
7
+import com.huiju.estateagents.base.BaseController;
8
+
9
+/**
10
+ * <p>
11
+ * 楼盘户型对应图片表 前端控制器
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@RestController
18
+@RequestMapping("/api")
19
+public class TaApartmentImgController extends BaseController {
20
+
21
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/TaBuildingApartmentController.java View File

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import org.springframework.web.bind.annotation.RequestMapping;
5
+
6
+import org.springframework.web.bind.annotation.RestController;
7
+import com.huiju.estateagents.base.BaseController;
8
+
9
+/**
10
+ * <p>
11
+ * 项目户型表 前端控制器
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@RestController
18
+@RequestMapping("/api")
19
+public class TaBuildingApartmentController extends BaseController {
20
+
21
+}

+ 179
- 0
src/main/java/com/huiju/estateagents/controller/TaBuildingController.java View File

@@ -0,0 +1,179 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.service.ITaBuildingService;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.web.bind.annotation.*;
8
+
9
+import com.huiju.estateagents.base.BaseController;
10
+
11
+import javax.servlet.http.HttpSession;
12
+
13
+/**
14
+ * <p>
15
+ * 项目表 前端控制器
16
+ * </p>
17
+ *
18
+ * @author jobob
19
+ * @since 2019-05-10
20
+ */
21
+@RestController
22
+@RequestMapping("/api")
23
+public class TaBuildingController extends BaseController {
24
+
25
+    @Autowired
26
+    ITaBuildingService taBuildingService;
27
+
28
+    /**
29
+     * 楼盘详情
30
+     * @param id
31
+     * @return
32
+     */
33
+    @GetMapping("/admin/buildingSelectId/{id}")
34
+    public ResponseBean buildingSelectId(@PathVariable(value = "id") String id){
35
+        return taBuildingService.buildingSelectId(id);
36
+    }
37
+
38
+    /**
39
+     * 楼盘列表
40
+     * @param pageNum
41
+     * @param pageSize
42
+     * @param name
43
+     * @param code
44
+     * @return
45
+     */
46
+    @GetMapping("/admin/buildinglist")
47
+    public ResponseBean buildingList(@RequestParam("pageNum")Integer pageNum,
48
+                                                         @RequestParam("pageSize")Integer pageSize,
49
+                                                         @RequestParam(value = "name", required = false)String name,
50
+                                                         @RequestParam(value = "code", required = false)String code){
51
+        return taBuildingService.buildingList(pageNum,pageSize,name,code);
52
+    }
53
+
54
+    /**
55
+     * 更新楼盘
56
+     * @param parameter
57
+     * @return
58
+     */
59
+    @PutMapping("/admin/building/update")
60
+    public ResponseBean buildingUpdate(@RequestBody String parameter){
61
+        return taBuildingService.buildingUpdate(parameter);
62
+    }
63
+
64
+    /**
65
+     * 楼盘添加
66
+     * @param parameter
67
+     * @return
68
+     */
69
+    @RequestMapping(value = "/admin/building/add", method = RequestMethod.POST)
70
+    public ResponseBean buildingAdd(@RequestBody String parameter){
71
+        return taBuildingService.buildingAdd(parameter);
72
+    }
73
+
74
+    /**
75
+     * 楼盘发布
76
+     * @param parameter
77
+     * @return
78
+     */
79
+    @RequestMapping(value = "/admin/building/update/status", method = RequestMethod.PUT)
80
+    public ResponseBean buildingUpdateStatus(@RequestBody String parameter){
81
+        return taBuildingService.buildingUpdateStatus(parameter);
82
+    }
83
+
84
+    /**
85
+     * 楼盘删除
86
+     * @param id
87
+     * @param session
88
+     * @return
89
+     */
90
+    @RequestMapping(value = "/admin/building/delete/{id}", method = RequestMethod.DELETE)
91
+    public ResponseBean buildingdelete(@PathVariable("id") String id, HttpSession session){
92
+        return taBuildingService.buildingdelete(id);
93
+    }
94
+
95
+    /**
96
+     * 添加户型
97
+     * @param parameter
98
+     * @param session
99
+     * @return
100
+     */
101
+    @RequestMapping(value = "/admin/buildingApartment/add", method = RequestMethod.POST)
102
+    public ResponseBean buildingApartment(@RequestBody String parameter, HttpSession session){
103
+        return taBuildingService.buildingApartmentAdd(parameter);
104
+    }
105
+
106
+    /**
107
+     * 户型编辑
108
+     * @param parameter
109
+     * @return
110
+     */
111
+    @RequestMapping(value = "/admin/buildingApartment/update", method = RequestMethod.PUT)
112
+    public ResponseBean buildingApartmentUpdate(@RequestBody String parameter){
113
+        return taBuildingService.buildingApartmentUpdate(parameter);
114
+    }
115
+
116
+    /**
117
+     * 楼盘详情
118
+     * @param id
119
+     * @return
120
+     */
121
+    @RequestMapping(value = "/admin/buildingApartment/{id}", method = RequestMethod.GET)
122
+    public ResponseBean buildingApartmentSelectId(@PathVariable(value = "id") String id){
123
+        return taBuildingService.buildingApartmentSelectId(id);
124
+    }
125
+
126
+    /**
127
+     * 依据项目ID 查户型
128
+     * @param id
129
+     * @return
130
+     */
131
+    @RequestMapping(value = "/admin/buildingApartment/buildingId/{id}", method = RequestMethod.GET)
132
+    public ResponseBean buildingApartmentBuildingId(@PathVariable(value = "id") String id){
133
+        return taBuildingService.buildingApartmentBuildingId(id);
134
+    }
135
+
136
+    /**
137
+     * 微信楼盘列表
138
+     * @return
139
+     */
140
+    @RequestMapping(value = "/wx/building/list", method = RequestMethod.GET)
141
+    public ResponseBean getWxBuildingList(
142
+            @RequestParam(defaultValue = "1") Integer pageNum,
143
+            @RequestParam(defaultValue = "10")Integer pageSize,
144
+            String name
145
+    ){
146
+        return taBuildingService.getWxBuildingList(pageNum, pageSize, name);
147
+    }
148
+
149
+    /**
150
+     * 微信推荐楼盘列表
151
+     * @return
152
+     */
153
+    @RequestMapping(value = "/wx/building/mian", method = RequestMethod.GET)
154
+    public ResponseBean getWxMainBuildingList(){
155
+        return taBuildingService.getWxMainBuildingList();
156
+    }
157
+
158
+    /**
159
+     * 删除户型
160
+     * @param id
161
+     * @return
162
+     */
163
+    @RequestMapping(value = "/admin/apartment/deleted/{id}", method = RequestMethod.DELETE)
164
+    public ResponseBean apartmentDeleted(@PathVariable(value = "id") String id){
165
+        return taBuildingService.apartmentDel(id);
166
+    }
167
+
168
+    /**
169
+     * 微信楼盘详情
170
+     * @param id
171
+     * @return
172
+     */
173
+    @RequestMapping(value = "/wx/buildingSelectId/{id}", method = RequestMethod.GET)
174
+    public ResponseBean wxBuildingSelectId(@PathVariable(value = "id") String id){
175
+        return taBuildingService.buildingAllSelectId(id);
176
+    }
177
+
178
+
179
+}

+ 121
- 0
src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java View File

@@ -0,0 +1,121 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.alibaba.fastjson.JSONObject;
5
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6
+import com.huiju.estateagents.base.BaseController;
7
+import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.entity.TaBuildingDynamic;
9
+import com.huiju.estateagents.service.ITaBuildingDynamicService;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.beans.propertyeditors.CustomDateEditor;
12
+import org.springframework.web.bind.ServletRequestDataBinder;
13
+import org.springframework.web.bind.annotation.*;
14
+
15
+import javax.servlet.http.HttpServletRequest;
16
+import javax.servlet.http.HttpSession;
17
+import java.text.DateFormat;
18
+import java.text.SimpleDateFormat;
19
+import java.time.LocalDateTime;
20
+import java.util.Date;
21
+
22
+/**
23
+ * <p>
24
+ * 项目动态表 前端控制器
25
+ * </p>
26
+ *
27
+ * @author jobob
28
+ * @since 2019-03-21
29
+ */
30
+@RestController
31
+@RequestMapping("/api")
32
+public class TaBuildingDynamicController extends BaseController {
33
+
34
+    @Autowired
35
+    private ITaBuildingDynamicService iBuildingDynamicService;
36
+
37
+    @InitBinder
38
+    protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
39
+        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
40
+        CustomDateEditor editor = new CustomDateEditor(df, true);//true表示允许为空,false反之
41
+        binder.registerCustomEditor(Date.class, editor);
42
+    }
43
+
44
+    @RequestMapping(value = "/admin/iBuildingDynamicList", method = RequestMethod.GET)
45
+    public ResponseBean iBuildingDynamicList(@RequestParam("pageNum")Integer pageNum,
46
+                                             @RequestParam("pageSize")Integer pageSize,
47
+                                             @RequestParam(required = false)String name ,
48
+                                             @RequestParam(required = false)String buildingId,
49
+                                             HttpSession session){
50
+        ResponseBean  responseBean = iBuildingDynamicService.iBuildingDynamicList(pageNum,pageSize,name,buildingId);
51
+        return responseBean;
52
+    }
53
+
54
+    @RequestMapping(value = "/admin/iBuildingDynamicSelectId/{id}", method = RequestMethod.GET)
55
+    public ResponseBean iBuildingDynamicSelectId(@PathVariable(value = "id") String id, HttpSession session){
56
+        ResponseBean  responseBean = iBuildingDynamicService.iBuildingDynamicSelectId(id);
57
+        return responseBean;
58
+    }
59
+
60
+    @RequestMapping(value = "/wx/buildingDynamiceList", method = RequestMethod.GET)
61
+    public ResponseBean wxBuildingDynamiceList(@RequestParam("pageNum")Integer pageNum, @RequestParam("pageSize")Integer pageSize, HttpSession session){
62
+        ResponseBean  responseBean = iBuildingDynamicService.getWxBuildingDynamiceList(pageNum,pageSize);
63
+        return responseBean;
64
+    }
65
+
66
+    @RequestMapping(value = "/wx/buildingDynamiceInfo/{dynamicId}", method = RequestMethod.GET)
67
+    public ResponseBean iBuildingDynamicInfo(@PathVariable(value = "dynamicId") String dynamicId, HttpSession session){
68
+        ResponseBean  responseBean = iBuildingDynamicService.getWxBuildingDynamiceInfo(dynamicId);
69
+        return responseBean;
70
+    }
71
+
72
+    @RequestMapping(value = "/admin/buildingDynamic/add" ,method =RequestMethod.POST)
73
+    public  ResponseBean buildingDynamicAdd(@RequestBody String parameter){
74
+        ResponseBean responseBean = new ResponseBean();
75
+        TaBuildingDynamic dynamic = JSONObject.parseObject(parameter, TaBuildingDynamic.class);
76
+        dynamic.setStatus(0);
77
+//        dynamic.setDynamicId(idGen.nextId()+"");
78
+        dynamic.setCreateDate(LocalDateTime.now());
79
+        iBuildingDynamicService.save(dynamic);
80
+        return responseBean;
81
+    }
82
+
83
+    @RequestMapping(value = "/admin/buildingDynamic/update" ,method =RequestMethod.PUT)
84
+    public  ResponseBean buildingDynamicUpdate(@RequestBody String parameter){
85
+        ResponseBean responseBean = new ResponseBean();
86
+        TaBuildingDynamic dynamic = JSONObject.parseObject(parameter, TaBuildingDynamic.class);
87
+        QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
88
+        buildingDynamicQueryWrapper.eq("dynamic_id", dynamic.getDynamicId());
89
+        iBuildingDynamicService.update(dynamic, buildingDynamicQueryWrapper);
90
+        return responseBean;
91
+    }
92
+
93
+    @RequestMapping(value = "/admin/buildingDynamic/delete", method = RequestMethod.DELETE)
94
+    public ResponseBean pageImdelect(@RequestParam(value = "id",required = false)String id) {
95
+        ResponseBean responseBean = iBuildingDynamicService.buildingDynamicDelete(id);
96
+        return responseBean;
97
+    }
98
+
99
+    @RequestMapping(value = "/admin/buildingDynamic/send/{dynamicId}", method = RequestMethod.PUT)
100
+    public ResponseBean send(@PathVariable String dynamicId) {
101
+        ResponseBean responseBean = new ResponseBean();
102
+        QueryWrapper<TaBuildingDynamic> dynamicQueryWrapper = new QueryWrapper<>();
103
+        dynamicQueryWrapper.eq("dynamic_id", dynamicId);
104
+        TaBuildingDynamic dynamic = iBuildingDynamicService.getOne(dynamicQueryWrapper);
105
+        dynamic.setStatus(1);
106
+        dynamic.setPublishDate(LocalDateTime.now());
107
+        iBuildingDynamicService.update(dynamic, dynamicQueryWrapper);
108
+        return responseBean;
109
+    }
110
+
111
+    @RequestMapping(value = "/admin/buildingDynamic/cancel/{dynamicId}", method = RequestMethod.PUT)
112
+    public ResponseBean cancel(@PathVariable String dynamicId) {
113
+        ResponseBean responseBean = new ResponseBean();
114
+        QueryWrapper<TaBuildingDynamic> dynamicQueryWrapper = new QueryWrapper<>();
115
+        dynamicQueryWrapper.eq("dynamic_id", dynamicId);
116
+        TaBuildingDynamic dynamic = iBuildingDynamicService.getOne(dynamicQueryWrapper);
117
+        dynamic.setStatus(0);
118
+        iBuildingDynamicService.update(dynamic, dynamicQueryWrapper);
119
+        return responseBean;
120
+    }
121
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/TaBuildingImgController.java View File

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import org.springframework.web.bind.annotation.RequestMapping;
5
+
6
+import org.springframework.web.bind.annotation.RestController;
7
+import com.huiju.estateagents.base.BaseController;
8
+
9
+/**
10
+ * <p>
11
+ * 楼盘图片表 前端控制器
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@RestController
18
+@RequestMapping("/api")
19
+public class TaBuildingImgController extends BaseController {
20
+
21
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/TaBuildingTagController.java View File

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import org.springframework.web.bind.annotation.RequestMapping;
5
+
6
+import org.springframework.web.bind.annotation.RestController;
7
+import com.huiju.estateagents.base.BaseController;
8
+
9
+/**
10
+ * <p>
11
+ * 项目标签表 前端控制器
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@RestController
18
+@RequestMapping("/api")
19
+public class TaBuildingTagController extends BaseController {
20
+
21
+}

+ 71
- 0
src/main/java/com/huiju/estateagents/controller/TaChatController.java View File

@@ -0,0 +1,71 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.common.JWTUtils;
6
+import com.huiju.estateagents.entity.TaChat;
7
+import com.huiju.estateagents.entity.TaPerson;
8
+import com.huiju.estateagents.service.ITaChatService;
9
+import com.huiju.estateagents.service.ITaPersonService;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.web.bind.annotation.*;
12
+
13
+import com.huiju.estateagents.base.BaseController;
14
+
15
+import javax.servlet.http.HttpServletRequest;
16
+
17
+/**
18
+ * <p>
19
+ * 聊天记录表 前端控制器
20
+ * </p>
21
+ *
22
+ * @author jobob
23
+ * @since 2019-05-10
24
+ */
25
+@RestController
26
+@RequestMapping("/api")
27
+public class TaChatController extends BaseController {
28
+    @Autowired
29
+    ITaChatService taChatService;
30
+
31
+    /**
32
+     * 获取聊天记录
33
+     * @param chatWith
34
+     * @param pageNumber
35
+     * @param pageSize
36
+     * @param request
37
+     * @return
38
+     */
39
+    @GetMapping("/wx/chat/history")
40
+    public ResponseBean getChatHistory(@RequestParam String chatWith, @RequestParam int pageNumber, @RequestParam int pageSize, HttpServletRequest request) {
41
+        // 消息发送人
42
+        String openid = JWTUtils.getSubject(request);
43
+
44
+        return taChatService.getChatHistory(openid, chatWith, pageNumber, pageSize);
45
+    }
46
+
47
+    /**
48
+     * 获取聊天的人员列表
49
+     * @param request
50
+     * @return
51
+     */
52
+    @GetMapping("/wx/chat/with")
53
+    public ResponseBean getChatWithList( @RequestParam int pageNumber, @RequestParam int pageSize, HttpServletRequest request) {
54
+        // 当前人员
55
+        String openid = JWTUtils.getSubject(request);
56
+
57
+        return taChatService.getChatWithList(openid, pageNumber, pageSize);
58
+    }
59
+
60
+    /**
61
+     * 更新所有消息为已读
62
+     * @param request
63
+     * @return
64
+     */
65
+    @PutMapping("/wx/chat/message")
66
+    public ResponseBean updateMessageReaded(HttpServletRequest request) {
67
+        // 当前人员
68
+        String openid = JWTUtils.getSubject(request);
69
+        return taChatService.updateMessageReadedOf(openid);
70
+    }
71
+}

+ 55
- 0
src/main/java/com/huiju/estateagents/controller/TaFavorController.java View File

@@ -0,0 +1,55 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.common.JWTUtils;
6
+import com.huiju.estateagents.service.ITaFavorService;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.web.bind.annotation.*;
9
+
10
+import com.huiju.estateagents.base.BaseController;
11
+
12
+import javax.servlet.http.HttpServletRequest;
13
+
14
+/**
15
+ * <p>
16
+ * 点赞表 前端控制器
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2019-05-10
21
+ */
22
+@RestController
23
+@RequestMapping("/api")
24
+public class TaFavorController extends BaseController {
25
+
26
+    @Autowired
27
+    ITaFavorService taFavorService;
28
+
29
+    /**
30
+     * 点赞
31
+     * @param typeOf
32
+     * @param id
33
+     * @param request
34
+     * @return
35
+     */
36
+    @PostMapping("/wx/{typeOf}/like/{id}")
37
+    public ResponseBean giveFavor(@PathVariable String typeOf, @PathVariable String id, HttpServletRequest request) {
38
+        String openid = JWTUtils.getSubject(request);
39
+
40
+        return taFavorService.postLike(openid, typeOf, id);
41
+    }
42
+
43
+    /**
44
+     * 取消赞
45
+     * @param typeOf
46
+     * @param id
47
+     * @param request
48
+     * @return
49
+     */
50
+    @DeleteMapping("/wx/{typeOf}/like/{id}")
51
+    public ResponseBean cancelFavor(@PathVariable String typeOf, @PathVariable String id, HttpServletRequest request) {
52
+        String openid = JWTUtils.getSubject(request);
53
+        return taFavorService.cancelLike(openid, typeOf, id);
54
+    }
55
+}

+ 25
- 0
src/main/java/com/huiju/estateagents/controller/TaMiniFormidsController.java View File

@@ -0,0 +1,25 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+import com.huiju.estateagents.base.BaseController;
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.common.JWTUtils;
6
+import com.huiju.estateagents.service.ITaMiniFormidsService;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.web.bind.annotation.*;
9
+
10
+import javax.servlet.http.HttpServletRequest;
11
+
12
+@RestController
13
+@RequestMapping("/api/wx")
14
+public class TaMiniFormidsController extends BaseController {
15
+
16
+    @Autowired
17
+    ITaMiniFormidsService taMiniFormidsService;
18
+
19
+    @PostMapping("/formid")
20
+    public ResponseBean save(@RequestBody String paramStr, HttpServletRequest request) {
21
+        String openid = JWTUtils.getSubject(request);
22
+
23
+        return taMiniFormidsService.saveFormidBy(openid, paramStr);
24
+    }
25
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/TaPersonBuildingController.java View File

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import org.springframework.web.bind.annotation.RequestMapping;
5
+
6
+import org.springframework.web.bind.annotation.RestController;
7
+import com.huiju.estateagents.base.BaseController;
8
+
9
+/**
10
+ * <p>
11
+ * 人员授权项目 前端控制器
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@RestController
18
+@RequestMapping("/api")
19
+public class TaPersonBuildingController extends BaseController {
20
+
21
+}

+ 294
- 0
src/main/java/com/huiju/estateagents/controller/TaPersonController.java View File

@@ -0,0 +1,294 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.alibaba.fastjson.JSONObject;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
6
+import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.common.CommConstant;
8
+import com.huiju.estateagents.common.JWTUtils;
9
+import com.huiju.estateagents.entity.TaPerson;
10
+import com.huiju.estateagents.service.ITaPersonService;
11
+import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.web.bind.annotation.*;
13
+
14
+import com.huiju.estateagents.base.BaseController;
15
+
16
+import javax.servlet.http.HttpServletRequest;
17
+import java.util.HashMap;
18
+import java.util.Map;
19
+
20
+/**
21
+ * <p>
22
+ * 人员表 前端控制器
23
+ * </p>
24
+ *
25
+ * @author jobob
26
+ * @since 2019-05-10
27
+ */
28
+@RestController
29
+@RequestMapping("/api")
30
+public class TaPersonController extends BaseController {
31
+    @Autowired
32
+    ITaPersonService taPersonService;
33
+
34
+    /**
35
+     *
36
+     *  因为人员表是集合系统的所有种类的用户,包含了各种角色。因此各种角色的操作都在本 controller 中完成
37
+     *  以下是置业顾问卡片内容
38
+     *
39
+     */
40
+
41
+    /**
42
+     * 获取卡片列表
43
+     * @param pageNumber
44
+     * @param pageSize
45
+     * @return
46
+     */
47
+    @GetMapping("/wx/cards")
48
+    public ResponseBean getCardList(@RequestParam int pageNumber, @RequestParam int pageSize) {
49
+        if (pageNumber < 0 || pageSize < 0) {
50
+            return ResponseBean.error("分页参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
51
+        }
52
+
53
+        IPage<Map<String, Object>> result = taPersonService.getCardList(pageNumber, pageSize);
54
+        return ResponseBean.success(result);
55
+    }
56
+
57
+    /**
58
+     * 绑定卡片
59
+     * @param paramStr
60
+     * @return
61
+     */
62
+    @PostMapping("/wx/cards/apply")
63
+    public ResponseBean applyCard(@RequestBody String paramStr, HttpServletRequest request) {
64
+        JSONObject params = JSONObject.parseObject(paramStr);
65
+        String phone = (String) params.get("phone");
66
+        String pass = (String) params.get("pass");
67
+        String openid = JWTUtils.getSubject(request);
68
+
69
+        if (isEmpty(phone) || isEmpty(pass)) {
70
+            return ResponseBean.error("参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
71
+        }
72
+
73
+        ResponseBean resp = taPersonService.checkPhoneAndPass(phone, pass);
74
+
75
+        // 成功返回空数据
76
+        if (resp.getCode() != ResponseBean.CODE_SUCCESS) {
77
+            return resp;
78
+        }
79
+
80
+        return taPersonService.bindCard(phone, pass, openid);
81
+    }
82
+
83
+    /**
84
+     * 获取名片详情
85
+     * @param id
86
+     * @return
87
+     */
88
+    @GetMapping("/wx/cards/{id}")
89
+    public ResponseBean getCardDetail(@PathVariable String id, HttpServletRequest request) {
90
+        if (isEmpty(id)) {
91
+            return ResponseBean.error("参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
92
+        }
93
+
94
+        String openid = JWTUtils.getSubject(request);
95
+
96
+        return taPersonService.getCardDetail(openid, id);
97
+    }
98
+
99
+    /**
100
+     * 找回密码
101
+     * @param plat 平台类型 wx 是微信相关, admin 是后台管理系统
102
+     * @param paramStr
103
+     * @return
104
+     */
105
+    @PostMapping("/{plat}/resetPass")
106
+    public ResponseBean resetPassword(@PathVariable String plat, @RequestBody String paramStr) {
107
+        JSONObject params = JSONObject.parseObject(paramStr);
108
+        String phone = (String) params.get("phone");
109
+        String code = (String) params.get("code");
110
+        String pass = (String) params.get("pass");
111
+
112
+        if (isEmpty(phone) || isEmpty(code) || isEmpty(pass)) {
113
+            return ResponseBean.error("参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
114
+        }
115
+
116
+        // todo
117
+        // 验证 验证码是否正确
118
+        if (code != "1234") {
119
+            return ResponseBean.error("验证码不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
120
+        }
121
+
122
+        return taPersonService.resetPassword(phone, pass, plat);
123
+    }
124
+
125
+
126
+    /**
127
+     *
128
+     *  以下是经纪人部分
129
+     *
130
+     */
131
+
132
+
133
+    /**
134
+     * 注册经纪人
135
+     * @param paramStr
136
+     * @param request
137
+     * @return
138
+     */
139
+    @PostMapping("/wx/register")
140
+    public ResponseBean resgiteAgent(@RequestBody String paramStr, HttpServletRequest request) {
141
+        JSONObject params = JSONObject.parseObject(paramStr);
142
+        String name = (String) params.get("name");
143
+        String phone = (String) params.get("phone");
144
+        Integer sex = (Integer) params.get("sex");
145
+        String explain = (String) params.get("explain");
146
+
147
+        if (isEmpty(name) || isEmpty(phone) || isEmpty(explain)) {
148
+            return ResponseBean.error("请检查部分参数不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
149
+        }
150
+
151
+        // 当前人员
152
+        String openid = JWTUtils.getSubject(request);
153
+
154
+        return taPersonService.resgiteAgent(name, phone, sex, explain, openid);
155
+    }
156
+
157
+    /**
158
+     * 生成海报
159
+     * @param paramStr
160
+     * @param request
161
+     * @return
162
+     */
163
+    @PostMapping("/wx/poster")
164
+    public ResponseBean genPoster(@RequestBody String paramStr, HttpServletRequest request) {
165
+        return null;
166
+    }
167
+
168
+
169
+    /**
170
+     *
171
+     * 以下是个人中心部分
172
+     *
173
+     */
174
+
175
+    /**
176
+     * 获取个人信息
177
+     * @param request
178
+     * @return
179
+     */
180
+    @GetMapping("/wx/user/info")
181
+    public ResponseBean getUserInfo(HttpServletRequest request) {
182
+        String openid = JWTUtils.getSubject(request);
183
+
184
+        return taPersonService.getWxUser(openid);
185
+    }
186
+
187
+    /**
188
+     * 个人签到
189
+     * @param request
190
+     * @return
191
+     */
192
+    @PostMapping("/wx/user/signin")
193
+    public ResponseBean userSign(HttpServletRequest request) {
194
+        String openid = JWTUtils.getSubject(request);
195
+
196
+        return taPersonService.getWxUserSign(openid);
197
+    }
198
+
199
+
200
+    /**
201
+     *
202
+     *
203
+     *  以下是系统用户管理
204
+     *
205
+     */
206
+
207
+    /**
208
+     * 用户手机号登录
209
+     * @param paramStr
210
+     * @return
211
+     */
212
+    @PostMapping("/admin/signin")
213
+    public ResponseBean signin(@RequestBody String paramStr) {
214
+        JSONObject params = JSONObject.parseObject(paramStr);
215
+        if (params == null) {
216
+            return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
217
+        }
218
+
219
+        String userPhone = params.getString("phone");
220
+        String userCaptcha = params.getString("captcha");
221
+
222
+        // todo
223
+        if (!"1234".equals(userCaptcha)) {
224
+            return ResponseBean.error("验证码不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
225
+        }
226
+
227
+        TaPerson taPerson = taPersonService.getPersonByTel(userPhone);
228
+        if (taPerson == null) {
229
+            return ResponseBean.error("手机号不存在", ResponseBean.ERROR_ILLEGAL_PARAMS);
230
+        }
231
+
232
+        if (taPerson.getStatus() != CommConstant.STATUS_NORMAL) {
233
+            return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
234
+        }
235
+
236
+        String token = JWTUtils.newToken(taPerson.getPersonId());
237
+
238
+        Map<String, Object> result = new HashMap<>();
239
+        result.put("token", token);
240
+        result.put("person", taPerson);
241
+
242
+        return ResponseBean.success(result);
243
+    }
244
+
245
+    /**
246
+     * 获取当前用户
247
+     * @param request
248
+     * @return
249
+     */
250
+    @GetMapping("/admin/user/current")
251
+    public ResponseBean getCurrentPerson(HttpServletRequest request) {
252
+        String personId = JWTUtils.getSubject(request);
253
+        TaPerson taPerson = taPersonService.getById(personId);
254
+        if (null == taPerson || taPerson.getStatus() != CommConstant.STATUS_NORMAL) {
255
+            return ResponseBean.error("用户状态异常", ResponseBean.ERROR_AUTH_EXPIRED);
256
+        }
257
+
258
+        return ResponseBean.success(taPerson);
259
+    }
260
+
261
+    @GetMapping("/admin/consultant")
262
+    public ResponseBean getConsultantList(
263
+            Integer pageNumber,
264
+            Integer pageSize,
265
+            String name,
266
+            String phone
267
+    ) {
268
+        if (null == pageNumber) pageNumber = 1;
269
+        if (null == pageSize) pageSize = 10;
270
+
271
+        IPage<TaPerson> taPersonIPage = taPersonService.getPersonList(pageNumber, pageSize, CommConstant.PERSON_REALTY_CONSULTANT, name, phone);
272
+        return ResponseBean.success(taPersonIPage);
273
+    }
274
+
275
+    @GetMapping("/admin/consultant/{id}")
276
+    public ResponseBean getConsultant(@PathVariable String id) {
277
+        TaPerson taPerson = taPersonService.getById(id);
278
+        return ResponseBean.success(taPerson);
279
+    }
280
+
281
+    @PostMapping("/admin/consultant")
282
+    public ResponseBean newConsultant(@RequestBody String paramStr) {
283
+        return taPersonService.newConsultant(paramStr);
284
+    }
285
+
286
+    @PutMapping("/admin/consultant/{id}")
287
+    public ResponseBean editConsultant(@PathVariable String id, @RequestBody String paramStr) {
288
+        return taPersonService.editConsultant(id, paramStr);
289
+    }
290
+
291
+    boolean isEmpty(String str) {
292
+        return null == str || "".equals(str.trim());
293
+    }
294
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/TaPersonPointsController.java View File

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import org.springframework.web.bind.annotation.RequestMapping;
5
+
6
+import org.springframework.web.bind.annotation.RestController;
7
+import com.huiju.estateagents.base.BaseController;
8
+
9
+/**
10
+ * <p>
11
+ * 人员积分表 前端控制器
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@RestController
18
+@RequestMapping("/api")
19
+public class TaPersonPointsController extends BaseController {
20
+
21
+}

+ 21
- 0
src/main/java/com/huiju/estateagents/controller/TaPersonSignController.java View File

@@ -0,0 +1,21 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import org.springframework.web.bind.annotation.RequestMapping;
5
+
6
+import org.springframework.web.bind.annotation.RestController;
7
+import com.huiju.estateagents.base.BaseController;
8
+
9
+/**
10
+ * <p>
11
+ * 人员签到表 前端控制器
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@RestController
18
+@RequestMapping("/api")
19
+public class TaPersonSignController extends BaseController {
20
+
21
+}

+ 82
- 0
src/main/java/com/huiju/estateagents/controller/TaRecommendCustomerController.java View File

@@ -0,0 +1,82 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.common.JWTUtils;
6
+import com.huiju.estateagents.service.ITaRecommendCustomerService;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.web.bind.annotation.*;
9
+
10
+import com.huiju.estateagents.base.BaseController;
11
+
12
+import javax.servlet.http.HttpServletRequest;
13
+
14
+/**
15
+ * <p>
16
+ * 推荐客户表 前端控制器
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2019-05-10
21
+ */
22
+@RestController
23
+@RequestMapping("/api")
24
+public class TaRecommendCustomerController extends BaseController {
25
+
26
+    @Autowired
27
+    ITaRecommendCustomerService taRecommendCustomerService;
28
+
29
+    /**
30
+     * 我的客户列表
31
+     * @param pageNumber
32
+     * @param pageSize
33
+     * @param keywords
34
+     * @param request
35
+     * @return
36
+     */
37
+    @GetMapping("/wx/customer/list")
38
+    public ResponseBean getMyCustList(@RequestParam int pageNumber, @RequestParam int pageSize, String keywords, HttpServletRequest request) {
39
+        if (pageNumber < 0 || pageSize < 0) {
40
+            return ResponseBean.error("分页参数不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
41
+        }
42
+
43
+        String openid = JWTUtils.getSubject(request);
44
+        return taRecommendCustomerService.getMyCustList(openid, keywords, pageNumber, pageSize);
45
+    }
46
+
47
+    /**
48
+     * 客户详情
49
+     * @param id
50
+     * @return
51
+     */
52
+    @GetMapping("/wx/customer/{id}")
53
+    public ResponseBean getCustDetail(@PathVariable String id) {
54
+        if (null == id || "".equals(id.trim())) {
55
+            return ResponseBean.error("请求地址错误", ResponseBean.ERROR_ILLEGAL_PARAMS);
56
+        }
57
+
58
+        return taRecommendCustomerService.getCustDetail(id);
59
+    }
60
+
61
+    /**
62
+     * 客户编辑
63
+     * @param paramStr
64
+     * @return
65
+     */
66
+    @PostMapping("/wx/customer/edit")
67
+    public ResponseBean updateCust(@RequestBody String paramStr) {
68
+        return taRecommendCustomerService.updateCustByJSON(paramStr);
69
+    }
70
+
71
+    /**
72
+     * 推荐客户
73
+     * @param paramStr
74
+     * @param request
75
+     * @return
76
+     */
77
+    @PostMapping("/wx/customer/new")
78
+    public ResponseBean recommendCust(@RequestBody String paramStr, HttpServletRequest request) {
79
+        String openid = JWTUtils.getSubject(request);
80
+        return taRecommendCustomerService.recommendCust(paramStr, openid);
81
+    }
82
+}

+ 41
- 0
src/main/java/com/huiju/estateagents/controller/TaShareController.java View File

@@ -0,0 +1,41 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.huiju.estateagents.base.BaseController;
5
+import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.common.JWTUtils;
7
+import com.huiju.estateagents.service.ITaShareService;
8
+import org.springframework.beans.factory.annotation.Autowired;
9
+import org.springframework.web.bind.annotation.*;
10
+
11
+import javax.servlet.http.HttpServletRequest;
12
+
13
+/**
14
+ * <p>
15
+ * 用户访问表 前端控制器
16
+ * </p>
17
+ *
18
+ * @author jobob
19
+ * @since 2019-05-10
20
+ */
21
+@RestController
22
+@RequestMapping("/api")
23
+public class TaShareController extends BaseController {
24
+
25
+    @Autowired
26
+    ITaShareService taShareService;
27
+
28
+    @PostMapping("/wx/{typeOf}/share/{id}")
29
+    public ResponseBean save(@PathVariable String typeOf, @PathVariable String id, HttpServletRequest request) {
30
+        String openid = JWTUtils.getSubject(request);
31
+        return taShareService.saveData(openid, typeOf, id);
32
+    }
33
+
34
+    @GetMapping("/wx/{typeOf}/share/{id}")
35
+    public ResponseBean hotList(@PathVariable String typeOf, @PathVariable String id, Integer pageNumber, Integer pageSize, HttpServletRequest request) {
36
+        if (null == pageNumber) pageNumber = 1;
37
+        if (null == pageSize) pageSize = 10;
38
+
39
+        return taShareService.getListOf(id, typeOf, pageNumber, pageSize);
40
+    }
41
+}

+ 43
- 0
src/main/java/com/huiju/estateagents/controller/TaUvController.java View File

@@ -0,0 +1,43 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.common.JWTUtils;
6
+import com.huiju.estateagents.entity.TaUv;
7
+import com.huiju.estateagents.service.ITaUvService;
8
+import org.springframework.beans.factory.annotation.Autowired;
9
+import org.springframework.web.bind.annotation.*;
10
+
11
+import com.huiju.estateagents.base.BaseController;
12
+
13
+import javax.servlet.http.HttpServletRequest;
14
+
15
+/**
16
+ * <p>
17
+ * 用户访问表 前端控制器
18
+ * </p>
19
+ *
20
+ * @author jobob
21
+ * @since 2019-05-10
22
+ */
23
+@RestController
24
+@RequestMapping("/api")
25
+public class TaUvController extends BaseController {
26
+
27
+    @Autowired
28
+    ITaUvService taUvService;
29
+
30
+    @PostMapping("/wx/{typeOf}/hot/{id}")
31
+    public ResponseBean save(@PathVariable String typeOf, @PathVariable String id, HttpServletRequest request) {
32
+        String openid = JWTUtils.getSubject(request);
33
+        return taUvService.saveData(openid, typeOf, id);
34
+    }
35
+
36
+    @GetMapping("/wx/{typeOf}/hot/{id}")
37
+    public ResponseBean hotList(@PathVariable String typeOf, @PathVariable String id, Integer pageNumber, Integer pageSize, HttpServletRequest request) {
38
+        if (null == pageNumber) pageNumber = 1;
39
+        if (null == pageSize) pageSize = 10;
40
+
41
+        return taUvService.getListOf(id, typeOf, pageNumber, pageSize);
42
+    }
43
+}

+ 25
- 0
src/main/java/com/huiju/estateagents/entity/RealtyConsultant.java View File

@@ -0,0 +1,25 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+/**
4
+ * 虚拟对象, 用来映射人员与卡片的关系
5
+ */
6
+public class RealtyConsultant {
7
+
8
+    private String id;
9
+
10
+    private String name;
11
+
12
+    private String department;
13
+
14
+    private String post;
15
+
16
+    private String phone;
17
+
18
+    private String avatar;
19
+
20
+    private int hot_num;
21
+
22
+    private int like_num;
23
+
24
+    private int pv_num;
25
+}

+ 40
- 0
src/main/java/com/huiju/estateagents/entity/TaApartmentImg.java View File

@@ -0,0 +1,40 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import java.io.Serializable;
4
+
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+/**
10
+ * <p>
11
+ * 楼盘户型对应图片表
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@Data
18
+@EqualsAndHashCode(callSuper = false)
19
+@Accessors(chain = true)
20
+public class TaApartmentImg implements Serializable {
21
+
22
+    private static final long serialVersionUID = 1L;
23
+
24
+    /**
25
+     * 户型id
26
+     */
27
+    private String apartmentId;
28
+
29
+    /**
30
+     * 图片id
31
+     */
32
+    private String imgId;
33
+
34
+    /**
35
+     * 状态
36
+     */
37
+    private Integer status;
38
+
39
+
40
+}

+ 181
- 0
src/main/java/com/huiju/estateagents/entity/TaBuilding.java View File

@@ -0,0 +1,181 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import java.time.LocalDateTime;
4
+import java.io.Serializable;
5
+import java.util.List;
6
+import java.util.Map;
7
+
8
+import com.baomidou.mybatisplus.annotation.IdType;
9
+import com.baomidou.mybatisplus.annotation.TableField;
10
+import com.baomidou.mybatisplus.annotation.TableId;
11
+import com.baomidou.mybatisplus.core.metadata.IPage;
12
+import lombok.Data;
13
+import lombok.EqualsAndHashCode;
14
+import lombok.experimental.Accessors;
15
+
16
+/**
17
+ * <p>
18
+ * 项目表
19
+ * </p>
20
+ *
21
+ * @author jobob
22
+ * @since 2019-05-10
23
+ */
24
+@Data
25
+@EqualsAndHashCode(callSuper = false)
26
+@Accessors(chain = true)
27
+public class TaBuilding implements Serializable {
28
+
29
+    private static final long serialVersionUID = 1L;
30
+
31
+    /**
32
+     * 项目ID
33
+     */
34
+    @TableId(value = "building_id", type = IdType.UUID)
35
+    private String buildingId;
36
+
37
+    /**
38
+     * 项目名称
39
+     */
40
+    private String buildingName;
41
+
42
+    /**
43
+     * 别名
44
+     */
45
+    private String name;
46
+
47
+    /**
48
+     * 价格
49
+     */
50
+    private String price;
51
+
52
+    /**
53
+     * 开盘时间
54
+     */
55
+    private LocalDateTime openingDate;
56
+
57
+    /**
58
+     * 项目地址
59
+     */
60
+    private String address;
61
+
62
+    /**
63
+     * 项目坐标
64
+     */
65
+    private String coordinate;
66
+
67
+    /**
68
+     * 物业类型
69
+     */
70
+    private String propertyType;
71
+
72
+    /**
73
+     * 最近动态
74
+     */
75
+    private String dynamic;
76
+
77
+    /**
78
+     * 电话
79
+     */
80
+    private String tel;
81
+
82
+    /**
83
+     * 创建时间
84
+     */
85
+    private LocalDateTime createDate;
86
+
87
+    /**
88
+     * 状态
89
+     */
90
+    private Integer status;
91
+
92
+    /**
93
+     * 编号
94
+     */
95
+    private String code;
96
+
97
+    /**
98
+     * 发布时间
99
+     */
100
+    private LocalDateTime releaseTime;
101
+
102
+    /**
103
+     * 销售状态
104
+     */
105
+    private String marketStatus;
106
+
107
+    /**
108
+     * 备注
109
+     */
110
+    private String remark;
111
+
112
+    /**
113
+     * 显示顺序
114
+     */
115
+    private Integer orderNo;
116
+
117
+    /**
118
+     * 楼盘优惠信息
119
+     */
120
+    private String discount;
121
+
122
+    /**
123
+     * 是否主推楼盘
124
+     */
125
+    private Integer isMain;
126
+
127
+    /**
128
+     * 楼盘状态
129
+     */
130
+    private String buildingStatus;
131
+
132
+    /**
133
+     * 楼盘区域
134
+     */
135
+    private String buildingArea;
136
+
137
+    /**
138
+     * 楼盘地图图片
139
+     */
140
+    private String mapImg;
141
+
142
+    /**
143
+     * 海报底图
144
+     */
145
+    private String poster;
146
+
147
+
148
+    /**
149
+     * 图片
150
+     */
151
+    @TableField(exist = false)
152
+    private List<TaBuildingImg> BuildingImg;
153
+
154
+    /**
155
+     * 标签
156
+     */
157
+    @TableField(exist = false)
158
+    private List<TaBuildingTag> BuildingTag;
159
+
160
+    /**
161
+     * 户型
162
+     */
163
+    @TableField(exist = false)
164
+    private List<TaBuildingApartment> buildingApartment;
165
+
166
+    /**
167
+     * 来访记录
168
+     */
169
+//    @TableField(exist = false)
170
+//    private List<TaVisit> visits;
171
+
172
+    @TableField(exist = false)
173
+    private IPage<TaUv> uvList;
174
+
175
+    @TableField(exist = false)
176
+    private IPage<TaShare> shareList;
177
+
178
+
179
+    @TableField(exist = false)
180
+    private List<Map<String, Object>> consultants;
181
+}

+ 82
- 0
src/main/java/com/huiju/estateagents/entity/TaBuildingApartment.java View File

@@ -0,0 +1,82 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import java.time.LocalDateTime;
4
+import java.io.Serializable;
5
+import java.util.List;
6
+
7
+import com.baomidou.mybatisplus.annotation.IdType;
8
+import com.baomidou.mybatisplus.annotation.TableField;
9
+import com.baomidou.mybatisplus.annotation.TableId;
10
+import lombok.Data;
11
+import lombok.EqualsAndHashCode;
12
+import lombok.experimental.Accessors;
13
+
14
+/**
15
+ * <p>
16
+ * 项目户型表
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2019-05-10
21
+ */
22
+@Data
23
+@EqualsAndHashCode(callSuper = false)
24
+@Accessors(chain = true)
25
+public class TaBuildingApartment implements Serializable {
26
+
27
+    private static final long serialVersionUID = 1L;
28
+
29
+    /**
30
+     * 户型id
31
+     */
32
+    @TableId(value = "apartment_id", type = IdType.UUID)
33
+    private String apartmentId;
34
+
35
+    /**
36
+     * 楼盘id
37
+     */
38
+    private String buildingId;
39
+
40
+    /**
41
+     * 名称
42
+     */
43
+    private String apartmentName;
44
+
45
+    /**
46
+     * 类型
47
+     */
48
+    private String apartmentType;
49
+
50
+    /**
51
+     * 备注
52
+     */
53
+    private String remark;
54
+
55
+    /**
56
+     * 状态
57
+     */
58
+    private Integer status;
59
+
60
+    /**
61
+     * 创建时间
62
+     */
63
+    private LocalDateTime createDate;
64
+
65
+    /**
66
+     * 销售状态
67
+     */
68
+    private Integer marketStatus;
69
+
70
+    private String insideArea;
71
+
72
+    private String buildingArea;
73
+
74
+
75
+    /**
76
+     * 户型图片列表
77
+     */
78
+    @TableField(exist = false)
79
+    private List<TaBuildingImg> buildingImgList;
80
+
81
+
82
+}

+ 84
- 0
src/main/java/com/huiju/estateagents/entity/TaBuildingDynamic.java View File

@@ -0,0 +1,84 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import com.baomidou.mybatisplus.annotation.TableName;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+import java.io.Serializable;
12
+import java.time.LocalDateTime;
13
+
14
+/**
15
+ * <p>
16
+ * 项目动态表
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2019-03-21
21
+ */
22
+@Data
23
+@EqualsAndHashCode(callSuper = false)
24
+@Accessors(chain = true)
25
+@TableName("ta_building_dynamic")
26
+public class TaBuildingDynamic implements Serializable {
27
+
28
+    private static final long serialVersionUID = 1L;
29
+
30
+    /**
31
+     * 动态ID
32
+     */
33
+    @TableId(value = "dynamic_id", type = IdType.UUID)
34
+    private String dynamicId;
35
+
36
+    /**
37
+     * 楼盘ID
38
+     */
39
+    private String buildingId;
40
+
41
+    /**
42
+     * 首页图片URL
43
+     */
44
+    private String imgUrl;
45
+
46
+    /**
47
+     * 标题
48
+     */
49
+    private String title;
50
+
51
+    /**
52
+     * 发布时间
53
+     */
54
+    private LocalDateTime publishDate;
55
+
56
+    /**
57
+     * 描述
58
+     */
59
+    @TableField("`desc`")
60
+    private String desc;
61
+
62
+    /**
63
+     * url
64
+     */
65
+    private String url;
66
+
67
+    /**
68
+     * 0正常,-1删除
69
+     */
70
+    @TableField("`status`")
71
+    private Integer status;
72
+
73
+    /**
74
+     * 创建时间
75
+     */
76
+    private LocalDateTime createDate;
77
+
78
+    /**
79
+     * 楼盘
80
+     */
81
+    @TableField(exist = false)
82
+    private TaBuilding building;
83
+
84
+}

+ 64
- 0
src/main/java/com/huiju/estateagents/entity/TaBuildingImg.java View File

@@ -0,0 +1,64 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import java.time.LocalDateTime;
4
+import java.io.Serializable;
5
+
6
+import com.baomidou.mybatisplus.annotation.IdType;
7
+import com.baomidou.mybatisplus.annotation.TableId;
8
+import lombok.Data;
9
+import lombok.EqualsAndHashCode;
10
+import lombok.experimental.Accessors;
11
+
12
+/**
13
+ * <p>
14
+ * 楼盘图片表
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-05-10
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaBuildingImg implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * 图片id
29
+     */
30
+    @TableId(value = "img_id", type = IdType.UUID)
31
+    private String imgId;
32
+
33
+    /**
34
+     * 楼盘id
35
+     */
36
+    private String buildingId;
37
+
38
+    /**
39
+     * 图片类型
40
+     */
41
+    private String imgType;
42
+
43
+    /**
44
+     * 图片地址
45
+     */
46
+    private String url;
47
+
48
+    /**
49
+     * 排序
50
+     */
51
+    private Integer orderNo;
52
+
53
+    /**
54
+     * 状态
55
+     */
56
+    private Integer status;
57
+
58
+    /**
59
+     * 创建时间
60
+     */
61
+    private LocalDateTime createDate;
62
+
63
+
64
+}

+ 43
- 0
src/main/java/com/huiju/estateagents/entity/TaBuildingTag.java View File

@@ -0,0 +1,43 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import java.io.Serializable;
4
+
5
+import com.baomidou.mybatisplus.annotation.IdType;
6
+import com.baomidou.mybatisplus.annotation.TableId;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+/**
12
+ * <p>
13
+ * 项目标签表
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-10
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+public class TaBuildingTag implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    /**
27
+     * 标签ID
28
+     */
29
+    @TableId(value = "tag_id", type = IdType.UUID)
30
+    private String tagId;
31
+
32
+    /**
33
+     * 项目ID
34
+     */
35
+    private String buildingId;
36
+
37
+    /**
38
+     * 标签名称
39
+     */
40
+    private String tagName;
41
+
42
+
43
+}

+ 83
- 0
src/main/java/com/huiju/estateagents/entity/TaChat.java View File

@@ -0,0 +1,83 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import java.time.LocalDateTime;
6
+import java.io.Serializable;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+/**
12
+ * <p>
13
+ * 聊天记录表
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-10
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+public class TaChat implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    /**
27
+     * 记录ID
28
+     */
29
+    @TableId(value = "chat_id", type = IdType.AUTO)
30
+    private Integer chatId;
31
+
32
+    /**
33
+     * 创建时间
34
+     */
35
+    private LocalDateTime createDate;
36
+
37
+    /**
38
+     * 发送人
39
+     */
40
+    private String sendPerson;
41
+
42
+    /**
43
+     * 发送人头像
44
+     */
45
+    private String sendAvatar;
46
+
47
+    /**
48
+     * 发送人名称
49
+     */
50
+    private String sendName;
51
+
52
+    /**
53
+     * 接收人
54
+     */
55
+    private String receivePerson;
56
+
57
+    /**
58
+     * 接收人头像
59
+     */
60
+    private String receiveAvatar;
61
+
62
+    /**
63
+     * 接收人名称
64
+     */
65
+    private String receiveName;
66
+
67
+    /**
68
+     * 是否已读
69
+     */
70
+    private Integer isRead;
71
+
72
+    /**
73
+     * 消息内容
74
+     */
75
+    private String message;
76
+
77
+    /**
78
+     * 内容类型
79
+     */
80
+    private String messageType;
81
+
82
+
83
+}

+ 63
- 0
src/main/java/com/huiju/estateagents/entity/TaFavor.java View File

@@ -0,0 +1,63 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import java.time.LocalDateTime;
6
+import java.io.Serializable;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+/**
12
+ * <p>
13
+ * 点赞表
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-10
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+public class TaFavor implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    /**
27
+     * 赞ID
28
+     */
29
+    @TableId(value = "favor_id", type = IdType.AUTO)
30
+    private Integer favorId;
31
+
32
+    /**
33
+     * 点赞人
34
+     */
35
+    private String personId;
36
+
37
+    /**
38
+     * 名称
39
+     */
40
+    private String nameOrnick;
41
+
42
+    /**
43
+     * 头像
44
+     */
45
+    private String photoOravatar;
46
+
47
+    /**
48
+     * 被赞对象
49
+     */
50
+    private String beFavor;
51
+
52
+    /**
53
+     * 对象类型
54
+     */
55
+    private String tagertType;
56
+
57
+    /**
58
+     * 点赞时间
59
+     */
60
+    private LocalDateTime createDate;
61
+
62
+
63
+}

+ 32
- 0
src/main/java/com/huiju/estateagents/entity/TaMiniFormids.java View File

@@ -0,0 +1,32 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import lombok.Data;
4
+import lombok.EqualsAndHashCode;
5
+import lombok.experimental.Accessors;
6
+
7
+import java.time.LocalDateTime;
8
+
9
+@Data
10
+@EqualsAndHashCode(callSuper = false)
11
+@Accessors(chain = true)
12
+public class TaMiniFormids {
13
+
14
+    private static final long serialVersionUID = 1L;
15
+
16
+    /**
17
+     * openid;
18
+     */
19
+    private String openid;
20
+
21
+
22
+    /**
23
+     * 表单id
24
+     */
25
+    private String formid;
26
+
27
+
28
+    /**
29
+     * 点赞时间
30
+     */
31
+    private LocalDateTime createDate;
32
+}

+ 58
- 0
src/main/java/com/huiju/estateagents/entity/TaMiniappQrcode.java View File

@@ -0,0 +1,58 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 聊天记录表
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-05-10
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaMiniappQrcode implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * 记录ID
29
+     */
30
+    @TableId(value = "serial_no", type = IdType.AUTO)
31
+    private Integer serialNo;
32
+
33
+    /**
34
+     * 创建时间
35
+     */
36
+    private LocalDateTime createDate;
37
+
38
+    /**
39
+     * 有效期至
40
+     */
41
+    private LocalDateTime expireDate;
42
+
43
+    /**
44
+     * 小程序ID
45
+     */
46
+    private String appid;
47
+
48
+    /**
49
+     * 二维码参数
50
+     */
51
+    private String qrParams;
52
+
53
+    /**
54
+     * 二维码地址
55
+     */
56
+    private String qrCode;
57
+
58
+}

+ 185
- 0
src/main/java/com/huiju/estateagents/entity/TaPerson.java View File

@@ -0,0 +1,185 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import java.time.LocalDateTime;
4
+import java.io.Serializable;
5
+
6
+import com.baomidou.mybatisplus.annotation.IdType;
7
+import com.baomidou.mybatisplus.annotation.TableId;
8
+import lombok.Data;
9
+import lombok.EqualsAndHashCode;
10
+import lombok.experimental.Accessors;
11
+
12
+/**
13
+ * <p>
14
+ * 人员表
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-05-10
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaPerson implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * 人员ID
29
+     */
30
+
31
+    @TableId(value = "person_id", type = IdType.UUID)
32
+    private String personId;
33
+
34
+    /**
35
+     * 人员类型
36
+     */
37
+    private String personType;
38
+
39
+    /**
40
+     * 密码
41
+     */
42
+    private String password;
43
+
44
+    /**
45
+     * 姓名
46
+     */
47
+    private String name;
48
+
49
+    /**
50
+     * 电话
51
+     */
52
+    private String tel;
53
+
54
+    /**
55
+     * 性别
56
+     */
57
+    private Integer sex;
58
+
59
+    /**
60
+     * 邮箱
61
+     */
62
+    private String email;
63
+
64
+    /**
65
+     * 地址
66
+     */
67
+    private String address;
68
+
69
+    /**
70
+     * 身份证号
71
+     */
72
+    private String idNo;
73
+
74
+    /**
75
+     * 公司
76
+     */
77
+    private String company;
78
+
79
+    /**
80
+     * 部门
81
+     */
82
+    private String department;
83
+
84
+    /**
85
+     * 职位
86
+     */
87
+    private String post;
88
+
89
+    /**
90
+     * 照片
91
+     */
92
+    private String photo;
93
+
94
+    /**
95
+     * 状态
96
+     */
97
+    private Integer status;
98
+
99
+    /**
100
+     * 备注
101
+     */
102
+    private String remark;
103
+
104
+    /**
105
+     * 创建时间
106
+     */
107
+    private LocalDateTime createDate;
108
+
109
+    /**
110
+     * 人气
111
+     */
112
+    private Integer hotNum;
113
+
114
+    /**
115
+     * 分享
116
+     */
117
+    private Integer shareNum;
118
+
119
+    /**
120
+     * 点赞
121
+     */
122
+    private Integer likeNum;
123
+
124
+    /**
125
+     * 浏览量
126
+     */
127
+    private Integer pvNum;
128
+
129
+    /**
130
+     * 小程序ID
131
+     */
132
+    private String miniOpenid;
133
+
134
+    /**
135
+     * 微信昵称
136
+     */
137
+    private String nickname;
138
+
139
+    /**
140
+     * 微信头像
141
+     */
142
+    private String avatarurl;
143
+
144
+    /**
145
+     * 微信手机
146
+     */
147
+    private String phone;
148
+
149
+    /**
150
+     * 海报背景
151
+     */
152
+    private String poster;
153
+
154
+    /**
155
+     * 是否注册
156
+     */
157
+    private Integer isSignup;
158
+
159
+    /**
160
+     * 身份说明
161
+     */
162
+    private String idRemark;
163
+
164
+    /**
165
+     * 名片图片
166
+     */
167
+    private String cardImg;
168
+
169
+    /**
170
+     * 注册审核
171
+     */
172
+    private Integer signupStatus;
173
+
174
+    /**
175
+     * 审核结果说明
176
+     */
177
+    private String verifyDesc;
178
+
179
+    /**
180
+     * 累计积分
181
+     */
182
+    private Integer points;
183
+
184
+
185
+}

+ 45
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonBuilding.java View File

@@ -0,0 +1,45 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import java.time.LocalDateTime;
4
+import java.io.Serializable;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+/**
10
+ * <p>
11
+ * 人员授权项目
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@Data
18
+@EqualsAndHashCode(callSuper = false)
19
+@Accessors(chain = true)
20
+public class TaPersonBuilding implements Serializable {
21
+
22
+    private static final long serialVersionUID = 1L;
23
+
24
+    /**
25
+     * 人员ID
26
+     */
27
+    private String personId;
28
+
29
+    /**
30
+     * 项目ID
31
+     */
32
+    private String buildingId;
33
+
34
+    /**
35
+     * 海报
36
+     */
37
+    private String poster;
38
+
39
+    /**
40
+     * 创建时间
41
+     */
42
+    private LocalDateTime createDate;
43
+
44
+
45
+}

+ 58
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonPoints.java View File

@@ -0,0 +1,58 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import java.time.LocalDateTime;
6
+import java.io.Serializable;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+/**
12
+ * <p>
13
+ * 人员积分表
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-10
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+public class TaPersonPoints implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    /**
27
+     * 记录ID
28
+     */
29
+    @TableId(value = "rec_id", type = IdType.AUTO)
30
+    private Integer recId;
31
+
32
+    /**
33
+     * 积分
34
+     */
35
+    private Integer points;
36
+
37
+    /**
38
+     * 收支类型
39
+     */
40
+    private String chargeType;
41
+
42
+    /**
43
+     * 人员ID
44
+     */
45
+    private String personId;
46
+
47
+    /**
48
+     * 说明
49
+     */
50
+    private String desc;
51
+
52
+    /**
53
+     * 时间
54
+     */
55
+    private LocalDateTime createDate;
56
+
57
+
58
+}

+ 47
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonSign.java View File

@@ -0,0 +1,47 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import java.time.LocalDateTime;
6
+import java.io.Serializable;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+/**
12
+ * <p>
13
+ * 人员签到表
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-10
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+public class TaPersonSign implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    /**
27
+     * 记录ID
28
+     */
29
+    @TableId(value = "rec_id", type = IdType.AUTO)
30
+    private Integer recId;
31
+
32
+    /**
33
+     * 签到人
34
+     */
35
+    private String personId;
36
+
37
+    /**
38
+     * 签到时间
39
+     */
40
+    private LocalDateTime signDate;
41
+
42
+    /**
43
+     * 持续天数
44
+     */
45
+    private Integer durationDays;
46
+
47
+}

+ 124
- 0
src/main/java/com/huiju/estateagents/entity/TaRecommendCustomer.java View File

@@ -0,0 +1,124 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import java.time.LocalDateTime;
4
+import java.io.Serializable;
5
+import java.util.Map;
6
+
7
+import com.baomidou.mybatisplus.annotation.IdType;
8
+import com.baomidou.mybatisplus.annotation.TableField;
9
+import com.baomidou.mybatisplus.annotation.TableId;
10
+import lombok.Data;
11
+import lombok.EqualsAndHashCode;
12
+import lombok.experimental.Accessors;
13
+
14
+/**
15
+ * <p>
16
+ * 推荐客户表
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2019-05-10
21
+ */
22
+@Data
23
+@EqualsAndHashCode(callSuper = false)
24
+@Accessors(chain = true)
25
+public class TaRecommendCustomer implements Serializable {
26
+
27
+    private static final long serialVersionUID = 1L;
28
+
29
+    /**
30
+     * 客户ID
31
+     */
32
+    @TableId(value = "customer_id", type = IdType.UUID)
33
+    private String customerId;
34
+
35
+    /**
36
+     * 姓名
37
+     */
38
+
39
+    @TableField(value = "`name`")
40
+    private String name;
41
+
42
+    /**
43
+     * 性别
44
+     */
45
+    private Integer sex;
46
+
47
+    /**
48
+     * 电话
49
+     */
50
+    private String phone;
51
+
52
+    /**
53
+     * 照片
54
+     */
55
+    private String picture;
56
+
57
+    /**
58
+     * 描述
59
+     */
60
+    @TableField(value = "`describe`")
61
+    private String describe;
62
+
63
+    /**
64
+     * 预约时间
65
+     */
66
+    private LocalDateTime appointmentTime;
67
+
68
+    /**
69
+     * 到访人数
70
+     */
71
+    private Integer visiteNum;
72
+
73
+    /**
74
+     * 意向项目
75
+     */
76
+    private String intention;
77
+
78
+    /**
79
+     * 项目ID
80
+     */
81
+    private String buildingId;
82
+
83
+    /**
84
+     * 物业类型
85
+     */
86
+    private String realtyManageType;
87
+
88
+    /**
89
+     * 需求类型
90
+     */
91
+    private String demandType;
92
+
93
+    /**
94
+     * 价格区间
95
+     */
96
+    private String priceRange;
97
+
98
+    /**
99
+     * 报备日期
100
+     */
101
+    private LocalDateTime reportDate;
102
+
103
+    /**
104
+     * 状态
105
+     */
106
+    @TableField(value = "`status`")
107
+    private String status;
108
+
109
+    /**
110
+     * 推荐人
111
+     */
112
+    private String personId;
113
+
114
+    /**
115
+     * 服务顾问
116
+     */
117
+    private String realtyConsultant;
118
+
119
+    /**
120
+     * 服务顾问
121
+     */
122
+    @TableField(exist = false)
123
+    private Map<String, Object> consultant;
124
+}

+ 64
- 0
src/main/java/com/huiju/estateagents/entity/TaShare.java View File

@@ -0,0 +1,64 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 用户访问表
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-05-10
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaShare implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * 分享ID
29
+     */
30
+    @TableId(value = "share_id", type = IdType.AUTO)
31
+    private Integer shareId;
32
+
33
+    /**
34
+     * 分享人
35
+     */
36
+    private String personId;
37
+
38
+    /**
39
+     * 名称
40
+     */
41
+    private String nameOrnick;
42
+
43
+    /**
44
+     * 头像
45
+     */
46
+    private String photoOravatar;
47
+
48
+    /**
49
+     * 分享对象
50
+     */
51
+    private String beShare;
52
+
53
+    /**
54
+     * 对象类型
55
+     */
56
+    private String tagertType;
57
+
58
+    /**
59
+     * 分享时间
60
+     */
61
+    private LocalDateTime createDate;
62
+
63
+
64
+}

+ 63
- 0
src/main/java/com/huiju/estateagents/entity/TaUv.java View File

@@ -0,0 +1,63 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import java.time.LocalDateTime;
6
+import java.io.Serializable;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+/**
12
+ * <p>
13
+ * 用户访问表
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-10
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+public class TaUv implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    /**
27
+     * 访问ID
28
+     */
29
+    @TableId(value = "uv_id", type = IdType.AUTO)
30
+    private Integer uvId;
31
+
32
+    /**
33
+     * 访问人
34
+     */
35
+    private String personId;
36
+
37
+    /**
38
+     * 名称
39
+     */
40
+    private String nameOrnick;
41
+
42
+    /**
43
+     * 头像
44
+     */
45
+    private String photoOravatar;
46
+
47
+    /**
48
+     * 访问对象
49
+     */
50
+    private String beUv;
51
+
52
+    /**
53
+     * 对象类型
54
+     */
55
+    private String tagertType;
56
+
57
+    /**
58
+     * 访问时间
59
+     */
60
+    private LocalDateTime createDate;
61
+
62
+
63
+}

+ 119
- 0
src/main/java/com/huiju/estateagents/interceptor/AccessInterceptor.java View File

@@ -0,0 +1,119 @@
1
+package com.huiju.estateagents.interceptor;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.common.JWTUtils;
6
+import io.jsonwebtoken.*;
7
+import org.springframework.stereotype.Component;
8
+import org.springframework.web.servlet.HandlerInterceptor;
9
+import org.springframework.web.servlet.ModelAndView;
10
+
11
+import javax.servlet.http.HttpServletRequest;
12
+import javax.servlet.http.HttpServletResponse;
13
+
14
+@Component
15
+public class AccessInterceptor implements HandlerInterceptor {
16
+    private String[] whiteList = {
17
+            "/wx/chat", // 聊天暂时不鉴权
18
+            "/api/wx/login",
19
+            "/api/admin/signin"
20
+    };
21
+
22
+    /*
23
+     * 视图渲染之后的操作
24
+     */
25
+    @Override
26
+    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
27
+            throws Exception {
28
+
29
+    }
30
+
31
+    /*
32
+     * 处理请求完成后视图渲染之前的处理操作
33
+     */
34
+    @Override
35
+    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
36
+            throws Exception {
37
+
38
+    }
39
+
40
+    @Override
41
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
42
+        // 白名单跳过
43
+        if (inWhiteList(request)) {
44
+            return true;
45
+        }
46
+
47
+        // 微信头必须对
48
+        if (!checkMiniApp(request)) {
49
+            ResponseBean resp = ResponseBean.error("请使用微信请求接口", ResponseBean.ERROR_ILLEGAL_PARAMS);
50
+
51
+            response.addHeader("Content-type", "application/json");
52
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
53
+            return false;
54
+        }
55
+
56
+        // 消息头必须包含 authorization 字段
57
+        String jwtHeader = request.getHeader("authorization");
58
+        if (null == jwtHeader || "".equals(jwtHeader)) {
59
+            ResponseBean resp = ResponseBean.error("请先进行系统登录操作", ResponseBean.ERROR_AUTH_FAIL);
60
+
61
+            response.addHeader("Content-type", "application/json");
62
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
63
+            return false;
64
+        }
65
+
66
+        String[] jwtAuths = jwtHeader.split("Bearer ");
67
+        if (null == jwtAuths || jwtAuths.length < 2) {
68
+            ResponseBean resp = ResponseBean.error("权限验证非法, 数据格式不正确", ResponseBean.ERROR_AUTH_FAIL);
69
+
70
+            response.addHeader("Content-type", "application/json");
71
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
72
+            return false;
73
+        }
74
+
75
+        try {
76
+            // 只尝试去解析
77
+            Jwts.parser().setSigningKey(JWTUtils.key).parseClaimsJws(jwtAuths[1]);
78
+        } catch (ExpiredJwtException e) {
79
+            ResponseBean resp = ResponseBean.error("权限验证非法, Token 已过期", ResponseBean.ERROR_AUTH_EXPIRED);
80
+            response.addHeader("Content-type", "application/json");
81
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
82
+            return false;
83
+
84
+        } catch (JwtException e) {
85
+            ResponseBean resp = ResponseBean.error("权限验证非法, " + e.getMessage(), ResponseBean.ERROR_AUTH_FAIL);
86
+
87
+
88
+            response.addHeader("Content-type", "application/json");
89
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
90
+            return false;
91
+        }
92
+
93
+        return true;
94
+    }
95
+
96
+    private boolean checkMiniApp(HttpServletRequest request) {
97
+        String requestURI = request.getRequestURI();
98
+
99
+        // 非微信请求
100
+        if (!requestURI.startsWith("/api/wx")) {
101
+            return true;
102
+        }
103
+
104
+        String ua = request.getHeader("user-agent");
105
+        return ua.contains("micromessenger") || ua.contains("MicroMessenger");
106
+    }
107
+
108
+    private boolean inWhiteList(HttpServletRequest request) {
109
+        String requestURI = request.getRequestURI();
110
+
111
+        for (String it : whiteList) {
112
+            if (requestURI.startsWith(it)) {
113
+                return true;
114
+            }
115
+        }
116
+
117
+        return false;
118
+    }
119
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaApartmentImgMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaApartmentImg;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 楼盘户型对应图片表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+@Mapper
16
+public interface TaApartmentImgMapper extends BaseMapper<TaApartmentImg> {
17
+
18
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaBuildingApartmentMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaBuildingApartment;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 项目户型表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+@Mapper
16
+public interface TaBuildingApartmentMapper extends BaseMapper<TaBuildingApartment> {
17
+
18
+}

+ 46
- 0
src/main/java/com/huiju/estateagents/mapper/TaBuildingDynamicMapper.java View File

@@ -0,0 +1,46 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.estateagents.entity.TaBuildingDynamic;
7
+import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
9
+
10
+/**
11
+ * <p>
12
+ * 项目动态表 Mapper 接口
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2019-03-21
17
+ */
18
+@Mapper
19
+public interface TaBuildingDynamicMapper extends BaseMapper<TaBuildingDynamic> {
20
+
21
+    /**
22
+     * 会员列列表
23
+     * @param page
24
+     * @return
25
+     */
26
+    IPage<TaBuildingDynamic> buildingDynamicList(Page page, @Param("name") String name, @Param("buildingId") String buildingId);
27
+
28
+    /**
29
+     * 详情
30
+     * @param id
31
+     * @return
32
+     */
33
+    TaBuildingDynamic iBuildingDynamicSelectId(@Param("id") String id);
34
+
35
+    /**
36
+     * 新增动态
37
+     * @param buildingDynamic
38
+     */
39
+    void insertBuildingDynamic(TaBuildingDynamic buildingDynamic);
40
+
41
+    /**
42
+     * 修改动态
43
+     * @param buildingDynamic
44
+     */
45
+    void buildingDynamicUpdate(TaBuildingDynamic buildingDynamic);
46
+}

+ 23
- 0
src/main/java/com/huiju/estateagents/mapper/TaBuildingImgMapper.java View File

@@ -0,0 +1,23 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaBuildingImg;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+import java.util.List;
9
+
10
+/**
11
+ * <p>
12
+ * 楼盘图片表 Mapper 接口
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2019-05-10
17
+ */
18
+@Mapper
19
+public interface TaBuildingImgMapper extends BaseMapper<TaBuildingImg> {
20
+    List<TaBuildingImg> getBuildingImgByApartment(@Param("id") String id);
21
+
22
+    void delBuildingImgByApartment(@Param("id") String apartmentId);
23
+}

+ 28
- 0
src/main/java/com/huiju/estateagents/mapper/TaBuildingMapper.java View File

@@ -0,0 +1,28 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.huiju.estateagents.entity.TaBuilding;
6
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
7
+import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
9
+
10
+import java.util.List;
11
+
12
+/**
13
+ * <p>
14
+ * 项目表 Mapper 接口
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-05-10
19
+ */
20
+@Mapper
21
+public interface TaBuildingMapper extends BaseMapper<TaBuilding> {
22
+    /**
23
+     * 楼盘列表
24
+     * @param page
25
+     * @return
26
+     */
27
+    List<TaBuilding> buildingList(IPage<TaBuilding> page, @Param("Name") String name, @Param("Code")String code);
28
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaBuildingTagMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaBuildingTag;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 项目标签表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+@Mapper
16
+public interface TaBuildingTagMapper extends BaseMapper<TaBuildingTag> {
17
+
18
+}

+ 29
- 0
src/main/java/com/huiju/estateagents/mapper/TaChatMapper.java View File

@@ -0,0 +1,29 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.huiju.estateagents.entity.TaChat;
5
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6
+import org.apache.ibatis.annotations.Mapper;
7
+import org.apache.ibatis.annotations.Param;
8
+
9
+import java.util.List;
10
+
11
+/**
12
+ * <p>
13
+ * 聊天记录表 Mapper 接口
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-10
18
+ */
19
+@Mapper
20
+public interface TaChatMapper extends BaseMapper<TaChat> {
21
+
22
+    List<TaChat> getChatHistory(IPage<TaChat> page, @Param("from") String from, @Param("to") String to);
23
+
24
+    List<TaChat> getChatWith(IPage<TaChat> page, @Param("person") String person);
25
+
26
+    Integer getUnReadMessage(@Param("from") String from, @Param("to") String to);
27
+
28
+    Integer getAllUnReadMessage(@Param("personId") String personId);
29
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaFavorMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaFavor;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 点赞表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+@Mapper
16
+public interface TaFavorMapper extends BaseMapper<TaFavor> {
17
+
18
+}

+ 19
- 0
src/main/java/com/huiju/estateagents/mapper/TaMiniFormidsMapper.java View File

@@ -0,0 +1,19 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.TaFavor;
5
+import com.huiju.estateagents.entity.TaMiniFormids;
6
+import org.apache.ibatis.annotations.Mapper;
7
+import org.apache.ibatis.annotations.Param;
8
+
9
+/**
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-10
13
+ */
14
+@Mapper
15
+public interface TaMiniFormidsMapper extends BaseMapper<TaMiniFormids> {
16
+
17
+    TaMiniFormids getFormidCanUse(@Param("openid") String openid);
18
+
19
+}

+ 10
- 0
src/main/java/com/huiju/estateagents/mapper/TaMiniappQrcodeMapper.java View File

@@ -0,0 +1,10 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.TaMiniappQrcode;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+
8
+@Mapper
9
+public interface TaMiniappQrcodeMapper extends BaseMapper<TaMiniappQrcode> {
10
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonBuildingMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaPersonBuilding;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 人员授权项目 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+@Mapper
16
+public interface TaPersonBuildingMapper extends BaseMapper<TaPersonBuilding> {
17
+
18
+}

+ 31
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java View File

@@ -0,0 +1,31 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.huiju.estateagents.entity.TaPerson;
5
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6
+import org.apache.ibatis.annotations.Mapper;
7
+import org.apache.ibatis.annotations.Param;
8
+
9
+import java.util.List;
10
+import java.util.Map;
11
+
12
+/**
13
+ * <p>
14
+ * 人员表 Mapper 接口
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-05-10
19
+ */
20
+@Mapper
21
+public interface TaPersonMapper extends BaseMapper<TaPerson> {
22
+    List<Map<String,Object>> selectCardList(IPage<Map<String,Object>> page, @Param("personType") String personType, @Param("status") int status);
23
+
24
+    int setFieldIncrement(@Param("personId") String personId, @Param("field") String field, @Param("increment") int increment);
25
+
26
+    TaPerson getSalesExecutive();
27
+
28
+    List<TaPerson> getPersonByOpenId(@Param("openId") String openId);
29
+
30
+    List<Map<String, Object>> selectBuildingConsultants(@Param("buildingId") String buildingId, @Param("personType") String personType, @Param("status") int status);
31
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonPointsMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaPersonPoints;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 人员积分表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+@Mapper
16
+public interface TaPersonPointsMapper extends BaseMapper<TaPersonPoints> {
17
+
18
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonSignMapper.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaPersonSign;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+/**
9
+ * <p>
10
+ * 人员签到表 Mapper 接口
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-10
15
+ */
16
+@Mapper
17
+public interface TaPersonSignMapper extends BaseMapper<TaPersonSign> {
18
+
19
+    TaPersonSign getLastSignRecord(@Param("personId") String personId);
20
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/mapper/TaRecommendCustomerMapper.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaRecommendCustomer;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+/**
9
+ * <p>
10
+ * 推荐客户表 Mapper 接口
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-10
15
+ */
16
+@Mapper
17
+public interface TaRecommendCustomerMapper extends BaseMapper<TaRecommendCustomer> {
18
+
19
+    Integer getMyCutsomerNum(@Param("personId") String personId);
20
+}

+ 17
- 0
src/main/java/com/huiju/estateagents/mapper/TaShareMapper.java View File

@@ -0,0 +1,17 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.estateagents.entity.TaShare;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 用户访问表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+@Mapper
16
+public interface TaShareMapper extends BaseMapper<TaShare> {
17
+}

+ 22
- 0
src/main/java/com/huiju/estateagents/mapper/TaUvMapper.java View File

@@ -0,0 +1,22 @@
1
+package com.huiju.estateagents.mapper;
2
+
3
+import com.huiju.estateagents.entity.TaUv;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+import java.util.List;
9
+import java.util.Map;
10
+
11
+/**
12
+ * <p>
13
+ * 用户访问表 Mapper 接口
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-10
18
+ */
19
+@Mapper
20
+public interface TaUvMapper extends BaseMapper<TaUv> {
21
+    List<Map<String,Object>> getLastVisitors(@Param("tagertType") String tagertType, @Param("personId") String personId, @Param("limit") int limit);
22
+}

+ 27
- 0
src/main/java/com/huiju/estateagents/service/IMiniAppService.java View File

@@ -0,0 +1,27 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
4
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
5
+import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
6
+import com.huiju.estateagents.base.ResponseBean;
7
+import me.chanjar.weixin.common.error.WxErrorException;
8
+
9
+import java.time.LocalDateTime;
10
+
11
+public interface IMiniAppService {
12
+    WxMaJscode2SessionResult getSessionInfo(String code) throws WxErrorException;
13
+
14
+    boolean checkUserInfo(String sessionKey, String rawData, String signature);
15
+
16
+    WxMaUserInfo getUserInfo(String sessionKey, String encryptedData, String iv);
17
+
18
+    WxMaPhoneNumberInfo getPhoneNoInfo(String sessionKey, String encryptedData, String iv);
19
+
20
+    void sendNoticeMessage(String toUser, String link, String name, String phone, String content, LocalDateTime dt);
21
+
22
+    void sendMainBizMessage(String toUser, String link, String custName, String phone, String sex, String fromName, String bizType, String content);
23
+
24
+    void sendNewCustomerMessage(String toUser, String link, String custName, String phone, String sex, String fromName);
25
+
26
+    ResponseBean getQrCode(String paramsStr);
27
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaApartmentImgService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.entity.TaApartmentImg;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 楼盘户型对应图片表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-10
13
+ */
14
+public interface ITaApartmentImgService extends IService<TaApartmentImg> {
15
+
16
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaBuildingApartmentService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.entity.TaBuildingApartment;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 项目户型表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-10
13
+ */
14
+public interface ITaBuildingApartmentService extends IService<TaBuildingApartment> {
15
+
16
+}

+ 66
- 0
src/main/java/com/huiju/estateagents/service/ITaBuildingDynamicService.java View File

@@ -0,0 +1,66 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.entity.TaBuildingDynamic;
6
+
7
+import java.util.HashMap;
8
+
9
+/**
10
+ * <p>
11
+ * 项目动态表 服务类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-03-21
16
+ */
17
+public interface ITaBuildingDynamicService extends IService<TaBuildingDynamic> {
18
+
19
+    /**
20
+     * 项目动态管理列表
21
+     * @return
22
+     */
23
+    ResponseBean iBuildingDynamicList(Integer pageNum, Integer pageSize, String name, String buildingId);
24
+
25
+    /**
26
+     * 项目详情
27
+     * @param id
28
+     * @return
29
+     */
30
+    ResponseBean iBuildingDynamicSelectId(String id);
31
+
32
+    /**
33
+     * 微信小程序 项目动态管理列表
34
+     * @return
35
+     */
36
+    ResponseBean getWxBuildingDynamiceList(Integer pageNum, Integer pageSize);
37
+
38
+    /**
39
+     * 微信小程序 项目详情
40
+     * @param dynamicId
41
+     * @return
42
+     */
43
+    ResponseBean getWxBuildingDynamiceInfo(String dynamicId);
44
+
45
+    /**
46
+     * 动态管理添加
47
+     * @param map
48
+     * @return
49
+     */
50
+    ResponseBean buildingDynamicAdd(HashMap map);
51
+
52
+    /**
53
+     * 动态删除
54
+     * @param id
55
+     * @return
56
+     */
57
+    ResponseBean buildingDynamicDelete(String id);
58
+
59
+    /**
60
+     * 动态修改
61
+     * @param map
62
+     * @return
63
+     */
64
+    ResponseBean buildingDynamicUpdate(HashMap<Object, Object> map);
65
+
66
+}

+ 18
- 0
src/main/java/com/huiju/estateagents/service/ITaBuildingImgService.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.entity.TaBuildingImg;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+import java.util.List;
7
+
8
+/**
9
+ * <p>
10
+ * 楼盘图片表 服务类
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-10
15
+ */
16
+public interface ITaBuildingImgService extends IService<TaBuildingImg> {
17
+    int insertBatch(List<TaBuildingImg> imgs, String buildingId);
18
+}

+ 131
- 0
src/main/java/com/huiju/estateagents/service/ITaBuildingService.java View File

@@ -0,0 +1,131 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.base.ResponseBean;
4
+import com.huiju.estateagents.entity.TaBuilding;
5
+import com.baomidou.mybatisplus.extension.service.IService;
6
+
7
+/**
8
+ * <p>
9
+ * 项目表 服务类
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+public interface ITaBuildingService extends IService<TaBuilding> {
16
+
17
+    /**
18
+     * 楼盘列表
19
+     * @param pageNum
20
+     * @param pageSize
21
+     * @return
22
+     */
23
+    ResponseBean buildingList(Integer pageNum, Integer pageSize, String name, String code);
24
+
25
+    /**
26
+     * 楼盘详情
27
+     * @param id
28
+     * @return
29
+     */
30
+    ResponseBean buildingSelectId(String id);
31
+
32
+    /**
33
+     * 楼盘详情
34
+     * @param id
35
+     * @return
36
+     */
37
+    ResponseBean buildingAllSelectId(String id);
38
+
39
+
40
+    /**
41
+     * 修改楼盘
42
+     * @param parameter
43
+     * @return
44
+     */
45
+    ResponseBean buildingUpdate(String parameter);
46
+
47
+    /**
48
+     *
49
+     * @param
50
+     * @return
51
+     */
52
+    ResponseBean appointmentList(Integer pageNum, Integer pageSize,String buildingId,String username,String phone,String status);
53
+
54
+    /**
55
+     * 添加楼盘
56
+     * @param parameter
57
+     * @return
58
+     */
59
+    ResponseBean buildingAdd(String parameter);
60
+
61
+    /**
62
+     * 修改成已发布
63
+     * @return
64
+     */
65
+    ResponseBean buildingUpdateStatus(String parameter);
66
+
67
+    /**
68
+     * 楼盘删除
69
+     * @return
70
+     */
71
+    ResponseBean buildingdelete(String id);
72
+
73
+
74
+    /**
75
+     * 楼盘户型添加
76
+     * @param parameter
77
+     * @return
78
+     */
79
+    ResponseBean buildingApartmentAdd(String parameter);
80
+
81
+    /**
82
+     * 户型添加
83
+     * @param parameter
84
+     * @return
85
+     */
86
+    ResponseBean buildingApartmentUpdate(String parameter);
87
+
88
+    /**
89
+     * 户型详情
90
+     * @param id
91
+     * @return
92
+     */
93
+    ResponseBean buildingApartmentSelectId(String id);
94
+
95
+    /**
96
+     * 修改核销备注
97
+     * @return
98
+     */
99
+    ResponseBean appointmentUpdate(String id,String writeoffRemark);
100
+
101
+    /**
102
+     * 微信小程序 楼盘列表
103
+     * @return
104
+     * @param pageNum
105
+     * @param pageSize
106
+     * @param name
107
+     */
108
+    ResponseBean getWxBuildingList(Integer pageNum, Integer pageSize, String name);
109
+
110
+    /**
111
+     * 微信小程序 楼盘列表
112
+     * @return
113
+     */
114
+    ResponseBean getWxMainBuildingList();
115
+
116
+    ResponseBean getWxBuildingById(String buildingId);
117
+
118
+    /**
119
+     * 户型列表根据楼盘ID查询
120
+     * @param id
121
+     * @return
122
+     */
123
+    ResponseBean buildingApartmentBuildingId(String id);
124
+
125
+    /**
126
+     * 户型删除
127
+     * @param id
128
+     * @return
129
+     */
130
+    ResponseBean apartmentDel(String id);
131
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaBuildingTagService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.entity.TaBuildingTag;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 项目标签表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-10
13
+ */
14
+public interface ITaBuildingTagService extends IService<TaBuildingTag> {
15
+
16
+}

+ 25
- 0
src/main/java/com/huiju/estateagents/service/ITaChatService.java View File

@@ -0,0 +1,25 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.entity.TaChat;
6
+import com.baomidou.mybatisplus.extension.service.IService;
7
+
8
+/**
9
+ * <p>
10
+ * 聊天记录表 服务类
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-10
15
+ */
16
+public interface ITaChatService extends IService<TaChat> {
17
+
18
+    ResponseBean getChatHistory(String openid, String chatWith, int pageNumber, int pageSize);
19
+
20
+    ResponseBean getChatWithList(String openid, int pageNumber, int pageSize);
21
+
22
+    ResponseBean chat(JSONObject taChat);
23
+
24
+    ResponseBean updateMessageReadedOf(String openid);
25
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/service/ITaFavorService.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.base.ResponseBean;
4
+import com.huiju.estateagents.entity.TaFavor;
5
+import com.baomidou.mybatisplus.extension.service.IService;
6
+
7
+/**
8
+ * <p>
9
+ * 点赞表 服务类
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+public interface ITaFavorService extends IService<TaFavor> {
16
+
17
+    ResponseBean postLike(String openid, String typeOf, String like);
18
+
19
+    ResponseBean cancelLike(String openid, String typeOf, String like);
20
+}

+ 11
- 0
src/main/java/com/huiju/estateagents/service/ITaMiniFormidsService.java View File

@@ -0,0 +1,11 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.entity.TaMiniFormids;
6
+
7
+public interface ITaMiniFormidsService extends IService<TaMiniFormids> {
8
+    ResponseBean saveFormidBy(String openid, String formid);
9
+
10
+    String getFormidBy(String openid, boolean ...delete);
11
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonBuildingService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.entity.TaPersonBuilding;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 人员授权项目 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-10
13
+ */
14
+public interface ITaPersonBuildingService extends IService<TaPersonBuilding> {
15
+
16
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonPointsService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.entity.TaPersonPoints;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 人员积分表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-10
13
+ */
14
+public interface ITaPersonPointsService extends IService<TaPersonPoints> {
15
+
16
+}

+ 54
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonService.java View File

@@ -0,0 +1,54 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.entity.TaPerson;
7
+import com.baomidou.mybatisplus.extension.service.IService;
8
+
9
+import java.util.List;
10
+import java.util.Map;
11
+
12
+/**
13
+ * <p>
14
+ * 人员表 服务类
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-05-10
19
+ */
20
+public interface ITaPersonService extends IService<TaPerson> {
21
+    TaPerson mergePersonWxInfo(WxMaUserInfo userInfo);
22
+
23
+    TaPerson updatePersonPhone(String miniOpenid, String phone);
24
+
25
+    IPage<Map<String, Object>> getCardList(int pageNumber, int pageSize);
26
+
27
+    ResponseBean checkPhoneAndPass(String phone, String pass);
28
+
29
+    ResponseBean resetPassword(String phone, String pass, String plat);
30
+
31
+    ResponseBean getCardDetail(String openid, String id);
32
+
33
+    ResponseBean resgiteAgent(String name, String phone, Integer sex, String explain, String openid);
34
+
35
+    ResponseBean getWxUser(String openid);
36
+
37
+    ResponseBean getWxUserSign(String openid);
38
+
39
+    TaPerson getPersonByTel(String userPhone);
40
+
41
+    IPage<TaPerson> getPersonList(int pageNumber, int pageSize, String personType, String name, String phone);
42
+
43
+    TaPerson newPersonByOpenid(String openid);
44
+
45
+    ResponseBean bindCard(String phone, String pass, String openid);
46
+
47
+    ResponseBean newConsultant(String paramStr);
48
+
49
+    ResponseBean editConsultant(String id, String paramStr);
50
+
51
+    Map<String,Object> getExtraInfo(String personId);
52
+
53
+    List<TaPerson> getPersonsByOpenId(String openid);
54
+}

+ 16
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonSignService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.entity.TaPersonSign;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 人员签到表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-10
13
+ */
14
+public interface ITaPersonSignService extends IService<TaPersonSign> {
15
+
16
+}

+ 24
- 0
src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java View File

@@ -0,0 +1,24 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.base.ResponseBean;
4
+import com.huiju.estateagents.entity.TaRecommendCustomer;
5
+import com.baomidou.mybatisplus.extension.service.IService;
6
+
7
+/**
8
+ * <p>
9
+ * 推荐客户表 服务类
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+public interface ITaRecommendCustomerService extends IService<TaRecommendCustomer> {
16
+
17
+    ResponseBean getMyCustList(String openid, String keywords, int pageNumber, int pageSize);
18
+
19
+    ResponseBean getCustDetail(String id);
20
+
21
+    ResponseBean updateCustByJSON(String paramStr);
22
+
23
+    ResponseBean recommendCust(String paramStr, String openid);
24
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/service/ITaShareService.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.entity.TaShare;
6
+
7
+/**
8
+ * <p>
9
+ * 用户访问表 服务类
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+public interface ITaShareService extends IService<TaShare> {
16
+
17
+    ResponseBean saveData(String openid, String typeOf, String id);
18
+
19
+    ResponseBean getListOf(String id, String typeOf, Integer pageNumber, Integer pageSize);
20
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/service/ITaUvService.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.service;
2
+
3
+import com.huiju.estateagents.base.ResponseBean;
4
+import com.huiju.estateagents.entity.TaUv;
5
+import com.baomidou.mybatisplus.extension.service.IService;
6
+
7
+/**
8
+ * <p>
9
+ * 用户访问表 服务类
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-10
14
+ */
15
+public interface ITaUvService extends IService<TaUv> {
16
+
17
+    ResponseBean saveData(String openid, String typeOf, String id);
18
+
19
+    ResponseBean getListOf(String id, String typeOf, Integer pageNumber, Integer pageSize);
20
+}

+ 172
- 0
src/main/java/com/huiju/estateagents/service/impl/MiniAppServiceImpl.java View File

@@ -0,0 +1,172 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+import cn.binarywang.wx.miniapp.api.WxMaService;
4
+import cn.binarywang.wx.miniapp.bean.*;
5
+import com.alibaba.fastjson.JSONObject;
6
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7
+import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.common.*;
9
+import com.huiju.estateagents.config.WxProperties;
10
+import com.huiju.estateagents.entity.TaMiniappQrcode;
11
+import com.huiju.estateagents.mapper.TaMiniFormidsMapper;
12
+import com.huiju.estateagents.mapper.TaMiniappQrcodeMapper;
13
+import com.huiju.estateagents.service.IMiniAppService;
14
+import com.huiju.estateagents.service.ITaMiniFormidsService;
15
+import me.chanjar.weixin.common.error.WxErrorException;
16
+import org.springframework.beans.factory.annotation.Autowired;
17
+import org.springframework.stereotype.Service;
18
+
19
+import java.io.File;
20
+import java.time.LocalDateTime;
21
+import java.util.ArrayList;
22
+import java.util.List;
23
+
24
+@Service
25
+public class MiniAppServiceImpl implements IMiniAppService {
26
+
27
+    @Autowired
28
+    TaMiniappQrcodeMapper taMiniappQrcodeMapper;
29
+
30
+    @Autowired
31
+    TaMiniFormidsMapper taMiniFormidsMapper;
32
+
33
+    @Autowired
34
+    ITaMiniFormidsService taMiniFormidsService;
35
+
36
+    @Override
37
+    public WxMaJscode2SessionResult getSessionInfo(String code) throws WxErrorException {
38
+        WxMaService wxService = WxUtils.getMiniApp();
39
+        System.out.println(wxService);
40
+        System.out.println(wxService.getUserService());
41
+        return wxService.getUserService().getSessionInfo(code);
42
+    }
43
+
44
+    @Override
45
+    public boolean checkUserInfo(String sessionKey, String rawData, String signature) {
46
+        WxMaService wxService = WxUtils.getMiniApp();
47
+        return wxService.getUserService().checkUserInfo(sessionKey, rawData, signature);
48
+    }
49
+
50
+    @Override
51
+    public WxMaUserInfo getUserInfo(String sessionKey, String encryptedData, String iv) {
52
+        WxMaService wxService = WxUtils.getMiniApp();
53
+        return wxService.getUserService().getUserInfo(sessionKey, encryptedData, iv);
54
+    }
55
+
56
+    @Override
57
+    public WxMaPhoneNumberInfo getPhoneNoInfo(String sessionKey, String encryptedData, String iv) {
58
+        WxMaService wxService = WxUtils.getMiniApp();
59
+        return wxService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
60
+    }
61
+
62
+    @Override
63
+    public void sendNoticeMessage(String toUser, String link, String name, String phone, String content, LocalDateTime dt) {
64
+        List<WxMaTemplateData> data = new ArrayList<>();
65
+        data.add(new WxMaTemplateData("keyword1", name, "#fffff"));
66
+        data.add(new WxMaTemplateData("keyword2", phone, "#fffff"));
67
+        data.add(new WxMaTemplateData("keyword3", content, "#fffff"));
68
+        data.add(new WxMaTemplateData("keyword4", DateUtils.cutSecond(dt), "#fffff"));
69
+
70
+        sendMessage("notice", toUser, link, data);
71
+    }
72
+
73
+    @Override
74
+    public void sendMainBizMessage(String toUser, String link, String custName, String phone, String sex, String fromName, String bizType, String content) {
75
+        List<WxMaTemplateData> data = new ArrayList<>();
76
+        data.add(new WxMaTemplateData("keyword1", custName, "#fffff"));
77
+        data.add(new WxMaTemplateData("keyword2", StringUtils.ifNull(phone, "未知"), "#fffff"));
78
+        data.add(new WxMaTemplateData("keyword3",StringUtils.ifNull(sex, "未知"), "#fffff"));
79
+        data.add(new WxMaTemplateData("keyword4", fromName, "#fffff"));
80
+        data.add(new WxMaTemplateData("keyword5", bizType, "#fffff"));
81
+        data.add(new WxMaTemplateData("keyword6", content, "#fffff"));
82
+
83
+        sendMessage("mainbiz", toUser, link, data);
84
+    }
85
+
86
+    @Override
87
+    public void sendNewCustomerMessage(String toUser, String link, String custName, String phone, String sex, String fromName) {
88
+        List<WxMaTemplateData> data = new ArrayList<>();
89
+        data.add(new WxMaTemplateData("keyword1", custName, "#fffff"));
90
+        data.add(new WxMaTemplateData("keyword2", StringUtils.ifNull(phone, "未知"), "#fffff"));
91
+        data.add(new WxMaTemplateData("keyword3",StringUtils.ifNull(sex, "未知"), "#fffff"));
92
+        data.add(new WxMaTemplateData("keyword4", fromName, "#fffff"));
93
+
94
+        sendMessage("newCustomer", toUser, link, data);
95
+    }
96
+
97
+    @Override
98
+    public ResponseBean getQrCode(String paramsStr) {
99
+        if (null == paramsStr) return ResponseBean.error("请指定二维码生成参数", ResponseBean.ERROR_MISSING_PARAMS);
100
+
101
+        WxMaService wxService = WxUtils.getMiniApp();
102
+        String appid = wxService.getWxMaConfig().getAppid();
103
+
104
+        // 先去数据库中查询
105
+        QueryWrapper<TaMiniappQrcode> queryWrapper = new QueryWrapper<>();
106
+        queryWrapper.eq("appid", appid);
107
+        queryWrapper.eq("qr_params", paramsStr);
108
+        queryWrapper.ge("expire_date", LocalDateTime.now());
109
+        queryWrapper.orderByDesc("create_date");
110
+        queryWrapper.last("limit 1");
111
+
112
+        TaMiniappQrcode taMiniappQrcode = taMiniappQrcodeMapper.selectOne(queryWrapper);
113
+        if (null != taMiniappQrcode) {
114
+            return ResponseBean.success(taMiniappQrcode.getQrCode());
115
+        }
116
+
117
+        // 如果没有找到则生成一个
118
+        JSONObject params = JSONObject.parseObject(paramsStr);
119
+        String scene = params.getString("scene");
120
+        String page = StringUtils.ifNull(params.getString("page"), "");
121
+        Integer width = params.getInteger("width");
122
+        if (null == width) width = 430;
123
+
124
+        Boolean autoColor = params.getBoolean("auto_color");
125
+        if (null == autoColor) autoColor = false;
126
+
127
+        String lineColorStr = StringUtils.ifNull(params.getString("line_color"), "{\"r\":0,\"g\":0,\"b\":0}");
128
+        WxMaCodeLineColor lineColor = JSONObject.parseObject(lineColorStr, WxMaCodeLineColor.class);
129
+        Boolean isHyaline = params.getBoolean("is_hyaline");
130
+        if (null == isHyaline) isHyaline = true;
131
+
132
+        try {
133
+            File qrFile = wxService.getQrcodeService().createWxaCodeUnlimit(scene, page, width, autoColor, lineColor, isHyaline);
134
+            String qrcode = AliOSSUtils.putObject(qrFile, CommConstant.ALIOSS_DEFAULT_UPLOAD);
135
+
136
+            TaMiniappQrcode taQrcode = new TaMiniappQrcode();
137
+            taQrcode.setAppid(appid);
138
+            taQrcode.setCreateDate(LocalDateTime.now());
139
+            taQrcode.setExpireDate(LocalDateTime.now().plusDays(7));
140
+            taQrcode.setQrCode(qrcode);
141
+            taQrcode.setQrParams(paramsStr);
142
+
143
+            taMiniappQrcodeMapper.insert(taQrcode);
144
+            return ResponseBean.success(qrcode);
145
+        } catch (Exception e) {
146
+            e.printStackTrace();
147
+            return ResponseBean.error("生成二维码异常", ResponseBean.ERROR_UNAVAILABLE);
148
+        }
149
+    }
150
+
151
+    private void sendMessage(String tplName, String toUser, String link, List<WxMaTemplateData> data) {
152
+        WxProperties.Tpl tpl = WxUtils.getTplByName(tplName);
153
+        if (null == tpl) return ;
154
+
155
+        String formid = taMiniFormidsService.getFormidBy(toUser, true);
156
+
157
+        WxMaTemplateMessage message = WxMaTemplateMessage.builder()
158
+                .templateId(tpl.getId())
159
+                .data(data)
160
+                .formId(formid)
161
+                .page(StringUtils.ifNull(link, CommConstant.MINIAPP_INDEX))
162
+                .toUser(toUser)
163
+                .build();
164
+        try {
165
+
166
+            WxMaService wxService = WxUtils.getMiniApp();
167
+            wxService.getMsgService().sendTemplateMsg(message);
168
+        } catch (WxErrorException e) {
169
+            e.printStackTrace();
170
+        }
171
+    }
172
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/service/impl/TaApartmentImgServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.huiju.estateagents.entity.TaApartmentImg;
4
+import com.huiju.estateagents.mapper.TaApartmentImgMapper;
5
+import com.huiju.estateagents.service.ITaApartmentImgService;
6
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 楼盘户型对应图片表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@Service
18
+public class TaApartmentImgServiceImpl extends ServiceImpl<TaApartmentImgMapper, TaApartmentImg> implements ITaApartmentImgService {
19
+
20
+}

+ 20
- 0
src/main/java/com/huiju/estateagents/service/impl/TaBuildingApartmentServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.huiju.estateagents.entity.TaBuildingApartment;
4
+import com.huiju.estateagents.mapper.TaBuildingApartmentMapper;
5
+import com.huiju.estateagents.service.ITaBuildingApartmentService;
6
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 项目户型表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-10
16
+ */
17
+@Service
18
+public class TaBuildingApartmentServiceImpl extends ServiceImpl<TaBuildingApartmentMapper, TaBuildingApartment> implements ITaBuildingApartmentService {
19
+
20
+}

+ 159
- 0
src/main/java/com/huiju/estateagents/service/impl/TaBuildingDynamicServiceImpl.java View File

@@ -0,0 +1,159 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+
4
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
6
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8
+import com.huiju.estateagents.base.ResponseBean;
9
+import com.huiju.estateagents.entity.TaBuilding;
10
+import com.huiju.estateagents.entity.TaBuildingDynamic;
11
+import com.huiju.estateagents.mapper.TaBuildingDynamicMapper;
12
+import com.huiju.estateagents.mapper.TaBuildingMapper;
13
+import com.huiju.estateagents.service.ITaBuildingDynamicService;
14
+import org.springframework.beans.factory.annotation.Autowired;
15
+import org.springframework.beans.propertyeditors.CustomDateEditor;
16
+import org.springframework.stereotype.Service;
17
+import org.springframework.web.bind.ServletRequestDataBinder;
18
+
19
+import javax.servlet.http.HttpServletRequest;
20
+import java.text.DateFormat;
21
+import java.text.SimpleDateFormat;
22
+import java.time.Instant;
23
+import java.time.LocalDateTime;
24
+import java.time.ZoneId;
25
+import java.util.Date;
26
+import java.util.HashMap;
27
+import java.util.List;
28
+
29
+/**
30
+ * <p>
31
+ * 项目动态表 服务实现类
32
+ * </p>
33
+ *
34
+ * @author jobob
35
+ * @since 2019-03-21
36
+ */
37
+@Service
38
+public class TaBuildingDynamicServiceImpl extends ServiceImpl<TaBuildingDynamicMapper, TaBuildingDynamic> implements ITaBuildingDynamicService {
39
+
40
+    @Autowired
41
+    private TaBuildingDynamicMapper buildingDynamicMapper;
42
+
43
+    @Autowired
44
+    private TaBuildingMapper buildingMapper;
45
+
46
+    protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
47
+        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
48
+        CustomDateEditor editor = new CustomDateEditor(df, true);//true表示允许为空,false反之
49
+        binder.registerCustomEditor(Date.class, editor);
50
+    }
51
+    @Override
52
+    public ResponseBean iBuildingDynamicList(Integer pageNum, Integer pageSize, String name, String buildingId) {
53
+        Page<TaBuildingDynamic> page = new Page<>();
54
+        page.setSize(pageSize == null ? 10 : pageSize);
55
+        page.setCurrent(pageNum == null ? 1 : pageNum);
56
+
57
+        IPage<TaBuildingDynamic> buildingDynamic = buildingDynamicMapper.buildingDynamicList(page, name, buildingId);
58
+        List<TaBuildingDynamic> buildingDynamicList=buildingDynamic.getRecords();
59
+
60
+        HashMap hashMap= new HashMap<>();
61
+        hashMap.put("list",buildingDynamicList);
62
+        hashMap.put("total",buildingDynamic.getTotal());
63
+        hashMap.put("pageNum",buildingDynamic.getCurrent());
64
+        hashMap.put("pageSize",buildingDynamic.getSize());
65
+        return ResponseBean.success(hashMap);
66
+    }
67
+
68
+    @Override
69
+    public ResponseBean iBuildingDynamicSelectId(String id) {
70
+        TaBuildingDynamic buildingDynamicList= buildingDynamicMapper.iBuildingDynamicSelectId(id);
71
+        return ResponseBean.success(buildingDynamicList);
72
+    }
73
+
74
+    @Override
75
+    public ResponseBean getWxBuildingDynamiceList(Integer pageNum, Integer pageSize) {
76
+        Page<TaBuildingDynamic> page = new Page<>();
77
+        page.setCurrent(pageNum);
78
+        page.setSize(pageSize);
79
+        QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
80
+        buildingDynamicQueryWrapper.eq("status", "1");
81
+        buildingDynamicQueryWrapper.orderByDesc("create_date");
82
+        IPage<TaBuildingDynamic> buildingDynamicIPage = buildingDynamicMapper.selectPage(page, buildingDynamicQueryWrapper);
83
+        List<TaBuildingDynamic> records = buildingDynamicIPage.getRecords();
84
+        records.forEach(e -> {
85
+            QueryWrapper<TaBuilding> buildingQueryWrapper = new QueryWrapper<>();
86
+            buildingQueryWrapper.eq("building_id", e.getBuildingId());
87
+            TaBuilding building = buildingMapper.selectOne(buildingQueryWrapper);
88
+            e.setBuilding(building);
89
+        });
90
+
91
+        return ResponseBean.success(buildingDynamicIPage);
92
+    }
93
+
94
+    @Override
95
+    public ResponseBean getWxBuildingDynamiceInfo(String dynamicId) {
96
+        QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
97
+        buildingDynamicQueryWrapper.eq("dynamic_id", dynamicId);
98
+        TaBuildingDynamic buildingDynamic = buildingDynamicMapper.selectOne(buildingDynamicQueryWrapper);
99
+        return ResponseBean.success(buildingDynamic);
100
+    }
101
+
102
+    @Override
103
+    public ResponseBean buildingDynamicAdd(HashMap map) {
104
+        TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
105
+        Date time = (Date)map.get("publishDate");
106
+        Instant instant = time.toInstant();
107
+        ZoneId zoneId = ZoneId.systemDefault();
108
+        LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
109
+
110
+//        buildingDynamic.setDynamicId(idGen.nextId()+"");
111
+        buildingDynamic.setBuildingId(map.get("buildingId")+"");
112
+        buildingDynamic.setImgUrl((String) map.get("imgUrl"));
113
+        buildingDynamic.setDesc(map.get("desc")+"");
114
+        buildingDynamic.setUrl(map.get("url")+"");
115
+        buildingDynamic.setTitle(map.get("title")+"");
116
+        buildingDynamic.setPublishDate(localDateTime);
117
+        buildingDynamic.setStatus(1);
118
+        buildingDynamic.setCreateDate(LocalDateTime.now());
119
+
120
+        buildingDynamicMapper.insertBuildingDynamic(buildingDynamic);
121
+        return ResponseBean.success("成功");
122
+    }
123
+
124
+    @Override
125
+    public ResponseBean buildingDynamicDelete(String id) {
126
+        TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
127
+        buildingDynamic.setDynamicId(id);
128
+        buildingDynamic.setStatus(-1);
129
+        QueryWrapper<TaBuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
130
+        buildingDynamicQueryWrapper.eq("dynamic_id", id);
131
+        buildingDynamicMapper.update(buildingDynamic,buildingDynamicQueryWrapper);
132
+        return ResponseBean.success("成功");
133
+    }
134
+
135
+    @Override
136
+    public ResponseBean buildingDynamicUpdate(HashMap<Object, Object> map) {
137
+        TaBuildingDynamic buildingDynamic= new TaBuildingDynamic();
138
+
139
+        Date time = (Date)map.get("publishDate");
140
+        Instant instant = time.toInstant();
141
+        ZoneId zoneId = ZoneId.systemDefault();
142
+        LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
143
+
144
+        buildingDynamic.setDynamicId(map.get("dynamicId")+"");
145
+        buildingDynamic.setBuildingId(map.get("buildingId")+"");
146
+        buildingDynamic.setImgUrl((String) map.get("imgUrl"));
147
+        buildingDynamic.setDesc(map.get("desc")+"");
148
+        buildingDynamic.setUrl(map.get("url")+"");
149
+        buildingDynamic.setTitle(map.get("title")+"");
150
+        buildingDynamic.setPublishDate(localDateTime);
151
+        buildingDynamic.setStatus(1);
152
+        buildingDynamic.setCreateDate(LocalDateTime.now());
153
+
154
+        buildingDynamicMapper.buildingDynamicUpdate(buildingDynamic);
155
+        return ResponseBean.success("成功");
156
+    }
157
+
158
+
159
+}

+ 45
- 0
src/main/java/com/huiju/estateagents/service/impl/TaBuildingImgServiceImpl.java View File

@@ -0,0 +1,45 @@
1
+package com.huiju.estateagents.service.impl;
2
+
3
+import com.huiju.estateagents.entity.TaBuildingImg;
4
+import com.huiju.estateagents.mapper.TaBuildingImgMapper;
5
+import com.huiju.estateagents.service.ITaBuildingImgService;
6
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.stereotype.Service;
9
+
10
+import java.time.LocalDateTime;
11
+import java.util.List;
12
+
13
+/**
14
+ * <p>
15
+ * 楼盘图片表 服务实现类
16
+ * </p>
17
+ *
18
+ * @author jobob
19
+ * @since 2019-05-10
20
+ */
21
+@Service
22
+public class TaBuildingImgServiceImpl extends ServiceImpl<TaBuildingImgMapper, TaBuildingImg> implements ITaBuildingImgService {
23
+
24
+    @Autowired
25
+    TaBuildingImgMapper taBuildingImgMapper;
26
+
27
+    @Override
28
+    public int insertBatch(List<TaBuildingImg> imgs, String buildingId) {
29
+        int rows = 0;
30
+
31
+        for (TaBuildingImg img: imgs){
32
+            TaBuildingImg Images = new TaBuildingImg();
33
+            Images.setBuildingId(buildingId);
34
+            Images.setImgType(img.getImgType());
35
+            Images.setUrl(img.getUrl());
36
+            Images.setOrderNo(Integer.valueOf(img.getOrderNo()));
37
+            Images.setStatus(0);
38
+            Images.setCreateDate(LocalDateTime.now());
39
+            int row = taBuildingImgMapper.insert(Images);
40
+            rows += row;
41
+        }
42
+
43
+        return rows;
44
+    }
45
+}

+ 0
- 0
src/main/java/com/huiju/estateagents/service/impl/TaBuildingServiceImpl.java View File


Some files were not shown because too many files changed in this diff