张延森 6 years ago
parent
commit
cea34857c2
37 changed files with 1121 additions and 459 deletions
  1. 292
    311
      .idea/workspace.xml
  2. 51
    0
      src/main/java/com.huiju.welcome/common/Action.java
  3. 39
    26
      src/main/java/com.huiju.welcome/common/WebSocketServer.java
  4. 39
    34
      src/main/java/com.huiju.welcome/controller/CameraController.java
  5. 4
    2
      src/main/java/com.huiju.welcome/controller/TaCustomerController.java
  6. 34
    15
      src/main/java/com.huiju.welcome/controller/TaDeviceController.java
  7. 9
    2
      src/main/java/com.huiju.welcome/controller/TaFirstpageController.java
  8. 29
    2
      src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java
  9. 34
    0
      src/main/java/com.huiju.welcome/controller/TaMiniFormidsController.java
  10. 8
    0
      src/main/java/com.huiju.welcome/controller/TaPersonController.java
  11. 2
    1
      src/main/java/com.huiju.welcome/controller/TaWechatUserController.java
  12. 2
    0
      src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java
  13. 4
    0
      src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java
  14. 19
    0
      src/main/java/com.huiju.welcome/mapper/TaMessageRecordMapper.java
  15. 18
    0
      src/main/java/com.huiju.welcome/mapper/TaMiniFormidsMapper.java
  16. 2
    1
      src/main/java/com.huiju.welcome/mapper/TaWechatUserMapper.java
  17. 45
    0
      src/main/java/com.huiju.welcome/model/TaMessageRecord.java
  18. 37
    0
      src/main/java/com.huiju.welcome/model/TaMiniFormids.java
  19. 5
    1
      src/main/java/com.huiju.welcome/service/ITaCustomerService.java
  20. 0
    1
      src/main/java/com.huiju.welcome/service/ITaFollowupRecordService.java
  21. 6
    2
      src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java
  22. 10
    0
      src/main/java/com.huiju.welcome/service/ITaMessageRecordService.java
  23. 11
    0
      src/main/java/com.huiju.welcome/service/ITaMiniFormidsService.java
  24. 11
    17
      src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java
  25. 115
    33
      src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java
  26. 109
    9
      src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java
  27. 39
    0
      src/main/java/com.huiju.welcome/service/impl/TaMessageRecordImpl.java
  28. 52
    0
      src/main/java/com.huiju.welcome/service/impl/TaMiniFormidsImpl.java
  29. 4
    0
      src/main/java/com.huiju.welcome/utils/CommConstant.java
  30. 21
    1
      src/main/java/com.huiju.welcome/utils/MiniApp.java
  31. 2
    0
      src/main/resources/application.yml
  32. 17
    0
      src/main/resources/mapper/TaCustomerMapper.xml
  33. 9
    0
      src/main/resources/mapper/TaMainUsherRecordMapper.xml
  34. 15
    0
      src/main/resources/mapper/TaMessageRecordMapper.xml
  35. 15
    0
      src/main/resources/mapper/TaMiniFormidsMapper.xml
  36. 10
    1
      src/main/resources/mapper/TaWechatUserMapper.xml
  37. 2
    0
      target/classes/application.yml

+ 292
- 311
.idea/workspace.xml View File

@@ -1,17 +1,34 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <project version="4">
3 3
   <component name="BookmarkManager">
4
-    <bookmark url="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java" line="159" mnemonic="1" />
4
+    <bookmark url="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java" line="186" mnemonic="1" />
5 5
   </component>
6 6
   <component name="ChangeListManager">
7 7
     <list default="true" id="5dd66384-19bf-43a0-b6b4-b05d9b7b9cd4" name="Default" comment="">
8 8
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
9
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/WebSocketServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/WebSocketServer.java" afterDir="false" />
10
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java" afterDir="false" />
11
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCustomerController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCustomerController.java" afterDir="false" />
12
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaDeviceController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaDeviceController.java" afterDir="false" />
13
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstpageController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstpageController.java" afterDir="false" />
14
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java" afterDir="false" />
15
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java" afterDir="false" />
16
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaWechatUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaWechatUserController.java" afterDir="false" />
17
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java" afterDir="false" />
9 18
       <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java" afterDir="false" />
10
-      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaFirstUsherRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaFirstUsherRecord.java" afterDir="false" />
11
-      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java" afterDir="false" />
12
-      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java" afterDir="false" />
19
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaWechatUserMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaWechatUserMapper.java" afterDir="false" />
20
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomerService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomerService.java" afterDir="false" />
21
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFollowupRecordService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFollowupRecordService.java" afterDir="false" />
22
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java" afterDir="false" />
23
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java" afterDir="false" />
24
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java" afterDir="false" />
13 25
       <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java" afterDir="false" />
14
-      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java" afterDir="false" />
26
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/CommConstant.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/CommConstant.java" afterDir="false" />
27
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/MiniApp.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/MiniApp.java" afterDir="false" />
28
+      <change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
29
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapper.xml" afterDir="false" />
30
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaMainUsherRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaMainUsherRecordMapper.xml" afterDir="false" />
31
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaWechatUserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaWechatUserMapper.xml" afterDir="false" />
15 32
     </list>
16 33
     <ignored path="$PROJECT_DIR$/target/" />
17 34
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -23,98 +40,33 @@
23 40
   </component>
24 41
   <component name="FileEditorManager">
25 42
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
26
-      <file leaf-file-name="TaCarRecordController.java" pinned="false" current-in-tab="false">
27
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCarRecordController.java">
43
+      <file leaf-file-name="CameraController.java" pinned="false" current-in-tab="true">
44
+        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java">
28 45
           <provider selected="true" editor-type-id="text-editor">
29
-            <state relative-caret-position="180">
30
-              <caret line="26" column="13" selection-start-line="26" selection-start-column="13" selection-end-line="26" selection-end-column="13" />
46
+            <state relative-caret-position="223">
47
+              <caret line="197" column="20" selection-start-line="197" selection-start-column="20" selection-end-line="197" selection-end-column="20" />
31 48
               <folding>
32
-                <element signature="imports" expanded="true" />
49
+                <element signature="e#5763#5764#0" expanded="true" />
50
+                <element signature="e#5781#5782#0" expanded="true" />
33 51
               </folding>
34 52
             </state>
35 53
           </provider>
36 54
         </entry>
37 55
       </file>
38
-      <file leaf-file-name="TaMainUsherRecordMapper.java" pinned="false" current-in-tab="false">
39
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java">
56
+      <file leaf-file-name="SysUserController.java" pinned="false" current-in-tab="false">
57
+        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/SysUserController.java">
40 58
           <provider selected="true" editor-type-id="text-editor">
41
-            <state relative-caret-position="372">
42
-              <caret line="27" column="56" selection-start-line="27" selection-start-column="56" selection-end-line="27" selection-end-column="56" />
43
-              <folding>
44
-                <element signature="imports" expanded="true" />
45
-              </folding>
46
-            </state>
47
-          </provider>
48
-        </entry>
49
-      </file>
50
-      <file leaf-file-name="TaMainUsherRecord.java" pinned="false" current-in-tab="true">
51
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java">
52
-          <provider selected="true" editor-type-id="text-editor">
53
-            <state relative-caret-position="180">
54
-              <caret line="21" selection-start-line="21" selection-end-line="21" />
55
-              <folding>
56
-                <element signature="imports" expanded="true" />
57
-              </folding>
58
-            </state>
59
-          </provider>
60
-        </entry>
61
-      </file>
62
-      <file leaf-file-name="TaNotice.java" pinned="false" current-in-tab="false">
63
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaNotice.java">
64
-          <provider selected="true" editor-type-id="text-editor">
65
-            <state relative-caret-position="229">
66
-              <caret line="21" column="24" lean-forward="true" selection-start-line="19" selection-start-column="5" selection-end-line="21" selection-end-column="24" />
67
-            </state>
68
-          </provider>
69
-        </entry>
70
-      </file>
71
-      <file leaf-file-name="TaFirstUsherRecordServiceImpl.java" pinned="false" current-in-tab="false">
72
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java">
73
-          <provider selected="true" editor-type-id="text-editor">
74
-            <state relative-caret-position="273">
75
-              <caret line="13" column="22" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" />
76
-              <folding>
77
-                <element signature="imports" expanded="true" />
78
-              </folding>
79
-            </state>
80
-          </provider>
81
-        </entry>
82
-      </file>
83
-      <file leaf-file-name="application.yml" pinned="false" current-in-tab="false">
84
-        <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
85
-          <provider selected="true" editor-type-id="text-editor">
86
-            <state relative-caret-position="399">
87
-              <caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
88
-            </state>
89
-          </provider>
90
-        </entry>
91
-      </file>
92
-      <file leaf-file-name="TaMainUsherRecordServiceImpl.java" pinned="false" current-in-tab="false">
93
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java">
94
-          <provider selected="true" editor-type-id="text-editor">
95
-            <state relative-caret-position="265">
96
-              <caret line="29" column="52" selection-start-line="29" selection-start-column="52" selection-end-line="29" selection-end-column="52" />
97
-            </state>
98
-          </provider>
99
-        </entry>
100
-      </file>
101
-      <file leaf-file-name="TaVisitorAppointmentServiceImpl.java" pinned="false" current-in-tab="false">
102
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java">
103
-          <provider selected="true" editor-type-id="text-editor">
104
-            <state relative-caret-position="229">
105
-              <caret line="30" column="58" selection-start-line="30" selection-start-column="58" selection-end-line="30" selection-end-column="58" />
59
+            <state relative-caret-position="165">
60
+              <caret line="219" column="82" selection-start-line="219" selection-start-column="70" selection-end-line="219" selection-end-column="82" />
106 61
             </state>
107 62
           </provider>
108 63
         </entry>
109 64
       </file>
110
-      <file leaf-file-name="TaMainUsherRecordController.java" pinned="false" current-in-tab="false">
111
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java">
65
+      <file leaf-file-name="CommConstant.java" pinned="false" current-in-tab="false">
66
+        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/CommConstant.java">
112 67
           <provider selected="true" editor-type-id="text-editor">
113
-            <state relative-caret-position="180">
114
-              <caret line="122" column="11" selection-start-line="122" selection-start-column="11" selection-end-line="122" selection-end-column="11" />
115
-              <folding>
116
-                <element signature="imports" expanded="true" />
117
-              </folding>
68
+            <state relative-caret-position="231">
69
+              <caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
118 70
             </state>
119 71
           </provider>
120 72
         </entry>
@@ -138,20 +90,24 @@
138 90
       <find>subDir</find>
139 91
       <find>huiju.files</find>
140 92
       <find>huijuFiles</find>
141
-      <find>getMultipartFile</find>
142 93
       <find>voice</find>
143 94
       <find>mybatis-plus</find>
144 95
       <find>AccessInterceptor</find>
145 96
       <find>/taMainUsherRecord</find>
146 97
       <find>web</find>
147 98
       <find>/wx/login</find>
148
-      <find>sendInfo</find>
149 99
       <find>/taCarRecord</find>
150 100
       <find>/taCustomerMap</find>
151 101
       <find>/taCustomer</find>
152 102
       <find>isSales</find>
153 103
       <find>apointment</find>
154 104
       <find>taFirstpageService.detail</find>
105
+      <find>sendInfo</find>
106
+      <find>newRecordByFront</find>
107
+      <find>judgeNewCust</find>
108
+      <find>notifyConsultant</find>
109
+      <find>saveVisitingLog</find>
110
+      <find>getMultipartFile</find>
155 111
     </findStrings>
156 112
     <replaceStrings>
157 113
       <replace>com.huiju.welcome</replace>
@@ -173,57 +129,57 @@
173 129
   <component name="IdeDocumentHistory">
174 130
     <option name="CHANGED_PATHS">
175 131
       <list>
176
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaFollowupRecordMapper.java" />
177
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaFollowupRecordMapper.xml" />
178
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaCustomerMap.java" />
179
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java" />
180
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomerMapService.java" />
181
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomerMapServiceImpl.java" />
182
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/base/ResponseBean.java" />
183
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaCustomerMapMapper.java" />
184
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomerService.java" />
185
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaMainUsherRecordMapper.xml" />
186
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCustomerMapController.java" />
187
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/MiniAppController.java" />
188
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/MiniApp.java" />
189
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/JWTUtils.java" />
190
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/SysUser.java" />
191
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ISysUserService.java" />
192
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/SysUserServiceImpl.java" />
193
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/StatusUtils.java" />
194
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/CommConstant.java" />
195
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/SysUserController.java" />
196
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaWechatUserController.java" />
197
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitorAppointment.java" />
198
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitorAppointmentController.java" />
199
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java" />
200
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitingLogController.java" />
201
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaVisitingLogService.java" />
202 132
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitingLogServiceImpl.java" />
203
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapper.xml" />
204 133
         <option value="$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapMapper.xml" />
205
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java" />
206 134
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java" />
207 135
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java" />
208 136
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaCustomer.java" />
209 137
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFollowupRecordServiceImpl.java" />
210
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFollowupRecordService.java" />
211
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCustomerController.java" />
212
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java" />
213
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java" />
214 138
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java" />
215 139
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFirstpageService.java" />
216 140
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstpageServiceImpl.java" />
217
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCarRecordController.java" />
218 141
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstUsherRecordController.java" />
219
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java" />
220
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java" />
221
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java" />
222 142
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java" />
223 143
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaFirstUsherRecord.java" />
224
-        <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
225 144
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java" />
226 145
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java" />
146
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstpageController.java" />
147
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaDeviceController.java" />
148
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java" />
149
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaMainUsherRecordMapper.xml" />
150
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java" />
151
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapper.xml" />
152
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaVisitorAppointmentMapper.xml" />
153
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomerService.java" />
154
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java" />
155
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java" />
156
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMiniFormids.java" />
157
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMiniFormidsMapper.java" />
158
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaMiniFormidsMapper.xml" />
159
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMiniFormidsService.java" />
160
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMiniFormidsImpl.java" />
161
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMiniFormidsController.java" />
162
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCustomerController.java" />
163
+        <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
164
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCarRecordController.java" />
165
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFollowupRecordService.java" />
166
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaMessageRecordMapper.xml" />
167
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMessageRecordMapper.java" />
168
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMessageRecord.java" />
169
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/MiniApp.java" />
170
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMessageRecordService.java" />
171
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMessageRecordImpl.java" />
172
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaWechatUserMapper.xml" />
173
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaWechatUserMapper.java" />
174
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/CommConstant.java" />
175
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaWechatUserController.java" />
176
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java" />
177
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java" />
178
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java" />
179
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java" />
180
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/Action.java" />
181
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/WebSocketServer.java" />
182
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java" />
227 183
       </list>
228 184
     </option>
229 185
   </component>
@@ -284,8 +240,8 @@
284 240
       <foldersAlwaysOnTop value="true" />
285 241
     </navigator>
286 242
     <panes>
243
+      <pane id="Scope" />
287 244
       <pane id="AndroidView" />
288
-      <pane id="PackagesPane" />
289 245
       <pane id="ProjectPane">
290 246
         <subPane>
291 247
           <expand>
@@ -335,8 +291,7 @@
335 291
               <item name="main" type="462c0819:PsiDirectoryNode" />
336 292
               <item name="java" type="462c0819:PsiDirectoryNode" />
337 293
               <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
338
-              <item name="common" type="462c0819:PsiDirectoryNode" />
339
-              <item name="base" type="462c0819:PsiDirectoryNode" />
294
+              <item name="controller" type="462c0819:PsiDirectoryNode" />
340 295
             </path>
341 296
             <path>
342 297
               <item name="service" type="b2602c69:ProjectViewProjectNode" />
@@ -345,7 +300,7 @@
345 300
               <item name="main" type="462c0819:PsiDirectoryNode" />
346 301
               <item name="java" type="462c0819:PsiDirectoryNode" />
347 302
               <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
348
-              <item name="model" type="462c0819:PsiDirectoryNode" />
303
+              <item name="utils" type="462c0819:PsiDirectoryNode" />
349 304
             </path>
350 305
             <path>
351 306
               <item name="service" type="b2602c69:ProjectViewProjectNode" />
@@ -354,11 +309,19 @@
354 309
               <item name="main" type="462c0819:PsiDirectoryNode" />
355 310
               <item name="resources" type="462c0819:PsiDirectoryNode" />
356 311
             </path>
312
+            <path>
313
+              <item name="service" type="b2602c69:ProjectViewProjectNode" />
314
+              <item name="service" type="462c0819:PsiDirectoryNode" />
315
+              <item name="src" type="462c0819:PsiDirectoryNode" />
316
+              <item name="main" type="462c0819:PsiDirectoryNode" />
317
+              <item name="resources" type="462c0819:PsiDirectoryNode" />
318
+              <item name="mapper" type="462c0819:PsiDirectoryNode" />
319
+            </path>
357 320
           </expand>
358 321
           <select />
359 322
         </subPane>
360 323
       </pane>
361
-      <pane id="Scope" />
324
+      <pane id="PackagesPane" />
362 325
     </panes>
363 326
   </component>
364 327
   <component name="PropertiesComponent">
@@ -393,7 +356,7 @@
393 356
       <recent name="com.huiju.welcome.service" />
394 357
       <recent name="com.huiju.welcome.mapper" />
395 358
       <recent name="com.huiju.welcome.model" />
396
-      <recent name="com.huiju.welcome.config" />
359
+      <recent name="com.huiju.welcome.controller" />
397 360
     </key>
398 361
     <key name="CreateClassDialog.RecentsKey">
399 362
       <recent name="com.huiju.welcome.service.impl" />
@@ -494,18 +457,22 @@
494 457
       <workItem from="1560349322476" duration="6394000" />
495 458
       <workItem from="1560411485381" duration="45888000" />
496 459
       <workItem from="1560923587540" duration="24987000" />
460
+      <workItem from="1561084889145" duration="26895000" />
461
+      <workItem from="1561339069413" duration="2416000" />
462
+      <workItem from="1561343517448" duration="18391000" />
497 463
     </task>
498 464
     <servers />
499 465
   </component>
500 466
   <component name="TimeTrackingManager">
501
-    <option name="totallyTimeSpent" value="307284000" />
467
+    <option name="totallyTimeSpent" value="354986000" />
502 468
   </component>
503 469
   <component name="ToolWindowManager">
504 470
     <frame x="-8" y="-8" width="1936" height="1015" extended-state="6" />
471
+    <editor active="true" />
505 472
     <layout>
506 473
       <window_info anchor="right" id="Palette" order="3" />
507 474
       <window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.50096524" side_tool="true" weight="0.39953408" />
508
-      <window_info anchor="right" id="Maven Projects" order="3" weight="0.078891255" />
475
+      <window_info anchor="right" id="Maven Projects" order="3" visible="true" weight="0.051705755" />
509 476
       <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
510 477
       <window_info id="Capture Tool" order="2" />
511 478
       <window_info id="Designer" order="2" />
@@ -513,9 +480,9 @@
513 480
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
514 481
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
515 482
       <window_info id="UI Designer" order="2" />
516
-      <window_info anchor="bottom" id="Debug" order="3" sideWeight="0.49903476" weight="0.19612315" />
483
+      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.49903476" visible="true" weight="0.19612315" />
517 484
       <window_info anchor="bottom" id="TODO" order="6" />
518
-      <window_info active="true" anchor="bottom" id="Messages" order="8" visible="true" weight="0.3295325" />
485
+      <window_info anchor="bottom" id="Messages" order="8" weight="0.19156215" />
519 486
       <window_info anchor="right" id="Palette&#9;" order="3" />
520 487
       <window_info id="Image Layers" order="2" />
521 488
       <window_info anchor="bottom" id="Java Enterprise" order="7" />
@@ -523,10 +490,11 @@
523 490
       <window_info anchor="bottom" id="Version Control" order="7" />
524 491
       <window_info anchor="bottom" id="Run" order="2" sideWeight="0.49903476" weight="0.45381984" />
525 492
       <window_info anchor="bottom" id="Spring" order="7" />
526
-      <window_info anchor="bottom" id="Terminal" order="7" weight="0.4355758" />
527
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.23720682" />
493
+      <window_info anchor="bottom" id="Terminal" order="7" weight="0.19840364" />
494
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.20309168" />
528 495
       <window_info anchor="right" id="Bean Validation" order="3" weight="0.32928804" />
529 496
       <window_info id="Web" order="2" side_tool="true" />
497
+      <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49903476" weight="0.3295325" />
530 498
       <window_info anchor="right" id="Theme Preview" order="3" />
531 499
       <window_info id="Favorites" order="2" side_tool="true" />
532 500
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
@@ -534,7 +502,6 @@
534 502
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
535 503
       <window_info anchor="bottom" id="Message" order="0" />
536 504
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
537
-      <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49903476" weight="0.32964474" />
538 505
     </layout>
539 506
   </component>
540 507
   <component name="TypeScriptGeneratedFilesManager">
@@ -545,398 +512,412 @@
545 512
   </component>
546 513
   <component name="XDebuggerManager">
547 514
     <breakpoint-manager>
548
-      <option name="time" value="17" />
515
+      <option name="time" value="19" />
549 516
     </breakpoint-manager>
550 517
   </component>
551 518
   <component name="editorHistoryManager">
552
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaWechatUserController.java">
519
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstpageController.java">
553 520
       <provider selected="true" editor-type-id="text-editor">
554
-        <state relative-caret-position="591">
555
-          <caret line="148" selection-start-line="148" selection-end-line="148" />
521
+        <state relative-caret-position="362">
522
+          <caret line="71" column="70" lean-forward="true" selection-start-line="67" selection-start-column="13" selection-end-line="71" selection-end-column="70" />
556 523
         </state>
557 524
       </provider>
558 525
     </entry>
559
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitorAppointment.java">
526
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaDeviceController.java">
560 527
       <provider selected="true" editor-type-id="text-editor">
561
-        <state relative-caret-position="661">
562
-          <caret line="44" column="1" lean-forward="true" selection-start-line="44" selection-start-column="1" selection-end-line="44" selection-end-column="1" />
528
+        <state relative-caret-position="143">
529
+          <caret line="145" column="54" selection-start-line="145" selection-start-column="54" selection-end-line="145" selection-end-column="54" />
563 530
         </state>
564 531
       </provider>
565 532
     </entry>
566
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitorAppointmentController.java">
533
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaMainUsherRecordMapper.xml">
567 534
       <provider selected="true" editor-type-id="text-editor">
568
-        <state relative-caret-position="346">
569
-          <caret line="78" lean-forward="true" selection-start-line="78" selection-end-line="78" />
570
-          <folding>
571
-            <element signature="imports" expanded="true" />
572
-          </folding>
535
+        <state relative-caret-position="416">
536
+          <caret line="28" lean-forward="true" selection-start-line="28" selection-end-line="28" />
573 537
         </state>
574 538
       </provider>
575 539
     </entry>
576
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCustomerMapController.java">
540
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapMapper.xml">
577 541
       <provider selected="true" editor-type-id="text-editor">
578
-        <state relative-caret-position="21">
579
-          <caret line="24" column="13" selection-start-line="24" selection-start-column="13" selection-end-line="24" selection-end-column="13" />
542
+        <state relative-caret-position="439">
543
+          <caret line="22" column="41" lean-forward="true" selection-start-line="22" selection-start-column="41" selection-end-line="22" selection-end-column="41" />
580 544
         </state>
581 545
       </provider>
582 546
     </entry>
583
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaMainUsherRecordMapper.xml">
547
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaVisitorAppointmentMapper.java">
584 548
       <provider selected="true" editor-type-id="text-editor">
585
-        <state relative-caret-position="273">
586
-          <caret line="13" lean-forward="true" selection-start-line="13" selection-end-line="13" />
549
+        <state relative-caret-position="126">
550
+          <caret line="12" column="17" selection-start-line="12" selection-start-column="17" selection-end-line="12" selection-end-column="17" />
587 551
         </state>
588 552
       </provider>
589 553
     </entry>
590
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/SysUserController.java">
554
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java">
591 555
       <provider selected="true" editor-type-id="text-editor">
592
-        <state relative-caret-position="4116">
593
-          <caret line="217" selection-start-line="217" selection-end-line="217" />
556
+        <state relative-caret-position="152">
557
+          <caret line="30" column="20" lean-forward="true" selection-start-line="30" selection-start-column="20" selection-end-line="30" selection-end-column="20" />
594 558
         </state>
595 559
       </provider>
596 560
     </entry>
597
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/SysUser.java">
561
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapper.xml">
598 562
       <provider selected="true" editor-type-id="text-editor">
599
-        <state relative-caret-position="-9">
600
-          <caret line="14" column="1" lean-forward="true" selection-start-line="14" selection-start-column="1" selection-end-line="14" selection-end-column="1" />
563
+        <state relative-caret-position="63">
564
+          <caret line="3" column="77" selection-start-line="3" selection-start-column="77" selection-end-line="3" selection-end-column="77" />
601 565
         </state>
602 566
       </provider>
603 567
     </entry>
604
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaCustomerMap.java">
568
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java">
605 569
       <provider selected="true" editor-type-id="text-editor">
606
-        <state relative-caret-position="331">
607
-          <caret line="25" column="28" selection-start-line="25" selection-start-column="20" selection-end-line="25" selection-end-column="28" />
570
+        <state relative-caret-position="315">
571
+          <caret line="18" column="97" selection-start-line="18" selection-start-column="91" selection-end-line="18" selection-end-column="97" />
608 572
         </state>
609 573
       </provider>
610 574
     </entry>
611
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaCustomWordsMapper.xml">
575
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaVisitorAppointmentMapper.xml">
612 576
       <provider selected="true" editor-type-id="text-editor">
613
-        <state relative-caret-position="42">
614
-          <caret line="2" column="43" selection-start-line="2" selection-start-column="19" selection-end-line="2" selection-end-column="43" />
577
+        <state relative-caret-position="189">
578
+          <caret line="9" column="12" selection-start-line="9" selection-start-column="12" selection-end-line="9" selection-end-column="12" />
615 579
         </state>
616 580
       </provider>
617 581
     </entry>
618
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaPerson.java">
582
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaWechatUser.java">
619 583
       <provider selected="true" editor-type-id="text-editor">
620
-        <state relative-caret-position="462">
621
-          <caret line="29" column="26" selection-start-line="29" selection-start-column="20" selection-end-line="29" selection-end-column="26" />
584
+        <state relative-caret-position="55">
585
+          <caret line="28" column="28" selection-start-line="28" selection-start-column="20" selection-end-line="28" selection-end-column="28" />
622 586
         </state>
623 587
       </provider>
624 588
     </entry>
625
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaPersonMapper.xml">
626
-      <provider selected="true" editor-type-id="text-editor" />
589
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java">
590
+      <provider selected="true" editor-type-id="text-editor">
591
+        <state relative-caret-position="117">
592
+          <caret line="45" column="32" selection-start-line="45" selection-start-column="20" selection-end-line="45" selection-end-column="32" />
593
+          <folding>
594
+            <element signature="imports" expanded="true" />
595
+          </folding>
596
+        </state>
597
+      </provider>
627 598
     </entry>
628
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaVisitingLogService.java">
599
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaNotice.java">
629 600
       <provider selected="true" editor-type-id="text-editor">
630
-        <state relative-caret-position="399">
631
-          <caret line="27" column="16" selection-start-line="27" selection-start-column="4" selection-end-line="27" selection-end-column="16" />
601
+        <state relative-caret-position="294">
602
+          <caret line="21" column="24" selection-start-line="18" selection-start-column="3" selection-end-line="21" selection-end-column="24" />
632 603
         </state>
633 604
       </provider>
634 605
     </entry>
635
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingLog.java">
606
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMiniFormids.java">
636 607
       <provider selected="true" editor-type-id="text-editor">
637
-        <state relative-caret-position="206">
638
-          <caret line="33" column="36" selection-start-line="33" selection-start-column="26" selection-end-line="33" selection-end-column="36" />
608
+        <state relative-caret-position="210">
609
+          <caret line="16" lean-forward="true" selection-start-line="16" selection-end-line="16" />
639 610
         </state>
640 611
       </provider>
641 612
     </entry>
642
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitingLogServiceImpl.java">
613
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMiniFormidsMapper.java">
643 614
       <provider selected="true" editor-type-id="text-editor">
644
-        <state relative-caret-position="1037">
645
-          <caret line="93" lean-forward="true" selection-start-line="93" selection-end-line="93" />
615
+        <state relative-caret-position="42">
616
+          <caret line="2" column="55" selection-start-line="2" selection-start-column="55" selection-end-line="2" selection-end-column="55" />
646 617
         </state>
647 618
       </provider>
648 619
     </entry>
649
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitingLogController.java">
620
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMiniFormidsService.java">
650 621
       <provider selected="true" editor-type-id="text-editor">
651
-        <state relative-caret-position="267">
652
-          <caret line="115" column="43" lean-forward="true" selection-start-line="115" selection-start-column="25" selection-end-line="115" selection-end-column="43" />
622
+        <state relative-caret-position="147">
623
+          <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
653 624
           <folding>
654
-            <element signature="e#4950#4951#0" expanded="true" />
655
-            <element signature="e#4999#5000#0" expanded="true" />
625
+            <element signature="imports" expanded="true" />
656 626
           </folding>
657 627
         </state>
658 628
       </provider>
659 629
     </entry>
660
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java">
630
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCustomerController.java">
661 631
       <provider selected="true" editor-type-id="text-editor">
662
-        <state relative-caret-position="359">
663
-          <caret line="53" column="13" selection-start-line="53" selection-start-column="13" selection-end-line="53" selection-end-column="13" />
632
+        <state relative-caret-position="1442">
633
+          <caret line="117" column="19" lean-forward="true" selection-start-line="117" selection-start-column="19" selection-end-line="117" selection-end-column="19" />
664 634
         </state>
665 635
       </provider>
666 636
     </entry>
667
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java">
637
+    <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
668 638
       <provider selected="true" editor-type-id="text-editor">
669
-        <state relative-caret-position="210">
670
-          <caret line="263" column="20" selection-start-line="263" selection-start-column="20" selection-end-line="263" selection-end-column="20" />
639
+        <state relative-caret-position="252">
640
+          <caret line="48" column="11" selection-start-line="48" selection-start-column="4" selection-end-line="48" selection-end-column="11" />
671 641
         </state>
672 642
       </provider>
673 643
     </entry>
674 644
     <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java">
675 645
       <provider selected="true" editor-type-id="text-editor">
676
-        <state relative-caret-position="527">
677
-          <caret line="243" lean-forward="true" selection-start-line="243" selection-end-line="243" />
646
+        <state relative-caret-position="185">
647
+          <caret line="147" column="45" lean-forward="true" selection-start-line="147" selection-start-column="38" selection-end-line="147" selection-end-column="52" />
678 648
         </state>
679 649
       </provider>
680 650
     </entry>
681
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFollowupRecordService.java">
651
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMiniFormidsImpl.java">
682 652
       <provider selected="true" editor-type-id="text-editor">
683
-        <state relative-caret-position="273">
684
-          <caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
653
+        <state relative-caret-position="546">
654
+          <caret line="26" selection-start-line="26" selection-end-line="26" />
655
+          <folding>
656
+            <element signature="imports" expanded="true" />
657
+          </folding>
685 658
         </state>
686 659
       </provider>
687 660
     </entry>
688
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFollowupRecordServiceImpl.java">
661
+    <entry file="jar://D:/REPO/org/springframework/spring-web/5.1.6.RELEASE/spring-web-5.1.6.RELEASE.jar!/org/springframework/http/HttpStatus.class">
689 662
       <provider selected="true" editor-type-id="text-editor">
690
-        <state relative-caret-position="315">
691
-          <caret line="21" column="50" selection-start-line="21" selection-start-column="50" selection-end-line="21" selection-end-column="50" />
663
+        <state relative-caret-position="417">
664
+          <caret line="162" column="5" lean-forward="true" selection-start-line="162" selection-start-column="5" selection-end-line="162" selection-end-column="5" />
692 665
         </state>
693 666
       </provider>
694 667
     </entry>
695
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaCustomer.java">
668
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCarRecordController.java">
696 669
       <provider selected="true" editor-type-id="text-editor">
697
-        <state relative-caret-position="-567">
698
-          <caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" />
670
+        <state relative-caret-position="309">
671
+          <caret line="72" column="9" lean-forward="true" selection-start-line="72" selection-start-column="9" selection-end-line="72" selection-end-column="9" />
699 672
         </state>
700 673
       </provider>
701 674
     </entry>
702
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaFollowupRecord.java">
675
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFollowupRecordService.java">
703 676
       <provider selected="true" editor-type-id="text-editor">
704
-        <state relative-caret-position="435">
705
-          <caret line="33" column="1" lean-forward="true" selection-start-line="33" selection-start-column="1" selection-end-line="33" selection-end-column="1" />
677
+        <state relative-caret-position="21">
678
+          <caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
679
+          <folding>
680
+            <element signature="imports" expanded="true" />
681
+          </folding>
706 682
         </state>
707 683
       </provider>
708 684
     </entry>
709
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java">
685
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaMiniFormidsMapper.xml">
710 686
       <provider selected="true" editor-type-id="text-editor">
711
-        <state relative-caret-position="336">
712
-          <caret line="20" column="12" selection-start-line="20" selection-start-column="12" selection-end-line="20" selection-end-column="12" />
687
+        <state relative-caret-position="315">
688
+          <caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
713 689
         </state>
714 690
       </provider>
715 691
     </entry>
716
-    <entry file="file://$PROJECT_DIR$/pom.xml">
692
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaMessageRecordMapper.xml">
717 693
       <provider selected="true" editor-type-id="text-editor">
718
-        <state relative-caret-position="1050">
719
-          <caret line="50" column="21" lean-forward="true" selection-start-line="44" selection-start-column="21" selection-end-line="50" selection-end-column="21" />
694
+        <state relative-caret-position="315">
695
+          <caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
696
+          <folding>
697
+            <element signature="e#499#503#0" expanded="true" />
698
+          </folding>
720 699
         </state>
721 700
       </provider>
722 701
     </entry>
723
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/config/AliOSSProperties.java">
702
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMessageRecord.java">
724 703
       <provider selected="true" editor-type-id="text-editor">
725
-        <state relative-caret-position="-109">
726
-          <caret line="7" selection-start-line="7" selection-end-line="7" selection-end-column="40" />
704
+        <state relative-caret-position="599">
705
+          <caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" />
727 706
         </state>
728 707
       </provider>
729 708
     </entry>
730
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/AliOSSUtils.java">
709
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/MiniApp.java">
731 710
       <provider selected="true" editor-type-id="text-editor">
732
-        <state relative-caret-position="105">
733
-          <caret line="11" column="47" selection-start-line="11" selection-start-column="31" selection-end-line="11" selection-end-column="47" />
711
+        <state relative-caret-position="126">
712
+          <caret line="62" column="59" selection-start-line="62" selection-start-column="59" selection-end-line="62" selection-end-column="59" />
734 713
         </state>
735 714
       </provider>
736 715
     </entry>
737
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/XFYun.java">
716
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMessageRecordService.java">
738 717
       <provider selected="true" editor-type-id="text-editor">
739
-        <state relative-caret-position="102">
740
-          <caret line="21" column="4" selection-start-line="21" selection-start-column="4" selection-end-line="21" selection-end-column="31" />
718
+        <state relative-caret-position="168">
719
+          <caret line="8" column="11" selection-start-line="8" selection-start-column="4" selection-end-line="8" selection-end-column="11" />
720
+          <folding>
721
+            <element signature="imports" expanded="true" />
722
+          </folding>
741 723
         </state>
742 724
       </provider>
743 725
     </entry>
744
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCustomerController.java">
726
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMessageRecordMapper.java">
745 727
       <provider selected="true" editor-type-id="text-editor">
746
-        <state relative-caret-position="275">
747
-          <caret line="223" column="59" lean-forward="true" selection-start-line="223" selection-start-column="59" selection-end-line="223" selection-end-column="59" />
728
+        <state relative-caret-position="399">
729
+          <caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
748 730
           <folding>
749 731
             <element signature="imports" expanded="true" />
750 732
           </folding>
751 733
         </state>
752 734
       </provider>
753 735
     </entry>
754
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapper.xml">
736
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMessageRecordImpl.java">
755 737
       <provider selected="true" editor-type-id="text-editor">
756
-        <state relative-caret-position="84">
757
-          <caret line="4" lean-forward="true" selection-start-line="4" selection-end-line="4" />
738
+        <state relative-caret-position="357">
739
+          <caret line="17" column="47" selection-start-line="17" selection-start-column="26" selection-end-line="17" selection-end-column="47" />
740
+          <folding>
741
+            <element signature="imports" expanded="true" />
742
+          </folding>
758 743
         </state>
759 744
       </provider>
760 745
     </entry>
761
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapMapper.xml">
746
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMiniFormidsController.java">
762 747
       <provider selected="true" editor-type-id="text-editor">
763
-        <state relative-caret-position="462">
764
-          <caret line="22" column="41" lean-forward="true" selection-start-line="22" selection-start-column="41" selection-end-line="22" selection-end-column="41" />
748
+        <state relative-caret-position="315">
749
+          <caret line="25" lean-forward="true" selection-start-line="25" selection-end-line="25" />
750
+          <folding>
751
+            <element signature="imports" expanded="true" />
752
+          </folding>
765 753
         </state>
766 754
       </provider>
767 755
     </entry>
768
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java">
756
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaWechatUserService.java">
769 757
       <provider selected="true" editor-type-id="text-editor">
770
-        <state relative-caret-position="672">
771
-          <caret line="47" lean-forward="true" selection-start-line="47" selection-end-line="47" />
758
+        <state relative-caret-position="252">
759
+          <caret line="13" column="17" selection-start-line="13" selection-start-column="17" selection-end-line="13" selection-end-column="17" />
772 760
         </state>
773 761
       </provider>
774 762
     </entry>
775
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomerService.java">
763
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaWechatUserMapper.xml">
776 764
       <provider selected="true" editor-type-id="text-editor">
777
-        <state relative-caret-position="441">
778
-          <caret line="21" column="19" selection-start-line="21" selection-start-column="19" selection-end-line="21" selection-end-column="19" />
779
-          <folding>
780
-            <element signature="imports" expanded="true" />
781
-          </folding>
765
+        <state relative-caret-position="63">
766
+          <caret line="3" column="27" selection-start-line="3" selection-start-column="16" selection-end-line="3" selection-end-column="27" />
782 767
         </state>
783 768
       </provider>
784 769
     </entry>
785
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java">
770
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaWechatUserMapper.java">
786 771
       <provider selected="true" editor-type-id="text-editor">
787
-        <state relative-caret-position="342">
788
-          <caret line="99" column="43" selection-start-line="99" selection-start-column="35" selection-end-line="99" selection-end-column="43" />
772
+        <state relative-caret-position="399">
773
+          <caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
789 774
           <folding>
790 775
             <element signature="imports" expanded="true" />
791
-            <element signature="e#3694#3695#0" expanded="true" />
792
-            <element signature="e#3757#3758#0" expanded="true" />
793 776
           </folding>
794 777
         </state>
795 778
       </provider>
796 779
     </entry>
797
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/AudioController.java">
780
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaWechatUserController.java">
798 781
       <provider selected="true" editor-type-id="text-editor">
799
-        <state relative-caret-position="147">
800
-          <caret line="19" column="13" selection-start-line="19" selection-start-column="13" selection-end-line="19" selection-end-column="13" />
782
+        <state relative-caret-position="588">
783
+          <caret line="81" column="73" selection-start-line="81" selection-start-column="73" selection-end-line="81" selection-end-column="73" />
801 784
         </state>
802 785
       </provider>
803 786
     </entry>
804
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java">
787
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java">
805 788
       <provider selected="true" editor-type-id="text-editor">
806
-        <state relative-caret-position="-1937">
807
-          <caret line="82" lean-forward="true" selection-start-line="82" selection-end-line="82" />
789
+        <state relative-caret-position="462">
790
+          <caret line="27" column="62" selection-start-line="27" selection-start-column="62" selection-end-line="27" selection-end-column="62" />
808 791
         </state>
809 792
       </provider>
810 793
     </entry>
811
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstpageController.java">
794
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java">
812 795
       <provider selected="true" editor-type-id="text-editor">
813
-        <state relative-caret-position="483">
814
-          <caret line="242" column="56" lean-forward="true" selection-start-line="242" selection-start-column="56" selection-end-line="242" selection-end-column="56" />
796
+        <state relative-caret-position="1241">
797
+          <caret line="83" lean-forward="true" selection-start-line="83" selection-end-line="83" />
798
+          <folding>
799
+            <element signature="imports" expanded="true" />
800
+          </folding>
815 801
         </state>
816 802
       </provider>
817 803
     </entry>
818
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFirstpageService.java">
804
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaFollowupRecordMapper.java">
819 805
       <provider selected="true" editor-type-id="text-editor">
820
-        <state relative-caret-position="399">
821
-          <caret line="22" column="54" selection-start-line="22" selection-start-column="54" selection-end-line="22" selection-end-column="54" />
806
+        <state relative-caret-position="273">
807
+          <caret line="15" column="17" selection-start-line="15" selection-start-column="17" selection-end-line="15" selection-end-column="17" />
822 808
         </state>
823 809
       </provider>
824 810
     </entry>
825
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstpageServiceImpl.java">
811
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java">
826 812
       <provider selected="true" editor-type-id="text-editor">
827
-        <state relative-caret-position="261">
828
-          <caret line="44" column="43" selection-start-line="44" selection-start-column="43" selection-end-line="44" selection-end-column="43" />
813
+        <state relative-caret-position="483">
814
+          <caret line="31" column="56" selection-start-line="31" selection-start-column="48" selection-end-line="31" selection-end-column="56" />
829 815
         </state>
830 816
       </provider>
831 817
     </entry>
832
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/SAWeather.java">
818
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java">
833 819
       <provider selected="true" editor-type-id="text-editor">
834
-        <state relative-caret-position="441">
835
-          <caret line="55" selection-start-line="55" selection-end-line="55" />
820
+        <state relative-caret-position="84">
821
+          <caret line="263" column="20" selection-start-line="263" selection-start-column="20" selection-end-line="263" selection-end-column="20" />
836 822
         </state>
837 823
       </provider>
838 824
     </entry>
839
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstUsherRecordController.java">
825
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java">
840 826
       <provider selected="true" editor-type-id="text-editor">
841
-        <state relative-caret-position="315">
842
-          <caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
843
-          <folding>
844
-            <element signature="imports" expanded="true" />
845
-          </folding>
827
+        <state relative-caret-position="516">
828
+          <caret line="53" column="13" selection-start-line="53" selection-start-column="13" selection-end-line="53" selection-end-column="13" />
846 829
         </state>
847 830
       </provider>
848 831
     </entry>
849
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCarRecordService.java">
832
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java">
850 833
       <provider selected="true" editor-type-id="text-editor">
851
-        <state relative-caret-position="378">
852
-          <caret line="18" column="60" selection-start-line="18" selection-start-column="60" selection-end-line="18" selection-end-column="60" />
834
+        <state relative-caret-position="256">
835
+          <caret line="127" column="61" selection-start-line="127" selection-start-column="61" selection-end-line="127" selection-end-column="61" />
853 836
           <folding>
854 837
             <element signature="imports" expanded="true" />
855 838
           </folding>
856 839
         </state>
857 840
       </provider>
858 841
     </entry>
859
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaCarRecordController.java">
842
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomerService.java">
860 843
       <provider selected="true" editor-type-id="text-editor">
861
-        <state relative-caret-position="180">
862
-          <caret line="26" column="13" selection-start-line="26" selection-start-column="13" selection-end-line="26" selection-end-column="13" />
863
-          <folding>
864
-            <element signature="imports" expanded="true" />
865
-          </folding>
844
+        <state relative-caret-position="273">
845
+          <caret line="19" column="15" selection-start-line="19" selection-start-column="15" selection-end-line="19" selection-end-column="15" />
866 846
         </state>
867 847
       </provider>
868 848
     </entry>
869
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java">
849
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java">
870 850
       <provider selected="true" editor-type-id="text-editor">
871
-        <state relative-caret-position="265">
872
-          <caret line="29" column="52" selection-start-line="29" selection-start-column="52" selection-end-line="29" selection-end-column="52" />
851
+        <state relative-caret-position="483">
852
+          <caret line="84" lean-forward="true" selection-start-line="84" selection-end-line="84" />
853
+          <folding>
854
+            <element signature="imports" expanded="true" />
855
+          </folding>
873 856
         </state>
874 857
       </provider>
875 858
     </entry>
876
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaFirstUsherRecord.java">
859
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ICameraService.java">
877 860
       <provider selected="true" editor-type-id="text-editor">
878
-        <state relative-caret-position="987">
879
-          <caret line="55" lean-forward="true" selection-start-line="55" selection-end-line="55" />
861
+        <state relative-caret-position="105">
862
+          <caret line="6" column="11" selection-start-line="6" selection-start-column="11" selection-end-line="6" selection-end-column="11" />
880 863
         </state>
881 864
       </provider>
882 865
     </entry>
883
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java">
866
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/AudioController.java">
884 867
       <provider selected="true" editor-type-id="text-editor">
885
-        <state relative-caret-position="229">
886
-          <caret line="30" column="58" selection-start-line="30" selection-start-column="58" selection-end-line="30" selection-end-column="58" />
868
+        <state relative-caret-position="441">
869
+          <caret line="33" lean-forward="true" selection-start-line="33" selection-end-line="33" />
887 870
         </state>
888 871
       </provider>
889 872
     </entry>
890
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java">
873
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/Action.java">
891 874
       <provider selected="true" editor-type-id="text-editor">
892
-        <state relative-caret-position="372">
893
-          <caret line="27" column="56" selection-start-line="27" selection-start-column="56" selection-end-line="27" selection-end-column="56" />
875
+        <state relative-caret-position="524">
876
+          <caret line="36" column="5" lean-forward="true" selection-start-line="36" selection-start-column="5" selection-end-line="36" selection-end-column="5" />
894 877
           <folding>
895 878
             <element signature="imports" expanded="true" />
896 879
           </folding>
897 880
         </state>
898 881
       </provider>
899 882
     </entry>
900
-    <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
883
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/WebSocketServer.java">
901 884
       <provider selected="true" editor-type-id="text-editor">
902
-        <state relative-caret-position="399">
903
-          <caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
885
+        <state relative-caret-position="293">
886
+          <caret line="62" column="12" lean-forward="true" selection-start-line="62" selection-start-column="12" selection-end-line="62" selection-end-column="12" />
887
+          <folding>
888
+            <element signature="imports" expanded="true" />
889
+          </folding>
904 890
         </state>
905 891
       </provider>
906 892
     </entry>
907
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java">
893
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java">
908 894
       <provider selected="true" editor-type-id="text-editor">
909
-        <state relative-caret-position="273">
910
-          <caret line="13" column="22" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" />
911
-          <folding>
912
-            <element signature="imports" expanded="true" />
913
-          </folding>
895
+        <state relative-caret-position="378">
896
+          <caret line="35" column="9" lean-forward="true" selection-start-line="35" selection-start-column="9" selection-end-line="35" selection-end-column="9" />
914 897
         </state>
915 898
       </provider>
916 899
     </entry>
917
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java">
900
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/SysUserController.java">
918 901
       <provider selected="true" editor-type-id="text-editor">
919
-        <state relative-caret-position="180">
920
-          <caret line="122" column="11" selection-start-line="122" selection-start-column="11" selection-end-line="122" selection-end-column="11" />
921
-          <folding>
922
-            <element signature="imports" expanded="true" />
923
-          </folding>
902
+        <state relative-caret-position="165">
903
+          <caret line="219" column="82" selection-start-line="219" selection-start-column="70" selection-end-line="219" selection-end-column="82" />
924 904
         </state>
925 905
       </provider>
926 906
     </entry>
927
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaNotice.java">
907
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/CommConstant.java">
928 908
       <provider selected="true" editor-type-id="text-editor">
929
-        <state relative-caret-position="229">
930
-          <caret line="21" column="24" lean-forward="true" selection-start-line="19" selection-start-column="5" selection-end-line="21" selection-end-column="24" />
909
+        <state relative-caret-position="231">
910
+          <caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
931 911
         </state>
932 912
       </provider>
933 913
     </entry>
934
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java">
914
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java">
935 915
       <provider selected="true" editor-type-id="text-editor">
936
-        <state relative-caret-position="180">
937
-          <caret line="21" selection-start-line="21" selection-end-line="21" />
916
+        <state relative-caret-position="223">
917
+          <caret line="197" column="20" selection-start-line="197" selection-start-column="20" selection-end-line="197" selection-end-column="20" />
938 918
           <folding>
939
-            <element signature="imports" expanded="true" />
919
+            <element signature="e#5763#5764#0" expanded="true" />
920
+            <element signature="e#5781#5782#0" expanded="true" />
940 921
           </folding>
941 922
         </state>
942 923
       </provider>

+ 51
- 0
src/main/java/com.huiju.welcome/common/Action.java View File

@@ -0,0 +1,51 @@
1
+package com.huiju.welcome.common;
2
+
3
+/**
4
+ * 此类同硬件服务端的定义是一致的
5
+ */
6
+
7
+import com.alibaba.fastjson.JSONObject;
8
+import com.huiju.welcome.utils.StringUtils;
9
+import lombok.Data;
10
+
11
+@Data
12
+public class Action {
13
+    public final static String TYPE_DEFAULT = "default";
14
+    public final static String TYPE_ACK = "ack";
15
+    public final static String TYPE_DISPATCH_FACE = "dispatch-face";
16
+    public final static String TYPE_TO_FRONT = "to-front";
17
+    public final static String TYPE_NEW_MAIN_USHER = "new-main-usher";
18
+    public final static String TYPE_NEW_FIRST_USHER = "new-first-usher";
19
+
20
+    public final static String ACK_SUCCESS = "success";
21
+
22
+    String id;
23
+    String type;
24
+    Object payload;
25
+
26
+    public static Action create(String type, Object payload, String ...ids) {
27
+        Action act = new Action();
28
+        act.setType(type);
29
+        act.setPayload(payload);
30
+
31
+        if (null != ids && ids.length > 1) {
32
+            act.setId(ids[0]);
33
+        } else {
34
+            act.setId(StringUtils.random(32));
35
+        }
36
+        return act;
37
+    }
38
+
39
+    public static Action ack(Action origin) {
40
+        return Action.create(Action.TYPE_ACK, ACK_SUCCESS, origin.getId());
41
+    }
42
+
43
+    public Action response(Object result) {
44
+        this.setPayload(result);
45
+        return this;
46
+    }
47
+
48
+    public String toJSON() {
49
+        return JSONObject.toJSONString(this);
50
+    }
51
+}

+ 39
- 26
src/main/java/com.huiju.welcome/common/WebSocketServer.java View File

@@ -1,5 +1,6 @@
1 1
 package com.huiju.welcome.common;
2 2
 
3
+import com.huiju.welcome.utils.StringUtils;
3 4
 import org.slf4j.Logger;
4 5
 import org.slf4j.LoggerFactory;
5 6
 import org.springframework.stereotype.Component;
@@ -14,7 +15,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
14 15
  * @author FXF
15 16
  * @date 2019-03-14
16 17
  */
17
-@ServerEndpoint("/websocket/{sid}")
18
+@ServerEndpoint("/ws/{type}/{sid}")
18 19
 @Component
19 20
 public class WebSocketServer {
20 21
 	private static Logger log = LoggerFactory.getLogger(WebSocketServer.class);
@@ -32,27 +33,28 @@ public class WebSocketServer {
32 33
 	 * 与某个客户端的连接会话,需要通过它来给客户端发送数据
33 34
 	 */
34 35
 	private Session session;
35
-	
36
+
36 37
 	/**
37 38
 	 * 接收sid
38 39
 	 */
39 40
 	private String sid="";
41
+	String type = "";
42
+
40 43
 	/**
41 44
 	 * 连接建立成功调用的方法*/
42 45
 	@OnOpen
43
-	public void onOpen(Session session,@PathParam("sid") String sid) {
46
+	public void onOpen(Session session,@PathParam("sid") String sid, @PathParam("type") String type) {
47
+		if (null == sid || "".equals(sid)) return;
48
+
49
+		this.sid = sid;
50
+		this.type = type;
44 51
 		this.session = session;
45 52
 		//加入set中
46 53
 		webSocketSet.add(this);
47 54
 		//在线数加1
48 55
 		addOnlineCount();
56
+
49 57
 		log.info("有新窗口开始监听:"+sid+",当前在线人数为" + getOnlineCount());
50
-		this.sid=sid;
51
-//		try {
52
-//			sendMessage("连接成功");
53
-//		} catch (IOException e) {
54
-//			log.error("websocket IO异常");
55
-//		}
56 58
 	}
57 59
 	
58 60
 	/**
@@ -60,9 +62,7 @@ public class WebSocketServer {
60 62
 	 */
61 63
 	@OnClose
62 64
 	public void onClose() {
63
-		//从set中删除
64 65
 		webSocketSet.remove(this);
65
-		//在线数减1
66 66
 		subOnlineCount();
67 67
 		log.info("有一连接关闭!当前在线人数为" + getOnlineCount());
68 68
 	}
@@ -74,14 +74,18 @@ public class WebSocketServer {
74 74
 	@OnMessage
75 75
 	public void onMessage(String message, Session session) {
76 76
 		log.info("收到来自窗口"+sid+"的信息:"+message);
77
-//		//群发消息
78
-//		for (WebSocketServer item : webSocketSet) {
79
-//			try {
80
-//				item.sendMessage(message);
81
-//			} catch (IOException e) {
82
-//				e.printStackTrace();
83
-//			}
84
-//		}
77
+
78
+		if (null == message || "".equals(message)) {
79
+			return;
80
+		}
81
+
82
+		if ("ping".equals(message)) {
83
+			try {
84
+				sendMessage("pong");
85
+			} catch (IOException e) {}
86
+		}
87
+
88
+		// 目前需求, 没有需要通过 ws 来处理的业务
85 89
 	}
86 90
 	
87 91
 	/**
@@ -91,13 +95,15 @@ public class WebSocketServer {
91 95
 	 */
92 96
 	@OnError
93 97
 	public void onError(Session session, Throwable error) {
94
-		log.error("发生错误");
98
+		log.error("发生错误: " + error.getMessage());
95 99
 		error.printStackTrace();
96 100
 	}
101
+
97 102
 	/**
98 103
 	 * 实现服务器主动推送
99 104
 	 */
100 105
 	public void sendMessage(String message) throws IOException {
106
+		log.info("发送消息 [{}-{}]: {}", type, sid, message);
101 107
 		this.session.getBasicRemote().sendText(message);
102 108
 	}
103 109
 	
@@ -105,21 +111,28 @@ public class WebSocketServer {
105 111
 	/**
106 112
 	 * 群发自定义消息
107 113
 	 * */
108
-	public static void sendInfo(String message,@PathParam("sid") String sid) throws IOException {
109
-		log.info("推送消息到窗口"+sid+",推送内容:"+message);
114
+	public static void sendInfo(String message, String type, String sid) throws Exception {
115
+		if (StringUtils.isEmpty(type) || StringUtils.isEmpty(message)) {
116
+			throw new Exception("发送数据非法, 部分字段为空");
117
+		}
118
+
110 119
 		for (WebSocketServer item : webSocketSet) {
111 120
 			try {
112
-				//这里可以设定只推送给这个sid的,为null则全部推送
113
-				if(sid==null) {
121
+				if (StringUtils.isEmpty(sid) && "miniapp".equals(type)) {
122
+					// 小程序消息, 如果 sid 为空, 则广播
114 123
 					item.sendMessage(message);
115
-				}else if(item.sid.equals(sid)){
116
-					log.info("推送消息到窗口"+sid+",推送内容:"+message);
124
+				} else  if(item.sid.equals(sid) && item.type.equals(type)){
117 125
 					item.sendMessage(message);
126
+					return;
118 127
 				}
119 128
 			} catch (IOException e) {
129
+				log.error("发送数据失败: [{}-{}], 发送内容: {}", type, sid, message);
130
+				log.error("错误内容: {}", e.getMessage());
120 131
 				continue;
121 132
 			}
122 133
 		}
134
+
135
+		log.error("发送数据失败: [{}-{}] 不在线, 发送内容: {}", type, sid, message);
123 136
 	}
124 137
 	
125 138
 	public static synchronized int getOnlineCount() {

+ 39
- 34
src/main/java/com.huiju.welcome/controller/CameraController.java View File

@@ -3,10 +3,12 @@ package com.huiju.welcome.controller;
3 3
 import com.alibaba.fastjson.JSONObject;
4 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 5
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
6
+import com.huiju.welcome.common.Action;
6 7
 import com.huiju.welcome.common.WebSocketServer;
7 8
 import com.huiju.welcome.common.base.ResponseBean;
8 9
 import com.huiju.welcome.model.*;
9 10
 import com.huiju.welcome.service.*;
11
+import com.huiju.welcome.utils.AliOSSUtils;
10 12
 import com.huiju.welcome.utils.StatusUtils;
11 13
 import com.huiju.welcome.utils.XFYun;
12 14
 import io.swagger.annotations.ApiOperation;
@@ -20,7 +22,9 @@ import org.springframework.web.bind.annotation.*;
20 22
 import org.springframework.web.multipart.MultipartFile;
21 23
 import org.springframework.web.multipart.MultipartHttpServletRequest;
22 24
 
25
+import javax.annotation.PostConstruct;
23 26
 import javax.servlet.http.HttpServletRequest;
27
+import javax.websocket.server.PathParam;
24 28
 import java.io.File;
25 29
 import java.io.FileOutputStream;
26 30
 import java.io.IOException;
@@ -67,6 +71,9 @@ public class CameraController {
67 71
 	@Autowired
68 72
 	private ITaPersonTypeService taPersonTypeService;
69 73
 
74
+	@Autowired
75
+	private ITaCustomerService iTaCustomerService;
76
+
70 77
 	@Autowired
71 78
 	private XFYun xfYun;
72 79
 	
@@ -156,11 +163,8 @@ public class CameraController {
156 163
 			}
157 164
 		}
158 165
 
159
-		// 抓拍照落地
160
-		long nowTime = System.currentTimeMillis();
161
-		String avatar = "/camera/" + nowTime + "_" + deviceId + ".jpg";
162
-		getMultipartFile(snapshot, avatar);
163
-		taSnapshotPerson.setAvatar(avatar);
166
+		// 抓拍照
167
+		taSnapshotPerson.setAvatar(getMultipartFile(snapshot));
164 168
 
165 169
 		if (newGuy) {
166 170
 			// 新人入库, 同时写入抓拍人ID
@@ -176,12 +180,24 @@ public class CameraController {
176 180
 		// 预写到访日志
177 181
 		saveVisitingLog(taPerson, taSnapshotPerson);
178 182
 
183
+		// 判断是否客户来访
184
+		try {
185
+			iTaCustomerService.judgeNewCust(taPerson);
186
+		} catch (Exception e) {
187
+			log.error(e.getMessage());
188
+		}
189
+
179 190
 		// 推送消息
180 191
 		sendPersionInfo(taPerson);
181 192
 
182 193
 		return responseBean;
183 194
 	}
184 195
 
196
+	@PostMapping(value = "/camera/{deviceId}/car")
197
+	public ResponseBean car(@PathParam("deviceId") String deviceId, @RequestBody String paramStr) {
198
+		return null;
199
+	}
200
+
185 201
 	//推送给前端
186 202
 	private void sendPersionInfo(TaPerson taPerson) {
187 203
 		TaVisitingWords taVisitingWords = null;
@@ -220,44 +236,33 @@ public class CameraController {
220 236
 		words = words.replace("{{name}}", personName).replace("{{sex}}", sex == 2 ? "女士" : "先生");
221 237
 		taVisitingWords.setWords(words);
222 238
 
223
-		Map<String,Object> map = new HashMap<>();
224
-		map.put("person",taPerson);
225
-		map.put("taVisitingWords",taVisitingWords);
226
-		map.put("audio", xfYun.voice( personName + "," + words, sex  == 2 ? 1 : 2));
239
+		Map<String,Object> data = new HashMap<>();
240
+		data.put("person",taPerson);
241
+		data.put("taVisitingWords",taVisitingWords);
242
+		data.put("audio", xfYun.voice( personName + "," + words, sex  == 2 ? 1 : 2));
243
+
244
+
245
+		Map<String, Object> payload = new HashMap<>();
246
+		payload.put("to", deviceId);
247
+		payload.put("data", data);
248
+		Action act = Action.create(Action.TYPE_TO_FRONT, payload);
249
+
227 250
 		try {
228
-			WebSocketServer.sendInfo(JSONObject.toJSONString(map),deviceId);
229
-		} catch (IOException e) {
251
+			WebSocketServer.sendInfo(act.toJSON(), "device", deviceId);
252
+		} catch (Exception e) {
230 253
 			e.printStackTrace();
231 254
 		}
232 255
 	}
233 256
 
234 257
 	// 获取上传单文件
235
-	private boolean getMultipartFile(MultipartFile f, String newFname) {
236
-		if (null == f || f.isEmpty()) {
237
-			log.error("========================没有获取到抓拍图片");
238
-			return false;
239
-		} else {
240
-			log.info("=======================成功获取到抓拍数据流");
241
-		}
242
-
243
-		File localDir = new File(huijuFiles + "camera");
244
-		if (!localDir.exists()) localDir.mkdirs();
245
-
258
+	private String getMultipartFile(MultipartFile f) {
246 259
 		try {
247
-			byte[] fBytes = f.getBytes();
248
-			ByteBuffer buf = ByteBuffer.wrap(fBytes);
249
-			FileChannel fc = new FileOutputStream(huijuFiles + newFname).getChannel();
250
-			fc.write(buf);
251
-			fc.close();
252
-		} catch (Exception e) {
260
+			return AliOSSUtils.putObject(f);
261
+		} catch (IOException e) {
253 262
 			e.printStackTrace();
254
-			log.error("读取抓拍图片失败: " + e.getMessage());
255
-			return false;
263
+			log.error("上传人脸至阿里云失败: " + e.getMessage());
264
+			return null;
256 265
 		}
257
-
258
-		log.info("成功落地抓拍图: " + huijuFiles + newFname);
259
-
260
-		return true;
261 266
 	}
262 267
 
263 268
 	private TaPerson saveNewPerson(TaSnapshotPerson taSnapshotPerson) {

+ 4
- 2
src/main/java/com.huiju.welcome/controller/TaCustomerController.java View File

@@ -14,6 +14,7 @@ import com.huiju.welcome.model.TaWechatUser;
14 14
 import com.huiju.welcome.service.*;
15 15
 import com.huiju.welcome.utils.DateUtils;
16 16
 import com.huiju.welcome.utils.JWTUtils;
17
+import com.huiju.welcome.utils.StatusUtils;
17 18
 import org.apache.http.HttpStatus;
18 19
 import org.slf4j.Logger;
19 20
 import org.slf4j.LoggerFactory;
@@ -104,11 +105,12 @@ public class TaCustomerController extends BaseController {
104 105
             }
105 106
             iTaCustomerMapService.saveBatch(customerMapList);
106 107
 
107
-
108
+            taCustomer.setStatus(StatusUtils.Normal);
109
+            taCustomer.setCreateDate(LocalDateTime.now());
108 110
             if (iTaCustomerService.save(taCustomer)){
109 111
 
110 112
                 // 新增会员来访信息
111
-                iTaMainUsherRecordService.newRecordByFront(taCustomer);
113
+                iTaMainUsherRecordService.newRecordByConsultant(taCustomer);
112 114
 
113 115
                 List<TaPerson> group = iTaCustomerService.getGroup(taCustomer.getCustomerId());
114 116
                 taCustomer.setGroup(group);

+ 34
- 15
src/main/java/com.huiju.welcome/controller/TaDeviceController.java View File

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
5 5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 6
 import com.baomidou.mybatisplus.core.metadata.IPage;
7 7
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
8
+import com.huiju.welcome.common.Action;
8 9
 import com.huiju.welcome.common.WebSocketServer;
9 10
 import com.huiju.welcome.common.base.BaseController;
10 11
 import com.huiju.welcome.common.base.ResponseBean;
@@ -100,14 +101,20 @@ public class TaDeviceController extends BaseController {
100 101
         preDef.setSize(9999999l); // 代表无限大
101 102
 
102 103
         IPage<TaPerson> pg = taPersonService.page(preDef, wrapper);
103
-        Map<String, Object> msg = new HashMap<>();
104
+        Map<String, Object> data = new HashMap<>();
104 105
         if (null != wsId && !"".equals(wsId) && from.intValue() == 0) {
105
-            msg.put("step", "ready");
106
-            msg.put("total", pg.getTotal());
106
+            data.put("step", "ready");
107
+            data.put("total", pg.getTotal());
108
+
109
+            Map<String, Object> payload = new HashMap<>();
110
+            payload.put("to", wsId);
111
+            payload.put("data", data);
112
+            Action act = Action.create(Action.TYPE_TO_FRONT, payload);
113
+
107 114
             try {
108 115
                 // 通知前端开始处理
109
-                WebSocketServer.sendInfo(JSON.toJSONString(msg), wsId);
110
-            } catch (IOException e) {
116
+                WebSocketServer.sendInfo(act.toJSON(), "device", deviceId);
117
+            } catch (Exception e) {
111 118
                 e.printStackTrace();
112 119
             }
113 120
         }
@@ -117,14 +124,20 @@ public class TaDeviceController extends BaseController {
117 124
         if (total > 0) {
118 125
             for(TaPerson person: personList) {
119 126
                 if (null != wsId && !"".equals(wsId)) {
120
-                    msg.clear();
121
-                    msg.put("step", "process");
122
-                    msg.put("current", lastNum);
123
-                    msg.put("id", person.getPersonId());
127
+                    data.clear();
128
+                    data.put("step", "process");
129
+                    data.put("current", lastNum);
130
+                    data.put("id", person.getPersonId());
131
+
132
+                    Map<String, Object> payload = new HashMap<>();
133
+                    payload.put("to", wsId);
134
+                    payload.put("data", data);
135
+                    Action act = Action.create(Action.TYPE_TO_FRONT, payload);
136
+
124 137
                     try {
125 138
                         // 通知前端当前处理到这个人
126
-                        WebSocketServer.sendInfo(JSON.toJSONString(msg), wsId);
127
-                    } catch (IOException e) {
139
+                        WebSocketServer.sendInfo(act.toJSON(), "device", deviceId);
140
+                    } catch (Exception e) {
128 141
                         e.printStackTrace();
129 142
                     }
130 143
                 }
@@ -149,12 +162,18 @@ public class TaDeviceController extends BaseController {
149 162
         }
150 163
 
151 164
         if (null != wsId && !"".equals(wsId)) {
152
-            msg.clear();
153
-            msg.put("step", "finish");
165
+            data.clear();
166
+            data.put("step", "finish");
154 167
             try {
155 168
                 // 通知前端所有人已处理完
156
-                WebSocketServer.sendInfo(JSON.toJSONString(msg), wsId);
157
-            } catch (IOException e) {
169
+
170
+                Map<String, Object> payload = new HashMap<>();
171
+                payload.put("to", wsId);
172
+                payload.put("data", data);
173
+                Action act = Action.create(Action.TYPE_TO_FRONT, payload);
174
+
175
+                WebSocketServer.sendInfo(act.toJSON(), "device", deviceId);
176
+            } catch (Exception e) {
158 177
                 e.printStackTrace();
159 178
             }
160 179
         }

+ 9
- 2
src/main/java/com.huiju.welcome/controller/TaFirstpageController.java View File

@@ -4,6 +4,7 @@ package com.huiju.welcome.controller;
4 4
 import com.alibaba.fastjson.JSONObject;
5 5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7
+import com.huiju.welcome.common.Action;
7 8
 import com.huiju.welcome.common.WebSocketServer;
8 9
 import com.huiju.welcome.common.base.BaseController;
9 10
 import com.huiju.welcome.common.base.ResponseBean;
@@ -23,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
23 24
 
24 25
 import javax.servlet.http.HttpServletRequest;
25 26
 import java.io.IOException;
27
+import java.util.HashMap;
26 28
 import java.util.List;
27 29
 import java.util.Map;
28 30
 
@@ -64,8 +66,13 @@ public class TaFirstpageController extends BaseController {
64 66
         }
65 67
 
66 68
         try {
67
-            WebSocketServer.sendInfo(data, taFirstpage.getDeviceId());
68
-        } catch (IOException e) {
69
+            Map<String, Object> payload = new HashMap<>();
70
+            payload.put("to", taFirstpage.getDeviceId());
71
+            payload.put("data", msg);
72
+            Action act = Action.create(Action.TYPE_TO_FRONT, payload);
73
+
74
+            WebSocketServer.sendInfo(act.toJSON(), "device", taFirstpage.getDeviceId());
75
+        } catch (Exception e) {
69 76
             e.printStackTrace();
70 77
             responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "发送失败");
71 78
             return responseBean;

+ 29
- 2
src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java View File

@@ -5,13 +5,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.huiju.welcome.common.base.BaseController;
7 7
 import com.huiju.welcome.common.base.ResponseBean;
8
+import com.huiju.welcome.model.SysUser;
9
+import com.huiju.welcome.model.TaCustomer;
8 10
 import com.huiju.welcome.model.TaFollowupRecord;
9 11
 import com.huiju.welcome.model.TaMainUsherRecord;
12
+import com.huiju.welcome.service.ISysUserService;
10 13
 import com.huiju.welcome.service.ITaCustomerService;
11 14
 import com.huiju.welcome.service.ITaFollowupRecordService;
12 15
 import com.huiju.welcome.service.ITaMainUsherRecordService;
13 16
 import com.huiju.welcome.utils.DateUtils;
14 17
 import com.huiju.welcome.utils.StatusUtils;
18
+import org.apache.http.HttpStatus;
15 19
 import org.slf4j.Logger;
16 20
 import org.slf4j.LoggerFactory;
17 21
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,6 +46,9 @@ public class TaMainUsherRecordController extends BaseController {
42 46
     @Autowired
43 47
     private ITaCustomerService iTaCustomerService;
44 48
 
49
+    @Autowired
50
+    private ISysUserService iSysUserService;
51
+
45 52
     /**
46 53
      * 保存对象
47 54
      * @param taMainUsherRecord 实体对象
@@ -53,10 +60,20 @@ public class TaMainUsherRecordController extends BaseController {
53 60
         try {
54 61
             taMainUsherRecord.setStatus(StatusUtils.Normal);
55 62
 
63
+            if (null == taMainUsherRecord.getConsultantId() || taMainUsherRecord.getConsultantId().intValue() == 0) {
64
+                return ResponseBean.error("请设置置业顾问", HttpStatus.SC_BAD_REQUEST);
65
+            } else {
66
+                SysUser user = iSysUserService.getById(taMainUsherRecord.getConsultantId());
67
+                taMainUsherRecord.setRealtyConsultant(user.getUsername());
68
+            }
69
+
56 70
             // 先添加到置业的客户中
57
-            iTaCustomerService.newVisitRecord(taMainUsherRecord);
71
+            TaCustomer taCustomer = iTaCustomerService.newVisitRecord(taMainUsherRecord);
58 72
 
59 73
             if (iTaMainUsherRecordService.save(taMainUsherRecord)){
74
+
75
+                iTaMainUsherRecordService.notifyConsultant(taMainUsherRecord, taCustomer);
76
+
60 77
                 responseBean.addSuccess(taMainUsherRecord);
61 78
             }else {
62 79
                 responseBean.addError("fail");
@@ -100,10 +117,20 @@ public class TaMainUsherRecordController extends BaseController {
100 117
         try {
101 118
             taMainUsherRecord.setStatus(StatusUtils.Normal);
102 119
 
120
+            if (null == taMainUsherRecord.getConsultantId() || taMainUsherRecord.getConsultantId().intValue() == 0) {
121
+                return ResponseBean.error("请设置置业顾问", HttpStatus.SC_BAD_REQUEST);
122
+            } else {
123
+                SysUser user = iSysUserService.getById(taMainUsherRecord.getConsultantId());
124
+                taMainUsherRecord.setRealtyConsultant(user.getUsername());
125
+            }
126
+
103 127
             // 先添加到置业的客户中
104
-            iTaCustomerService.newVisitRecord(taMainUsherRecord);
128
+            TaCustomer taCustomer = iTaCustomerService.newVisitRecord(taMainUsherRecord);
105 129
 
106 130
             if (iTaMainUsherRecordService.updateById(taMainUsherRecord)){
131
+
132
+                iTaMainUsherRecordService.notifyConsultant(taMainUsherRecord, taCustomer);
133
+
107 134
                 responseBean.addSuccess("success");
108 135
             }else {
109 136
                 responseBean.addError("fail");

+ 34
- 0
src/main/java/com.huiju.welcome/controller/TaMiniFormidsController.java View File

@@ -0,0 +1,34 @@
1
+package com.huiju.welcome.controller;
2
+
3
+import com.huiju.welcome.common.base.BaseController;
4
+import com.huiju.welcome.common.base.ResponseBean;
5
+import com.huiju.welcome.model.TaWechatUser;
6
+import com.huiju.welcome.service.ITaMiniFormidsService;
7
+import com.huiju.welcome.service.ITaWechatUserService;
8
+import com.huiju.welcome.utils.JWTUtils;
9
+import org.springframework.beans.factory.annotation.Autowired;
10
+import org.springframework.web.bind.annotation.PostMapping;
11
+import org.springframework.web.bind.annotation.RequestBody;
12
+import org.springframework.web.bind.annotation.RequestMapping;
13
+import org.springframework.web.bind.annotation.RestController;
14
+
15
+import javax.servlet.http.HttpServletRequest;
16
+
17
+@RestController
18
+@RequestMapping("/")
19
+public class TaMiniFormidsController extends BaseController {
20
+
21
+    @Autowired
22
+    ITaMiniFormidsService taMiniFormidsService;
23
+
24
+    @Autowired
25
+    ITaWechatUserService iTaWechatUserService;
26
+
27
+    @PostMapping("/miniapp/formid")
28
+    public ResponseBean save(@RequestBody String paramStr, HttpServletRequest request) {
29
+        String userId = JWTUtils.getSubject(request);
30
+        TaWechatUser taWechatUser = iTaWechatUserService.getById(Integer.valueOf(userId));
31
+
32
+        return taMiniFormidsService.saveFormidBy(taWechatUser.getOpenid(), paramStr);
33
+    }
34
+}

+ 8
- 0
src/main/java/com.huiju.welcome/controller/TaPersonController.java View File

@@ -47,6 +47,9 @@ public class TaPersonController extends BaseController {
47 47
     @Autowired
48 48
     private ICameraService cameraService;
49 49
 
50
+    @Autowired
51
+    ITaCustomerService iTaCustomerService;
52
+
50 53
     @ApiOperation(value = "新增人员", notes = "新增人员")
51 54
     @ApiImplicitParams({
52 55
             @ApiImplicitParam(paramType = "body", dataType = "TaPerson", name = "taPerson", value = "人员详情")
@@ -85,6 +88,11 @@ public class TaPersonController extends BaseController {
85 88
             return responseBean;
86 89
         }
87 90
 
91
+        // 如果是将VIP更新为工作人员, 需要在客户列表中取消
92
+        if (taPerson.getTypeId() == 2) {
93
+            iTaCustomerService.deleteCustOfPerson(taPerson.getPersonId(), taPerson.getRealId());
94
+        }
95
+
88 96
         return responseBean;
89 97
     }
90 98
 

+ 2
- 1
src/main/java/com.huiju.welcome/controller/TaWechatUserController.java View File

@@ -12,6 +12,7 @@ import com.huiju.welcome.model.TaWechatUser;
12 12
 import com.huiju.welcome.service.ISysUserService;
13 13
 import com.huiju.welcome.service.ITaPersonService;
14 14
 import com.huiju.welcome.service.ITaWechatUserService;
15
+import com.huiju.welcome.utils.CommConstant;
15 16
 import com.huiju.welcome.utils.JWTUtils;
16 17
 import com.huiju.welcome.utils.MiniApp;
17 18
 import com.huiju.welcome.utils.StatusUtils;
@@ -78,7 +79,7 @@ public class TaWechatUserController extends BaseController {
78 79
             // 否则新增用户数据
79 80
             taWechatUser = new TaWechatUser();
80 81
             taWechatUser.setAppid(appid);
81
-            taWechatUser.setClientType("miniapp");
82
+            taWechatUser.setClientType(CommConstant.WECHAT_CLIENT_MINIAPP);
82 83
             taWechatUser.setOpenid(openid);
83 84
             taWechatUser.setUnionId(unionId);
84 85
             taWechatUser.setStatus(StatusUtils.Normal);

+ 2
- 0
src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java View File

@@ -3,6 +3,7 @@ package com.huiju.welcome.mapper;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.welcome.model.TaCustomer;
5 5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6 7
 
7 8
 /**
8 9
  * <p>
@@ -15,4 +16,5 @@ import org.apache.ibatis.annotations.Mapper;
15 16
 @Mapper
16 17
 public interface TaCustomerMapper extends BaseMapper<TaCustomer> {
17 18
 
19
+    TaCustomer getCustomerOf(@Param("personId") Integer personId, @Param("realId") Integer realId);
18 20
 }

+ 4
- 0
src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java View File

@@ -6,6 +6,8 @@ import com.huiju.welcome.model.TaMainUsherRecord;
6 6
 import org.apache.ibatis.annotations.Mapper;
7 7
 import org.apache.ibatis.annotations.Param;
8 8
 
9
+import java.time.LocalDateTime;
10
+import java.util.List;
9 11
 import java.util.Map;
10 12
 
11 13
 /**
@@ -26,4 +28,6 @@ public interface TaMainUsherRecordMapper extends BaseMapper<TaMainUsherRecord> {
26 28
      * @return
27 29
      */
28 30
     IPage<TaMainUsherRecord> aMainUsherRecordList(IPage<TaMainUsherRecord> pg);
31
+
32
+    List<TaMainUsherRecord> getLastList(@Param("personId") Integer personId, @Param("dt") LocalDateTime dt);
29 33
 }

+ 19
- 0
src/main/java/com.huiju.welcome/mapper/TaMessageRecordMapper.java View File

@@ -0,0 +1,19 @@
1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.welcome.model.TaMessageRecord;
5
+import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+import java.time.LocalDateTime;
9
+import java.util.List;
10
+
11
+/**
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-10
15
+ */
16
+@Mapper
17
+public interface TaMessageRecordMapper extends BaseMapper<TaMessageRecord> {
18
+    List<TaMessageRecord> getLastSameMessages(@Param("receiver") String receiver, @Param("link") String link, @Param("content") String content, @Param("dt") LocalDateTime dt);
19
+}

+ 18
- 0
src/main/java/com.huiju.welcome/mapper/TaMiniFormidsMapper.java View File

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

+ 2
- 1
src/main/java/com.huiju.welcome/mapper/TaWechatUserMapper.java View File

@@ -3,6 +3,7 @@ package com.huiju.welcome.mapper;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.welcome.model.TaWechatUser;
5 5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6 7
 
7 8
 /**
8 9
  * <p>
@@ -14,5 +15,5 @@ import org.apache.ibatis.annotations.Mapper;
14 15
  */
15 16
 @Mapper
16 17
 public interface TaWechatUserMapper extends BaseMapper<TaWechatUser> {
17
-
18
+    String getOpenidOf(@Param("personId") Integer personId, @Param("clientType") String clientType);
18 19
 }

+ 45
- 0
src/main/java/com.huiju.welcome/model/TaMessageRecord.java View File

@@ -0,0 +1,45 @@
1
+package com.huiju.welcome.model;
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.time.LocalDateTime;
10
+
11
+@Data
12
+@EqualsAndHashCode(callSuper = false)
13
+@Accessors(chain = true)
14
+public class TaMessageRecord {
15
+
16
+    private static final long serialVersionUID = 1L;
17
+
18
+    @TableId(value = "serial_no", type = IdType.AUTO)
19
+    private Integer serialNo;
20
+
21
+    /**
22
+     * receiver;
23
+     */
24
+    private String receiver;
25
+
26
+    /**
27
+     * link
28
+     */
29
+    private String link;
30
+
31
+    /**
32
+     * content
33
+     */
34
+    private String content;
35
+
36
+    /**
37
+     * tplId
38
+     */
39
+    private String tplId;
40
+
41
+    /**
42
+     * 时间
43
+     */
44
+    private LocalDateTime createDate;
45
+}

+ 37
- 0
src/main/java/com.huiju.welcome/model/TaMiniFormids.java View File

@@ -0,0 +1,37 @@
1
+package com.huiju.welcome.model;
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.time.LocalDateTime;
10
+
11
+@Data
12
+@EqualsAndHashCode(callSuper = false)
13
+@Accessors(chain = true)
14
+public class TaMiniFormids {
15
+
16
+    private static final long serialVersionUID = 1L;
17
+
18
+    @TableId(value = "serial_no", type = IdType.AUTO)
19
+    private Integer serialNo;
20
+
21
+    /**
22
+     * openid;
23
+     */
24
+    private String openid;
25
+
26
+
27
+    /**
28
+     * 表单id
29
+     */
30
+    private String formid;
31
+
32
+
33
+    /**
34
+     * 点赞时间
35
+     */
36
+    private LocalDateTime createDate;
37
+}

+ 5
- 1
src/main/java/com.huiju.welcome/service/ITaCustomerService.java View File

@@ -17,9 +17,13 @@ import java.util.Map;
17 17
  */
18 18
 public interface ITaCustomerService extends IService<TaCustomer> {
19 19
 
20
-    void newVisitRecord(TaMainUsherRecord taMainUsherRecord) throws Exception;
20
+    TaCustomer newVisitRecord(TaMainUsherRecord taMainUsherRecord) throws Exception;
21 21
 
22 22
     List<TaPerson> getGroup(Integer customerId);
23 23
 
24 24
     Map<String, Object> getLastVisitInfo(Integer customerId);
25
+
26
+    void judgeNewCust(TaPerson taPerson) throws Exception;
27
+
28
+    void deleteCustOfPerson(Integer personId, Integer realId);
25 29
 }

+ 0
- 1
src/main/java/com.huiju.welcome/service/ITaFollowupRecordService.java View File

@@ -1,6 +1,5 @@
1 1
 package com.huiju.welcome.service;
2 2
 
3
-import com.alibaba.fastjson.JSONArray;
4 3
 import com.baomidou.mybatisplus.extension.service.IService;
5 4
 import com.huiju.welcome.model.TaFollowupRecord;
6 5
 

+ 6
- 2
src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java View File

@@ -18,12 +18,16 @@ import java.util.List;
18 18
 public interface ITaMainUsherRecordService extends IService<TaMainUsherRecord> {
19 19
 
20 20
     boolean updateNormal(List<TaMainUsherRecord> recs);
21
-
22
-    boolean newRecordByFront(TaCustomer taCustomer);
23 21
     /**
24 22
      * 分页查询大厅记录
25 23
      * @param pg
26 24
      * @return
27 25
      */
28 26
     IPage<TaMainUsherRecord> taMainUsherRecordList(IPage<TaMainUsherRecord> pg);
27
+
28
+    void notifyConsultant(TaMainUsherRecord taMainUsherRecord, TaCustomer taCustomer) throws Exception;
29
+
30
+    boolean newRecordByDevice(TaCustomer taCustomer);
31
+
32
+    boolean newRecordByConsultant(TaCustomer taCustomer);
29 33
 }

+ 10
- 0
src/main/java/com.huiju.welcome/service/ITaMessageRecordService.java View File

@@ -0,0 +1,10 @@
1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.model.TaMessageRecord;
5
+
6
+import java.util.List;
7
+
8
+public interface ITaMessageRecordService extends IService<TaMessageRecord> {
9
+    boolean saveMessageOrNot(String toUser, String tplId, String page, List<Object> data);
10
+}

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

@@ -0,0 +1,11 @@
1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.common.base.ResponseBean;
5
+import com.huiju.welcome.model.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
+}

+ 11
- 17
src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java View File

@@ -1,6 +1,8 @@
1 1
 package com.huiju.welcome.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.huiju.welcome.common.Action;
5
+import com.huiju.welcome.common.WebSocketServer;
4 6
 import com.huiju.welcome.model.TaDevice;
5 7
 import com.huiju.welcome.model.TaPerson;
6 8
 import com.huiju.welcome.service.ICameraService;
@@ -13,7 +15,9 @@ import org.springframework.stereotype.Service;
13 15
 import java.net.HttpURLConnection;
14 16
 import java.net.URL;
15 17
 import java.util.Arrays;
18
+import java.util.HashMap;
16 19
 import java.util.List;
20
+import java.util.Map;
17 21
 
18 22
 @Service
19 23
 public class CameraServiceImpl implements ICameraService {
@@ -34,23 +38,13 @@ public class CameraServiceImpl implements ICameraService {
34 38
         //分发人脸到各个相机
35 39
         for(TaDevice device: taDeviceList) {
36 40
             try {
37
-                String api = device.getApi() + "/person/" + taPerson.getPersonId();
38
-                byte[] data = ("image=" + Encrypt.urlEncode(taPerson.getAvatar())).getBytes("UTF-8");
39
-
40
-                HttpURLConnection conn = (HttpURLConnection) new URL(api).openConnection();
41
-                conn.setRequestMethod("POST");
42
-                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
43
-                conn.setRequestProperty("Content-Length", String.valueOf(data.length));
44
-                conn.setDoInput(true);
45
-                conn.setDoOutput(true);
46
-                conn.setUseCaches(false);
47
-                conn.getOutputStream().write(data);
48
-
49
-                if (conn.getResponseCode() == 200) {
50
-                    System.out.println("========下发人脸完成=======");
51
-                } else {
52
-                    System.out.println("========下发人脸失败=======" + conn.getResponseMessage());
53
-                }
41
+                Map<String, Object> payload = new HashMap<>();
42
+                payload.put("personId", taPerson.getPersonId());
43
+                payload.put("image", taPerson.getAvatar());
44
+
45
+                Action act = Action.create(Action.TYPE_DISPATCH_FACE, payload);
46
+
47
+                WebSocketServer.sendInfo(act.toJSON(), "device", device.getDeviceId());
54 48
             } catch (Exception e){
55 49
                 e.printStackTrace();
56 50
                 return "连接设备(" + device.getDeviceId() + ")人脸下发服务 失败: "+ e.getMessage();

+ 115
- 33
src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java View File

@@ -1,17 +1,19 @@
1 1
 package com.huiju.welcome.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4 5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5 6
 import com.huiju.welcome.mapper.TaCustomerMapMapper;
6 7
 import com.huiju.welcome.mapper.TaCustomerMapper;
7 8
 import com.huiju.welcome.mapper.TaMainUsherRecordMapper;
8
-import com.huiju.welcome.mapper.TaPersonMapper;
9 9
 import com.huiju.welcome.model.TaCustomer;
10 10
 import com.huiju.welcome.model.TaCustomerMap;
11 11
 import com.huiju.welcome.model.TaMainUsherRecord;
12 12
 import com.huiju.welcome.model.TaPerson;
13 13
 import com.huiju.welcome.service.ITaCustomerService;
14
+import com.huiju.welcome.service.ITaMainUsherRecordService;
14 15
 import com.huiju.welcome.service.ITaPersonService;
16
+import com.huiju.welcome.utils.MiniApp;
15 17
 import com.huiju.welcome.utils.StatusUtils;
16 18
 import org.springframework.beans.factory.annotation.Autowired;
17 19
 import org.springframework.stereotype.Service;
@@ -42,9 +44,14 @@ public class TaCustomerServiceImpl extends ServiceImpl<TaCustomerMapper, TaCusto
42 44
     @Autowired
43 45
     ITaPersonService iTaPersonService;
44 46
 
47
+    @Autowired
48
+    ITaMainUsherRecordService iTaMainUsherRecordService;
49
+
50
+    @Autowired
51
+    MiniApp miniApp;
52
+
45 53
     @Override
46
-    public void newVisitRecord(TaMainUsherRecord taMainUsherRecord) throws Exception {
47
-        Integer custId = taMainUsherRecord.getCustomerId();
54
+    public TaCustomer newVisitRecord(TaMainUsherRecord taMainUsherRecord) throws Exception {
48 55
         Integer personId = taMainUsherRecord.getPersonId();
49 56
         if (null == personId) {
50 57
             TaPerson taPerson = iTaPersonService.newPersonByUsher(taMainUsherRecord);
@@ -52,47 +59,31 @@ public class TaCustomerServiceImpl extends ServiceImpl<TaCustomerMapper, TaCusto
52 59
             taMainUsherRecord.setPersonId(personId);
53 60
         }
54 61
 
55
-        TaCustomerMap taCustomerMap = taCustomerMapMapper.getCustomerOf(personId);
56
-        if (null == taCustomerMap) {
57
-            TaCustomer cust = new TaCustomer();
58
-            cust.setCustomerId(taMainUsherRecord.getPersonId());
59
-            cust.setCustomerName(taMainUsherRecord.getPersonName());
60
-            cust.setSex(taMainUsherRecord.getSex());
61
-            cust.setPhone(taMainUsherRecord.getPhone());
62
-            cust.setAvatar(taMainUsherRecord.getAvatar());
63
-            cust.setPlateNumber(taMainUsherRecord.getPlateNumber());
64
-            cust.setCarModel(taMainUsherRecord.getCarModel());
65
-            cust.setChannel(taMainUsherRecord.getChannel());
66
-            cust.setPurpose(taMainUsherRecord.getPurpose());
67
-            cust.setConsultantId(taMainUsherRecord.getConsultantId());
68
-            cust.setRealtyConsultant(taMainUsherRecord.getRealtyConsultant());
69
-            cust.setStatus(StatusUtils.Normal);
70
-            cust.setCreateDate(LocalDateTime.now());
71
-
72
-            int row = taCustomerMapper.insert(cust);
73
-            if (row <= 0) {
62
+        Integer custId = taMainUsherRecord.getCustomerId();
63
+        TaCustomer cust;
64
+        if (null == custId) {
65
+            cust = newCustomerFromMainUsher(taMainUsherRecord);
66
+            if (null == cust) {
74 67
                 throw new Exception("生成置业客户失败");
75 68
             }
69
+            taMainUsherRecord.setCustomerId(cust.getCustomerId());
70
+        } else {
71
+            cust = taCustomerMapper.selectById(custId);
72
+        }
76 73
 
77
-            // 反向写入来访记录
78
-            if (null == custId || custId.intValue() == 0) {
79
-                taMainUsherRecord.setCustomerId(cust.getCustomerId());
80
-            }
81
-
74
+        TaCustomerMap taCustomerMap = taCustomerMapMapper.getCustomerOf(personId);
75
+        if (null == taCustomerMap) {
82 76
             TaCustomerMap custMap = new TaCustomerMap();
83 77
             custMap.setCustomerId(cust.getCustomerId());
84 78
             custMap.setPersonId(taMainUsherRecord.getPersonId());
85 79
 
86
-            row = taCustomerMapMapper.insert(custMap);
80
+            int row = taCustomerMapMapper.insert(custMap);
87 81
             if (row <= 0) {
88 82
                 throw new Exception("生成置业客户映射失败");
89 83
             }
90
-        } else {
91
-            // 反向写入来访记录
92
-            if (null == custId || custId.intValue() == 0) {
93
-                taMainUsherRecord.setCustomerId(taCustomerMap.getCustomerId());
94
-            }
95 84
         }
85
+
86
+        return cust;
96 87
     }
97 88
 
98 89
     @Override
@@ -105,4 +96,95 @@ public class TaCustomerServiceImpl extends ServiceImpl<TaCustomerMapper, TaCusto
105 96
         return taMainUsherRecordMapper.getSummaryOfCustomer(customerId);
106 97
     }
107 98
 
99
+    @Override
100
+    public void judgeNewCust(TaPerson taPerson) throws Exception {
101
+        // 首先判定这个人 2 小时内是否来访过
102
+        LocalDateTime dt = LocalDateTime.now().minusHours(2);
103
+        List<TaMainUsherRecord> lastList = taMainUsherRecordMapper.getLastList(taPerson.getPersonId(), dt);
104
+        if (null != lastList && lastList.size() > 0) return;
105
+
106
+        LocalDateTime now = LocalDateTime.now();
107
+
108
+        // 查询是否有映射客户 - 如果有多个映射客户, 先随机取一条
109
+        // 暂时没有找到好的替代方案
110
+        TaCustomer taCustomer = taCustomerMapper.getCustomerOf(taPerson.getPersonId(), taPerson.getRealId());
111
+
112
+        // 如果是新人过来
113
+        if (null == taCustomer) {
114
+            taCustomer = newCustomerByPerson(taPerson);
115
+        }
116
+
117
+        // 新增前台记录
118
+        iTaMainUsherRecordService.newRecordByDevice(taCustomer);
119
+
120
+        return;
121
+    }
122
+
123
+    @Override
124
+    public void deleteCustOfPerson(Integer personId, Integer realId) {
125
+        // 删除映射表
126
+        QueryWrapper<TaCustomerMap> queryWrapper = new QueryWrapper<>();
127
+        queryWrapper.eq("person_id", personId).or().eq("person_id", realId);
128
+        taCustomerMapMapper.delete(queryWrapper);
129
+
130
+        // 删除客户表, 更新状态为删除
131
+        // 默认客户ID 与人员ID是一致的
132
+        UpdateWrapper<TaCustomer> updateWrapper = new UpdateWrapper<>();
133
+        updateWrapper.set("status", StatusUtils.Delete);
134
+        updateWrapper.eq("customer_id", personId).or().eq("customer_id", realId);
135
+        taCustomerMapper.update(new TaCustomer(), updateWrapper);
136
+    }
137
+
138
+    private TaCustomer newCustomerByPerson(TaPerson taPerson) throws Exception {
139
+        TaCustomer taCustomer = new TaCustomer();
140
+        taCustomer.setCustomerId(taPerson.getRealId());
141
+        taCustomer.setAvatar(taPerson.getAvatar());
142
+        taCustomer.setPhone(taPerson.getPhone());
143
+//            taCustomer.setSex(taPerson.getSex());
144
+        taCustomer.setCustomerName(taPerson.getName());
145
+        taCustomer.setCreateDate(LocalDateTime.now());
146
+        taCustomer.setStatus(StatusUtils.Normal);
147
+        int row = taCustomerMapper.insert(taCustomer);
148
+
149
+        if (row < 1) {
150
+            throw new Exception("新增客户信息失败");
151
+        }
152
+
153
+        int mapsNum = taPerson.getPersonId().equals(taPerson.getRealId()) ? 1 : 2;
154
+
155
+        for (int i = 0; i < mapsNum; i ++) {
156
+            TaCustomerMap custMap = new TaCustomerMap();
157
+            custMap.setPersonId(i == 0 ? taPerson.getRealId() : taPerson.getPersonId());
158
+            custMap.setCustomerId(taCustomer.getCustomerId());
159
+            row = taCustomerMapMapper.insert(custMap);
160
+            if (row < 1) {
161
+                throw new Exception("新增客户映射信息失败");
162
+            }
163
+        }
164
+
165
+        return taCustomer;
166
+    }
167
+
168
+    private TaCustomer newCustomerFromMainUsher(TaMainUsherRecord taMainUsherRecord) {
169
+        TaCustomer taCustomer = new TaCustomer();
170
+        taCustomer.setCustomerId(taMainUsherRecord.getPersonId());       // 默认客户ID与人员ID一致
171
+        taCustomer.setCustomerName(taMainUsherRecord.getPersonName());
172
+        taCustomer.setSex(taMainUsherRecord.getSex());
173
+        taCustomer.setPhone(taMainUsherRecord.getPhone());
174
+        taCustomer.setAvatar(taMainUsherRecord.getAvatar());
175
+        taCustomer.setPlateNumber(taMainUsherRecord.getPlateNumber());
176
+        taCustomer.setCarModel(taMainUsherRecord.getCarModel());
177
+        taCustomer.setChannel(taMainUsherRecord.getChannel());
178
+        taCustomer.setPurpose(taMainUsherRecord.getPurpose());
179
+        taCustomer.setConsultantId(taMainUsherRecord.getConsultantId());
180
+        taCustomer.setRealtyConsultant(taMainUsherRecord.getRealtyConsultant());
181
+        taCustomer.setStatus(StatusUtils.Normal);
182
+        taCustomer.setCreateDate(LocalDateTime.now());
183
+
184
+        int row = taCustomerMapper.insert(taCustomer);
185
+        if (row < 1) return null;
186
+
187
+        return taCustomer;
188
+    }
189
+
108 190
 }

+ 109
- 9
src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java View File

@@ -1,14 +1,21 @@
1 1
 package com.huiju.welcome.service.impl;
2 2
 
3
+import com.alibaba.fastjson.JSONObject;
3 4
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4 5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import com.huiju.welcome.common.Action;
8
+import com.huiju.welcome.common.WebSocketServer;
9
+import com.huiju.welcome.mapper.SysUserMapper;
6 10
 import com.huiju.welcome.mapper.TaMainUsherRecordMapper;
7
-import com.huiju.welcome.model.TaCustomer;
8
-import com.huiju.welcome.model.TaFirstUsherRecord;
9
-import com.huiju.welcome.model.TaMainUsherRecord;
11
+import com.huiju.welcome.mapper.TaVisitorAppointmentMapper;
12
+import com.huiju.welcome.mapper.TaWechatUserMapper;
13
+import com.huiju.welcome.model.*;
10 14
 import com.huiju.welcome.service.ITaMainUsherRecordService;
15
+import com.huiju.welcome.utils.CommConstant;
16
+import com.huiju.welcome.utils.MiniApp;
11 17
 import com.huiju.welcome.utils.StatusUtils;
18
+import com.huiju.welcome.utils.StringUtils;
12 19
 import org.springframework.beans.factory.annotation.Autowired;
13 20
 import org.springframework.stereotype.Service;
14 21
 
@@ -29,6 +36,18 @@ public class TaMainUsherRecordServiceImpl extends ServiceImpl<TaMainUsherRecordM
29 36
     @Autowired
30 37
     TaMainUsherRecordMapper taMainUsherRecordMapper;
31 38
 
39
+    @Autowired
40
+    TaVisitorAppointmentMapper taVisitorAppointmentMapper;
41
+
42
+    @Autowired
43
+    TaWechatUserMapper taWechatUserMapper;
44
+
45
+    @Autowired
46
+    SysUserMapper sysUserMapper;
47
+
48
+    @Autowired
49
+    MiniApp miniApp;
50
+
32 51
     @Override
33 52
     public boolean updateNormal(List<TaMainUsherRecord> records) {
34 53
         if (records == null || records.size() == 0) return true;
@@ -47,7 +66,34 @@ public class TaMainUsherRecordServiceImpl extends ServiceImpl<TaMainUsherRecordM
47 66
     }
48 67
 
49 68
     @Override
50
-    public boolean newRecordByFront(TaCustomer taCustomer) {
69
+    public boolean newRecordByDevice(TaCustomer taCustomer) {
70
+        TaMainUsherRecord taMainUsherRecord = newRecordByCust(taCustomer);
71
+        int row = taMainUsherRecordMapper.insert(taMainUsherRecord);
72
+
73
+        try {
74
+            Action act = Action.create(Action.TYPE_NEW_MAIN_USHER, JSONObject.toJSONString(taMainUsherRecord));
75
+            WebSocketServer.sendInfo(act.toJSON(), "miniapp", null);
76
+        } catch (Exception e) {}
77
+
78
+        // 通知对应的置业
79
+        if (null != taCustomer.getConsultantId()) {
80
+            try {
81
+                notifyConsultant(taMainUsherRecord, taCustomer);
82
+            } catch (Exception e) {}
83
+        }
84
+
85
+        return row > 0;
86
+    }
87
+
88
+    @Override
89
+    public boolean newRecordByConsultant(TaCustomer taCustomer) {
90
+        TaMainUsherRecord taMainUsherRecord = newRecordByCust(taCustomer);
91
+        int row = taMainUsherRecordMapper.insert(taMainUsherRecord);
92
+
93
+        return row > 0;
94
+    }
95
+
96
+    private TaMainUsherRecord newRecordByCust(TaCustomer taCustomer) {
51 97
         TaMainUsherRecord taMainUsherRecord = new TaMainUsherRecord();
52 98
         taMainUsherRecord.setCustomerId(taCustomer.getCustomerId());
53 99
         taMainUsherRecord.setAppointment(taCustomer.getApointment());
@@ -57,15 +103,69 @@ public class TaMainUsherRecordServiceImpl extends ServiceImpl<TaMainUsherRecordM
57 103
         taMainUsherRecord.setPlateNumber(taCustomer.getPlateNumber());
58 104
         taMainUsherRecord.setVisiteDate(LocalDateTime.now());
59 105
         taMainUsherRecord.setStatus(StatusUtils.Normal);
60
-
61
-        int row = taMainUsherRecordMapper.insert(taMainUsherRecord);
62
-
63
-        return row > 0;
106
+        return taMainUsherRecord;
64 107
     }
65
-    
108
+
66 109
     @Override
67 110
     public IPage<TaMainUsherRecord> taMainUsherRecordList(IPage<TaMainUsherRecord> pg) {
68 111
         IPage<TaMainUsherRecord>  taMainUsherRecordList= taMainUsherRecordMapper.aMainUsherRecordList(pg);
69 112
         return taMainUsherRecordList;
70 113
     }
114
+
115
+    @Override
116
+    public void notifyConsultant(TaMainUsherRecord taMainUsherRecord, TaCustomer taCustomer) throws Exception {
117
+        Integer realConsultant = taCustomer.getConsultantId();
118
+        Integer proxyConsultant = taMainUsherRecord.getConsultantId();
119
+
120
+        // 查找置业微信ID
121
+        String openid = taWechatUserMapper.getOpenidOf(proxyConsultant, CommConstant.WECHAT_CLIENT_MINIAPP);
122
+        if (StringUtils.isEmpty(openid)) {
123
+            throw new Exception("置业尚未绑定微信小程序");
124
+        };
125
+
126
+        String visitorName = taMainUsherRecord.getPersonName();
127
+        String phone = taMainUsherRecord.getPhone();
128
+        Integer customerId = taMainUsherRecord.getCustomerId();
129
+
130
+        String page = CommConstant.PAGE_MY_CUSTOMER + "?id=" + String.valueOf(customerId);
131
+        String tplId = miniApp.getTpls().getVisitor();
132
+
133
+        // 如果是客户对应的置业进行接待
134
+        if (realConsultant.equals(proxyConsultant)) {
135
+            List<Object> data = new ArrayList<Object>(){{
136
+                add(visitorName);
137
+                add(phone);
138
+                add("您有新客户来访, 请及时接待!");
139
+            }};
140
+
141
+            miniApp.sendTPLMessage(tplId, openid, page, data);
142
+        } else {
143
+            // 否则, 给原置业发消息, 给接待置业发消息
144
+
145
+            // 原绑定置业消息
146
+            String rcOpenid = taWechatUserMapper.getOpenidOf(realConsultant, CommConstant.WECHAT_CLIENT_MINIAPP);
147
+            if (StringUtils.isEmpty(openid)) {
148
+                throw new Exception("置业尚未绑定微信小程序");
149
+            };
150
+
151
+            SysUser usr1 = sysUserMapper.selectById(proxyConsultant);
152
+            List<Object> dt1 = new ArrayList<Object>(){{
153
+                add(visitorName);
154
+                add(phone);
155
+                add("您有新客户来访, 已被安排给 " + usr1.getUsername() + " 接待!");
156
+            }};
157
+            miniApp.sendTPLMessage(tplId, rcOpenid, page, dt1);
158
+
159
+
160
+
161
+            // 代理置业
162
+            SysUser usr2 = sysUserMapper.selectById(realConsultant);
163
+            List<Object> dt2 = new ArrayList<Object>(){{
164
+                add(visitorName);
165
+                add(phone);
166
+                add(usr2.getUsername() + " 有新客户来访, 请协助接待一下!");
167
+            }};
168
+            miniApp.sendTPLMessage(tplId, openid, page, dt2);
169
+        }
170
+    }
71 171
 }

+ 39
- 0
src/main/java/com.huiju.welcome/service/impl/TaMessageRecordImpl.java View File

@@ -0,0 +1,39 @@
1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.huiju.welcome.mapper.TaMessageRecordMapper;
6
+import com.huiju.welcome.model.TaMessageRecord;
7
+import com.huiju.welcome.service.ITaMessageRecordService;
8
+import org.springframework.beans.factory.annotation.Autowired;
9
+import org.springframework.stereotype.Service;
10
+
11
+import java.time.LocalDateTime;
12
+import java.util.List;
13
+
14
+@Service
15
+public class TaMessageRecordImpl extends ServiceImpl<TaMessageRecordMapper, TaMessageRecord> implements ITaMessageRecordService {
16
+
17
+    @Autowired
18
+    TaMessageRecordMapper taMessageRecordMapper;
19
+
20
+    @Override
21
+    public boolean saveMessageOrNot(String toUser, String tplId, String page, List<Object> data) {
22
+        String content = JSONObject.toJSONString(data);
23
+        LocalDateTime now = LocalDateTime.now();
24
+        LocalDateTime twoHourAgo = now.minusHours(2);
25
+
26
+        List<TaMessageRecord> lastMessages = taMessageRecordMapper.getLastSameMessages(toUser, page, content, twoHourAgo);
27
+        if (null != lastMessages && lastMessages.size() > 0) return false;
28
+
29
+        TaMessageRecord record = new TaMessageRecord();
30
+        record.setReceiver(toUser);
31
+        record.setTplId(tplId);
32
+        record.setLink(page);
33
+        record.setContent(content);
34
+        record.setCreateDate(now);
35
+        taMessageRecordMapper.insert(record);
36
+
37
+        return true;
38
+    }
39
+}

+ 52
- 0
src/main/java/com.huiju.welcome/service/impl/TaMiniFormidsImpl.java View File

@@ -0,0 +1,52 @@
1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.alibaba.fastjson.JSONArray;
4
+import com.alibaba.fastjson.JSONObject;
5
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import com.huiju.welcome.common.base.ResponseBean;
8
+import com.huiju.welcome.mapper.TaMiniFormidsMapper;
9
+import com.huiju.welcome.model.TaMiniFormids;
10
+import com.huiju.welcome.service.ITaMiniFormidsService;
11
+import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.stereotype.Service;
13
+
14
+import java.time.LocalDateTime;
15
+
16
+@Service
17
+public class TaMiniFormidsImpl extends ServiceImpl<TaMiniFormidsMapper, TaMiniFormids> implements ITaMiniFormidsService {
18
+
19
+    @Autowired
20
+    TaMiniFormidsMapper taMiniFormidsMapper;
21
+
22
+    @Override
23
+    public ResponseBean saveFormidBy(String openid, String paramsStr) {
24
+        JSONObject params = JSONObject.parseObject(paramsStr);
25
+        JSONArray formids = params.getJSONArray("formids");
26
+
27
+        for (Object formid: formids) {
28
+            TaMiniFormids taMiniFormids = new TaMiniFormids();
29
+            taMiniFormids.setOpenid(openid);
30
+            taMiniFormids.setFormid(formid.toString());
31
+            taMiniFormids.setCreateDate(LocalDateTime.now());
32
+            taMiniFormidsMapper.insert(taMiniFormids);
33
+        }
34
+
35
+        return ResponseBean.success("");
36
+    }
37
+
38
+    @Override
39
+    public String getFormidBy(String openid, boolean... delete) {
40
+        TaMiniFormids taMiniFormids = taMiniFormidsMapper.getFormidCanUse(openid);
41
+
42
+        if (null != delete && delete.length > 0 && delete[0]) {
43
+            QueryWrapper<TaMiniFormids> wrapper = new QueryWrapper<>();
44
+            wrapper.eq("openid", openid);
45
+            wrapper.eq("formid", taMiniFormids.getFormid());
46
+
47
+            taMiniFormidsMapper.delete(wrapper);
48
+        }
49
+
50
+        return taMiniFormids.getFormid();
51
+    }
52
+}

+ 4
- 0
src/main/java/com.huiju.welcome/utils/CommConstant.java View File

@@ -4,4 +4,8 @@ public class CommConstant {
4 4
     public final static String IDENTITY_CONSULTANT = "consultant";
5 5
     public final static String IDENTITY_FIRSTUSHER = "first-usher";
6 6
     public final static String IDENTITY_MAINUSHER = "main-usher";
7
+
8
+    public final static String PAGE_MY_CUSTOMER = "";
9
+
10
+    public final static String WECHAT_CLIENT_MINIAPP = "miniapp";
7 11
 }

+ 21
- 1
src/main/java/com.huiju.welcome/utils/MiniApp.java View File

@@ -2,10 +2,13 @@ package com.huiju.welcome.utils;
2 2
 
3 3
 import com.alibaba.fastjson.JSONObject;
4 4
 import com.huiju.welcome.common.base.ResponseBean;
5
+import com.huiju.welcome.service.ITaMessageRecordService;
6
+import com.huiju.welcome.service.ITaMiniFormidsService;
5 7
 import lombok.Data;
6 8
 import org.apache.http.HttpStatus;
7 9
 import org.slf4j.Logger;
8 10
 import org.slf4j.LoggerFactory;
11
+import org.springframework.beans.factory.annotation.Autowired;
9 12
 import org.springframework.beans.factory.annotation.Value;
10 13
 import org.springframework.boot.context.properties.ConfigurationProperties;
11 14
 import org.springframework.http.HttpEntity;
@@ -25,12 +28,20 @@ import java.util.Map;
25 28
 public class MiniApp {
26 29
     private Logger log = LoggerFactory.getLogger(MiniApp.class);
27 30
 
31
+    @Autowired
32
+    ITaMiniFormidsService iTaMiniFormidsService;
33
+
34
+    @Autowired
35
+    ITaMessageRecordService iTaMessageRecordService;
36
+
28 37
     private String url;
29 38
 
30 39
     private String appid;
31 40
 
32 41
     private String secret;
33 42
 
43
+    private Tpl tpls;
44
+
34 45
 
35 46
     public ResponseBean getOpenid(String code) {
36 47
         String api = url + "/" + appid + "/login?code=" + code;
@@ -48,7 +59,11 @@ public class MiniApp {
48 59
         return ResponseBean.success(result.getJSONObject("data"));
49 60
     }
50 61
 
51
-    public ResponseBean sendTPLMessage(String tplId, String formId, String toUser, String page, List<Object> data) {
62
+    public ResponseBean sendTPLMessage(String tplId, String toUser, String page, List<Object> data) {
63
+        boolean needSend = iTaMessageRecordService.saveMessageOrNot(toUser, tplId, page, data);
64
+        if (!needSend) return ResponseBean.success("");
65
+
66
+        String formId = iTaMiniFormidsService.getFormidBy(toUser, true);
52 67
         String api = String.format("/api/%s/tpl/%s/form/%s/to/%s", appid, tplId, formId, toUser);
53 68
 
54 69
         HttpHeaders headers = new HttpHeaders();
@@ -71,4 +86,9 @@ public class MiniApp {
71 86
 
72 87
         return ResponseBean.success("");
73 88
     }
89
+
90
+    @Data
91
+    public static class Tpl {
92
+        private String visitor;
93
+    }
74 94
 }

+ 2
- 0
src/main/resources/application.yml View File

@@ -45,6 +45,8 @@ miniapp:
45 45
   url: http://47.101.36.130:8001/api/miniapp
46 46
   appid: wx3f26e5f48c72d39f
47 47
   secret: 03fcb0228ada1dd27ba45fb5a64c6f52
48
+  tpls:
49
+    visitor: m5fR2X1D-iWUurRe-pQQU8VgcxSSZ5eAVoquMixphFw
48 50
 
49 51
 # ali-cloud
50 52
 ali:

+ 17
- 0
src/main/resources/mapper/TaCustomerMapper.xml View File

@@ -1,4 +1,21 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.welcome.mapper.TaCustomerMapper">
4
+    <select id="getCustomerOf" resultType="com.huiju.welcome.model.TaCustomer">
5
+        SELECT
6
+            *
7
+        FROM
8
+            ta_customer t
9
+        WHERE
10
+            t.customer_id IN (
11
+                SELECT
12
+                    s.person_id
13
+                FROM
14
+                    ta_customer_map s
15
+                WHERE
16
+                    s.person_id = #{personId}
17
+                OR s.person_id = #{realId}
18
+            )
19
+            LIMIT 1
20
+    </select>
4 21
 </mapper>

+ 9
- 0
src/main/resources/mapper/TaMainUsherRecordMapper.xml View File

@@ -16,4 +16,13 @@
16 16
         FROM
17 17
         ta_main_usher_record
18 18
     </select>
19
+    <select id="getLastList" resultType="com.huiju.welcome.model.TaMainUsherRecord">
20
+        SELECT
21
+            *
22
+        FROM
23
+            ta_main_usher_record t
24
+        WHERE
25
+            t.person_id = #{personId}
26
+        AND t.visite_date &gt;= #{dt}
27
+    </select>
19 28
 </mapper>

+ 15
- 0
src/main/resources/mapper/TaMessageRecordMapper.xml View File

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.welcome.mapper.TaMessageRecordMapper">
4
+    <select id="getLastSameMessages" resultType="com.huiju.welcome.model.TaMessageRecord">
5
+        SELECT
6
+            *
7
+        FROM
8
+            ta_message_record t
9
+        WHERE
10
+            t.receiver = #{receiver}
11
+        AND t.link = #{link}
12
+        AND t.content = #{content}
13
+        AND t.create_date &gt;= #{dt}
14
+    </select>
15
+</mapper>

+ 15
- 0
src/main/resources/mapper/TaMiniFormidsMapper.xml View File

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.welcome.mapper.TaMiniFormidsMapper">
4
+    <select id="getFormidCanUse" resultType="com.huiju.welcome.model.TaMiniFormids">
5
+        SELECT
6
+            *
7
+        FROM
8
+            ta_mini_formids t
9
+        WHERE
10
+            t.openid = #{openid}
11
+        AND ADDDATE(t.create_date, INTERVAL 7 DAY) >= now()
12
+        ORDER BY t.create_date ASC
13
+        LIMIT 1
14
+    </select>
15
+</mapper>

+ 10
- 1
src/main/resources/mapper/TaWechatUserMapper.xml View File

@@ -1,5 +1,14 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.welcome.mapper.TaWechatUserMapper">
4
-
4
+    <select id="getOpenidOf" resultType="java.lang.String">
5
+        SELECT
6
+            t.openid
7
+        FROM
8
+            ta_wechat_user t
9
+        WHERE
10
+            t.person_id = #{personId}
11
+        AND t.client_type = #{clientType}
12
+        LIMIT 1
13
+    </select>
5 14
 </mapper>

+ 2
- 0
target/classes/application.yml View File

@@ -45,6 +45,8 @@ miniapp:
45 45
   url: http://47.101.36.130:8001/api/miniapp
46 46
   appid: wx3f26e5f48c72d39f
47 47
   secret: 03fcb0228ada1dd27ba45fb5a64c6f52
48
+  tpls:
49
+    visitor: m5fR2X1D-iWUurRe-pQQU8VgcxSSZ5eAVoquMixphFw
48 50
 
49 51
 # ali-cloud
50 52
 ali: