张延森 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
 <?xml version="1.0" encoding="UTF-8"?>
1
 <?xml version="1.0" encoding="UTF-8"?>
2
 <project version="4">
2
 <project version="4">
3
   <component name="BookmarkManager">
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
   </component>
5
   </component>
6
   <component name="ChangeListManager">
6
   <component name="ChangeListManager">
7
     <list default="true" id="5dd66384-19bf-43a0-b6b4-b05d9b7b9cd4" name="Default" comment="">
7
     <list default="true" id="5dd66384-19bf-43a0-b6b4-b05d9b7b9cd4" name="Default" comment="">
8
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
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
       <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" />
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
       <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" />
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
     </list>
32
     </list>
16
     <ignored path="$PROJECT_DIR$/target/" />
33
     <ignored path="$PROJECT_DIR$/target/" />
17
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
34
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
23
   </component>
40
   </component>
24
   <component name="FileEditorManager">
41
   <component name="FileEditorManager">
25
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
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
           <provider selected="true" editor-type-id="text-editor">
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
               <folding>
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
               </folding>
51
               </folding>
34
             </state>
52
             </state>
35
           </provider>
53
           </provider>
36
         </entry>
54
         </entry>
37
       </file>
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
           <provider selected="true" editor-type-id="text-editor">
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
             </state>
61
             </state>
107
           </provider>
62
           </provider>
108
         </entry>
63
         </entry>
109
       </file>
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
           <provider selected="true" editor-type-id="text-editor">
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
             </state>
70
             </state>
119
           </provider>
71
           </provider>
120
         </entry>
72
         </entry>
138
       <find>subDir</find>
90
       <find>subDir</find>
139
       <find>huiju.files</find>
91
       <find>huiju.files</find>
140
       <find>huijuFiles</find>
92
       <find>huijuFiles</find>
141
-      <find>getMultipartFile</find>
142
       <find>voice</find>
93
       <find>voice</find>
143
       <find>mybatis-plus</find>
94
       <find>mybatis-plus</find>
144
       <find>AccessInterceptor</find>
95
       <find>AccessInterceptor</find>
145
       <find>/taMainUsherRecord</find>
96
       <find>/taMainUsherRecord</find>
146
       <find>web</find>
97
       <find>web</find>
147
       <find>/wx/login</find>
98
       <find>/wx/login</find>
148
-      <find>sendInfo</find>
149
       <find>/taCarRecord</find>
99
       <find>/taCarRecord</find>
150
       <find>/taCustomerMap</find>
100
       <find>/taCustomerMap</find>
151
       <find>/taCustomer</find>
101
       <find>/taCustomer</find>
152
       <find>isSales</find>
102
       <find>isSales</find>
153
       <find>apointment</find>
103
       <find>apointment</find>
154
       <find>taFirstpageService.detail</find>
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
     </findStrings>
111
     </findStrings>
156
     <replaceStrings>
112
     <replaceStrings>
157
       <replace>com.huiju.welcome</replace>
113
       <replace>com.huiju.welcome</replace>
173
   <component name="IdeDocumentHistory">
129
   <component name="IdeDocumentHistory">
174
     <option name="CHANGED_PATHS">
130
     <option name="CHANGED_PATHS">
175
       <list>
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
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitingLogServiceImpl.java" />
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
         <option value="$PROJECT_DIR$/src/main/resources/mapper/TaCustomerMapMapper.xml" />
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
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java" />
134
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java" />
207
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java" />
135
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java" />
208
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaCustomer.java" />
136
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaCustomer.java" />
209
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFollowupRecordServiceImpl.java" />
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
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java" />
138
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java" />
215
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFirstpageService.java" />
139
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFirstpageService.java" />
216
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstpageServiceImpl.java" />
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
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstUsherRecordController.java" />
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
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java" />
142
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java" />
223
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaFirstUsherRecord.java" />
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
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java" />
144
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java" />
226
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java" />
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
       </list>
183
       </list>
228
     </option>
184
     </option>
229
   </component>
185
   </component>
284
       <foldersAlwaysOnTop value="true" />
240
       <foldersAlwaysOnTop value="true" />
285
     </navigator>
241
     </navigator>
286
     <panes>
242
     <panes>
243
+      <pane id="Scope" />
287
       <pane id="AndroidView" />
244
       <pane id="AndroidView" />
288
-      <pane id="PackagesPane" />
289
       <pane id="ProjectPane">
245
       <pane id="ProjectPane">
290
         <subPane>
246
         <subPane>
291
           <expand>
247
           <expand>
335
               <item name="main" type="462c0819:PsiDirectoryNode" />
291
               <item name="main" type="462c0819:PsiDirectoryNode" />
336
               <item name="java" type="462c0819:PsiDirectoryNode" />
292
               <item name="java" type="462c0819:PsiDirectoryNode" />
337
               <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
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
             </path>
295
             </path>
341
             <path>
296
             <path>
342
               <item name="service" type="b2602c69:ProjectViewProjectNode" />
297
               <item name="service" type="b2602c69:ProjectViewProjectNode" />
345
               <item name="main" type="462c0819:PsiDirectoryNode" />
300
               <item name="main" type="462c0819:PsiDirectoryNode" />
346
               <item name="java" type="462c0819:PsiDirectoryNode" />
301
               <item name="java" type="462c0819:PsiDirectoryNode" />
347
               <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
302
               <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
348
-              <item name="model" type="462c0819:PsiDirectoryNode" />
303
+              <item name="utils" type="462c0819:PsiDirectoryNode" />
349
             </path>
304
             </path>
350
             <path>
305
             <path>
351
               <item name="service" type="b2602c69:ProjectViewProjectNode" />
306
               <item name="service" type="b2602c69:ProjectViewProjectNode" />
354
               <item name="main" type="462c0819:PsiDirectoryNode" />
309
               <item name="main" type="462c0819:PsiDirectoryNode" />
355
               <item name="resources" type="462c0819:PsiDirectoryNode" />
310
               <item name="resources" type="462c0819:PsiDirectoryNode" />
356
             </path>
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
           </expand>
320
           </expand>
358
           <select />
321
           <select />
359
         </subPane>
322
         </subPane>
360
       </pane>
323
       </pane>
361
-      <pane id="Scope" />
324
+      <pane id="PackagesPane" />
362
     </panes>
325
     </panes>
363
   </component>
326
   </component>
364
   <component name="PropertiesComponent">
327
   <component name="PropertiesComponent">
393
       <recent name="com.huiju.welcome.service" />
356
       <recent name="com.huiju.welcome.service" />
394
       <recent name="com.huiju.welcome.mapper" />
357
       <recent name="com.huiju.welcome.mapper" />
395
       <recent name="com.huiju.welcome.model" />
358
       <recent name="com.huiju.welcome.model" />
396
-      <recent name="com.huiju.welcome.config" />
359
+      <recent name="com.huiju.welcome.controller" />
397
     </key>
360
     </key>
398
     <key name="CreateClassDialog.RecentsKey">
361
     <key name="CreateClassDialog.RecentsKey">
399
       <recent name="com.huiju.welcome.service.impl" />
362
       <recent name="com.huiju.welcome.service.impl" />
494
       <workItem from="1560349322476" duration="6394000" />
457
       <workItem from="1560349322476" duration="6394000" />
495
       <workItem from="1560411485381" duration="45888000" />
458
       <workItem from="1560411485381" duration="45888000" />
496
       <workItem from="1560923587540" duration="24987000" />
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
     </task>
463
     </task>
498
     <servers />
464
     <servers />
499
   </component>
465
   </component>
500
   <component name="TimeTrackingManager">
466
   <component name="TimeTrackingManager">
501
-    <option name="totallyTimeSpent" value="307284000" />
467
+    <option name="totallyTimeSpent" value="354986000" />
502
   </component>
468
   </component>
503
   <component name="ToolWindowManager">
469
   <component name="ToolWindowManager">
504
     <frame x="-8" y="-8" width="1936" height="1015" extended-state="6" />
470
     <frame x="-8" y="-8" width="1936" height="1015" extended-state="6" />
471
+    <editor active="true" />
505
     <layout>
472
     <layout>
506
       <window_info anchor="right" id="Palette" order="3" />
473
       <window_info anchor="right" id="Palette" order="3" />
507
       <window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.50096524" side_tool="true" weight="0.39953408" />
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
       <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
476
       <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
510
       <window_info id="Capture Tool" order="2" />
477
       <window_info id="Capture Tool" order="2" />
511
       <window_info id="Designer" order="2" />
478
       <window_info id="Designer" order="2" />
513
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
480
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
514
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
481
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
515
       <window_info id="UI Designer" order="2" />
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
       <window_info anchor="bottom" id="TODO" order="6" />
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
       <window_info anchor="right" id="Palette&#9;" order="3" />
486
       <window_info anchor="right" id="Palette&#9;" order="3" />
520
       <window_info id="Image Layers" order="2" />
487
       <window_info id="Image Layers" order="2" />
521
       <window_info anchor="bottom" id="Java Enterprise" order="7" />
488
       <window_info anchor="bottom" id="Java Enterprise" order="7" />
523
       <window_info anchor="bottom" id="Version Control" order="7" />
490
       <window_info anchor="bottom" id="Version Control" order="7" />
524
       <window_info anchor="bottom" id="Run" order="2" sideWeight="0.49903476" weight="0.45381984" />
491
       <window_info anchor="bottom" id="Run" order="2" sideWeight="0.49903476" weight="0.45381984" />
525
       <window_info anchor="bottom" id="Spring" order="7" />
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
       <window_info anchor="right" id="Bean Validation" order="3" weight="0.32928804" />
495
       <window_info anchor="right" id="Bean Validation" order="3" weight="0.32928804" />
529
       <window_info id="Web" order="2" side_tool="true" />
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
       <window_info anchor="right" id="Theme Preview" order="3" />
498
       <window_info anchor="right" id="Theme Preview" order="3" />
531
       <window_info id="Favorites" order="2" side_tool="true" />
499
       <window_info id="Favorites" order="2" side_tool="true" />
532
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
500
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
534
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
502
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
535
       <window_info anchor="bottom" id="Message" order="0" />
503
       <window_info anchor="bottom" id="Message" order="0" />
536
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
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
     </layout>
505
     </layout>
539
   </component>
506
   </component>
540
   <component name="TypeScriptGeneratedFilesManager">
507
   <component name="TypeScriptGeneratedFilesManager">
545
   </component>
512
   </component>
546
   <component name="XDebuggerManager">
513
   <component name="XDebuggerManager">
547
     <breakpoint-manager>
514
     <breakpoint-manager>
548
-      <option name="time" value="17" />
515
+      <option name="time" value="19" />
549
     </breakpoint-manager>
516
     </breakpoint-manager>
550
   </component>
517
   </component>
551
   <component name="editorHistoryManager">
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
523
         </state>
557
       </provider>
524
       </provider>
558
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
530
         </state>
564
       </provider>
531
       </provider>
565
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
537
         </state>
574
       </provider>
538
       </provider>
575
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
544
         </state>
581
       </provider>
545
       </provider>
582
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
551
         </state>
588
       </provider>
552
       </provider>
589
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
558
         </state>
595
       </provider>
559
       </provider>
596
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
565
         </state>
602
       </provider>
566
       </provider>
603
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
572
         </state>
609
       </provider>
573
       </provider>
610
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
579
         </state>
616
       </provider>
580
       </provider>
617
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
586
         </state>
623
       </provider>
587
       </provider>
624
     </entry>
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
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
603
         </state>
633
       </provider>
604
       </provider>
634
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
610
         </state>
640
       </provider>
611
       </provider>
641
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
617
         </state>
647
       </provider>
618
       </provider>
648
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
           <folding>
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
           </folding>
626
           </folding>
657
         </state>
627
         </state>
658
       </provider>
628
       </provider>
659
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
634
         </state>
665
       </provider>
635
       </provider>
666
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
641
         </state>
672
       </provider>
642
       </provider>
673
     </entry>
643
     </entry>
674
     <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java">
644
     <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java">
675
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
648
         </state>
679
       </provider>
649
       </provider>
680
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
658
         </state>
686
       </provider>
659
       </provider>
687
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
665
         </state>
693
       </provider>
666
       </provider>
694
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
672
         </state>
700
       </provider>
673
       </provider>
701
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
682
         </state>
707
       </provider>
683
       </provider>
708
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
689
         </state>
714
       </provider>
690
       </provider>
715
     </entry>
691
     </entry>
716
-    <entry file="file://$PROJECT_DIR$/pom.xml">
692
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaMessageRecordMapper.xml">
717
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
699
         </state>
721
       </provider>
700
       </provider>
722
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
706
         </state>
728
       </provider>
707
       </provider>
729
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
713
         </state>
735
       </provider>
714
       </provider>
736
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
723
         </state>
742
       </provider>
724
       </provider>
743
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
           <folding>
730
           <folding>
749
             <element signature="imports" expanded="true" />
731
             <element signature="imports" expanded="true" />
750
           </folding>
732
           </folding>
751
         </state>
733
         </state>
752
       </provider>
734
       </provider>
753
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
743
         </state>
759
       </provider>
744
       </provider>
760
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
753
         </state>
766
       </provider>
754
       </provider>
767
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
760
         </state>
773
       </provider>
761
       </provider>
774
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
767
         </state>
783
       </provider>
768
       </provider>
784
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
           <folding>
774
           <folding>
790
             <element signature="imports" expanded="true" />
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
           </folding>
776
           </folding>
794
         </state>
777
         </state>
795
       </provider>
778
       </provider>
796
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
784
         </state>
802
       </provider>
785
       </provider>
803
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
791
         </state>
809
       </provider>
792
       </provider>
810
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
801
         </state>
816
       </provider>
802
       </provider>
817
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
808
         </state>
823
       </provider>
809
       </provider>
824
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
815
         </state>
830
       </provider>
816
       </provider>
831
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
822
         </state>
837
       </provider>
823
       </provider>
838
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
829
         </state>
847
       </provider>
830
       </provider>
848
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
           <folding>
836
           <folding>
854
             <element signature="imports" expanded="true" />
837
             <element signature="imports" expanded="true" />
855
           </folding>
838
           </folding>
856
         </state>
839
         </state>
857
       </provider>
840
       </provider>
858
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
846
         </state>
867
       </provider>
847
       </provider>
868
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
856
         </state>
874
       </provider>
857
       </provider>
875
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
863
         </state>
881
       </provider>
864
       </provider>
882
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
870
         </state>
888
       </provider>
871
       </provider>
889
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
           <folding>
877
           <folding>
895
             <element signature="imports" expanded="true" />
878
             <element signature="imports" expanded="true" />
896
           </folding>
879
           </folding>
897
         </state>
880
         </state>
898
       </provider>
881
       </provider>
899
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
890
         </state>
905
       </provider>
891
       </provider>
906
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
897
         </state>
915
       </provider>
898
       </provider>
916
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
904
         </state>
925
       </provider>
905
       </provider>
926
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
         </state>
911
         </state>
932
       </provider>
912
       </provider>
933
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
           <folding>
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
           </folding>
921
           </folding>
941
         </state>
922
         </state>
942
       </provider>
923
       </provider>

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

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

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

3
 import com.alibaba.fastjson.JSONObject;
3
 import com.alibaba.fastjson.JSONObject;
4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
5
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
6
+import com.huiju.welcome.common.Action;
6
 import com.huiju.welcome.common.WebSocketServer;
7
 import com.huiju.welcome.common.WebSocketServer;
7
 import com.huiju.welcome.common.base.ResponseBean;
8
 import com.huiju.welcome.common.base.ResponseBean;
8
 import com.huiju.welcome.model.*;
9
 import com.huiju.welcome.model.*;
9
 import com.huiju.welcome.service.*;
10
 import com.huiju.welcome.service.*;
11
+import com.huiju.welcome.utils.AliOSSUtils;
10
 import com.huiju.welcome.utils.StatusUtils;
12
 import com.huiju.welcome.utils.StatusUtils;
11
 import com.huiju.welcome.utils.XFYun;
13
 import com.huiju.welcome.utils.XFYun;
12
 import io.swagger.annotations.ApiOperation;
14
 import io.swagger.annotations.ApiOperation;
20
 import org.springframework.web.multipart.MultipartFile;
22
 import org.springframework.web.multipart.MultipartFile;
21
 import org.springframework.web.multipart.MultipartHttpServletRequest;
23
 import org.springframework.web.multipart.MultipartHttpServletRequest;
22
 
24
 
25
+import javax.annotation.PostConstruct;
23
 import javax.servlet.http.HttpServletRequest;
26
 import javax.servlet.http.HttpServletRequest;
27
+import javax.websocket.server.PathParam;
24
 import java.io.File;
28
 import java.io.File;
25
 import java.io.FileOutputStream;
29
 import java.io.FileOutputStream;
26
 import java.io.IOException;
30
 import java.io.IOException;
67
 	@Autowired
71
 	@Autowired
68
 	private ITaPersonTypeService taPersonTypeService;
72
 	private ITaPersonTypeService taPersonTypeService;
69
 
73
 
74
+	@Autowired
75
+	private ITaCustomerService iTaCustomerService;
76
+
70
 	@Autowired
77
 	@Autowired
71
 	private XFYun xfYun;
78
 	private XFYun xfYun;
72
 	
79
 	
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
 		if (newGuy) {
169
 		if (newGuy) {
166
 			// 新人入库, 同时写入抓拍人ID
170
 			// 新人入库, 同时写入抓拍人ID
176
 		// 预写到访日志
180
 		// 预写到访日志
177
 		saveVisitingLog(taPerson, taSnapshotPerson);
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
 		sendPersionInfo(taPerson);
191
 		sendPersionInfo(taPerson);
181
 
192
 
182
 		return responseBean;
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
 	private void sendPersionInfo(TaPerson taPerson) {
202
 	private void sendPersionInfo(TaPerson taPerson) {
187
 		TaVisitingWords taVisitingWords = null;
203
 		TaVisitingWords taVisitingWords = null;
220
 		words = words.replace("{{name}}", personName).replace("{{sex}}", sex == 2 ? "女士" : "先生");
236
 		words = words.replace("{{name}}", personName).replace("{{sex}}", sex == 2 ? "女士" : "先生");
221
 		taVisitingWords.setWords(words);
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
 		try {
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
 			e.printStackTrace();
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
 		try {
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
 			e.printStackTrace();
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
 	private TaPerson saveNewPerson(TaSnapshotPerson taSnapshotPerson) {
268
 	private TaPerson saveNewPerson(TaSnapshotPerson taSnapshotPerson) {

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

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

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

5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6
 import com.baomidou.mybatisplus.core.metadata.IPage;
6
 import com.baomidou.mybatisplus.core.metadata.IPage;
7
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
8
+import com.huiju.welcome.common.Action;
8
 import com.huiju.welcome.common.WebSocketServer;
9
 import com.huiju.welcome.common.WebSocketServer;
9
 import com.huiju.welcome.common.base.BaseController;
10
 import com.huiju.welcome.common.base.BaseController;
10
 import com.huiju.welcome.common.base.ResponseBean;
11
 import com.huiju.welcome.common.base.ResponseBean;
100
         preDef.setSize(9999999l); // 代表无限大
101
         preDef.setSize(9999999l); // 代表无限大
101
 
102
 
102
         IPage<TaPerson> pg = taPersonService.page(preDef, wrapper);
103
         IPage<TaPerson> pg = taPersonService.page(preDef, wrapper);
103
-        Map<String, Object> msg = new HashMap<>();
104
+        Map<String, Object> data = new HashMap<>();
104
         if (null != wsId && !"".equals(wsId) && from.intValue() == 0) {
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
             try {
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
                 e.printStackTrace();
118
                 e.printStackTrace();
112
             }
119
             }
113
         }
120
         }
117
         if (total > 0) {
124
         if (total > 0) {
118
             for(TaPerson person: personList) {
125
             for(TaPerson person: personList) {
119
                 if (null != wsId && !"".equals(wsId)) {
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
                     try {
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
                         e.printStackTrace();
141
                         e.printStackTrace();
129
                     }
142
                     }
130
                 }
143
                 }
149
         }
162
         }
150
 
163
 
151
         if (null != wsId && !"".equals(wsId)) {
164
         if (null != wsId && !"".equals(wsId)) {
152
-            msg.clear();
153
-            msg.put("step", "finish");
165
+            data.clear();
166
+            data.put("step", "finish");
154
             try {
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
                 e.printStackTrace();
177
                 e.printStackTrace();
159
             }
178
             }
160
         }
179
         }

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

4
 import com.alibaba.fastjson.JSONObject;
4
 import com.alibaba.fastjson.JSONObject;
5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7
+import com.huiju.welcome.common.Action;
7
 import com.huiju.welcome.common.WebSocketServer;
8
 import com.huiju.welcome.common.WebSocketServer;
8
 import com.huiju.welcome.common.base.BaseController;
9
 import com.huiju.welcome.common.base.BaseController;
9
 import com.huiju.welcome.common.base.ResponseBean;
10
 import com.huiju.welcome.common.base.ResponseBean;
23
 
24
 
24
 import javax.servlet.http.HttpServletRequest;
25
 import javax.servlet.http.HttpServletRequest;
25
 import java.io.IOException;
26
 import java.io.IOException;
27
+import java.util.HashMap;
26
 import java.util.List;
28
 import java.util.List;
27
 import java.util.Map;
29
 import java.util.Map;
28
 
30
 
64
         }
66
         }
65
 
67
 
66
         try {
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
             e.printStackTrace();
76
             e.printStackTrace();
70
             responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "发送失败");
77
             responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "发送失败");
71
             return responseBean;
78
             return responseBean;

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

5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.huiju.welcome.common.base.BaseController;
6
 import com.huiju.welcome.common.base.BaseController;
7
 import com.huiju.welcome.common.base.ResponseBean;
7
 import com.huiju.welcome.common.base.ResponseBean;
8
+import com.huiju.welcome.model.SysUser;
9
+import com.huiju.welcome.model.TaCustomer;
8
 import com.huiju.welcome.model.TaFollowupRecord;
10
 import com.huiju.welcome.model.TaFollowupRecord;
9
 import com.huiju.welcome.model.TaMainUsherRecord;
11
 import com.huiju.welcome.model.TaMainUsherRecord;
12
+import com.huiju.welcome.service.ISysUserService;
10
 import com.huiju.welcome.service.ITaCustomerService;
13
 import com.huiju.welcome.service.ITaCustomerService;
11
 import com.huiju.welcome.service.ITaFollowupRecordService;
14
 import com.huiju.welcome.service.ITaFollowupRecordService;
12
 import com.huiju.welcome.service.ITaMainUsherRecordService;
15
 import com.huiju.welcome.service.ITaMainUsherRecordService;
13
 import com.huiju.welcome.utils.DateUtils;
16
 import com.huiju.welcome.utils.DateUtils;
14
 import com.huiju.welcome.utils.StatusUtils;
17
 import com.huiju.welcome.utils.StatusUtils;
18
+import org.apache.http.HttpStatus;
15
 import org.slf4j.Logger;
19
 import org.slf4j.Logger;
16
 import org.slf4j.LoggerFactory;
20
 import org.slf4j.LoggerFactory;
17
 import org.springframework.beans.factory.annotation.Autowired;
21
 import org.springframework.beans.factory.annotation.Autowired;
42
     @Autowired
46
     @Autowired
43
     private ITaCustomerService iTaCustomerService;
47
     private ITaCustomerService iTaCustomerService;
44
 
48
 
49
+    @Autowired
50
+    private ISysUserService iSysUserService;
51
+
45
     /**
52
     /**
46
      * 保存对象
53
      * 保存对象
47
      * @param taMainUsherRecord 实体对象
54
      * @param taMainUsherRecord 实体对象
53
         try {
60
         try {
54
             taMainUsherRecord.setStatus(StatusUtils.Normal);
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
             if (iTaMainUsherRecordService.save(taMainUsherRecord)){
73
             if (iTaMainUsherRecordService.save(taMainUsherRecord)){
74
+
75
+                iTaMainUsherRecordService.notifyConsultant(taMainUsherRecord, taCustomer);
76
+
60
                 responseBean.addSuccess(taMainUsherRecord);
77
                 responseBean.addSuccess(taMainUsherRecord);
61
             }else {
78
             }else {
62
                 responseBean.addError("fail");
79
                 responseBean.addError("fail");
100
         try {
117
         try {
101
             taMainUsherRecord.setStatus(StatusUtils.Normal);
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
             if (iTaMainUsherRecordService.updateById(taMainUsherRecord)){
130
             if (iTaMainUsherRecordService.updateById(taMainUsherRecord)){
131
+
132
+                iTaMainUsherRecordService.notifyConsultant(taMainUsherRecord, taCustomer);
133
+
107
                 responseBean.addSuccess("success");
134
                 responseBean.addSuccess("success");
108
             }else {
135
             }else {
109
                 responseBean.addError("fail");
136
                 responseBean.addError("fail");

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

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

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

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

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

3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
 import com.huiju.welcome.model.TaCustomer;
4
 import com.huiju.welcome.model.TaCustomer;
5
 import org.apache.ibatis.annotations.Mapper;
5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6
 
7
 
7
 /**
8
 /**
8
  * <p>
9
  * <p>
15
 @Mapper
16
 @Mapper
16
 public interface TaCustomerMapper extends BaseMapper<TaCustomer> {
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
 import org.apache.ibatis.annotations.Mapper;
6
 import org.apache.ibatis.annotations.Mapper;
7
 import org.apache.ibatis.annotations.Param;
7
 import org.apache.ibatis.annotations.Param;
8
 
8
 
9
+import java.time.LocalDateTime;
10
+import java.util.List;
9
 import java.util.Map;
11
 import java.util.Map;
10
 
12
 
11
 /**
13
 /**
26
      * @return
28
      * @return
27
      */
29
      */
28
     IPage<TaMainUsherRecord> aMainUsherRecordList(IPage<TaMainUsherRecord> pg);
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

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

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
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
 import com.huiju.welcome.model.TaWechatUser;
4
 import com.huiju.welcome.model.TaWechatUser;
5
 import org.apache.ibatis.annotations.Mapper;
5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6
 
7
 
7
 /**
8
 /**
8
  * <p>
9
  * <p>
14
  */
15
  */
15
 @Mapper
16
 @Mapper
16
 public interface TaWechatUserMapper extends BaseMapper<TaWechatUser> {
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

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

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
  */
17
  */
18
 public interface ITaCustomerService extends IService<TaCustomer> {
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
     List<TaPerson> getGroup(Integer customerId);
22
     List<TaPerson> getGroup(Integer customerId);
23
 
23
 
24
     Map<String, Object> getLastVisitInfo(Integer customerId);
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
 package com.huiju.welcome.service;
1
 package com.huiju.welcome.service;
2
 
2
 
3
-import com.alibaba.fastjson.JSONArray;
4
 import com.baomidou.mybatisplus.extension.service.IService;
3
 import com.baomidou.mybatisplus.extension.service.IService;
5
 import com.huiju.welcome.model.TaFollowupRecord;
4
 import com.huiju.welcome.model.TaFollowupRecord;
6
 
5
 

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

18
 public interface ITaMainUsherRecordService extends IService<TaMainUsherRecord> {
18
 public interface ITaMainUsherRecordService extends IService<TaMainUsherRecord> {
19
 
19
 
20
     boolean updateNormal(List<TaMainUsherRecord> recs);
20
     boolean updateNormal(List<TaMainUsherRecord> recs);
21
-
22
-    boolean newRecordByFront(TaCustomer taCustomer);
23
     /**
21
     /**
24
      * 分页查询大厅记录
22
      * 分页查询大厅记录
25
      * @param pg
23
      * @param pg
26
      * @return
24
      * @return
27
      */
25
      */
28
     IPage<TaMainUsherRecord> taMainUsherRecordList(IPage<TaMainUsherRecord> pg);
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

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

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
 package com.huiju.welcome.service.impl;
1
 package com.huiju.welcome.service.impl;
2
 
2
 
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.huiju.welcome.common.Action;
5
+import com.huiju.welcome.common.WebSocketServer;
4
 import com.huiju.welcome.model.TaDevice;
6
 import com.huiju.welcome.model.TaDevice;
5
 import com.huiju.welcome.model.TaPerson;
7
 import com.huiju.welcome.model.TaPerson;
6
 import com.huiju.welcome.service.ICameraService;
8
 import com.huiju.welcome.service.ICameraService;
13
 import java.net.HttpURLConnection;
15
 import java.net.HttpURLConnection;
14
 import java.net.URL;
16
 import java.net.URL;
15
 import java.util.Arrays;
17
 import java.util.Arrays;
18
+import java.util.HashMap;
16
 import java.util.List;
19
 import java.util.List;
20
+import java.util.Map;
17
 
21
 
18
 @Service
22
 @Service
19
 public class CameraServiceImpl implements ICameraService {
23
 public class CameraServiceImpl implements ICameraService {
34
         //分发人脸到各个相机
38
         //分发人脸到各个相机
35
         for(TaDevice device: taDeviceList) {
39
         for(TaDevice device: taDeviceList) {
36
             try {
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
             } catch (Exception e){
48
             } catch (Exception e){
55
                 e.printStackTrace();
49
                 e.printStackTrace();
56
                 return "连接设备(" + device.getDeviceId() + ")人脸下发服务 失败: "+ e.getMessage();
50
                 return "连接设备(" + device.getDeviceId() + ")人脸下发服务 失败: "+ e.getMessage();

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

1
 package com.huiju.welcome.service.impl;
1
 package com.huiju.welcome.service.impl;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
 import com.huiju.welcome.mapper.TaCustomerMapMapper;
6
 import com.huiju.welcome.mapper.TaCustomerMapMapper;
6
 import com.huiju.welcome.mapper.TaCustomerMapper;
7
 import com.huiju.welcome.mapper.TaCustomerMapper;
7
 import com.huiju.welcome.mapper.TaMainUsherRecordMapper;
8
 import com.huiju.welcome.mapper.TaMainUsherRecordMapper;
8
-import com.huiju.welcome.mapper.TaPersonMapper;
9
 import com.huiju.welcome.model.TaCustomer;
9
 import com.huiju.welcome.model.TaCustomer;
10
 import com.huiju.welcome.model.TaCustomerMap;
10
 import com.huiju.welcome.model.TaCustomerMap;
11
 import com.huiju.welcome.model.TaMainUsherRecord;
11
 import com.huiju.welcome.model.TaMainUsherRecord;
12
 import com.huiju.welcome.model.TaPerson;
12
 import com.huiju.welcome.model.TaPerson;
13
 import com.huiju.welcome.service.ITaCustomerService;
13
 import com.huiju.welcome.service.ITaCustomerService;
14
+import com.huiju.welcome.service.ITaMainUsherRecordService;
14
 import com.huiju.welcome.service.ITaPersonService;
15
 import com.huiju.welcome.service.ITaPersonService;
16
+import com.huiju.welcome.utils.MiniApp;
15
 import com.huiju.welcome.utils.StatusUtils;
17
 import com.huiju.welcome.utils.StatusUtils;
16
 import org.springframework.beans.factory.annotation.Autowired;
18
 import org.springframework.beans.factory.annotation.Autowired;
17
 import org.springframework.stereotype.Service;
19
 import org.springframework.stereotype.Service;
42
     @Autowired
44
     @Autowired
43
     ITaPersonService iTaPersonService;
45
     ITaPersonService iTaPersonService;
44
 
46
 
47
+    @Autowired
48
+    ITaMainUsherRecordService iTaMainUsherRecordService;
49
+
50
+    @Autowired
51
+    MiniApp miniApp;
52
+
45
     @Override
53
     @Override
46
-    public void newVisitRecord(TaMainUsherRecord taMainUsherRecord) throws Exception {
47
-        Integer custId = taMainUsherRecord.getCustomerId();
54
+    public TaCustomer newVisitRecord(TaMainUsherRecord taMainUsherRecord) throws Exception {
48
         Integer personId = taMainUsherRecord.getPersonId();
55
         Integer personId = taMainUsherRecord.getPersonId();
49
         if (null == personId) {
56
         if (null == personId) {
50
             TaPerson taPerson = iTaPersonService.newPersonByUsher(taMainUsherRecord);
57
             TaPerson taPerson = iTaPersonService.newPersonByUsher(taMainUsherRecord);
52
             taMainUsherRecord.setPersonId(personId);
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
                 throw new Exception("生成置业客户失败");
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
             TaCustomerMap custMap = new TaCustomerMap();
76
             TaCustomerMap custMap = new TaCustomerMap();
83
             custMap.setCustomerId(cust.getCustomerId());
77
             custMap.setCustomerId(cust.getCustomerId());
84
             custMap.setPersonId(taMainUsherRecord.getPersonId());
78
             custMap.setPersonId(taMainUsherRecord.getPersonId());
85
 
79
 
86
-            row = taCustomerMapMapper.insert(custMap);
80
+            int row = taCustomerMapMapper.insert(custMap);
87
             if (row <= 0) {
81
             if (row <= 0) {
88
                 throw new Exception("生成置业客户映射失败");
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
     @Override
89
     @Override
105
         return taMainUsherRecordMapper.getSummaryOfCustomer(customerId);
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
 package com.huiju.welcome.service.impl;
1
 package com.huiju.welcome.service.impl;
2
 
2
 
3
+import com.alibaba.fastjson.JSONObject;
3
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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
 import com.huiju.welcome.mapper.TaMainUsherRecordMapper;
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
 import com.huiju.welcome.service.ITaMainUsherRecordService;
14
 import com.huiju.welcome.service.ITaMainUsherRecordService;
15
+import com.huiju.welcome.utils.CommConstant;
16
+import com.huiju.welcome.utils.MiniApp;
11
 import com.huiju.welcome.utils.StatusUtils;
17
 import com.huiju.welcome.utils.StatusUtils;
18
+import com.huiju.welcome.utils.StringUtils;
12
 import org.springframework.beans.factory.annotation.Autowired;
19
 import org.springframework.beans.factory.annotation.Autowired;
13
 import org.springframework.stereotype.Service;
20
 import org.springframework.stereotype.Service;
14
 
21
 
29
     @Autowired
36
     @Autowired
30
     TaMainUsherRecordMapper taMainUsherRecordMapper;
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
     @Override
51
     @Override
33
     public boolean updateNormal(List<TaMainUsherRecord> records) {
52
     public boolean updateNormal(List<TaMainUsherRecord> records) {
34
         if (records == null || records.size() == 0) return true;
53
         if (records == null || records.size() == 0) return true;
47
     }
66
     }
48
 
67
 
49
     @Override
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
         TaMainUsherRecord taMainUsherRecord = new TaMainUsherRecord();
97
         TaMainUsherRecord taMainUsherRecord = new TaMainUsherRecord();
52
         taMainUsherRecord.setCustomerId(taCustomer.getCustomerId());
98
         taMainUsherRecord.setCustomerId(taCustomer.getCustomerId());
53
         taMainUsherRecord.setAppointment(taCustomer.getApointment());
99
         taMainUsherRecord.setAppointment(taCustomer.getApointment());
57
         taMainUsherRecord.setPlateNumber(taCustomer.getPlateNumber());
103
         taMainUsherRecord.setPlateNumber(taCustomer.getPlateNumber());
58
         taMainUsherRecord.setVisiteDate(LocalDateTime.now());
104
         taMainUsherRecord.setVisiteDate(LocalDateTime.now());
59
         taMainUsherRecord.setStatus(StatusUtils.Normal);
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
     @Override
109
     @Override
67
     public IPage<TaMainUsherRecord> taMainUsherRecordList(IPage<TaMainUsherRecord> pg) {
110
     public IPage<TaMainUsherRecord> taMainUsherRecordList(IPage<TaMainUsherRecord> pg) {
68
         IPage<TaMainUsherRecord>  taMainUsherRecordList= taMainUsherRecordMapper.aMainUsherRecordList(pg);
111
         IPage<TaMainUsherRecord>  taMainUsherRecordList= taMainUsherRecordMapper.aMainUsherRecordList(pg);
69
         return taMainUsherRecordList;
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

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

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
     public final static String IDENTITY_CONSULTANT = "consultant";
4
     public final static String IDENTITY_CONSULTANT = "consultant";
5
     public final static String IDENTITY_FIRSTUSHER = "first-usher";
5
     public final static String IDENTITY_FIRSTUSHER = "first-usher";
6
     public final static String IDENTITY_MAINUSHER = "main-usher";
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
 
2
 
3
 import com.alibaba.fastjson.JSONObject;
3
 import com.alibaba.fastjson.JSONObject;
4
 import com.huiju.welcome.common.base.ResponseBean;
4
 import com.huiju.welcome.common.base.ResponseBean;
5
+import com.huiju.welcome.service.ITaMessageRecordService;
6
+import com.huiju.welcome.service.ITaMiniFormidsService;
5
 import lombok.Data;
7
 import lombok.Data;
6
 import org.apache.http.HttpStatus;
8
 import org.apache.http.HttpStatus;
7
 import org.slf4j.Logger;
9
 import org.slf4j.Logger;
8
 import org.slf4j.LoggerFactory;
10
 import org.slf4j.LoggerFactory;
11
+import org.springframework.beans.factory.annotation.Autowired;
9
 import org.springframework.beans.factory.annotation.Value;
12
 import org.springframework.beans.factory.annotation.Value;
10
 import org.springframework.boot.context.properties.ConfigurationProperties;
13
 import org.springframework.boot.context.properties.ConfigurationProperties;
11
 import org.springframework.http.HttpEntity;
14
 import org.springframework.http.HttpEntity;
25
 public class MiniApp {
28
 public class MiniApp {
26
     private Logger log = LoggerFactory.getLogger(MiniApp.class);
29
     private Logger log = LoggerFactory.getLogger(MiniApp.class);
27
 
30
 
31
+    @Autowired
32
+    ITaMiniFormidsService iTaMiniFormidsService;
33
+
34
+    @Autowired
35
+    ITaMessageRecordService iTaMessageRecordService;
36
+
28
     private String url;
37
     private String url;
29
 
38
 
30
     private String appid;
39
     private String appid;
31
 
40
 
32
     private String secret;
41
     private String secret;
33
 
42
 
43
+    private Tpl tpls;
44
+
34
 
45
 
35
     public ResponseBean getOpenid(String code) {
46
     public ResponseBean getOpenid(String code) {
36
         String api = url + "/" + appid + "/login?code=" + code;
47
         String api = url + "/" + appid + "/login?code=" + code;
48
         return ResponseBean.success(result.getJSONObject("data"));
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
         String api = String.format("/api/%s/tpl/%s/form/%s/to/%s", appid, tplId, formId, toUser);
67
         String api = String.format("/api/%s/tpl/%s/form/%s/to/%s", appid, tplId, formId, toUser);
53
 
68
 
54
         HttpHeaders headers = new HttpHeaders();
69
         HttpHeaders headers = new HttpHeaders();
71
 
86
 
72
         return ResponseBean.success("");
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
   url: http://47.101.36.130:8001/api/miniapp
45
   url: http://47.101.36.130:8001/api/miniapp
46
   appid: wx3f26e5f48c72d39f
46
   appid: wx3f26e5f48c72d39f
47
   secret: 03fcb0228ada1dd27ba45fb5a64c6f52
47
   secret: 03fcb0228ada1dd27ba45fb5a64c6f52
48
+  tpls:
49
+    visitor: m5fR2X1D-iWUurRe-pQQU8VgcxSSZ5eAVoquMixphFw
48
 
50
 
49
 # ali-cloud
51
 # ali-cloud
50
 ali:
52
 ali:

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

1
 <?xml version="1.0" encoding="UTF-8"?>
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">
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.TaCustomerMapper">
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
 </mapper>
21
 </mapper>

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

16
         FROM
16
         FROM
17
         ta_main_usher_record
17
         ta_main_usher_record
18
     </select>
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
 </mapper>
28
 </mapper>

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

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

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
 <?xml version="1.0" encoding="UTF-8"?>
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">
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.TaWechatUserMapper">
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
 </mapper>
14
 </mapper>

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

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