Browse Source

add feats

zjxpcyc 6 years ago
parent
commit
3f8f993afe
67 changed files with 2142 additions and 448 deletions
  1. 1
    0
      .gitignore
  2. 124
    0
      .idea/uiDesigner.xml
  3. 6
    0
      .idea/vcs.xml
  4. 483
    158
      .idea/workspace.xml
  5. 9
    1
      pom.xml
  6. 1
    0
      src/main/java/com.huiju.welcome/common/WebSocketServer.java
  7. 225
    161
      src/main/java/com.huiju.welcome/controller/CameraController.java
  8. 112
    1
      src/main/java/com.huiju.welcome/controller/SysUserController.java
  9. 108
    0
      src/main/java/com.huiju.welcome/controller/TaDeviceController.java
  10. 68
    29
      src/main/java/com.huiju.welcome/controller/TaPersonController.java
  11. 54
    0
      src/main/java/com.huiju.welcome/controller/TaSnapshotPersonController.java
  12. 46
    12
      src/main/java/com.huiju.welcome/controller/TaVisitingLogController.java
  13. 1
    0
      src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java
  14. 18
    0
      src/main/java/com.huiju.welcome/mapper/TaCustomWordsMapper.java
  15. 13
    1
      src/main/java/com.huiju.welcome/mapper/TaPersonMapper.java
  16. 22
    0
      src/main/java/com.huiju.welcome/mapper/TaSnapshotPersonMapper.java
  17. 11
    0
      src/main/java/com.huiju.welcome/mapper/TaVisitingLogMapper.java
  18. 9
    0
      src/main/java/com.huiju.welcome/model/SysUser.java
  19. 29
    0
      src/main/java/com.huiju.welcome/model/TaCustomWords.java
  20. 9
    0
      src/main/java/com.huiju.welcome/model/TaPerson.java
  21. 54
    0
      src/main/java/com.huiju.welcome/model/TaSnapshotPerson.java
  22. 8
    0
      src/main/java/com.huiju.welcome/model/TaVisitingLog.java
  23. 1
    1
      src/main/java/com.huiju.welcome/model/TaVisitingWords.java
  24. 8
    0
      src/main/java/com.huiju.welcome/service/ICameraService.java
  25. 16
    0
      src/main/java/com.huiju.welcome/service/ITaCustomWordsService.java
  26. 21
    1
      src/main/java/com.huiju.welcome/service/ITaPersonService.java
  27. 19
    0
      src/main/java/com.huiju.welcome/service/ITaSnapshotPersonService.java
  28. 10
    0
      src/main/java/com.huiju.welcome/service/ITaVisitingLogService.java
  29. 62
    0
      src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java
  30. 20
    0
      src/main/java/com.huiju.welcome/service/impl/TaCustomWordsServiceImpl.java
  31. 73
    11
      src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java
  32. 29
    0
      src/main/java/com.huiju.welcome/service/impl/TaSnapshotPersonImpl.java
  33. 27
    0
      src/main/java/com.huiju.welcome/service/impl/TaVisitingLogServiceImpl.java
  34. 0
    33
      src/main/java/com.huiju.welcome/utils/AMap.java
  35. 0
    2
      src/main/java/com.huiju.welcome/utils/XFYun.java
  36. 7
    1
      src/main/resources/application.yml
  37. 1
    1
      src/main/resources/mapper/SysUserMapper.xml
  38. 1
    1
      src/main/resources/mapper/TaContentLibMapper.xml
  39. 4
    0
      src/main/resources/mapper/TaCustomWordsMapper.xml
  40. 1
    1
      src/main/resources/mapper/TaDeviceMapper.xml
  41. 2
    2
      src/main/resources/mapper/TaFirstpageContentMapper.xml
  42. 1
    1
      src/main/resources/mapper/TaFirstpageMapper.xml
  43. 2
    2
      src/main/resources/mapper/TaFirstpageNoticeMapper.xml
  44. 1
    1
      src/main/resources/mapper/TaImagesMapper.xml
  45. 1
    1
      src/main/resources/mapper/TaNoticeMapper.xml
  46. 49
    2
      src/main/resources/mapper/TaPersonMapper.xml
  47. 1
    1
      src/main/resources/mapper/TaPersonTypeMapper.xml
  48. 25
    0
      src/main/resources/mapper/TaSnapshotPerson.xml
  49. 1
    1
      src/main/resources/mapper/TaSyncLogMapper.xml
  50. 78
    1
      src/main/resources/mapper/TaVisitingLogMapper.xml
  51. 1
    2
      src/main/resources/mapper/TaVisitingWordsMapper.xml
  52. 23
    1
      target/classes/application.yml
  53. 1
    1
      target/classes/mapper/SysUserMapper.xml
  54. 1
    1
      target/classes/mapper/TaContentLibMapper.xml
  55. 1
    1
      target/classes/mapper/TaDeviceMapper.xml
  56. 2
    2
      target/classes/mapper/TaFirstpageContentMapper.xml
  57. 1
    1
      target/classes/mapper/TaFirstpageMapper.xml
  58. 2
    2
      target/classes/mapper/TaFirstpageNoticeMapper.xml
  59. 1
    1
      target/classes/mapper/TaImagesMapper.xml
  60. 1
    1
      target/classes/mapper/TaNoticeMapper.xml
  61. 49
    2
      target/classes/mapper/TaPersonMapper.xml
  62. 1
    1
      target/classes/mapper/TaPersonTypeMapper.xml
  63. 1
    1
      target/classes/mapper/TaSyncLogMapper.xml
  64. 78
    1
      target/classes/mapper/TaVisitingLogMapper.xml
  65. 1
    2
      target/classes/mapper/TaVisitingWordsMapper.xml
  66. 95
    0
      target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  67. 11
    1
      target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

+ 1
- 0
.gitignore View File

1
+target

+ 124
- 0
.idea/uiDesigner.xml View File

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Palette2">
4
+    <group name="Swing">
5
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
6
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
7
+      </item>
8
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
9
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
10
+      </item>
11
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
12
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
13
+      </item>
14
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
15
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
16
+      </item>
17
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
18
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
19
+        <initial-values>
20
+          <property name="text" value="Button" />
21
+        </initial-values>
22
+      </item>
23
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
24
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
25
+        <initial-values>
26
+          <property name="text" value="RadioButton" />
27
+        </initial-values>
28
+      </item>
29
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
30
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
31
+        <initial-values>
32
+          <property name="text" value="CheckBox" />
33
+        </initial-values>
34
+      </item>
35
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
36
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
37
+        <initial-values>
38
+          <property name="text" value="Label" />
39
+        </initial-values>
40
+      </item>
41
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
42
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
43
+          <preferred-size width="150" height="-1" />
44
+        </default-constraints>
45
+      </item>
46
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
47
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
48
+          <preferred-size width="150" height="-1" />
49
+        </default-constraints>
50
+      </item>
51
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
52
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
53
+          <preferred-size width="150" height="-1" />
54
+        </default-constraints>
55
+      </item>
56
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
57
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
58
+          <preferred-size width="150" height="50" />
59
+        </default-constraints>
60
+      </item>
61
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
62
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
63
+          <preferred-size width="150" height="50" />
64
+        </default-constraints>
65
+      </item>
66
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
67
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
68
+          <preferred-size width="150" height="50" />
69
+        </default-constraints>
70
+      </item>
71
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
72
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
73
+      </item>
74
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
75
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
76
+          <preferred-size width="150" height="50" />
77
+        </default-constraints>
78
+      </item>
79
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
80
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
81
+          <preferred-size width="150" height="50" />
82
+        </default-constraints>
83
+      </item>
84
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
85
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
86
+          <preferred-size width="150" height="50" />
87
+        </default-constraints>
88
+      </item>
89
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
90
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
91
+          <preferred-size width="200" height="200" />
92
+        </default-constraints>
93
+      </item>
94
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
95
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
96
+          <preferred-size width="200" height="200" />
97
+        </default-constraints>
98
+      </item>
99
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
100
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
101
+      </item>
102
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
103
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
104
+      </item>
105
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
106
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
107
+      </item>
108
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
109
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
110
+      </item>
111
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
112
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
113
+          <preferred-size width="-1" height="20" />
114
+        </default-constraints>
115
+      </item>
116
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
117
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
118
+      </item>
119
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
120
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
121
+      </item>
122
+    </group>
123
+  </component>
124
+</project>

+ 6
- 0
.idea/vcs.xml View File

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 483
- 158
.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="ChangeListManager">
3
   <component name="ChangeListManager">
4
-    <list default="true" id="5dd66384-19bf-43a0-b6b4-b05d9b7b9cd4" name="Default" comment="" />
4
+    <list default="true" id="5dd66384-19bf-43a0-b6b4-b05d9b7b9cd4" name="Default" comment="">
5
+      <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
6
+      <change afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaCustomWordsMapper.xml" afterDir="false" />
7
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
8
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.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/SysUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/SysUserController.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/TaPersonController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java" afterDir="false" />
14
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitingLogController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitingLogController.java" afterDir="false" />
15
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java" afterDir="false" />
16
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaPersonMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaPersonMapper.java" afterDir="false" />
17
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaVisitingLogMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaVisitingLogMapper.java" afterDir="false" />
18
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/SysUser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/SysUser.java" afterDir="false" />
19
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaPerson.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaPerson.java" afterDir="false" />
20
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingLog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingLog.java" afterDir="false" />
21
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingWords.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingWords.java" afterDir="false" />
22
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java" afterDir="false" />
23
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaVisitingLogService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaVisitingLogService.java" afterDir="false" />
24
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java" afterDir="false" />
25
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitingLogServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitingLogServiceImpl.java" afterDir="false" />
26
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/AMap.java" beforeDir="false" />
27
+      <change beforePath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/XFYun.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/XFYun.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/SysUserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/SysUserMapper.xml" afterDir="false" />
30
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaContentLibMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaContentLibMapper.xml" afterDir="false" />
31
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaDeviceMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaDeviceMapper.xml" afterDir="false" />
32
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaFirstpageContentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaFirstpageContentMapper.xml" afterDir="false" />
33
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaFirstpageMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaFirstpageMapper.xml" afterDir="false" />
34
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaFirstpageNoticeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaFirstpageNoticeMapper.xml" afterDir="false" />
35
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaImagesMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaImagesMapper.xml" afterDir="false" />
36
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaNoticeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaNoticeMapper.xml" afterDir="false" />
37
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaPersonMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaPersonMapper.xml" afterDir="false" />
38
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaPersonTypeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaPersonTypeMapper.xml" afterDir="false" />
39
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaSyncLogMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaSyncLogMapper.xml" afterDir="false" />
40
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaVisitingLogMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaVisitingLogMapper.xml" afterDir="false" />
41
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/TaVisitingWordsMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/TaVisitingWordsMapper.xml" afterDir="false" />
42
+      <change beforePath="$PROJECT_DIR$/target/classes/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/application.yml" afterDir="false" />
43
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/SysUserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/SysUserMapper.xml" afterDir="false" />
44
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaContentLibMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaContentLibMapper.xml" afterDir="false" />
45
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaDeviceMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaDeviceMapper.xml" afterDir="false" />
46
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaFirstpageContentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaFirstpageContentMapper.xml" afterDir="false" />
47
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaFirstpageMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaFirstpageMapper.xml" afterDir="false" />
48
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaFirstpageNoticeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaFirstpageNoticeMapper.xml" afterDir="false" />
49
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaImagesMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaImagesMapper.xml" afterDir="false" />
50
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaNoticeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaNoticeMapper.xml" afterDir="false" />
51
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaPersonMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaPersonMapper.xml" afterDir="false" />
52
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaPersonTypeMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaPersonTypeMapper.xml" afterDir="false" />
53
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaSyncLogMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaSyncLogMapper.xml" afterDir="false" />
54
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaVisitingLogMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaVisitingLogMapper.xml" afterDir="false" />
55
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/TaVisitingWordsMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/TaVisitingWordsMapper.xml" afterDir="false" />
56
+      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
57
+      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
58
+    </list>
5
     <ignored path="$PROJECT_DIR$/target/" />
59
     <ignored path="$PROJECT_DIR$/target/" />
6
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
60
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
7
     <option name="TRACKING_ENABLED" value="true" />
61
     <option name="TRACKING_ENABLED" value="true" />
11
     <option name="LAST_RESOLUTION" value="IGNORE" />
65
     <option name="LAST_RESOLUTION" value="IGNORE" />
12
   </component>
66
   </component>
13
   <component name="FileEditorManager">
67
   <component name="FileEditorManager">
14
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
15
-      <file leaf-file-name="SAWeather.java" pinned="false" current-in-tab="false">
16
-        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/SAWeather.java">
68
+    <leaf>
69
+      <file leaf-file-name="XFYun.java" pinned="false" current-in-tab="false">
70
+        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/XFYun.java">
17
           <provider selected="true" editor-type-id="text-editor">
71
           <provider selected="true" editor-type-id="text-editor">
18
-            <state relative-caret-position="-230">
19
-              <caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
72
+            <state relative-caret-position="284">
73
+              <caret line="52" selection-start-line="52" selection-end-line="52" />
20
               <folding>
74
               <folding>
21
                 <element signature="imports" expanded="true" />
75
                 <element signature="imports" expanded="true" />
22
               </folding>
76
               </folding>
24
           </provider>
78
           </provider>
25
         </entry>
79
         </entry>
26
       </file>
80
       </file>
27
-      <file leaf-file-name="application.yml" pinned="false" current-in-tab="true">
28
-        <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
81
+      <file leaf-file-name="CameraController.java" pinned="false" current-in-tab="false">
82
+        <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java">
29
           <provider selected="true" editor-type-id="text-editor">
83
           <provider selected="true" editor-type-id="text-editor">
30
-            <state relative-caret-position="646">
31
-              <caret line="34" column="16" lean-forward="true" selection-start-line="34" selection-start-column="16" selection-end-line="34" selection-end-column="16" />
84
+            <state relative-caret-position="159">
85
+              <caret line="199" selection-start-line="199" selection-end-line="199" />
86
+              <folding>
87
+                <element signature="imports" expanded="true" />
88
+              </folding>
89
+            </state>
90
+          </provider>
91
+        </entry>
92
+      </file>
93
+      <file leaf-file-name="pom.xml" pinned="false" current-in-tab="true">
94
+        <entry file="file://$PROJECT_DIR$/pom.xml">
95
+          <provider selected="true" editor-type-id="text-editor">
96
+            <state relative-caret-position="380">
97
+              <caret line="20" column="18" selection-start-line="20" selection-start-column="18" selection-end-line="20" selection-end-column="18" />
32
             </state>
98
             </state>
33
           </provider>
99
           </provider>
34
         </entry>
100
         </entry>
35
       </file>
101
       </file>
36
     </leaf>
102
     </leaf>
37
   </component>
103
   </component>
104
+  <component name="FileTemplateManagerImpl">
105
+    <option name="RECENT_TEMPLATES">
106
+      <list>
107
+        <option value="Interface" />
108
+        <option value="Class" />
109
+      </list>
110
+    </option>
111
+  </component>
38
   <component name="FindInProjectRecents">
112
   <component name="FindInProjectRecents">
39
     <findStrings>
113
     <findStrings>
40
       <find>com.welcome.huiju</find>
114
       <find>com.welcome.huiju</find>
115
+      <find>taPersonService</find>
116
+      <find>getRealPersonList</find>
117
+      <find>HttpStatus</find>
118
+      <find>subDir</find>
119
+      <find>huiju.files</find>
120
+      <find>huijuFiles</find>
121
+      <find>getMultipartFile</find>
122
+      <find>voice</find>
41
     </findStrings>
123
     </findStrings>
42
     <replaceStrings>
124
     <replaceStrings>
43
       <replace>com.huiju.welcome</replace>
125
       <replace>com.huiju.welcome</replace>
44
     </replaceStrings>
126
     </replaceStrings>
45
     <dirStrings>
127
     <dirStrings>
128
+      <dir>E:\JavaProjects\welcome3.0\service\src\main\resources\mapper</dir>
46
       <dir>E:\JavaProjects\welcome3.0\service\src\main\java</dir>
129
       <dir>E:\JavaProjects\welcome3.0\service\src\main\java</dir>
130
+      <dir>E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome</dir>
47
     </dirStrings>
131
     </dirStrings>
48
   </component>
132
   </component>
133
+  <component name="Git.Settings">
134
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
135
+  </component>
49
   <component name="IdeDocumentHistory">
136
   <component name="IdeDocumentHistory">
50
     <option name="CHANGED_PATHS">
137
     <option name="CHANGED_PATHS">
51
       <list>
138
       <list>
54
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFirstpageService.java" />
141
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFirstpageService.java" />
55
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/config/AccessConfig.java" />
142
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/config/AccessConfig.java" />
56
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/AudioController.java" />
143
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/AudioController.java" />
57
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java" />
58
-        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/XFYun.java" />
59
-        <option value="$PROJECT_DIR$/pom.xml" />
60
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/SAWeather.java" />
144
         <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/SAWeather.java" />
145
+        <option value="$PROJECT_DIR$/.gitignore" />
146
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/SysUserMapper.xml" />
147
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingWords.java" />
148
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/SysUser.java" />
149
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/SysUserController.java" />
150
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaVisitingWordsMapper.xml" />
151
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaPerson.java" />
152
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingLog.java" />
153
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/WebSocketServer.java" />
154
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaSnapshotPerson.java" />
155
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaSnapshotPerson.java" />
156
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaVisitingLogMapper.xml" />
157
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaVisitingLogMapper.java" />
158
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaVisitingLogService.java" />
159
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitingLogServiceImpl.java" />
160
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaPersonMapper.java" />
161
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java" />
162
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaPersonMapper.xml" />
163
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitingLogController.java" />
164
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/XFYun.java" />
165
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaSnapshotPersonService.java" />
166
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaSnapshotPersonImpl.java" />
167
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaSnapshotPersonMapper.java" />
168
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaSnapshotPersonController.java" />
169
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaSnapshotPerson.java" />
170
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ICameraService.java" />
171
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaDeviceController.java" />
172
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java" />
173
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java" />
174
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaSnapshotPerson.xml" />
175
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java" />
61
         <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
176
         <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
177
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java" />
178
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/TaCustomWordsMapper.xml" />
179
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaCustomWordsMapper.java" />
180
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomWordsService.java" />
181
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomWordsServiceImpl.java" />
182
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaCustomWords.java" />
183
+        <option value="$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java" />
184
+        <option value="$PROJECT_DIR$/pom.xml" />
62
       </list>
185
       </list>
63
     </option>
186
     </option>
64
   </component>
187
   </component>
106
     <packageJsonPaths />
229
     <packageJsonPaths />
107
   </component>
230
   </component>
108
   <component name="ProjectFrameBounds" extendedState="6">
231
   <component name="ProjectFrameBounds" extendedState="6">
109
-    <option name="x" value="-16" />
110
-    <option name="width" value="1100" />
111
-    <option name="height" value="1940" />
232
+    <option name="x" value="-8" />
233
+    <option name="y" value="-8" />
234
+    <option name="width" value="1296" />
235
+    <option name="height" value="735" />
112
   </component>
236
   </component>
237
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
113
   <component name="ProjectView">
238
   <component name="ProjectView">
114
     <navigator proportions="" version="1">
239
     <navigator proportions="" version="1">
115
       <foldersAlwaysOnTop value="true" />
240
       <foldersAlwaysOnTop value="true" />
116
     </navigator>
241
     </navigator>
117
     <panes>
242
     <panes>
118
-      <pane id="PackagesPane" />
119
       <pane id="ProjectPane">
243
       <pane id="ProjectPane">
120
         <subPane>
244
         <subPane>
121
           <expand>
245
           <expand>
141
               <item name="main" type="462c0819:PsiDirectoryNode" />
265
               <item name="main" type="462c0819:PsiDirectoryNode" />
142
               <item name="java" type="462c0819:PsiDirectoryNode" />
266
               <item name="java" type="462c0819:PsiDirectoryNode" />
143
             </path>
267
             </path>
144
-            <path>
145
-              <item name="service" type="b2602c69:ProjectViewProjectNode" />
146
-              <item name="service" type="462c0819:PsiDirectoryNode" />
147
-              <item name="src" type="462c0819:PsiDirectoryNode" />
148
-              <item name="main" type="462c0819:PsiDirectoryNode" />
149
-              <item name="java" type="462c0819:PsiDirectoryNode" />
150
-              <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
151
-            </path>
152
-            <path>
153
-              <item name="service" type="b2602c69:ProjectViewProjectNode" />
154
-              <item name="service" type="462c0819:PsiDirectoryNode" />
155
-              <item name="src" type="462c0819:PsiDirectoryNode" />
156
-              <item name="main" type="462c0819:PsiDirectoryNode" />
157
-              <item name="java" type="462c0819:PsiDirectoryNode" />
158
-              <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
159
-              <item name="common" type="462c0819:PsiDirectoryNode" />
160
-            </path>
161
-            <path>
162
-              <item name="service" type="b2602c69:ProjectViewProjectNode" />
163
-              <item name="service" type="462c0819:PsiDirectoryNode" />
164
-              <item name="src" type="462c0819:PsiDirectoryNode" />
165
-              <item name="main" type="462c0819:PsiDirectoryNode" />
166
-              <item name="java" type="462c0819:PsiDirectoryNode" />
167
-              <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
168
-              <item name="config" type="462c0819:PsiDirectoryNode" />
169
-            </path>
170
-            <path>
171
-              <item name="service" type="b2602c69:ProjectViewProjectNode" />
172
-              <item name="service" type="462c0819:PsiDirectoryNode" />
173
-              <item name="src" type="462c0819:PsiDirectoryNode" />
174
-              <item name="main" type="462c0819:PsiDirectoryNode" />
175
-              <item name="java" type="462c0819:PsiDirectoryNode" />
176
-              <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
177
-              <item name="controller" type="462c0819:PsiDirectoryNode" />
178
-            </path>
179
-            <path>
180
-              <item name="service" type="b2602c69:ProjectViewProjectNode" />
181
-              <item name="service" type="462c0819:PsiDirectoryNode" />
182
-              <item name="src" type="462c0819:PsiDirectoryNode" />
183
-              <item name="main" type="462c0819:PsiDirectoryNode" />
184
-              <item name="java" type="462c0819:PsiDirectoryNode" />
185
-              <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
186
-              <item name="interceptor" type="462c0819:PsiDirectoryNode" />
187
-            </path>
188
-            <path>
189
-              <item name="service" type="b2602c69:ProjectViewProjectNode" />
190
-              <item name="service" type="462c0819:PsiDirectoryNode" />
191
-              <item name="src" type="462c0819:PsiDirectoryNode" />
192
-              <item name="main" type="462c0819:PsiDirectoryNode" />
193
-              <item name="java" type="462c0819:PsiDirectoryNode" />
194
-              <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
195
-              <item name="service" type="462c0819:PsiDirectoryNode" />
196
-            </path>
197
-            <path>
198
-              <item name="service" type="b2602c69:ProjectViewProjectNode" />
199
-              <item name="service" type="462c0819:PsiDirectoryNode" />
200
-              <item name="src" type="462c0819:PsiDirectoryNode" />
201
-              <item name="main" type="462c0819:PsiDirectoryNode" />
202
-              <item name="java" type="462c0819:PsiDirectoryNode" />
203
-              <item name="com.huiju.welcome" type="462c0819:PsiDirectoryNode" />
204
-              <item name="utils" type="462c0819:PsiDirectoryNode" />
205
-            </path>
206
             <path>
268
             <path>
207
               <item name="service" type="b2602c69:ProjectViewProjectNode" />
269
               <item name="service" type="b2602c69:ProjectViewProjectNode" />
208
               <item name="service" type="462c0819:PsiDirectoryNode" />
270
               <item name="service" type="462c0819:PsiDirectoryNode" />
214
           <select />
276
           <select />
215
         </subPane>
277
         </subPane>
216
       </pane>
278
       </pane>
217
-      <pane id="AndroidView" />
218
       <pane id="Scope" />
279
       <pane id="Scope" />
280
+      <pane id="PackagesPane" />
281
+      <pane id="AndroidView" />
219
     </panes>
282
     </panes>
220
   </component>
283
   </component>
221
   <component name="PropertiesComponent">
284
   <component name="PropertiesComponent">
285
+    <property name="RequestMappingsPanelOrder0" value="0" />
286
+    <property name="RequestMappingsPanelOrder1" value="1" />
287
+    <property name="RequestMappingsPanelWidth0" value="75" />
288
+    <property name="RequestMappingsPanelWidth1" value="75" />
222
     <property name="WebServerToolWindowFactoryState" value="false" />
289
     <property name="WebServerToolWindowFactoryState" value="false" />
223
     <property name="aspect.path.notification.shown" value="true" />
290
     <property name="aspect.path.notification.shown" value="true" />
224
-    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
291
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/../hardware" />
225
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
292
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
226
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
293
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
227
     <property name="project.structure.last.edited" value="Project" />
294
     <property name="project.structure.last.edited" value="Project" />
230
     <property name="settings.editor.selected.configurable" value="reference.settings.ide.settings.notifications" />
297
     <property name="settings.editor.selected.configurable" value="reference.settings.ide.settings.notifications" />
231
   </component>
298
   </component>
232
   <component name="RecentsManager">
299
   <component name="RecentsManager">
300
+    <key name="CreateClassDialog.RecentsKey">
301
+      <recent name="com.huiju.welcome.service.impl" />
302
+    </key>
233
     <key name="CopyFile.RECENT_KEYS">
303
     <key name="CopyFile.RECENT_KEYS">
304
+      <recent name="E:\JavaProjects\welcome3.0\service\src\main\resources\mapper" />
234
       <recent name="E:\JavaProjects\welcome3.0\service\src\main\resources" />
305
       <recent name="E:\JavaProjects\welcome3.0\service\src\main\resources" />
235
       <recent name="E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome" />
306
       <recent name="E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome" />
236
     </key>
307
     </key>
308
+    <key name="CopyClassDialog.RECENTS_KEY">
309
+      <recent name="com.huiju.welcome.service.impl" />
310
+      <recent name="com.huiju.welcome.service" />
311
+      <recent name="com.huiju.welcome.model" />
312
+      <recent name="com.huiju.welcome.mapper" />
313
+    </key>
237
     <key name="MoveFile.RECENT_KEYS">
314
     <key name="MoveFile.RECENT_KEYS">
315
+      <recent name="E:\JavaProjects\welcome3.0\service" />
238
       <recent name="E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome" />
316
       <recent name="E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome" />
239
     </key>
317
     </key>
240
   </component>
318
   </component>
308
       <option name="presentableId" value="Default" />
386
       <option name="presentableId" value="Default" />
309
       <updated>1554806511177</updated>
387
       <updated>1554806511177</updated>
310
       <workItem from="1554806512544" duration="3856000" />
388
       <workItem from="1554806512544" duration="3856000" />
311
-      <workItem from="1554858729557" duration="1168000" />
389
+      <workItem from="1554858729557" duration="5296000" />
390
+      <workItem from="1555050395776" duration="488000" />
391
+      <workItem from="1555058275009" duration="599000" />
392
+      <workItem from="1555290043845" duration="87614000" />
393
+      <workItem from="1555913006426" duration="9826000" />
394
+      <workItem from="1556004383365" duration="11766000" />
395
+      <workItem from="1556091754639" duration="4295000" />
396
+      <workItem from="1557122821064" duration="702000" />
397
+      <workItem from="1557283570042" duration="5354000" />
312
     </task>
398
     </task>
313
     <servers />
399
     <servers />
314
   </component>
400
   </component>
315
   <component name="TimeTrackingManager">
401
   <component name="TimeTrackingManager">
316
-    <option name="totallyTimeSpent" value="5024000" />
402
+    <option name="totallyTimeSpent" value="129796000" />
317
   </component>
403
   </component>
318
   <component name="ToolWindowManager">
404
   <component name="ToolWindowManager">
319
-    <frame x="-8" y="-8" width="1096" height="1855" extended-state="6" />
320
-    <editor active="true" />
405
+    <frame x="-8" y="-8" width="1936" height="1015" extended-state="6" />
321
     <layout>
406
     <layout>
322
       <window_info anchor="right" id="Palette" order="3" />
407
       <window_info anchor="right" id="Palette" order="3" />
323
-      <window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.50096524" side_tool="true" visible="true" weight="0.32964474" />
324
-      <window_info anchor="right" id="Maven Projects" order="3" weight="0.3291506" />
408
+      <window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.50096524" side_tool="true" weight="0.39953408" />
409
+      <window_info anchor="right" id="Maven Projects" order="3" visible="true" weight="0.18230277" />
325
       <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
410
       <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
326
       <window_info id="Capture Tool" order="2" />
411
       <window_info id="Capture Tool" order="2" />
327
       <window_info id="Designer" order="2" />
412
       <window_info id="Designer" order="2" />
329
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
414
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
330
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
415
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
331
       <window_info id="UI Designer" order="2" />
416
       <window_info id="UI Designer" order="2" />
332
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
417
+      <window_info anchor="bottom" id="Debug" order="3" sideWeight="0.49903476" weight="0.25655645" />
333
       <window_info anchor="bottom" id="TODO" order="6" />
418
       <window_info anchor="bottom" id="TODO" order="6" />
419
+      <window_info anchor="bottom" id="Messages" order="8" weight="0.3295325" />
334
       <window_info anchor="right" id="Palette&#9;" order="3" />
420
       <window_info anchor="right" id="Palette&#9;" order="3" />
335
       <window_info id="Image Layers" order="2" />
421
       <window_info id="Image Layers" order="2" />
336
       <window_info anchor="bottom" id="Java Enterprise" order="7" />
422
       <window_info anchor="bottom" id="Java Enterprise" order="7" />
337
       <window_info anchor="right" id="Capture Analysis" order="3" />
423
       <window_info anchor="right" id="Capture Analysis" order="3" />
338
-      <window_info anchor="bottom" id="Run" order="2" sideWeight="0.49903476" weight="0.32964474" />
339
-      <window_info anchor="bottom" id="Version Control" order="7" show_stripe_button="false" />
424
+      <window_info anchor="bottom" id="Version Control" order="7" />
425
+      <window_info anchor="bottom" id="Run" order="2" sideWeight="0.49903476" weight="0.45381984" />
340
       <window_info anchor="bottom" id="Spring" order="7" />
426
       <window_info anchor="bottom" id="Spring" order="7" />
341
-      <window_info anchor="bottom" id="Terminal" order="7" />
342
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25482625" />
343
-      <window_info anchor="right" id="Bean Validation" order="3" />
427
+      <window_info active="true" anchor="bottom" id="Terminal" order="7" visible="true" weight="0.3295325" />
428
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.19029851" />
429
+      <window_info anchor="right" id="Bean Validation" order="3" weight="0.32928804" />
344
       <window_info id="Web" order="2" side_tool="true" />
430
       <window_info id="Web" order="2" side_tool="true" />
431
+      <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49903476" weight="0.32964474" />
345
       <window_info anchor="right" id="Theme Preview" order="3" />
432
       <window_info anchor="right" id="Theme Preview" order="3" />
346
       <window_info id="Favorites" order="2" side_tool="true" />
433
       <window_info id="Favorites" order="2" side_tool="true" />
347
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
434
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
349
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
436
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
350
       <window_info anchor="bottom" id="Message" order="0" />
437
       <window_info anchor="bottom" id="Message" order="0" />
351
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
438
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
352
-      <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49903476" weight="0.32964474" />
353
     </layout>
439
     </layout>
354
   </component>
440
   </component>
355
   <component name="TypeScriptGeneratedFilesManager">
441
   <component name="TypeScriptGeneratedFilesManager">
358
   <component name="VcsContentAnnotationSettings">
444
   <component name="VcsContentAnnotationSettings">
359
     <option name="myLimit" value="2678400000" />
445
     <option name="myLimit" value="2678400000" />
360
   </component>
446
   </component>
447
+  <component name="XDebuggerManager">
448
+    <breakpoint-manager>
449
+      <option name="time" value="7" />
450
+    </breakpoint-manager>
451
+  </component>
361
   <component name="editorHistoryManager">
452
   <component name="editorHistoryManager">
362
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/SAWeather.java">
453
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstpageContentController.java">
363
       <provider selected="true" editor-type-id="text-editor">
454
       <provider selected="true" editor-type-id="text-editor">
364
-        <state relative-caret-position="513">
365
-          <caret line="27" column="31" lean-forward="true" selection-start-line="27" selection-start-column="31" selection-end-line="27" selection-end-column="31" />
366
-          <folding>
367
-            <element signature="imports" expanded="true" />
368
-          </folding>
455
+        <state relative-caret-position="-523">
456
+          <caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" />
369
         </state>
457
         </state>
370
       </provider>
458
       </provider>
371
     </entry>
459
     </entry>
372
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/huiju/welcome/mainbiz/MainbizApplication.java" />
373
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/MainbizApplication.java">
460
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstpageController.java">
374
       <provider selected="true" editor-type-id="text-editor">
461
       <provider selected="true" editor-type-id="text-editor">
375
-        <state relative-caret-position="190">
376
-          <caret line="13" selection-start-line="13" selection-end-line="13" />
462
+        <state relative-caret-position="-3620">
463
+          <caret line="38" column="13" selection-start-line="38" selection-start-column="13" selection-end-line="38" selection-end-column="13" />
377
         </state>
464
         </state>
378
       </provider>
465
       </provider>
379
     </entry>
466
     </entry>
380
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonTypeServiceImpl.java">
381
-      <provider selected="true" editor-type-id="text-editor" />
467
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaNoticeController.java">
468
+      <provider selected="true" editor-type-id="text-editor">
469
+        <state relative-caret-position="-789">
470
+          <caret line="53" lean-forward="true" selection-start-line="53" selection-end-line="53" />
471
+        </state>
472
+      </provider>
382
     </entry>
473
     </entry>
383
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java">
384
-      <provider selected="true" editor-type-id="text-editor" />
474
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonTypeController.java">
475
+      <provider selected="true" editor-type-id="text-editor">
476
+        <state relative-caret-position="-1606">
477
+          <caret line="29" column="13" selection-start-line="29" selection-start-column="13" selection-end-line="29" selection-end-column="13" />
478
+        </state>
479
+      </provider>
480
+    </entry>
481
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaSyncLogController.java">
482
+      <provider selected="true" editor-type-id="text-editor">
483
+        <state relative-caret-position="285">
484
+          <caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
485
+        </state>
486
+      </provider>
385
     </entry>
487
     </entry>
386
-    <entry file="file://$PROJECT_DIR$/src/main/resources/application.properties" />
387
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/SysUserMapper.xml">
388
-      <provider selected="true" editor-type-id="text-editor" />
488
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitingLogController.java">
489
+      <provider selected="true" editor-type-id="text-editor">
490
+        <state relative-caret-position="-86">
491
+          <caret line="92" lean-forward="true" selection-start-line="92" selection-end-line="92" />
492
+        </state>
493
+      </provider>
389
     </entry>
494
     </entry>
390
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingWords.java">
391
-      <provider selected="true" editor-type-id="text-editor" />
495
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaVisitingWordsController.java">
496
+      <provider selected="true" editor-type-id="text-editor">
497
+        <state relative-caret-position="408">
498
+          <caret line="56" lean-forward="true" selection-start-line="56" selection-end-line="56" />
499
+        </state>
500
+      </provider>
392
     </entry>
501
     </entry>
393
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaPerson.java">
394
-      <provider selected="true" editor-type-id="text-editor" />
502
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaFirstpageNoticeController.java">
503
+      <provider selected="true" editor-type-id="text-editor">
504
+        <state relative-caret-position="-466">
505
+          <caret line="29" column="13" selection-start-line="29" selection-start-column="13" selection-end-line="29" selection-end-column="13" />
506
+        </state>
507
+      </provider>
395
     </entry>
508
     </entry>
396
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaFirstpageService.java">
509
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/SysUserMapper.java">
397
       <provider selected="true" editor-type-id="text-editor">
510
       <provider selected="true" editor-type-id="text-editor">
398
-        <state relative-caret-position="152">
399
-          <caret line="8" column="6" lean-forward="true" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="6" />
511
+        <state relative-caret-position="247">
512
+          <caret line="15" column="17" selection-start-line="15" selection-start-column="17" selection-end-line="15" selection-end-column="17" />
400
         </state>
513
         </state>
401
       </provider>
514
       </provider>
402
     </entry>
515
     </entry>
403
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/SysUser.java">
516
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaSnapshotPersonMapper.java">
404
       <provider selected="true" editor-type-id="text-editor">
517
       <provider selected="true" editor-type-id="text-editor">
405
-        <state relative-caret-position="76">
406
-          <caret line="4" column="13" selection-start-line="4" selection-start-column="7" selection-end-line="4" selection-end-column="13" />
518
+        <state relative-caret-position="374">
519
+          <caret line="22" lean-forward="true" selection-start-line="22" selection-end-line="22" />
407
         </state>
520
         </state>
408
       </provider>
521
       </provider>
409
     </entry>
522
     </entry>
410
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/WebSocketServer.java">
523
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaSnapshotPersonImpl.java">
411
       <provider selected="true" editor-type-id="text-editor">
524
       <provider selected="true" editor-type-id="text-editor">
412
-        <state relative-caret-position="114">
413
-          <caret line="6" column="12" selection-start-line="6" selection-start-column="7" selection-end-line="6" selection-end-column="12" />
525
+        <state relative-caret-position="294">
526
+          <caret line="26" column="46" lean-forward="true" selection-start-line="26" selection-start-column="46" selection-end-line="26" selection-end-column="46" />
414
         </state>
527
         </state>
415
       </provider>
528
       </provider>
416
     </entry>
529
     </entry>
417
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java">
530
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaSnapshotPersonService.java">
418
       <provider selected="true" editor-type-id="text-editor">
531
       <provider selected="true" editor-type-id="text-editor">
419
-        <state relative-caret-position="57">
420
-          <caret line="3" column="22" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="22" />
532
+        <state relative-caret-position="323">
533
+          <caret line="17" column="79" selection-start-line="17" selection-start-column="79" selection-end-line="17" selection-end-column="79" />
421
         </state>
534
         </state>
422
       </provider>
535
       </provider>
423
     </entry>
536
     </entry>
424
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java">
537
+    <entry file="jar://D:/REPO/org/apache/httpcomponents/httpcore/4.4.11/httpcore-4.4.11.jar!/org/apache/http/HttpStatus.class">
425
       <provider selected="true" editor-type-id="text-editor">
538
       <provider selected="true" editor-type-id="text-editor">
426
         <state relative-caret-position="76">
539
         <state relative-caret-position="76">
427
-          <caret line="4" column="24" selection-start-line="4" selection-start-column="7" selection-end-line="4" selection-end-column="24" />
540
+          <caret line="7" column="17" selection-start-line="7" selection-start-column="17" selection-end-line="7" selection-end-column="17" />
541
+        </state>
542
+      </provider>
543
+    </entry>
544
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/SysParamController.java">
545
+      <provider selected="true" editor-type-id="text-editor">
546
+        <state relative-caret-position="-171">
547
+          <caret line="58" column="23" selection-start-line="58" selection-start-column="11" selection-end-line="58" selection-end-column="23" />
548
+        </state>
549
+      </provider>
550
+    </entry>
551
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/Encrypt.java">
552
+      <provider selected="true" editor-type-id="text-editor">
553
+        <state relative-caret-position="161">
554
+          <caret line="31" column="25" selection-start-line="31" selection-start-column="25" selection-end-line="31" selection-end-column="25" />
555
+        </state>
556
+      </provider>
557
+    </entry>
558
+    <entry file="jar://D:/Application/jdk1.8.0_161/src.zip!/java/io/Serializable.java">
559
+      <provider selected="true" editor-type-id="text-editor">
560
+        <state relative-caret-position="2755">
561
+          <caret line="168" column="17" selection-start-line="168" selection-start-column="17" selection-end-line="168" selection-end-column="17" />
562
+        </state>
563
+      </provider>
564
+    </entry>
565
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/AudioController.java">
566
+      <provider selected="true" editor-type-id="text-editor">
567
+        <state relative-caret-position="532">
568
+          <caret line="40" lean-forward="true" selection-start-line="40" selection-end-line="40" />
569
+        </state>
570
+      </provider>
571
+    </entry>
572
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/base/ResponseBean.java">
573
+      <provider selected="true" editor-type-id="text-editor">
574
+        <state relative-caret-position="893">
575
+          <caret line="57" lean-forward="true" selection-start-line="57" selection-end-line="57" />
576
+        </state>
577
+      </provider>
578
+    </entry>
579
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/common/base/BaseController.java">
580
+      <provider selected="true" editor-type-id="text-editor">
581
+        <state relative-caret-position="133">
582
+          <caret line="7" column="1" lean-forward="true" selection-start-line="7" selection-start-column="1" selection-end-line="7" selection-end-column="1" />
583
+        </state>
584
+      </provider>
585
+    </entry>
586
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaPersonService.java">
587
+      <provider selected="true" editor-type-id="text-editor">
588
+        <state relative-caret-position="266">
589
+          <caret line="21" column="11" selection-start-line="21" selection-start-column="11" selection-end-line="21" selection-end-column="11" />
590
+        </state>
591
+      </provider>
592
+    </entry>
593
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ISysUserService.java">
594
+      <provider selected="true" editor-type-id="text-editor">
595
+        <state relative-caret-position="304">
596
+          <caret line="17" lean-forward="true" selection-start-line="17" selection-end-line="17" />
597
+        </state>
598
+      </provider>
599
+    </entry>
600
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/SysParamServiceImpl.java">
601
+      <provider selected="true" editor-type-id="text-editor">
602
+        <state relative-caret-position="228">
603
+          <caret line="16" selection-start-line="16" selection-end-line="16" selection-end-column="8" />
604
+        </state>
605
+      </provider>
606
+    </entry>
607
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ISysParamService.java">
608
+      <provider selected="true" editor-type-id="text-editor">
609
+        <state relative-caret-position="266">
610
+          <caret line="15" column="1" selection-start-line="15" selection-start-column="1" selection-end-line="15" selection-end-column="1" />
611
+        </state>
612
+      </provider>
613
+    </entry>
614
+    <entry file="file://$PROJECT_DIR$/src/test/java/com/huiju/welcome/mainbiz/MainbizApplicationTests.java">
615
+      <provider selected="true" editor-type-id="text-editor">
616
+        <state relative-caret-position="247">
617
+          <caret line="16" lean-forward="true" selection-start-line="16" selection-end-line="16" />
428
         </state>
618
         </state>
429
       </provider>
619
       </provider>
430
     </entry>
620
     </entry>
431
     <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/config/WebSocketConfig.java">
621
     <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/config/WebSocketConfig.java">
432
       <provider selected="true" editor-type-id="text-editor">
622
       <provider selected="true" editor-type-id="text-editor">
433
-        <state relative-caret-position="171">
434
-          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
623
+        <state relative-caret-position="285">
624
+          <caret line="19" selection-start-line="19" selection-end-line="19" />
435
         </state>
625
         </state>
436
       </provider>
626
       </provider>
437
     </entry>
627
     </entry>
438
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/config/MybatisPlusConfig.java">
628
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java">
439
       <provider selected="true" editor-type-id="text-editor">
629
       <provider selected="true" editor-type-id="text-editor">
440
-        <state relative-caret-position="171">
441
-          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
630
+        <state relative-caret-position="114">
631
+          <caret line="16" column="11" selection-start-line="16" selection-start-column="11" selection-end-line="16" selection-end-column="11" />
632
+        </state>
633
+      </provider>
634
+    </entry>
635
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaSnapshotPerson.xml">
636
+      <provider selected="true" editor-type-id="text-editor">
637
+        <state relative-caret-position="295">
638
+          <caret line="21" column="16" lean-forward="true" selection-start-line="21" selection-start-column="16" selection-end-line="21" selection-end-column="16" />
442
         </state>
639
         </state>
443
       </provider>
640
       </provider>
444
     </entry>
641
     </entry>
445
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/FaceController.java" />
446
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/config/AccessConfig.java">
642
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaSnapshotPersonController.java">
643
+      <provider selected="true" editor-type-id="text-editor">
644
+        <state relative-caret-position="342">
645
+          <caret line="54" lean-forward="true" selection-start-line="54" selection-end-line="54" />
646
+        </state>
647
+      </provider>
648
+    </entry>
649
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java">
650
+      <provider selected="true" editor-type-id="text-editor">
651
+        <state relative-caret-position="1064">
652
+          <caret line="85" selection-start-line="85" selection-end-line="85" />
653
+        </state>
654
+      </provider>
655
+    </entry>
656
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/ImgController.java">
657
+      <provider selected="true" editor-type-id="text-editor">
658
+        <state relative-caret-position="456">
659
+          <caret line="35" column="46" selection-start-line="35" selection-start-column="40" selection-end-line="35" selection-end-column="46" />
660
+        </state>
661
+      </provider>
662
+    </entry>
663
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaSnapshotPerson.java">
664
+      <provider selected="true" editor-type-id="text-editor">
665
+        <state relative-caret-position="152">
666
+          <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
667
+          <folding>
668
+            <element signature="imports" expanded="true" />
669
+          </folding>
670
+        </state>
671
+      </provider>
672
+    </entry>
673
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/MainbizApplication.java">
447
       <provider selected="true" editor-type-id="text-editor">
674
       <provider selected="true" editor-type-id="text-editor">
448
         <state relative-caret-position="209">
675
         <state relative-caret-position="209">
449
-          <caret line="11" column="19" selection-start-line="11" selection-start-column="19" selection-end-line="11" selection-end-column="19" />
676
+          <caret line="13" selection-start-line="13" selection-end-line="13" />
450
           <folding>
677
           <folding>
451
             <element signature="imports" expanded="true" />
678
             <element signature="imports" expanded="true" />
452
           </folding>
679
           </folding>
453
         </state>
680
         </state>
454
       </provider>
681
       </provider>
455
     </entry>
682
     </entry>
456
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/AudioController.java">
683
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaPersonController.java">
457
       <provider selected="true" editor-type-id="text-editor">
684
       <provider selected="true" editor-type-id="text-editor">
458
-        <state relative-caret-position="437">
459
-          <caret line="23" column="17" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="17" />
685
+        <state relative-caret-position="174">
686
+          <caret line="140" column="48" selection-start-line="140" selection-start-column="48" selection-end-line="140" selection-end-column="48" />
460
           <folding>
687
           <folding>
461
             <element signature="imports" expanded="true" />
688
             <element signature="imports" expanded="true" />
462
           </folding>
689
           </folding>
463
         </state>
690
         </state>
464
       </provider>
691
       </provider>
465
     </entry>
692
     </entry>
466
-    <entry file="file://$PROJECT_DIR$/pom.xml">
693
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ICameraService.java">
467
       <provider selected="true" editor-type-id="text-editor">
694
       <provider selected="true" editor-type-id="text-editor">
468
-        <state relative-caret-position="-18">
469
-          <caret line="21" column="20" selection-start-line="21" selection-start-column="20" selection-end-line="21" selection-end-column="20" />
695
+        <state relative-caret-position="95">
696
+          <caret line="6" column="11" selection-start-line="6" selection-start-column="11" selection-end-line="6" selection-end-column="11" />
470
         </state>
697
         </state>
471
       </provider>
698
       </provider>
472
     </entry>
699
     </entry>
473
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/FileUtil.java">
700
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaVisitingWordsMapper.xml">
474
       <provider selected="true" editor-type-id="text-editor">
701
       <provider selected="true" editor-type-id="text-editor">
475
-        <state relative-caret-position="266">
476
-          <caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
702
+        <state relative-caret-position="38">
703
+          <caret line="2" column="67" selection-start-line="2" selection-start-column="67" selection-end-line="2" selection-end-column="67" />
477
         </state>
704
         </state>
478
       </provider>
705
       </provider>
479
     </entry>
706
     </entry>
480
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/Encrypt.java">
707
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaVisitingWordsMapper.java">
708
+      <provider selected="true" editor-type-id="text-editor">
709
+        <state relative-caret-position="76">
710
+          <caret line="6" column="3" lean-forward="true" selection-start-line="6" selection-start-column="3" selection-end-line="6" selection-end-column="3" />
711
+        </state>
712
+      </provider>
713
+    </entry>
714
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/mapper/TaCustomWordsMapper.java">
715
+      <provider selected="true" editor-type-id="text-editor">
716
+        <state relative-caret-position="152">
717
+          <caret line="8" column="13" lean-forward="true" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
718
+          <folding>
719
+            <element signature="imports" expanded="true" />
720
+          </folding>
721
+        </state>
722
+      </provider>
723
+    </entry>
724
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/TaCustomWordsMapper.xml">
481
       <provider selected="true" editor-type-id="text-editor">
725
       <provider selected="true" editor-type-id="text-editor">
482
         <state relative-caret-position="38">
726
         <state relative-caret-position="38">
483
-          <caret line="2" selection-start-line="2" selection-end-line="2" />
727
+          <caret line="2" column="57" selection-start-line="2" selection-start-column="57" selection-end-line="2" selection-end-column="57" />
728
+        </state>
729
+      </provider>
730
+    </entry>
731
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java">
732
+      <provider selected="true" editor-type-id="text-editor">
733
+        <state relative-caret-position="330">
734
+          <caret line="51" column="90" selection-start-line="51" selection-start-column="90" selection-end-line="51" selection-end-column="90" />
735
+          <folding>
736
+            <element signature="imports" expanded="true" />
737
+          </folding>
738
+        </state>
739
+      </provider>
740
+    </entry>
741
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/SAWeather.java">
742
+      <provider selected="true" editor-type-id="text-editor">
743
+        <state relative-caret-position="114">
744
+          <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
745
+        </state>
746
+      </provider>
747
+    </entry>
748
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/TaDeviceController.java">
749
+      <provider selected="true" editor-type-id="text-editor">
750
+        <state relative-caret-position="425">
751
+          <caret line="177" column="39" selection-start-line="177" selection-start-column="31" selection-end-line="177" selection-end-column="39" />
752
+        </state>
753
+      </provider>
754
+    </entry>
755
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/ITaCustomWordsService.java">
756
+      <provider selected="true" editor-type-id="text-editor">
757
+        <state relative-caret-position="114">
758
+          <caret line="6" column="6" lean-forward="true" selection-start-line="6" selection-start-column="6" selection-end-line="6" selection-end-column="6" />
759
+          <folding>
760
+            <element signature="imports" expanded="true" />
761
+          </folding>
762
+        </state>
763
+      </provider>
764
+    </entry>
765
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaVisitingWordsServiceImpl.java">
766
+      <provider selected="true" editor-type-id="text-editor">
767
+        <state relative-caret-position="323">
768
+          <caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
769
+          <folding>
770
+            <element signature="imports" expanded="true" />
771
+          </folding>
484
         </state>
772
         </state>
485
       </provider>
773
       </provider>
486
     </entry>
774
     </entry>
487
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/StatusUtils.java">
775
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaCustomWordsServiceImpl.java">
488
       <provider selected="true" editor-type-id="text-editor">
776
       <provider selected="true" editor-type-id="text-editor">
489
-        <state relative-caret-position="190">
490
-          <caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" />
777
+        <state relative-caret-position="380">
778
+          <caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
779
+          <folding>
780
+            <element signature="imports" expanded="true" />
781
+          </folding>
782
+        </state>
783
+      </provider>
784
+    </entry>
785
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/service/impl/TaDeviceServiceImpl.java">
786
+      <provider selected="true" editor-type-id="text-editor">
787
+        <state relative-caret-position="247">
788
+          <caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
491
         </state>
789
         </state>
492
       </provider>
790
       </provider>
493
     </entry>
791
     </entry>
494
     <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/XFYun.java">
792
     <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/XFYun.java">
495
       <provider selected="true" editor-type-id="text-editor">
793
       <provider selected="true" editor-type-id="text-editor">
496
-        <state relative-caret-position="810">
497
-          <caret line="75" column="5" selection-start-line="75" selection-start-column="5" selection-end-line="75" selection-end-column="5" />
794
+        <state relative-caret-position="284">
795
+          <caret line="52" selection-start-line="52" selection-end-line="52" />
796
+          <folding>
797
+            <element signature="imports" expanded="true" />
798
+          </folding>
498
         </state>
799
         </state>
499
       </provider>
800
       </provider>
500
     </entry>
801
     </entry>
501
-    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/utils/SAWeather.java">
802
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaVisitingWords.java">
502
       <provider selected="true" editor-type-id="text-editor">
803
       <provider selected="true" editor-type-id="text-editor">
503
-        <state relative-caret-position="-230">
504
-          <caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
804
+        <state relative-caret-position="258">
805
+          <caret line="19" column="13" selection-start-line="19" selection-start-column="13" selection-end-line="19" selection-end-column="13" />
806
+        </state>
807
+      </provider>
808
+    </entry>
809
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/model/TaCustomWords.java">
810
+      <provider selected="true" editor-type-id="text-editor">
811
+        <state relative-caret-position="551">
812
+          <caret line="29" lean-forward="true" selection-start-line="29" selection-end-line="29" />
813
+          <folding>
814
+            <element signature="imports" expanded="true" />
815
+          </folding>
816
+        </state>
817
+      </provider>
818
+    </entry>
819
+    <entry file="file://$PROJECT_DIR$/src/main/java/com.huiju.welcome/controller/CameraController.java">
820
+      <provider selected="true" editor-type-id="text-editor">
821
+        <state relative-caret-position="159">
822
+          <caret line="199" selection-start-line="199" selection-end-line="199" />
505
           <folding>
823
           <folding>
506
             <element signature="imports" expanded="true" />
824
             <element signature="imports" expanded="true" />
507
           </folding>
825
           </folding>
510
     </entry>
828
     </entry>
511
     <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
829
     <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
512
       <provider selected="true" editor-type-id="text-editor">
830
       <provider selected="true" editor-type-id="text-editor">
513
-        <state relative-caret-position="646">
514
-          <caret line="34" column="16" lean-forward="true" selection-start-line="34" selection-start-column="16" selection-end-line="34" selection-end-column="16" />
831
+        <state relative-caret-position="304">
832
+          <caret line="16" column="57" selection-start-line="16" selection-start-column="57" selection-end-line="16" selection-end-column="57" />
833
+        </state>
834
+      </provider>
835
+    </entry>
836
+    <entry file="file://$PROJECT_DIR$/pom.xml">
837
+      <provider selected="true" editor-type-id="text-editor">
838
+        <state relative-caret-position="380">
839
+          <caret line="20" column="18" selection-start-line="20" selection-start-column="18" selection-end-line="20" selection-end-column="18" />
515
         </state>
840
         </state>
516
       </provider>
841
       </provider>
517
     </entry>
842
     </entry>

+ 9
- 1
pom.xml View File

10
 	</parent>
10
 	</parent>
11
 	<groupId>com.huiju.welcome</groupId>
11
 	<groupId>com.huiju.welcome</groupId>
12
 	<artifactId>mainbiz</artifactId>
12
 	<artifactId>mainbiz</artifactId>
13
-	<version>v3.0.0</version>
13
+	<version>v3.1.0</version>
14
 	<name>mainbiz</name>
14
 	<name>mainbiz</name>
15
 	<description>com.huiju.welcome main service</description>
15
 	<description>com.huiju.welcome main service</description>
16
 
16
 
83
 				<groupId>org.springframework.boot</groupId>
83
 				<groupId>org.springframework.boot</groupId>
84
 				<artifactId>spring-boot-maven-plugin</artifactId>
84
 				<artifactId>spring-boot-maven-plugin</artifactId>
85
 			</plugin>
85
 			</plugin>
86
+			<plugin>
87
+				<groupId>org.apache.maven.plugins</groupId>
88
+				<artifactId>maven-surefire-plugin</artifactId>
89
+				<version>2.4.2</version>
90
+				<configuration>
91
+					<skipTests>true</skipTests>
92
+				</configuration>
93
+			</plugin>
86
 		</plugins>
94
 		</plugins>
87
 	</build>
95
 	</build>
88
 
96
 

+ 1
- 0
src/main/java/com.huiju.welcome/common/WebSocketServer.java View File

113
 				if(sid==null) {
113
 				if(sid==null) {
114
 					item.sendMessage(message);
114
 					item.sendMessage(message);
115
 				}else if(item.sid.equals(sid)){
115
 				}else if(item.sid.equals(sid)){
116
+					log.info("推送消息到窗口"+sid+",推送内容:"+message);
116
 					item.sendMessage(message);
117
 					item.sendMessage(message);
117
 				}
118
 				}
118
 			} catch (IOException e) {
119
 			} catch (IOException e) {

+ 225
- 161
src/main/java/com.huiju.welcome/controller/CameraController.java View File

2
 
2
 
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.huiju.welcome.common.WebSocketServer;
6
 import com.huiju.welcome.common.WebSocketServer;
7
+import com.huiju.welcome.common.base.ResponseBean;
6
 import com.huiju.welcome.model.*;
8
 import com.huiju.welcome.model.*;
7
 import com.huiju.welcome.service.*;
9
 import com.huiju.welcome.service.*;
8
 import com.huiju.welcome.utils.StatusUtils;
10
 import com.huiju.welcome.utils.StatusUtils;
9
 import com.huiju.welcome.utils.XFYun;
11
 import com.huiju.welcome.utils.XFYun;
10
 import io.swagger.annotations.ApiOperation;
12
 import io.swagger.annotations.ApiOperation;
13
+import org.slf4j.Logger;
14
+import org.slf4j.LoggerFactory;
15
+import org.apache.http.HttpStatus;
11
 import org.springframework.beans.factory.annotation.Autowired;
16
 import org.springframework.beans.factory.annotation.Autowired;
12
 import org.springframework.beans.factory.annotation.Value;
17
 import org.springframework.beans.factory.annotation.Value;
13
-import org.springframework.http.HttpEntity;
14
-import org.springframework.http.HttpHeaders;
15
-import org.springframework.http.HttpMethod;
16
-import org.springframework.http.MediaType;
17
 import org.springframework.transaction.annotation.Transactional;
18
 import org.springframework.transaction.annotation.Transactional;
18
-import org.springframework.web.bind.annotation.PathVariable;
19
-import org.springframework.web.bind.annotation.PostMapping;
20
-import org.springframework.web.bind.annotation.RequestMapping;
21
-import org.springframework.web.bind.annotation.RestController;
22
-import org.springframework.web.client.RestTemplate;
19
+import org.springframework.web.bind.annotation.*;
20
+import org.springframework.web.multipart.MultipartFile;
21
+import org.springframework.web.multipart.MultipartHttpServletRequest;
23
 
22
 
24
-import javax.servlet.ServletInputStream;
25
 import javax.servlet.http.HttpServletRequest;
23
 import javax.servlet.http.HttpServletRequest;
26
-import java.io.ByteArrayOutputStream;
27
 import java.io.File;
24
 import java.io.File;
28
 import java.io.FileOutputStream;
25
 import java.io.FileOutputStream;
29
 import java.io.IOException;
26
 import java.io.IOException;
27
+import java.nio.ByteBuffer;
28
+import java.nio.channels.FileChannel;
30
 import java.time.Duration;
29
 import java.time.Duration;
31
 import java.time.LocalDateTime;
30
 import java.time.LocalDateTime;
32
 import java.util.HashMap;
31
 import java.util.HashMap;
41
 @RequestMapping("/")
40
 @RequestMapping("/")
42
 @Transactional(rollbackFor = Exception.class)
41
 @Transactional(rollbackFor = Exception.class)
43
 public class CameraController {
42
 public class CameraController {
43
+	private Logger log = LoggerFactory.getLogger(XFYun.class);
44
+
45
+	private final static int NEW_PERSON = 1;
44
 	
46
 	
45
 	@Autowired
47
 	@Autowired
46
 	private ITaPersonService taPersonService;
48
 	private ITaPersonService taPersonService;
49
+
50
+	@Autowired
51
+	private ITaSnapshotPersonService taSnapshotPersonService;
47
 	
52
 	
48
 	@Autowired
53
 	@Autowired
49
 	private ITaVisitingLogService visitingLogService;
54
 	private ITaVisitingLogService visitingLogService;
55
 
60
 
56
 	@Autowired
61
 	@Autowired
57
 	private ITaVisitingWordsService visitingWordsService;
62
 	private ITaVisitingWordsService visitingWordsService;
63
+
64
+	@Autowired
65
+	private ITaCustomWordsService taCustomWordsService;
58
 	
66
 	
59
 	@Autowired
67
 	@Autowired
60
 	private ITaPersonTypeService taPersonTypeService;
68
 	private ITaPersonTypeService taPersonTypeService;
64
 	
72
 	
65
 	@Value("${huiju.files}")
73
 	@Value("${huiju.files}")
66
 	private String huijuFiles;
74
 	private String huijuFiles;
67
-	
68
-	
69
-	@ApiOperation(value = "人脸识别失败", notes = "人脸识别失败")
70
-	@PostMapping(value = "/stranger/{deviceId}")
71
-	public void stranger(@PathVariable String deviceId, HttpServletRequest request){
75
+
76
+	@Autowired
77
+	private ICameraService cameraService;
78
+
79
+	@ApiOperation(value = "人脸对比结果上传", notes = "人脸对比结果上传")
80
+	@PostMapping(value = "/camera/{deviceId}/person")
81
+	public ResponseBean person(
82
+			@PathVariable String deviceId,
83
+			MultipartFile snapshot,
84
+			TaSnapshotPerson taSnapshotPerson,
85
+			HttpServletRequest request) {
86
+		ResponseBean responseBean = new ResponseBean();
87
+
88
+		if (null == deviceId || null == taSnapshotPerson) {
89
+			responseBean.addError(HttpStatus.SC_BAD_REQUEST, "设备ID 或者 抓拍参数传入方式不正确");
90
+			return responseBean;
91
+		}
92
+
93
+		if (!deviceId.equals(taSnapshotPerson.getDeviceId())) {
94
+			responseBean.addError(HttpStatus.SC_BAD_REQUEST, "设备ID 或者 抓拍参数传入不正确");
95
+			return responseBean;
96
+		}
97
+
98
+		// 抓拍时间为当前时间
99
+		taSnapshotPerson.setCreateDate(LocalDateTime.now());
100
+
101
+		// 人像质量最低值, 低于这个值的认为人脸抓拍失败, 取值范围 1 - 100
102
+		SysParam faceMinScoreParam = iSysParamService.getById("face-min-score");
103
+		if (null == faceMinScoreParam) {
104
+			faceMinScoreParam = new SysParam();
105
+			faceMinScoreParam.setValue("70");
106
+		}
107
+		float faceMinScore = Float.parseFloat(faceMinScoreParam.getValue());
108
+
109
+		Integer score = taSnapshotPerson.getScore();
110
+		if (null == score || score.intValue() < faceMinScore) {
111
+			return responseBean;
112
+		}
113
+
114
+		// 人脸相似度阈值, 低于设定认为没有识别成功
115
+		// SDK 中这个值范围是 0.001 - 1, 本系统设定范围是 1 - 100
116
+		SysParam samePersonThresholdParam = iSysParamService.getById("same-person-threshold");
117
+		if (null == samePersonThresholdParam) {
118
+			samePersonThresholdParam = new SysParam();
119
+			samePersonThresholdParam.setValue("70");
120
+		}
121
+		float samePersonThreshold = Float.parseFloat(samePersonThresholdParam.getValue());
122
+		Float similarity = taSnapshotPerson.getSimilarity();
123
+
124
+		// 识别结果
125
+		boolean newGuy = null == similarity || similarity < (samePersonThreshold / 100);
126
+
127
+		TaPerson taPerson = null;
128
+		if (!newGuy) {
129
+			taPerson = taPersonService.getById(taSnapshotPerson.getMatchPerson());
130
+
131
+			// 抓拍人与比对人是同一个人
132
+			taSnapshotPerson.setPersonId(taSnapshotPerson.getMatchPerson());
133
+
134
+			LocalDateTime lastTime = taPerson.getLastVisiteDate();
135
+			boolean sameDevice = deviceId.equals(taPerson.getLastVisiteDevice());
136
+
137
+			if (null != lastTime && sameDevice) {
138
+				// 降噪设定
139
+				SysParam dispatchTimeLimitParam = iSysParamService.getById("dispatch-time-limit");
140
+				if (null == dispatchTimeLimitParam) {
141
+					dispatchTimeLimitParam = new SysParam();
142
+					dispatchTimeLimitParam.setValue("2");
143
+				}
144
+				float dispatchTimeLimit = Float.parseFloat(dispatchTimeLimitParam.getValue());
145
+
146
+				// 默认 2 分钟内连续识别的都是垃圾数据
147
+				Duration duration = Duration.between(lastTime, taSnapshotPerson.getCreateDate());
148
+				if (duration.getSeconds() < (60 * dispatchTimeLimit)) {
149
+					return responseBean;
150
+				}
151
+			}
152
+		}
153
+
154
+		// 抓拍照落地
72
 		long nowTime = System.currentTimeMillis();
155
 		long nowTime = System.currentTimeMillis();
73
-		String path = huijuFiles + "camera";
74
-		File tempFile = new File(path);
75
-		if (!tempFile.exists()) {
76
-			tempFile.mkdirs();
156
+		String avatar = "/camera/" + nowTime + "_" + deviceId + ".jpg";
157
+		getMultipartFile(snapshot, avatar);
158
+		taSnapshotPerson.setAvatar(avatar);
159
+
160
+		if (newGuy) {
161
+			// 新人入库, 同时写入抓拍人ID
162
+			taPerson = saveNewPerson(taSnapshotPerson);
163
+
164
+			// 同步相机识别库
165
+			cameraService.dispatchPerson(taPerson);
77
 		}
166
 		}
78
-		byte[] data = new byte[1024];
79
-		//人脸识别失败的情况下下载人脸图片
80
-		try {
81
-			int lenth = request.getContentLength();
82
-			ServletInputStream iii = request.getInputStream();
83
-			
84
-			//下载文件
85
-			FileOutputStream fos=new FileOutputStream(tempFile.getPath() + File.separator + nowTime + "_" + deviceId +".jpg");
86
-			ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
87
-			
88
-			byte[] buffer=new byte[1024];
89
-			int len=0;
90
-			while((len=iii.read(buffer))!=-1){
91
-				fos.write(buffer, 0, len);
92
-				bos.write(buffer, 0, len);
93
-				fos.flush();
167
+
168
+		// 保存抓拍日志
169
+		taSnapshotPersonService.save(taSnapshotPerson);
170
+
171
+		// 预写到访日志
172
+		saveVisitingLog(taPerson, taSnapshotPerson);
173
+
174
+		// 推送消息
175
+		sendPersionInfo(taPerson);
176
+
177
+		return responseBean;
178
+	}
179
+
180
+	//推送给前端
181
+	private void sendPersionInfo(TaPerson taPerson) {
182
+		TaVisitingWords taVisitingWords = null;
183
+		String deviceId = taPerson.getLastVisiteDevice();
184
+		String words = taPerson.getWords();
185
+		Integer sex = "2".equals(taPerson.getSex()) ? 2 : 1;
186
+		String personName = taPerson.getName();
187
+		if (null == personName) personName = "";
188
+
189
+		// 检查是不是有定制语音
190
+		QueryWrapper<TaCustomWords> wrapper = new QueryWrapper<>();
191
+		wrapper.eq("device_id", deviceId);
192
+		wrapper.eq("person_id", taPerson.getPersonId());
193
+		TaCustomWords taCustomWords = taCustomWordsService.getOne(wrapper);
194
+		if (null != taCustomWords) {
195
+			String wds = taCustomWords.getWords();
196
+			if (null != wds && !"".equals(wds.trim())) {
197
+				words = wds.trim();
94
 			}
198
 			}
95
-			fos.close();
96
-			iii.close();
97
-			data = bos.toByteArray();
98
-			bos.close();
99
-			
100
-		}catch (Exception e){
101
-			e.printStackTrace();
102
 		}
199
 		}
103
-		LocalDateTime localDateTime = LocalDateTime.now();
104
-		//入人员库
105
-		String fileName = "/camera/" + nowTime + "_" + deviceId + ".jpg";
106
-		TaPerson taPerson = new TaPerson();
107
-		taPerson.setAvatar(fileName);
108
-		taPerson.setStatus(StatusUtils.Normal);
109
-		taPerson.setCreateDate(localDateTime);
110
-		taPerson.setLastVisiteDate(localDateTime);
111
-		taPerson.setLastVisiteDevice(deviceId);
112
-		taPerson.setTypeId(StatusUtils.Normal);
113
-		taPersonService.save(taPerson);
114
-		//入来访人员库
115
-		TaDevice taDevice = taDeviceService.getById(deviceId);
116
-		TaVisitingLog taVisitingLog = new TaVisitingLog();
117
-		taVisitingLog.setPersonId(taPerson.getPersonId());
118
-		taVisitingLog.setVisiteDate(localDateTime);
119
-		taVisitingLog.setDeviceId(taDevice.getDeviceId());
120
-		taVisitingLog.setDeviceName(taDevice.getDeviceName());
121
-		taVisitingLog.setAvatar(fileName);
122
-		visitingLogService.save(taVisitingLog);
123
-
124
-		//推送消息给前端
125
-		sendPersionInfo(taPerson.getPersonId(),deviceId);
126
-		
127
-		//分发人脸到各个相机
128
-		RestTemplate restTemplate = new RestTemplate();
129
-		
130
-		QueryWrapper<TaDevice> queryWrapper = new QueryWrapper<>();
131
-		queryWrapper.eq("status",StatusUtils.Normal);
132
-		List<TaDevice> taDeviceList = taDeviceService.list(queryWrapper);
133
-		byte[] finalData = data;
134
-		taDeviceList.stream().forEach(e -> {
135
-			try {
136
-				String cameraUrl = e.getApi() + "/video/" + taPerson.getPersonId();
137
-				HttpHeaders headers = new HttpHeaders();
138
-				headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
139
-				
140
-				HttpEntity httpEntity = new HttpEntity(finalData);
141
-				restTemplate.exchange(cameraUrl, HttpMethod.POST, httpEntity, String.class);
142
-			}catch (Exception ee){
143
-			
200
+
201
+		if (null == words || "".equals(words)) {
202
+			// 当前分类下不一定维护了欢迎词
203
+			QueryWrapper<TaVisitingWords> query = new QueryWrapper<>();
204
+			query.eq("device_id", deviceId);
205
+			query.eq("type_id", taPerson.getTypeId());
206
+			taVisitingWords = visitingWordsService.getOne(query);
207
+			if (null == taVisitingWords) {
208
+				return;
144
 			}
209
 			}
145
-		});
146
-	}
147
-	
148
-	private void sendPersionInfo(Integer personId, String deviceId) {
149
-		//推送给前端
150
-		TaPerson newPerson = taPersonService.getById(personId);
151
-		QueryWrapper<TaVisitingWords> queryWrapperWords = new QueryWrapper<>();
152
-		queryWrapperWords.eq("device_id",deviceId);
153
-		queryWrapperWords.eq("type_id",newPerson.getTypeId());
154
-		TaVisitingWords taVisitingWords = visitingWordsService.getOne(queryWrapperWords);
155
-
156
-		Integer sex = "2".equals(newPerson.getSex()) ? 2 : 1;
157
-		String personName = newPerson.getName();
158
-		if (null == personName) {
159
-			personName = "";
210
+
211
+			words = taVisitingWords.getWords();
160
 		}
212
 		}
161
 
213
 
162
-		String words = taVisitingWords.getWords().replace("{{name}}", personName).replace("{{sex}}", sex == 2 ? "女士" : "先生");
214
+
215
+		words = words.replace("{{name}}", personName).replace("{{sex}}", sex == 2 ? "女士" : "先生");
163
 		taVisitingWords.setWords(words);
216
 		taVisitingWords.setWords(words);
164
 
217
 
165
 		Map<String,Object> map = new HashMap<>();
218
 		Map<String,Object> map = new HashMap<>();
166
-		map.put("person",newPerson);
219
+		map.put("person",taPerson);
167
 		map.put("taVisitingWords",taVisitingWords);
220
 		map.put("taVisitingWords",taVisitingWords);
168
-
169
 		map.put("audio", xfYun.voice( personName + "," + words, sex  == 2 ? 1 : 2));
221
 		map.put("audio", xfYun.voice( personName + "," + words, sex  == 2 ? 1 : 2));
170
 		try {
222
 		try {
171
 			WebSocketServer.sendInfo(JSONObject.toJSONString(map),deviceId);
223
 			WebSocketServer.sendInfo(JSONObject.toJSONString(map),deviceId);
174
 		}
226
 		}
175
 	}
227
 	}
176
 
228
 
177
-	@ApiOperation(value = "人脸识别成功", notes = "人脸识别成功")
178
-	@PostMapping(value = "/familiar/{deviceId}/{personId}")
179
-	public void familiar(@PathVariable String deviceId,
180
-	                     @PathVariable Integer personId,HttpServletRequest request){
181
-		//根据persionId和deviceId获取人员的数据
182
-		TaPerson taPerson = taPersonService.getById(personId);
183
-		//查看此人是否需要显示
184
-		TaPersonType taPersonType = taPersonTypeService.getById(taPerson.getTypeId());
185
-		if (!taPersonType.getNeedShow()){
186
-			return;
187
-		}
188
-		SysParam sysParam = iSysParamService.getById("dispatch-time-limit");
189
-		LocalDateTime localDateTime = LocalDateTime.now();
190
-		//相同设备号才有五分钟的可能并且判断当前时间减去最后到访时间 是否大于五分钟(可配置的)
191
-		Duration duration = Duration.between(taPerson.getLastVisiteDate(),localDateTime);
192
-		if (taPerson.getLastVisiteDevice().equals(deviceId) && duration.toMinutes() < Long.valueOf(sysParam.getValue())){
193
-			return;
194
-		}
195
-		//获取图片
196
-		long nowTime = System.currentTimeMillis();
197
-		String path = huijuFiles + "camera";
198
-		File tempFile = new File(path);
199
-		if (!tempFile.exists()) {
200
-			tempFile.mkdirs();
229
+	// 获取上传单文件
230
+	private boolean getMultipartFile(MultipartFile f, String newFname) {
231
+		if (null == f || f.isEmpty()) {
232
+			log.error("========================没有获取到抓拍图片");
233
+			return false;
234
+		} else {
235
+			log.info("=======================成功获取到抓拍数据流");
201
 		}
236
 		}
202
-		
203
-		//人脸识别失败的情况下下载人脸图片
237
+
238
+		File localDir = new File(huijuFiles + "camera");
239
+		if (!localDir.exists()) localDir.mkdirs();
240
+
204
 		try {
241
 		try {
205
-			int lenth = request.getContentLength();
206
-			ServletInputStream iii = request.getInputStream();
207
-			
208
-			//下载文件
209
-			FileOutputStream fos=new FileOutputStream(tempFile.getPath() + File.separator + nowTime + "_" + deviceId + ".jpg");
210
-			byte[] buffer=new byte[1024];
211
-			int len=0;
212
-			while((len=iii.read(buffer))!=-1){
213
-				fos.write(buffer, 0, len);
214
-				
215
-				fos.flush();
216
-			}
217
-			fos.close();
218
-			iii.close();
219
-		}catch (Exception e){
242
+			byte[] fBytes = f.getBytes();
243
+			ByteBuffer buf = ByteBuffer.wrap(fBytes);
244
+			FileChannel fc = new FileOutputStream(huijuFiles + newFname).getChannel();
245
+			fc.write(buf);
246
+			fc.close();
247
+		} catch (Exception e) {
220
 			e.printStackTrace();
248
 			e.printStackTrace();
249
+			log.error("读取抓拍图片失败: " + e.getMessage());
250
+			return false;
251
+		}
252
+
253
+		log.info("成功落地抓拍图: " + huijuFiles + newFname);
254
+
255
+		return true;
256
+	}
257
+
258
+	private TaPerson saveNewPerson(TaSnapshotPerson taSnapshotPerson) {
259
+		TaPerson person = new TaPerson();
260
+		person.setTypeId(NEW_PERSON);
261
+		person.setAvatar(taSnapshotPerson.getAvatar());
262
+		person.setStatus(StatusUtils.Normal);
263
+		person.setLastVisiteDate(taSnapshotPerson.getCreateDate());
264
+		person.setLastVisiteDevice(taSnapshotPerson.getDeviceId());
265
+		person.setSex(taSnapshotPerson.getSex().toString());
266
+
267
+		boolean rtn = taPersonService.save(person);
268
+		if (!rtn) {
269
+			return null;
221
 		}
270
 		}
222
-		
223
-		//入人员库
224
-		String fileName = "/camera/" + nowTime + "_" + deviceId + ".jpg";
225
-		
226
-		//更新最后到访时间和设备
227
-		TaPerson lastTaPerson = new TaPerson();
228
-		lastTaPerson.setPersonId(personId);
229
-		lastTaPerson.setLastVisiteDate(localDateTime);
230
-		lastTaPerson.setLastVisiteDevice(deviceId);
231
-		taPersonService.updateById(lastTaPerson);
232
-		//入来访人员库
233
-		TaDevice taDevice = taDeviceService.getById(deviceId);
271
+
272
+		// 更新 real_id
273
+		UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
274
+		wrapper.set("real_id", person.getPersonId());
275
+		wrapper.eq("person_id", person.getPersonId());
276
+		taPersonService.update(new TaPerson(), wrapper);
277
+
278
+		taSnapshotPerson.setPersonId(person.getPersonId());
279
+		person.setRealId(person.getPersonId());
280
+		return person;
281
+	}
282
+
283
+	//
284
+	private TaVisitingLog saveVisitingLog(TaPerson taPerson, TaSnapshotPerson taSnapshotPerson) {
234
 		TaVisitingLog taVisitingLog = new TaVisitingLog();
285
 		TaVisitingLog taVisitingLog = new TaVisitingLog();
235
-		taVisitingLog.setPersonId(personId);
236
-		taVisitingLog.setVisiteDate(localDateTime);
286
+		TaDevice taDevice = taDeviceService.getById(taSnapshotPerson.getDeviceId());
287
+
288
+		taVisitingLog.setPersonId(taPerson.getPersonId());
289
+		taVisitingLog.setRealPerson(taPerson.getRealId());
290
+		taVisitingLog.setAvatar(taPerson.getAvatar());
237
 		taVisitingLog.setDeviceId(taDevice.getDeviceId());
291
 		taVisitingLog.setDeviceId(taDevice.getDeviceId());
238
 		taVisitingLog.setDeviceName(taDevice.getDeviceName());
292
 		taVisitingLog.setDeviceName(taDevice.getDeviceName());
239
-		taVisitingLog.setAvatar(fileName);
240
-		visitingLogService.save(taVisitingLog);
241
-		//推送消息给前端
242
-		sendPersionInfo(taPerson.getPersonId(),deviceId);
293
+		taVisitingLog.setVisiteDate(LocalDateTime.now());
294
+		taVisitingLog.setName(taPerson.getName());
295
+
296
+		// 反更新最后来访时间
297
+		taPerson.setLastVisiteDate(taVisitingLog.getVisiteDate());
298
+		taPerson.setLastVisiteDevice(taDevice.getDeviceId());
299
+		UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
300
+		wrapper.set("last_visite_date", taVisitingLog.getVisiteDate());
301
+		wrapper.set("last_visite_device", taDevice.getDeviceId());
302
+		wrapper.eq("person_id", taPerson.getPersonId());
303
+		taPersonService.update(taPerson, wrapper);
304
+
305
+		boolean rtn = visitingLogService.save(taVisitingLog);
306
+		return !rtn ? null : taVisitingLog;
243
 	}
307
 	}
244
 }
308
 }

+ 112
- 1
src/main/java/com.huiju.welcome/controller/SysUserController.java View File

1
 package com.huiju.welcome.controller;
1
 package com.huiju.welcome.controller;
2
 
2
 
3
 
3
 
4
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
6
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
 import com.huiju.welcome.common.base.BaseController;
7
 import com.huiju.welcome.common.base.BaseController;
5
 import com.huiju.welcome.common.base.ResponseBean;
8
 import com.huiju.welcome.common.base.ResponseBean;
6
 import com.huiju.welcome.model.SysUser;
9
 import com.huiju.welcome.model.SysUser;
10
+import com.huiju.welcome.model.TaPerson;
7
 import com.huiju.welcome.service.ISysUserService;
11
 import com.huiju.welcome.service.ISysUserService;
8
 import com.huiju.welcome.utils.Encrypt;
12
 import com.huiju.welcome.utils.Encrypt;
9
 import com.huiju.welcome.utils.StatusUtils;
13
 import com.huiju.welcome.utils.StatusUtils;
16
 
20
 
17
 import javax.servlet.http.HttpServletRequest;
21
 import javax.servlet.http.HttpServletRequest;
18
 import javax.servlet.http.HttpSession;
22
 import javax.servlet.http.HttpSession;
23
+import java.time.LocalDateTime;
24
+import java.time.format.DateTimeFormatter;
25
+import java.util.List;
19
 
26
 
20
 /**
27
 /**
21
  * <p>
28
  * <p>
92
 
99
 
93
     @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
100
     @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
94
     @RequestMapping(value = "/user", method = RequestMethod.GET)
101
     @RequestMapping(value = "/user", method = RequestMethod.GET)
95
-    public ResponseBean get(HttpServletRequest request) {
102
+    public ResponseBean user(HttpServletRequest request) {
96
         ResponseBean responseBean = new ResponseBean();
103
         ResponseBean responseBean = new ResponseBean();
97
         HttpSession httpSession = request.getSession();
104
         HttpSession httpSession = request.getSession();
98
 
105
 
105
         return responseBean;
112
         return responseBean;
106
     }
113
     }
107
 
114
 
115
+    @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
116
+    @ApiImplicitParams({
117
+            @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageNum", value = "当前页"),
118
+            @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageSize", value = "每页数量"),
119
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "name", value = "姓名"),
120
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "手机号"),
121
+            @ApiImplicitParam(paramType = "query", dataType = "int", name = "isSales", value = "是否销售"),
122
+    })
123
+    @RequestMapping(value = "/sysuser", method = RequestMethod.GET)
124
+    public ResponseBean list(
125
+            @RequestParam Integer pageNum,
126
+            @RequestParam  Integer pageSize,
127
+            String name,
128
+            String phone,
129
+            Integer isSales,
130
+            HttpServletRequest request
131
+    ) {
132
+        ResponseBean responseBean = new ResponseBean();
133
+
134
+        Page<SysUser> pg = new Page<>();
135
+        pg.setCurrent(pageNum);
136
+        pg.setSize(pageSize);
137
+        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
138
+        queryWrapper.orderByDesc("create_date");
139
+        queryWrapper.gt("user_id", 1); // 去掉管理员
140
+
141
+        if (null != name && !"".equals(name)) {
142
+            queryWrapper.like("nickname", name);
143
+        }
144
+
145
+        if (null != phone && !"".equals(phone)) {
146
+            queryWrapper.eq("phone", phone);
147
+        }
148
+
149
+        if (null != isSales && isSales.intValue() > 0 ) {
150
+            queryWrapper.eq("is_sales", isSales);
151
+        }
152
+
153
+        // 取消传递密码字段
154
+        IPage<SysUser> nwPg = sysUserService.page(pg, queryWrapper);
155
+        List<SysUser> usrList = nwPg.getRecords();
156
+        for (SysUser usr : usrList) {
157
+            usr.setPassword("");
158
+        }
159
+
160
+        responseBean.addSuccess(nwPg);
161
+        return responseBean;
162
+    }
163
+
164
+    @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
165
+    @ApiImplicitParams({
166
+            @ApiImplicitParam(paramType = "path", dataType = "int", name = "id", value = "用户详情")
167
+    })
168
+    @RequestMapping(value = "/sysuser/{id}", method = RequestMethod.GET)
169
+    public ResponseBean get(@PathVariable Integer id, HttpServletRequest request) {
170
+        ResponseBean responseBean = new ResponseBean();
171
+
172
+        if (id.intValue() < 2) {
173
+            responseBean.addError(HttpStatus.SC_NOT_FOUND, "错误的用户ID");
174
+            return responseBean;
175
+        }
176
+
177
+        SysUser sysUser = sysUserService.getById(id);
178
+        sysUser.setPassword("");
179
+
180
+        responseBean.addSuccess(sysUser);
181
+        return responseBean;
182
+    }
183
+
184
+    @ApiOperation(value = "新增人员", notes = "新增人员")
185
+    @ApiImplicitParams({
186
+            @ApiImplicitParam(paramType = "body", dataType = "SysUser", name = "sysUser", value = "用户详情")
187
+    })
188
+    @RequestMapping(value = "/sysuser", method = RequestMethod.POST)
189
+    public ResponseBean create(@RequestBody SysUser sysUser, HttpServletRequest request) {
190
+        ResponseBean responseBean = new ResponseBean();
191
+
192
+        sysUser.setCreateDate(LocalDateTime.now());
193
+
194
+        boolean success = sysUserService.save(sysUser);
195
+        if (!success) {
196
+            responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "新增用户失败");
197
+            return responseBean;
198
+        }
199
+
200
+        return responseBean;
201
+    }
202
+
203
+    @ApiOperation(value = "编辑人员", notes = "编辑人员")
204
+    @ApiImplicitParams({
205
+            @ApiImplicitParam(paramType = "body", dataType = "SysUser", name = "sysUser", value = "用户详情")
206
+    })
207
+    @RequestMapping(value = "/sysuser", method = RequestMethod.PUT)
208
+    public ResponseBean update(@RequestBody SysUser sysUser, HttpServletRequest request) {
209
+        ResponseBean responseBean = new ResponseBean();
210
+        boolean success = sysUserService.updateById(sysUser);
211
+        if (!success) {
212
+            responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "更新用户失败");
213
+            return responseBean;
214
+        }
215
+
216
+        return responseBean;
217
+    }
218
+
108
     private boolean checkPassword(String password, SysUser user)  {
219
     private boolean checkPassword(String password, SysUser user)  {
109
         String passwd = Encrypt.md5(password, user.getUserId().toString());
220
         String passwd = Encrypt.md5(password, user.getUserId().toString());
110
         if (null == passwd || !passwd.equals(user.getPassword())) {
221
         if (null == passwd || !passwd.equals(user.getPassword())) {

+ 108
- 0
src/main/java/com.huiju.welcome/controller/TaDeviceController.java View File

1
 package com.huiju.welcome.controller;
1
 package com.huiju.welcome.controller;
2
 
2
 
3
 
3
 
4
+import com.alibaba.fastjson.JSON;
4
 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;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
8
+import com.huiju.welcome.common.WebSocketServer;
6
 import com.huiju.welcome.common.base.BaseController;
9
 import com.huiju.welcome.common.base.BaseController;
7
 import com.huiju.welcome.common.base.ResponseBean;
10
 import com.huiju.welcome.common.base.ResponseBean;
8
 import com.huiju.welcome.model.TaDevice;
11
 import com.huiju.welcome.model.TaDevice;
12
+import com.huiju.welcome.model.TaPerson;
13
+import com.huiju.welcome.service.ICameraService;
9
 import com.huiju.welcome.service.ITaDeviceService;
14
 import com.huiju.welcome.service.ITaDeviceService;
15
+import com.huiju.welcome.service.ITaPersonService;
10
 import com.huiju.welcome.utils.StatusUtils;
16
 import com.huiju.welcome.utils.StatusUtils;
11
 import io.swagger.annotations.ApiImplicitParam;
17
 import io.swagger.annotations.ApiImplicitParam;
12
 import io.swagger.annotations.ApiImplicitParams;
18
 import io.swagger.annotations.ApiImplicitParams;
19
 import org.springframework.web.bind.annotation.RestController;
25
 import org.springframework.web.bind.annotation.RestController;
20
 
26
 
21
 import javax.servlet.http.HttpServletRequest;
27
 import javax.servlet.http.HttpServletRequest;
28
+import java.io.IOException;
22
 import java.time.LocalDateTime;
29
 import java.time.LocalDateTime;
30
+import java.util.HashMap;
31
+import java.util.List;
32
+import java.util.Map;
23
 
33
 
24
 /**
34
 /**
25
  * <p>
35
  * <p>
35
     @Autowired
45
     @Autowired
36
     ITaDeviceService taDeviceService;
46
     ITaDeviceService taDeviceService;
37
 
47
 
48
+    @Autowired
49
+    ITaPersonService taPersonService;
50
+
51
+    @Autowired
52
+    private ICameraService cameraService;
53
+
38
     @ApiOperation(value = "获取设备列表", notes = "获取设备列表")
54
     @ApiOperation(value = "获取设备列表", notes = "获取设备列表")
39
     @ApiImplicitParams({
55
     @ApiImplicitParams({
40
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageNum", value = "当前页"),
56
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageNum", value = "当前页"),
54
         return responseBean;
70
         return responseBean;
55
     }
71
     }
56
 
72
 
73
+    @ApiOperation(value = "批量下发人脸", notes = "批量下发人脸")
74
+    @ApiImplicitParams({
75
+            @ApiImplicitParam(paramType="query", dataType="Integer", name="from", value="人员ID"),
76
+            @ApiImplicitParam(paramType="query", dataType="Integer", name="lastNum", value="上次处理个数"),
77
+            @ApiImplicitParam(paramType="query", dataType="String", name="deviceId", value="设备 id"),
78
+            @ApiImplicitParam(paramType="query", dataType="String", name="wsId", value="websocket id"),
79
+    })
80
+    @RequestMapping(value = "/device/person", method = RequestMethod.POST)
81
+    public ResponseBean DispatchBatch(@RequestParam String deviceId, Integer from, Integer lastNum, String wsId, HttpServletRequest request) {
82
+        ResponseBean responseBean = new ResponseBean();
83
+
84
+        if (null == from) from = 1;
85
+        if (null == lastNum) lastNum = 0;
86
+
87
+        TaDevice taDevice = taDeviceService.getById(deviceId);
88
+        if (null == taDevice) {
89
+            responseBean.addError(HttpStatus.SC_BAD_REQUEST, "设备不存在");
90
+            return responseBean;
91
+        }
92
+
93
+        // 获取所有的人员
94
+        QueryWrapper<TaPerson> wrapper = new QueryWrapper<>();
95
+        wrapper.ge("person_id", from);
96
+        wrapper.orderByAsc("person_id");
97
+
98
+        Page<TaPerson> preDef = new Page<>();
99
+        preDef.setCurrent(1);
100
+        preDef.setSize(9999999l); // 代表无限大
101
+
102
+        IPage<TaPerson> pg = taPersonService.page(preDef, wrapper);
103
+        Map<String, Object> msg = new HashMap<>();
104
+        if (null != wsId && !"".equals(wsId) && from.intValue() == 0) {
105
+            msg.put("step", "ready");
106
+            msg.put("total", pg.getTotal());
107
+            try {
108
+                // 通知前端开始处理
109
+                WebSocketServer.sendInfo(JSON.toJSONString(msg), wsId);
110
+            } catch (IOException e) {
111
+                e.printStackTrace();
112
+            }
113
+        }
114
+
115
+        List<TaPerson> personList = pg.getRecords();
116
+        int total = null == personList ? 0 : personList.size();
117
+        if (total > 0) {
118
+            for(TaPerson person: personList) {
119
+                if (null != wsId && !"".equals(wsId)) {
120
+                    msg.clear();
121
+                    msg.put("step", "process");
122
+                    msg.put("current", lastNum);
123
+                    msg.put("id", person.getPersonId());
124
+                    try {
125
+                        // 通知前端当前处理到这个人
126
+                        WebSocketServer.sendInfo(JSON.toJSONString(msg), wsId);
127
+                    } catch (IOException e) {
128
+                        e.printStackTrace();
129
+                    }
130
+                }
131
+
132
+                // 下发
133
+                String result = cameraService.dispatchPerson(person, taDevice);
134
+//                String result = "success";
135
+//                try {
136
+//                    Thread.sleep(50);
137
+//                } catch (InterruptedException e) {
138
+//                    e.printStackTrace();
139
+//                }
140
+
141
+                boolean success = null == result || "".equals(result) || "success".equals(result);
142
+                if (!success) {
143
+                    responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, result);
144
+                    return responseBean;
145
+                }
146
+
147
+                lastNum ++;
148
+            }
149
+        }
150
+
151
+        if (null != wsId && !"".equals(wsId)) {
152
+            msg.clear();
153
+            msg.put("step", "finish");
154
+            try {
155
+                // 通知前端所有人已处理完
156
+                WebSocketServer.sendInfo(JSON.toJSONString(msg), wsId);
157
+            } catch (IOException e) {
158
+                e.printStackTrace();
159
+            }
160
+        }
161
+
162
+        return responseBean;
163
+    }
164
+
57
 
165
 
58
     @ApiOperation(value = "设备注册", notes = "设备注册")
166
     @ApiOperation(value = "设备注册", notes = "设备注册")
59
     @ApiImplicitParams({
167
     @ApiImplicitParams({

+ 68
- 29
src/main/java/com.huiju.welcome/controller/TaPersonController.java View File

1
 package com.huiju.welcome.controller;
1
 package com.huiju.welcome.controller;
2
 
2
 
3
-
4
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.huiju.welcome.common.base.BaseController;
4
 import com.huiju.welcome.common.base.BaseController;
7
 import com.huiju.welcome.common.base.ResponseBean;
5
 import com.huiju.welcome.common.base.ResponseBean;
8
 import com.huiju.welcome.model.TaPerson;
6
 import com.huiju.welcome.model.TaPerson;
9
 import com.huiju.welcome.model.TaVisitingLog;
7
 import com.huiju.welcome.model.TaVisitingLog;
8
+import com.huiju.welcome.service.ICameraService;
10
 import com.huiju.welcome.service.ITaDeviceService;
9
 import com.huiju.welcome.service.ITaDeviceService;
11
 import com.huiju.welcome.service.ITaPersonService;
10
 import com.huiju.welcome.service.ITaPersonService;
12
 import com.huiju.welcome.service.ITaVisitingLogService;
11
 import com.huiju.welcome.service.ITaVisitingLogService;
20
 import org.springframework.web.bind.annotation.*;
19
 import org.springframework.web.bind.annotation.*;
21
 
20
 
22
 import javax.servlet.http.HttpServletRequest;
21
 import javax.servlet.http.HttpServletRequest;
23
-import java.time.LocalDateTime;
22
+import java.util.ArrayList;
23
+import java.util.HashMap;
24
+import java.util.List;
24
 import java.util.Map;
25
 import java.util.Map;
25
 
26
 
26
 /**
27
 /**
44
     @Autowired
45
     @Autowired
45
     ITaDeviceService taDeviceService;
46
     ITaDeviceService taDeviceService;
46
 
47
 
48
+    @Autowired
49
+    private ICameraService cameraService;
50
+
47
     @ApiOperation(value = "新增人员", notes = "新增人员")
51
     @ApiOperation(value = "新增人员", notes = "新增人员")
48
     @ApiImplicitParams({
52
     @ApiImplicitParams({
49
             @ApiImplicitParam(paramType = "body", dataType = "TaPerson", name = "taPerson", value = "人员详情")
53
             @ApiImplicitParam(paramType = "body", dataType = "TaPerson", name = "taPerson", value = "人员详情")
59
             return responseBean;
63
             return responseBean;
60
         }
64
         }
61
 
65
 
66
+        taPerson.setRealId(taPerson.getPersonId());
67
+        success = taPersonService.updateById(taPerson);
68
+        if (!success) {
69
+            responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "新增人员失败");
70
+            return responseBean;
71
+        }
72
+
62
         return responseBean;
73
         return responseBean;
63
     }
74
     }
64
 
75
 
78
         return responseBean;
89
         return responseBean;
79
     }
90
     }
80
 
91
 
92
+    @ApiOperation(value = "合并人员", notes = "合并人员")
93
+    @ApiImplicitParams({
94
+            @ApiImplicitParam(paramType = "path", dataType = "int", name = "from", value = "待合并人员ID"),
95
+            @ApiImplicitParam(paramType = "body", dataType = "TaPerson", name = "to", value = "合并到人员ID")
96
+    })
97
+    @RequestMapping(value = "/merge/person/{from}", method = RequestMethod.PUT)
98
+    public  ResponseBean merge(@PathVariable Integer from, @RequestBody TaPerson to) {
99
+        ResponseBean responseBean = new ResponseBean();
100
+        boolean success = taPersonService.mergePerson(from, to);
101
+        if (!success) {
102
+            responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "合并人员失败");
103
+            return responseBean;
104
+        }
105
+
106
+        return responseBean;
107
+    }
108
+
81
     @ApiOperation(value = "更新人员头像", notes = "更新人员头像")
109
     @ApiOperation(value = "更新人员头像", notes = "更新人员头像")
82
     @ApiImplicitParams({
110
     @ApiImplicitParams({
83
             @ApiImplicitParam(paramType="path", dataType="Integer", name="personId", value="人员ID"),
111
             @ApiImplicitParam(paramType="path", dataType="Integer", name="personId", value="人员ID"),
110
     public ResponseBean DispatchProfile(@PathVariable int personId, HttpServletRequest request) {
138
     public ResponseBean DispatchProfile(@PathVariable int personId, HttpServletRequest request) {
111
         ResponseBean responseBean = new ResponseBean();
139
         ResponseBean responseBean = new ResponseBean();
112
         TaPerson taPerson = taPersonService.getById(personId);
140
         TaPerson taPerson = taPersonService.getById(personId);
113
-        String success = taPersonService.updateAvatar(taPerson);
114
-        if (!success.equals("success")) {
115
-            responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, success);
141
+        String result = cameraService.dispatchPerson(taPerson);
142
+        boolean success = null == result || "".equals(result) || "success".equals(result);
143
+        if (!success) {
144
+            responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, result);
116
             return responseBean;
145
             return responseBean;
117
         }
146
         }
118
         return responseBean;
147
         return responseBean;
126
 	public ResponseBean get(@PathVariable int id, HttpServletRequest request) {
155
 	public ResponseBean get(@PathVariable int id, HttpServletRequest request) {
127
 		ResponseBean responseBean = new ResponseBean();
156
 		ResponseBean responseBean = new ResponseBean();
128
 
157
 
129
-		Map<String, Object> res = taPersonService.detail(id);
158
+//		Map<String, Object> res = taPersonService.detail(id);
159
+        Map<String, Object> res = new HashMap<>();
160
+        res.put("detail", taPersonService.getById(id));
161
+
130
 		responseBean.addSuccess(res);
162
 		responseBean.addSuccess(res);
131
 		return responseBean;
163
 		return responseBean;
132
 	}
164
 	}
135
     @ApiImplicitParams({
167
     @ApiImplicitParams({
136
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageNum", value = "当前页"),
168
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageNum", value = "当前页"),
137
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageSize", value = "每页数量"),
169
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageSize", value = "每页数量"),
138
-            @ApiImplicitParam(paramType = "query", dataType = "int", name = "typeId", value = "每页数量"),
170
+            @ApiImplicitParam(paramType = "query", dataType = "int", name = "typeId", value = "类型"),
171
+            @ApiImplicitParam(paramType = "query", dataType = "int", name = "personId", value = "人员ID"),
139
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "name", value = "姓名"),
172
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "name", value = "姓名"),
140
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "电话"),
173
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "电话"),
141
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "beginDate", value = "起始日期"),
174
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "beginDate", value = "起始日期"),
146
             @RequestParam Integer pageNum,
179
             @RequestParam Integer pageNum,
147
             @RequestParam  Integer pageSize,
180
             @RequestParam  Integer pageSize,
148
             Integer typeId,
181
             Integer typeId,
182
+            Integer personId,
149
             String name,
183
             String name,
150
             String phone,
184
             String phone,
151
             String beginDate,
185
             String beginDate,
154
     ) {
188
     ) {
155
         ResponseBean responseBean = new ResponseBean();
189
         ResponseBean responseBean = new ResponseBean();
156
 
190
 
157
-        Page<TaPerson> pg = new Page<>();
158
-        pg.setCurrent(pageNum);
159
-        pg.setSize(pageSize);
160
-        QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
161
-        queryWrapper.orderByDesc("last_visite_date");
162
-        queryWrapper.eq("status", StatusUtils.Normal);
191
+        Page<TaPerson> page = new Page<>(pageNum, pageSize);
163
 
192
 
164
-        if (null != name && !"".equals(name)) {
165
-            queryWrapper.like("name", name);
166
-        }
193
+        if (null != typeId && typeId < 1) typeId = null;
194
+        if (null != personId && personId < 1) personId = null;
195
+        if (null != name && "".equals(name)) name = null;
196
+        if (null != phone && "".equals(phone)) phone = null;
197
+        if (null != beginDate && "".equals(beginDate)) beginDate = null;
198
+        if (null != endDate && "".equals(endDate)) endDate = null;
167
 
199
 
168
-        if (null != phone && !"".equals(phone)) {
169
-            queryWrapper.eq("phone", phone);
170
-        }
200
+        responseBean.addSuccess(taPersonService.getRealPersonList(page, personId, typeId, name, phone, beginDate, endDate));
171
 
201
 
172
-        if (null != beginDate && !"".equals(beginDate)) {
173
-            queryWrapper.gt("last_visite_date", LocalDateTime.parse(beginDate));
174
-        }
202
+        return responseBean;
203
+    }
175
 
204
 
176
-        if (null != endDate && !"".equals(endDate)) {
177
-            queryWrapper.gt("last_visite_date", LocalDateTime.parse(endDate));
178
-        }
205
+    @ApiOperation(value = "统计人员", notes = "统计人员")
206
+    @RequestMapping(value = "/stats/person", method = RequestMethod.GET)
207
+    public ResponseBean statsPerson() {
208
+        ResponseBean responseBean = new ResponseBean();
179
 
209
 
180
-        if (typeId.intValue() > 0 ) {
181
-            queryWrapper.eq("type_id", typeId);
210
+        List<Map<String, String>> person = taPersonService.statsPerson();
211
+        if (null == person) {
212
+            person = new ArrayList<>();
182
         }
213
         }
214
+        if (person.size() == 0) {
215
+            Map<String, String> mp = new HashMap<>();
216
+            person.add(mp);
217
+        }
218
+
219
+        Long regularClients = taVisitingLogService.getRegularClientTodayAmount();
220
+        if (null ==  regularClients) regularClients = 0l;
183
 
221
 
184
-        responseBean.addSuccess(taPersonService.page(pg, queryWrapper));
222
+        person.get(0).put("regular", String.valueOf(regularClients));
185
 
223
 
224
+        responseBean.addSuccess(person);
186
         return responseBean;
225
         return responseBean;
187
     }
226
     }
188
 }
227
 }

+ 54
- 0
src/main/java/com.huiju.welcome/controller/TaSnapshotPersonController.java View File

1
+package com.huiju.welcome.controller;
2
+
3
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
+import com.huiju.welcome.common.base.ResponseBean;
5
+import com.huiju.welcome.model.TaSnapshotPerson;
6
+import com.huiju.welcome.service.ITaSnapshotPersonService;
7
+import io.swagger.annotations.ApiImplicitParam;
8
+import io.swagger.annotations.ApiImplicitParams;
9
+import io.swagger.annotations.ApiOperation;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.web.bind.annotation.RequestMapping;
12
+import org.springframework.web.bind.annotation.RequestMethod;
13
+import org.springframework.web.bind.annotation.RequestParam;
14
+import org.springframework.web.bind.annotation.RestController;
15
+
16
+import javax.servlet.http.HttpServletRequest;
17
+
18
+/**
19
+ * <p>
20
+ *  前端控制器
21
+ * </p>
22
+ *
23
+ * @author jobob
24
+ * @since 2019-03-14
25
+ */
26
+@RestController
27
+@RequestMapping("/")
28
+public class TaSnapshotPersonController {
29
+
30
+    @Autowired
31
+    private ITaSnapshotPersonService taSnapshotPersonService;
32
+
33
+
34
+    @ApiOperation(value = "获取抓拍列表", notes = "获取抓拍列表")
35
+    @ApiImplicitParams({
36
+            @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageNum", value = "当前页"),
37
+            @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageSize", value = "每页数量"),
38
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "deviceId", value = "设备ID"),
39
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "startDate", value = "开始日期"),
40
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "endDate", value = "结束日期")
41
+    })
42
+    @RequestMapping(value = "/snapshot", method = RequestMethod.GET)
43
+    public ResponseBean list(@RequestParam Integer pageNum, @RequestParam  Integer pageSize, @RequestParam  String deviceId, String startDate, String endDate, HttpServletRequest request) {
44
+        ResponseBean responseBean = new ResponseBean();
45
+
46
+        if (null != startDate && "".equals(startDate)) startDate = null;
47
+        if (null != endDate && "".equals(endDate)) endDate = null;
48
+
49
+        Page<TaSnapshotPerson> page = new Page<>(pageNum, pageSize);
50
+        responseBean.addSuccess(taSnapshotPersonService.getSnapshotList(page, deviceId, startDate, endDate));
51
+
52
+        return responseBean;
53
+    }
54
+}

+ 46
- 12
src/main/java/com.huiju.welcome/controller/TaVisitingLogController.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.TaPerson;
8
 import com.huiju.welcome.model.TaVisitingLog;
9
 import com.huiju.welcome.model.TaVisitingLog;
10
+import com.huiju.welcome.service.ITaPersonService;
9
 import com.huiju.welcome.service.ITaVisitingLogService;
11
 import com.huiju.welcome.service.ITaVisitingLogService;
10
 import io.swagger.annotations.ApiImplicitParam;
12
 import io.swagger.annotations.ApiImplicitParam;
11
 import io.swagger.annotations.ApiImplicitParams;
13
 import io.swagger.annotations.ApiImplicitParams;
15
 import org.springframework.web.bind.annotation.*;
17
 import org.springframework.web.bind.annotation.*;
16
 
18
 
17
 import javax.servlet.http.HttpServletRequest;
19
 import javax.servlet.http.HttpServletRequest;
20
+import java.time.LocalDateTime;
21
+import java.time.format.DateTimeFormatter;
18
 
22
 
19
 /**
23
 /**
20
  * <p>
24
  * <p>
30
     @Autowired
34
     @Autowired
31
     private ITaVisitingLogService taVisitingLogService;
35
     private ITaVisitingLogService taVisitingLogService;
32
 
36
 
37
+    @Autowired
38
+    private ITaPersonService taPersonService;
39
+
33
     @ApiOperation(value = "编辑访问记录", notes = "编辑访问记录")
40
     @ApiOperation(value = "编辑访问记录", notes = "编辑访问记录")
34
     @ApiImplicitParams({
41
     @ApiImplicitParams({
35
             @ApiImplicitParam(paramType = "body", dataType = "TaVisitingLog", name = "taVisitingLog", value = "访问记录")
42
             @ApiImplicitParam(paramType = "body", dataType = "TaVisitingLog", name = "taVisitingLog", value = "访问记录")
38
     public ResponseBean update(@RequestBody TaVisitingLog taVisitingLog, HttpServletRequest request) {
45
     public ResponseBean update(@RequestBody TaVisitingLog taVisitingLog, HttpServletRequest request) {
39
         ResponseBean responseBean = new ResponseBean();
46
         ResponseBean responseBean = new ResponseBean();
40
 
47
 
48
+        Integer sales = taVisitingLog.getSalesId();
49
+        if (null != sales && sales.intValue() > 0) {
50
+            // 更新人员主表
51
+            TaPerson taPerson = new TaPerson();
52
+            taPerson.setPersonId(taVisitingLog.getPersonId());
53
+            taPerson.setLastSales(sales);
54
+            taPerson.setLastSalesName(taVisitingLog.getSalesName());
55
+            boolean success = taPersonService.updateSales(taPerson);
56
+            if (!success) {
57
+                responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "更新内容失败, 请重试");
58
+                return responseBean;
59
+            }
60
+        }
61
+
41
         boolean success = taVisitingLogService.updateById(taVisitingLog);
62
         boolean success = taVisitingLogService.updateById(taVisitingLog);
42
         if (!success) {
63
         if (!success) {
43
             responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "更新内容失败, 请重试");
64
             responseBean.addError(HttpStatus.SC_INTERNAL_SERVER_ERROR, "更新内容失败, 请重试");
48
         return responseBean;
69
         return responseBean;
49
     }
70
     }
50
 
71
 
51
-    @ApiOperation(value = "获取人员列表", notes = "获取人员列表")
72
+    @ApiOperation(value = "获取访问列表", notes = "获取访问列表")
52
     @ApiImplicitParams({
73
     @ApiImplicitParams({
53
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageNum", value = "当前页"),
74
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageNum", value = "当前页"),
54
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageSize", value = "每页数量"),
75
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "pageSize", value = "每页数量"),
55
-            @ApiImplicitParam(paramType = "query", dataType = "int", name = "typeId", value = "每页数量"),
56
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "personId", value = "人员ID"),
76
             @ApiImplicitParam(paramType = "query", dataType = "int", name = "personId", value = "人员ID"),
77
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "beginDate", value = "起始日期"),
78
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "endDate", value = "结束日期"),
57
     })
79
     })
58
     @RequestMapping(value = "/visitinglog", method = RequestMethod.GET)
80
     @RequestMapping(value = "/visitinglog", method = RequestMethod.GET)
59
     public ResponseBean list(
81
     public ResponseBean list(
60
             @RequestParam Integer pageNum,
82
             @RequestParam Integer pageNum,
61
             @RequestParam  Integer pageSize,
83
             @RequestParam  Integer pageSize,
62
             Integer personId,
84
             Integer personId,
85
+            String beginDate,
86
+            String endDate,
63
             HttpServletRequest request) {
87
             HttpServletRequest request) {
64
-
65
         ResponseBean responseBean = new ResponseBean();
88
         ResponseBean responseBean = new ResponseBean();
66
 
89
 
67
-        Page<TaVisitingLog> pg = new Page<>();
68
-        pg.setCurrent(pageNum);
69
-        pg.setSize(pageSize);
70
-        QueryWrapper<TaVisitingLog> queryWrapper = new QueryWrapper<>();
71
-        queryWrapper.orderByDesc("visite_date");
90
+        if (null != personId && personId < 1) personId = null;
91
+        if (null != beginDate && "".equals(beginDate)) beginDate = null;
92
+        if (null != endDate && "".equals(endDate)) endDate = null;
72
 
93
 
73
-        if (null != personId) {
74
-            queryWrapper.eq("person_id", personId);
75
-        }
94
+        Page<TaVisitingLog> page = new Page<>(pageNum, pageSize);
95
+        responseBean.addSuccess(taVisitingLogService.getVisitingList(page, beginDate, endDate, personId));
76
 
96
 
77
-        responseBean.addSuccess(taVisitingLogService.page(pg, queryWrapper));
97
+        return responseBean;
98
+    }
99
+
100
+    @ApiOperation(value = "日访问量统计", notes = "日访问量统计")
101
+    @ApiImplicitParams({
102
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "startDate", value = "起始日期"),
103
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "endDate", value = "结束日期"),
104
+    })
105
+    @RequestMapping(value = "/stats/daily/visitinglog", method = RequestMethod.GET)
106
+    public ResponseBean visitingDailyAmout(@RequestParam String startDate, @RequestParam String endDate, HttpServletRequest request) {
107
+        ResponseBean responseBean = new ResponseBean();
108
+        DateTimeFormatter df = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
109
+        LocalDateTime startDt = LocalDateTime.parse(startDate, df);
110
+        LocalDateTime endDt = LocalDateTime.parse(endDate, df);
78
 
111
 
112
+        responseBean.addSuccess(taVisitingLogService.getVisitingDailyAmount(startDt, endDt));
79
         return responseBean;
113
         return responseBean;
80
     }
114
     }
81
 }
115
 }

+ 1
- 0
src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java View File

28
             "/familiar",
28
             "/familiar",
29
             "/stranger",
29
             "/stranger",
30
             "/screen",
30
             "/screen",
31
+            "/camera",
31
             "/websocket"
32
             "/websocket"
32
     };
33
     };
33
 
34
 

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

1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.welcome.model.TaCustomWords;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ *  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-03-12
14
+ */
15
+@Mapper
16
+public interface TaCustomWordsMapper extends BaseMapper<TaCustomWords> {
17
+
18
+}

+ 13
- 1
src/main/java/com.huiju.welcome/mapper/TaPersonMapper.java View File

1
 package com.huiju.welcome.mapper;
1
 package com.huiju.welcome.mapper;
2
 
2
 
3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
 import com.huiju.welcome.model.TaPerson;
6
 import com.huiju.welcome.model.TaPerson;
5
 import org.apache.ibatis.annotations.Mapper;
7
 import org.apache.ibatis.annotations.Mapper;
6
 import org.apache.ibatis.annotations.Param;
8
 import org.apache.ibatis.annotations.Param;
7
 
9
 
10
+import java.util.List;
8
 import java.util.Map;
11
 import java.util.Map;
9
 
12
 
10
 /**
13
 /**
18
 @Mapper
21
 @Mapper
19
 public interface TaPersonMapper extends BaseMapper<TaPerson> {
22
 public interface TaPersonMapper extends BaseMapper<TaPerson> {
20
     boolean updatePersonAvatar(TaPerson taPerson);
23
     boolean updatePersonAvatar(TaPerson taPerson);
21
-	
22
 	Map<String, String> getDetailInfo(@Param("personId") Integer personId, @Param("deviceId") String deviceId);
24
 	Map<String, String> getDetailInfo(@Param("personId") Integer personId, @Param("deviceId") String deviceId);
25
+	List<Map<String, String>> statsPerson();
26
+	IPage<TaPerson> getRealPersonList(
27
+			Page<TaPerson> page,
28
+			@Param("personId") Integer personId,
29
+			@Param("typeId") Integer typeId,
30
+			@Param("name") String name,
31
+			@Param("phone") String phone,
32
+			@Param("beginDate") String beginDate,
33
+			@Param("endDate") String endDate
34
+	);
23
 }
35
 }

+ 22
- 0
src/main/java/com.huiju.welcome/mapper/TaSnapshotPersonMapper.java View File

1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.welcome.model.TaSnapshotPerson;
7
+import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
9
+
10
+
11
+/**
12
+ * <p>
13
+ *  Mapper 接口
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-03-12
18
+ */
19
+@Mapper
20
+public interface TaSnapshotPersonMapper extends BaseMapper<TaSnapshotPerson> {
21
+    IPage<TaSnapshotPerson> getSnapshotList(Page<TaSnapshotPerson> page, @Param("deviceId") String deviceId, @Param("startDate") String startDate, @Param("endDate") String endDate);
22
+}

+ 11
- 0
src/main/java/com.huiju.welcome/mapper/TaVisitingLogMapper.java View File

1
 package com.huiju.welcome.mapper;
1
 package com.huiju.welcome.mapper;
2
 
2
 
3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
 import com.huiju.welcome.model.TaVisitingLog;
6
 import com.huiju.welcome.model.TaVisitingLog;
5
 import org.apache.ibatis.annotations.Mapper;
7
 import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
9
+
10
+import java.time.LocalDateTime;
11
+import java.util.List;
12
+import java.util.Map;
6
 
13
 
7
 /**
14
 /**
8
  * <p>
15
  * <p>
14
  */
21
  */
15
 @Mapper
22
 @Mapper
16
 public interface TaVisitingLogMapper extends BaseMapper<TaVisitingLog> {
23
 public interface TaVisitingLogMapper extends BaseMapper<TaVisitingLog> {
24
+    List<Map<String, String>> getVisitingDailyAmount(@Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate);
25
+
26
+    List<Map<String, Long>> getRegularClientTodayAmount();
17
 
27
 
28
+    IPage<TaVisitingLog> getVisitingList(Page page, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("personId") Integer personId);
18
 }
29
 }

+ 9
- 0
src/main/java/com.huiju.welcome/model/SysUser.java View File

7
 import lombok.experimental.Accessors;
7
 import lombok.experimental.Accessors;
8
 
8
 
9
 import java.io.Serializable;
9
 import java.io.Serializable;
10
+import java.time.LocalDateTime;
10
 
11
 
11
 /**
12
 /**
12
  * <p>
13
  * <p>
34
 
35
 
35
     private Integer status;
36
     private Integer status;
36
 
37
 
38
+    private String openid;
37
 
39
 
40
+    private Boolean isSales;
41
+
42
+    private String wxId;
43
+
44
+    private LocalDateTime createDate;
45
+
46
+    private String phone;
38
 }
47
 }

+ 29
- 0
src/main/java/com.huiju.welcome/model/TaCustomWords.java View File

1
+package com.huiju.welcome.model;
2
+
3
+import lombok.Data;
4
+import lombok.EqualsAndHashCode;
5
+import lombok.experimental.Accessors;
6
+
7
+import java.io.Serializable;
8
+
9
+/**
10
+ * <p>
11
+ * 
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-03-12
16
+ */
17
+@Data
18
+@EqualsAndHashCode(callSuper = false)
19
+@Accessors(chain = true)
20
+public class TaCustomWords implements Serializable {
21
+
22
+    private static final long serialVersionUID = 1L;
23
+
24
+    private String deviceId;
25
+
26
+    private Integer personId;
27
+
28
+    private String words;
29
+}

+ 9
- 0
src/main/java/com.huiju.welcome/model/TaPerson.java View File

51
     
51
     
52
     private String lastVisiteDevice;
52
     private String lastVisiteDevice;
53
 
53
 
54
+    private String words;
55
+
56
+    private Integer lastSales;
57
+
58
+    private String lastSalesName;
59
+
60
+    private String intention;
61
+
62
+    private Integer realId;
54
 }
63
 }

+ 54
- 0
src/main/java/com.huiju.welcome/model/TaSnapshotPerson.java View File

1
+package com.huiju.welcome.model;
2
+
3
+
4
+import com.baomidou.mybatisplus.annotation.IdType;
5
+import com.baomidou.mybatisplus.annotation.TableField;
6
+import com.baomidou.mybatisplus.annotation.TableId;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+import java.io.Serializable;
12
+import java.time.LocalDateTime;
13
+
14
+@Data
15
+@EqualsAndHashCode(callSuper = false)
16
+@Accessors(chain = true)
17
+public class TaSnapshotPerson  implements Serializable {
18
+
19
+    private static final long serialVersionUID = 1L;
20
+
21
+    @TableId(value = "snapshot_id", type = IdType.AUTO)
22
+    private Integer snapshotId;
23
+
24
+    private LocalDateTime createDate;
25
+
26
+    private Integer personId;
27
+
28
+    private String avatar;
29
+
30
+    private String deviceId;
31
+
32
+    private Integer matchPerson;
33
+
34
+    private Float similarity;
35
+
36
+    @TableField("`status`")
37
+    private Integer status;
38
+
39
+    private Integer score;
40
+
41
+    private Integer sex;
42
+
43
+    private Integer age;
44
+
45
+    private Integer ageDeviation;
46
+
47
+    private Integer hasGlasses;
48
+
49
+    @TableField(exist = false)
50
+    private String matchName;
51
+
52
+    @TableField(exist = false)
53
+    private String matchAvatar;
54
+}

+ 8
- 0
src/main/java/com.huiju.welcome/model/TaVisitingLog.java View File

50
     private Integer visitNum;
50
     private Integer visitNum;
51
 
51
 
52
     private String visitPurpose;
52
     private String visitPurpose;
53
+
54
+    private Integer salesId;
55
+
56
+    private String salesName;
57
+
58
+    private String intention;
59
+
60
+    private Integer realPerson;
53
 }
61
 }

+ 1
- 1
src/main/java/com.huiju.welcome/model/TaVisitingWords.java View File

31
 
31
 
32
     private Integer status;
32
     private Integer status;
33
 
33
 
34
-
34
+    private Double weight;
35
 }
35
 }

+ 8
- 0
src/main/java/com.huiju.welcome/service/ICameraService.java View File

1
+package com.huiju.welcome.service;
2
+
3
+import com.huiju.welcome.model.TaDevice;
4
+import com.huiju.welcome.model.TaPerson;
5
+
6
+public interface ICameraService {
7
+    String dispatchPerson(TaPerson taPerson, TaDevice ...devices);
8
+}

+ 16
- 0
src/main/java/com.huiju.welcome/service/ITaCustomWordsService.java View File

1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.model.TaCustomWords;
5
+
6
+/**
7
+ * <p>
8
+ *  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-03-12
13
+ */
14
+public interface ITaCustomWordsService extends IService<TaCustomWords> {
15
+
16
+}

+ 21
- 1
src/main/java/com.huiju.welcome/service/ITaPersonService.java View File

1
 package com.huiju.welcome.service;
1
 package com.huiju.welcome.service;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3
 import com.baomidou.mybatisplus.extension.service.IService;
5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.welcome.model.TaDevice;
4
 import com.huiju.welcome.model.TaPerson;
7
 import com.huiju.welcome.model.TaPerson;
5
 
8
 
9
+import java.util.List;
6
 import java.util.Map;
10
 import java.util.Map;
7
 
11
 
8
 /**
12
 /**
15
  */
19
  */
16
 public interface ITaPersonService extends IService<TaPerson> {
20
 public interface ITaPersonService extends IService<TaPerson> {
17
 
21
 
18
-    String updateAvatar(TaPerson taPerson);
22
+    String updateAvatar(TaPerson taPerson,TaDevice...dev);
19
 
23
 
20
     Map<String,Object> detail(int id);
24
     Map<String,Object> detail(int id);
21
 	
25
 	
22
 	Map<String, String> getDetailInfo(Integer personId, String deviceId);
26
 	Map<String, String> getDetailInfo(Integer personId, String deviceId);
27
+
28
+    List<Map<String, String>> statsPerson();
29
+
30
+    boolean updateSales(TaPerson taPerson);
31
+
32
+    boolean mergePerson(Integer fromPerson, TaPerson toPerson);
33
+
34
+    IPage<TaPerson> getRealPersonList(
35
+            Page<TaPerson> page,
36
+            Integer personId,
37
+            Integer typeId,
38
+            String name,
39
+            String phone,
40
+            String beginDate,
41
+            String endDate
42
+    );
23
 }
43
 }

+ 19
- 0
src/main/java/com.huiju.welcome/service/ITaSnapshotPersonService.java View File

1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.welcome.model.TaSnapshotPerson;
7
+
8
+
9
+/**
10
+ * <p>
11
+ *  服务类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-03-12
16
+ */
17
+public interface ITaSnapshotPersonService extends IService<TaSnapshotPerson> {
18
+    IPage<TaSnapshotPerson> getSnapshotList(Page<TaSnapshotPerson> page, String deviceId, String startDate, String endDate);
19
+}

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

1
 package com.huiju.welcome.service;
1
 package com.huiju.welcome.service;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3
 import com.baomidou.mybatisplus.extension.service.IService;
5
 import com.baomidou.mybatisplus.extension.service.IService;
4
 import com.huiju.welcome.model.TaVisitingLog;
6
 import com.huiju.welcome.model.TaVisitingLog;
5
 
7
 
8
+import java.time.LocalDateTime;
9
+import java.util.List;
10
+import java.util.Map;
11
+
6
 /**
12
 /**
7
  * <p>
13
  * <p>
8
  *  服务类
14
  *  服务类
12
  * @since 2019-03-12
18
  * @since 2019-03-12
13
  */
19
  */
14
 public interface ITaVisitingLogService extends IService<TaVisitingLog> {
20
 public interface ITaVisitingLogService extends IService<TaVisitingLog> {
21
+    List<Map<String, String>> getVisitingDailyAmount(LocalDateTime startDate, LocalDateTime endDate);
22
+
23
+    Long getRegularClientTodayAmount();
15
 
24
 
25
+    IPage<TaVisitingLog> getVisitingList(Page<TaVisitingLog> page, String startDate, String endDate, Integer personId);
16
 }
26
 }

+ 62
- 0
src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java View File

1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.huiju.welcome.model.TaDevice;
5
+import com.huiju.welcome.model.TaPerson;
6
+import com.huiju.welcome.service.ICameraService;
7
+import com.huiju.welcome.service.ITaDeviceService;
8
+import com.huiju.welcome.utils.Encrypt;
9
+import com.huiju.welcome.utils.StatusUtils;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.stereotype.Service;
12
+
13
+import java.net.HttpURLConnection;
14
+import java.net.URL;
15
+import java.util.Arrays;
16
+import java.util.List;
17
+
18
+@Service
19
+public class CameraServiceImpl implements ICameraService {
20
+    @Autowired
21
+    private ITaDeviceService taDeviceService;
22
+
23
+    @Override
24
+    public String dispatchPerson(TaPerson taPerson, TaDevice... devices) {
25
+        List<TaDevice> taDeviceList = null;
26
+        if (null == devices || devices.length == 0) {
27
+            QueryWrapper<TaDevice> queryWrapper = new QueryWrapper<>();
28
+            queryWrapper.eq("status",StatusUtils.Normal);
29
+            taDeviceList = taDeviceService.list(queryWrapper);
30
+        } else {
31
+            taDeviceList = Arrays.asList(devices);
32
+        }
33
+
34
+        //分发人脸到各个相机
35
+        for(TaDevice device: taDeviceList) {
36
+            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
+                }
54
+            } catch (Exception e){
55
+                e.printStackTrace();
56
+                return "连接设备(" + device.getDeviceId() + ")人脸下发服务 失败: "+ e.getMessage();
57
+            }
58
+        }
59
+
60
+        return "";
61
+    }
62
+}

+ 20
- 0
src/main/java/com.huiju.welcome/service/impl/TaCustomWordsServiceImpl.java View File

1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.welcome.mapper.TaCustomWordsMapper;
5
+import com.huiju.welcome.model.TaCustomWords;
6
+import com.huiju.welcome.service.ITaCustomWordsService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ *  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-03-12
16
+ */
17
+@Service
18
+public class TaCustomWordsServiceImpl extends ServiceImpl<TaCustomWordsMapper, TaCustomWords> implements ITaCustomWordsService {
19
+
20
+}

+ 73
- 11
src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java View File

2
 
2
 
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;
6
+import com.baomidou.mybatisplus.core.metadata.IPage;
7
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6
 import com.huiju.welcome.mapper.TaDeviceMapper;
9
 import com.huiju.welcome.mapper.TaDeviceMapper;
7
 import com.huiju.welcome.mapper.TaPersonMapper;
10
 import com.huiju.welcome.mapper.TaPersonMapper;
26
 import java.io.ByteArrayOutputStream;
29
 import java.io.ByteArrayOutputStream;
27
 import java.io.File;
30
 import java.io.File;
28
 import java.io.FileInputStream;
31
 import java.io.FileInputStream;
29
-import java.util.HashMap;
30
-import java.util.List;
31
-import java.util.Map;
32
+import java.util.*;
32
 
33
 
33
 /**
34
 /**
34
  * <p>
35
  * <p>
57
     private String huijuFiles;
58
     private String huijuFiles;
58
 
59
 
59
     @Override
60
     @Override
60
-    public String updateAvatar(TaPerson taPerson) {
61
+    public String updateAvatar(TaPerson taPerson, TaDevice ...dev) {
61
         String state = "";
62
         String state = "";
63
+
64
+        List<TaDevice> taDeviceList = null;
65
+        if (null == dev || dev.length == 0) {
66
+            ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
67
+            QueryWrapper<TaDevice> queryWrapper = new QueryWrapper<>();
68
+            queryWrapper.eq("status", StatusUtils.Normal);
69
+            taDeviceList = taDeviceMapper.selectList(queryWrapper);
70
+        } else {
71
+            taDeviceList = Arrays.asList(dev);
72
+        }
73
+
62
         try {
74
         try {
63
             //分发人脸到各个相机
75
             //分发人脸到各个相机
64
             RestTemplate restTemplate = new RestTemplate();
76
             RestTemplate restTemplate = new RestTemplate();
65
             //获取文件流
77
             //获取文件流
66
-            FileInputStream fileInputStream = new FileInputStream(new File(huijuFiles + taPerson.getAvatar()));
78
+            String avatar = taPerson.getAvatar();
79
+            if (avatar.startsWith("/")) {
80
+                avatar = avatar.substring(1);
81
+            }
82
+
83
+            FileInputStream fileInputStream = new FileInputStream(new File(huijuFiles + avatar));
67
             byte[] byt = new byte[fileInputStream.available()];
84
             byte[] byt = new byte[fileInputStream.available()];
68
             fileInputStream.read(byt);
85
             fileInputStream.read(byt);
69
-        
70
-            ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
71
-            QueryWrapper<TaDevice> queryWrapper = new QueryWrapper<>();
72
-            queryWrapper.eq("status", StatusUtils.Normal);
73
-            List<TaDevice> taDeviceList = taDeviceMapper.selectList(queryWrapper);
86
+
74
             for(TaDevice taDevice : taDeviceList){
87
             for(TaDevice taDevice : taDeviceList){
75
                 String cameraUrl = taDevice.getApi() + "/video/" + taPerson.getPersonId();
88
                 String cameraUrl = taDevice.getApi() + "/video/" + taPerson.getPersonId();
76
                 HttpHeaders headers = new HttpHeaders();
89
                 HttpHeaders headers = new HttpHeaders();
99
         TaPerson taPerson = getById(id);
112
         TaPerson taPerson = getById(id);
100
 
113
 
101
         QueryWrapper<TaVisitingLog> queryWrapper = new QueryWrapper<>();
114
         QueryWrapper<TaVisitingLog> queryWrapper = new QueryWrapper<>();
102
-        queryWrapper.eq("person_id", id);
115
+        queryWrapper.eq("real_person", taPerson.getRealId());
103
         queryWrapper.orderByDesc("visite_date");
116
         queryWrapper.orderByDesc("visite_date");
104
 
117
 
105
         List<TaVisitingLog> logs = taVisitingLogService.list(queryWrapper);
118
         List<TaVisitingLog> logs = taVisitingLogService.list(queryWrapper);
120
     public Map<String, String> getDetailInfo(Integer personId, String deviceId) {
133
     public Map<String, String> getDetailInfo(Integer personId, String deviceId) {
121
         return taPersonMapper.getDetailInfo(personId,deviceId);
134
         return taPersonMapper.getDetailInfo(personId,deviceId);
122
     }
135
     }
136
+
137
+    @Override
138
+    public List<Map<String, String>> statsPerson() {
139
+        return taPersonMapper.statsPerson();
140
+    }
141
+
142
+    @Override
143
+    public boolean updateSales(TaPerson taPerson) {
144
+        UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
145
+        wrapper.eq("person_id", taPerson.getPersonId());
146
+        wrapper.isNull("last_sales");
147
+
148
+        return taPersonMapper.update(taPerson, wrapper) >= 0;
149
+    }
150
+
151
+    @Override
152
+    public boolean mergePerson(Integer fromPerson, TaPerson toPerson) {
153
+        // 合并基础信息
154
+        UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
155
+        wrapper.set("name", toPerson.getName());
156
+        wrapper.set("sex", toPerson.getSex());
157
+        wrapper.set("type_id", toPerson.getTypeId());
158
+        wrapper.set("phone", toPerson.getPhone());
159
+        wrapper.set("email", toPerson.getEmail());
160
+        wrapper.set("remark", toPerson.getRemark());
161
+        wrapper.set("real_id", toPerson.getRealId());
162
+        wrapper.set("words", toPerson.getWords());
163
+        wrapper.eq("person_id", fromPerson);
164
+
165
+        boolean success = taPersonMapper.update(new TaPerson(), wrapper) >= 0;
166
+        if (!success) return false;
167
+
168
+        wrapper.eq("person_id", toPerson.getPersonId());
169
+        success = taPersonMapper.update(new TaPerson(), wrapper) >= 0;
170
+        if (!success) return false;
171
+
172
+        // 合并访问记录
173
+        TaVisitingLog taVisitingLog = new TaVisitingLog();
174
+        taVisitingLog.setRealPerson(toPerson.getRealId());
175
+        taVisitingLog.setPersonId(fromPerson);
176
+        UpdateWrapper<TaVisitingLog> wrapper2 = new UpdateWrapper<>();
177
+        wrapper2.eq("person_id", fromPerson);
178
+        return taVisitingLogService.update(taVisitingLog, wrapper2);
179
+    }
180
+
181
+    @Override
182
+    public IPage<TaPerson> getRealPersonList(Page<TaPerson> page, Integer personId, Integer typeId, String name, String phone, String beginDate, String endDate) {
183
+        return taPersonMapper.getRealPersonList(page, personId, typeId, name, phone, beginDate, endDate);
184
+    }
123
 }
185
 }

+ 29
- 0
src/main/java/com.huiju.welcome/service/impl/TaSnapshotPersonImpl.java View File

1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6
+import com.huiju.welcome.mapper.TaSnapshotPersonMapper;
7
+import com.huiju.welcome.model.TaSnapshotPerson;
8
+import com.huiju.welcome.service.ITaSnapshotPersonService;
9
+import org.springframework.beans.factory.annotation.Autowired;
10
+import org.springframework.stereotype.Service;
11
+
12
+/**
13
+ * <p>
14
+ *  服务实现类
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-03-12
19
+ */
20
+@Service
21
+public class TaSnapshotPersonImpl extends ServiceImpl<TaSnapshotPersonMapper, TaSnapshotPerson> implements ITaSnapshotPersonService {
22
+    @Autowired
23
+    private TaSnapshotPersonMapper taSnapshotPersonMapper;
24
+
25
+    @Override
26
+    public IPage<TaSnapshotPerson> getSnapshotList(Page<TaSnapshotPerson> page, String deviceId, String startDate, String endDate) {
27
+        return taSnapshotPersonMapper.getSnapshotList(page, deviceId, startDate, endDate);
28
+    }
29
+}

+ 27
- 0
src/main/java/com.huiju.welcome/service/impl/TaVisitingLogServiceImpl.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.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
 import com.huiju.welcome.mapper.TaVisitingLogMapper;
6
 import com.huiju.welcome.mapper.TaVisitingLogMapper;
5
 import com.huiju.welcome.model.TaVisitingLog;
7
 import com.huiju.welcome.model.TaVisitingLog;
6
 import com.huiju.welcome.service.ITaVisitingLogService;
8
 import com.huiju.welcome.service.ITaVisitingLogService;
9
+import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.stereotype.Service;
10
 import org.springframework.stereotype.Service;
8
 
11
 
12
+import java.time.LocalDateTime;
13
+import java.util.List;
14
+import java.util.Map;
15
+
9
 /**
16
 /**
10
  * <p>
17
  * <p>
11
  *  服务实现类
18
  *  服务实现类
16
  */
23
  */
17
 @Service
24
 @Service
18
 public class TaVisitingLogServiceImpl extends ServiceImpl<TaVisitingLogMapper, TaVisitingLog> implements ITaVisitingLogService {
25
 public class TaVisitingLogServiceImpl extends ServiceImpl<TaVisitingLogMapper, TaVisitingLog> implements ITaVisitingLogService {
26
+
27
+    @Autowired
28
+    private TaVisitingLogMapper taVisitingLogMapper;
29
+
30
+    public List<Map<String, String>> getVisitingDailyAmount(LocalDateTime startDate, LocalDateTime endDate) {
31
+        return taVisitingLogMapper.getVisitingDailyAmount(startDate, endDate);
32
+    }
33
+
34
+    @Override
35
+    public Long getRegularClientTodayAmount() {
36
+        List<Map<String, Long>> res = taVisitingLogMapper.getRegularClientTodayAmount();
37
+        if (null == res || res.size() == 0) return 0l;
38
+
39
+        return res.get(0).get("total");
40
+    }
41
+
42
+    @Override
43
+    public IPage<TaVisitingLog> getVisitingList(Page<TaVisitingLog> page, String startDate, String endDate, Integer personId) {
44
+        return taVisitingLogMapper.getVisitingList(page, startDate, endDate, personId);
45
+    }
19
 }
46
 }

+ 0
- 33
src/main/java/com.huiju.welcome/utils/AMap.java View File

1
-package com.huiju.welcome.utils;
2
-
3
-import org.springframework.beans.factory.annotation.Value;
4
-import org.springframework.boot.context.properties.ConfigurationProperties;
5
-import org.springframework.http.HttpMethod;
6
-import org.springframework.stereotype.Component;
7
-import org.springframework.web.client.RestTemplate;
8
-
9
-@Component
10
-@ConfigurationProperties(prefix = "file")
11
-public class AMap {
12
-    @Value("${amap.key}")
13
-    private String key;
14
-
15
-    @Value("${amap.weather.api}")
16
-    private String url;
17
-
18
-    @Value("${amap.weather.method}")
19
-    private String method;
20
-
21
-    @Value("${amap.weather.city}")
22
-    private String city;
23
-
24
-    @Value("${amap.weather.extensions}")
25
-    private String extensions;
26
-
27
-    public String weather() {
28
-        RestTemplate restTemplate = new RestTemplate();
29
-        String uri = url + "?key=" + key + "&city="+city+"&extensions="+ extensions;
30
-
31
-        return restTemplate.exchange(uri,HttpMethod.resolve(method), null,String.class).getBody();
32
-    }
33
-}

+ 0
- 2
src/main/java/com.huiju.welcome/utils/XFYun.java View File

6
 import org.springframework.boot.context.properties.ConfigurationProperties;
6
 import org.springframework.boot.context.properties.ConfigurationProperties;
7
 import org.springframework.stereotype.Component;
7
 import org.springframework.stereotype.Component;
8
 
8
 
9
-import java.io.ByteArrayOutputStream;
10
 import java.io.File;
9
 import java.io.File;
11
-import java.io.IOException;
12
 import java.io.InputStream;
10
 import java.io.InputStream;
13
 import java.net.HttpURLConnection;
11
 import java.net.HttpURLConnection;
14
 import java.net.URL;
12
 import java.net.URL;

+ 7
- 1
src/main/resources/application.yml View File

1
 spring:
1
 spring:
2
   datasource:
2
   datasource:
3
     driver-class-name: com.mysql.cj.jdbc.Driver
3
     driver-class-name: com.mysql.cj.jdbc.Driver
4
-    url: jdbc:mysql://47.101.36.130:3306/welcome2.0?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
4
+    url: jdbc:mysql://127.0.0.1:3306/welcome3?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
5
     username: welcome
5
     username: welcome
6
     password: welcome
6
     password: welcome
7
   servlet:
7
   servlet:
18
     call-setters-on-nulls: true
18
     call-setters-on-nulls: true
19
   mapper-locations: classpath:mapper/*.xml
19
   mapper-locations: classpath:mapper/*.xml
20
 
20
 
21
+# 科大讯飞语音合成
22
+xfyun:
23
+  huijuapi: http://ycapi.jcjyhn.com/welcome-api/
24
+huiju:
25
+  files: E:\\files\\
26
+
21
 # 阿里云市场 - 免费天气
27
 # 阿里云市场 - 免费天气
22
 # https://market.aliyun.com/products/56928004/cmapi014123.html?spm=5176.2020520132.101.2.34e17218FhSo5V#sku=yuncode812300000
28
 # https://market.aliyun.com/products/56928004/cmapi014123.html?spm=5176.2020520132.101.2.34e17218FhSo5V#sku=yuncode812300000
23
 saweather:
29
 saweather:

+ 1
- 1
src/main/resources/mapper/SysUserMapper.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.welcome.huiju.mapper.SysUserMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.SysUserMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 1
- 1
src/main/resources/mapper/TaContentLibMapper.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.welcome.huiju.mapper.TaContentLibMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaContentLibMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 4
- 0
src/main/resources/mapper/TaCustomWordsMapper.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.TaCustomWordsMapper">
4
+</mapper>

+ 1
- 1
src/main/resources/mapper/TaDeviceMapper.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.welcome.huiju.mapper.TaDeviceMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaDeviceMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 2
- 2
src/main/resources/mapper/TaFirstpageContentMapper.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.welcome.huiju.mapper.TaFirstpageContentMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaFirstpageContentMapper">
4
 
4
 
5
-    <select id="getFirstpageContent" resultType="com.welcome.huiju.model.TaContentLib">
5
+    <select id="getFirstpageContent" resultType="com.huiju.welcome.model.TaContentLib">
6
         SELECT
6
         SELECT
7
             t.content,
7
             t.content,
8
             t.content_type AS contentType,
8
             t.content_type AS contentType,

+ 1
- 1
src/main/resources/mapper/TaFirstpageMapper.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.welcome.huiju.mapper.TaFirstpageMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaFirstpageMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 2
- 2
src/main/resources/mapper/TaFirstpageNoticeMapper.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.welcome.huiju.mapper.TaFirstpageNoticeMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaFirstpageNoticeMapper">
4
 
4
 
5
-    <select id="getFirstpageNotice" resultType="com.welcome.huiju.model.TaNotice">
5
+    <select id="getFirstpageNotice" resultType="com.huiju.welcome.model.TaNotice">
6
         SELECT
6
         SELECT
7
             t.content,
7
             t.content,
8
             t.create_date AS createDate,
8
             t.create_date AS createDate,

+ 1
- 1
src/main/resources/mapper/TaImagesMapper.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.welcome.huiju.mapper.TaImagesMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaImagesMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 1
- 1
src/main/resources/mapper/TaNoticeMapper.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.welcome.huiju.mapper.TaNoticeMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaNoticeMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 49
- 2
src/main/resources/mapper/TaPersonMapper.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.welcome.huiju.mapper.TaPersonMapper">
4
-    <update id="updatePersonAvatar" statementType="PREPARED" parameterType="com.welcome.huiju.model.TaPerson">
3
+<mapper namespace="com.huiju.welcome.mapper.TaPersonMapper">
4
+    <update id="updatePersonAvatar" statementType="PREPARED" parameterType="com.huiju.welcome.model.TaPerson">
5
         UPDATE ta_person
5
         UPDATE ta_person
6
         SET avatar = #{avatar}
6
         SET avatar = #{avatar}
7
         WHERE
7
         WHERE
19
         WHERE
19
         WHERE
20
             t.person_id = #{personId}
20
             t.person_id = #{personId}
21
     </select>
21
     </select>
22
+
23
+    <select id="statsPerson" resultType="Map">
24
+        SELECT
25
+            count(distinct t.real_id) AS total,
26
+            sum(
27
+                IF (
28
+                    to_days(t.create_date) = to_days(now())
29
+                    OR to_days(t.last_visite_date) = to_days(now()),
30
+                    1,
31
+                    0
32
+                )
33
+            ) AS today
34
+        FROM
35
+            `ta_person` t
36
+        JOIN ta_person_type s USING (type_id)
37
+        WHERE
38
+            s.need_show = 1
39
+    </select>
40
+
41
+    <select id="getRealPersonList" resultType="com.huiju.welcome.model.TaPerson">
42
+        SELECT t.*
43
+        FROM ta_person t
44
+        JOIN ta_person s USING (person_id)
45
+        <where>
46
+            <if test='personId != null'>
47
+                t.person_id = #{personId}
48
+            </if>
49
+            <if test='typeId != null'>
50
+                AND t.type_id = #{typeId}
51
+            </if>
52
+            <if test='name != null'>
53
+                AND t.name like concat('%', #{name}, '%')
54
+            </if>
55
+            <if test='phone != null'>
56
+                AND t.phone = #{phone}
57
+            </if>
58
+            <if test='beginDate != null'>
59
+                AND t.last_visite_date &gt;= str_to_date(#{beginDate}, '%Y-%m-%dT%T')
60
+            </if>
61
+            <if test='endDate != null'>
62
+                AND t.last_visite_date &lt;= str_to_date(#{endDate}, '%Y-%m-%dT%T')
63
+            </if>
64
+        </where>
65
+        GROUP BY t.real_id
66
+        ORDER BY t.last_visite_date DESC
67
+    </select>
68
+
22
 </mapper>
69
 </mapper>

+ 1
- 1
src/main/resources/mapper/TaPersonTypeMapper.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.welcome.huiju.mapper.TaPersonTypeMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaPersonTypeMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 25
- 0
src/main/resources/mapper/TaSnapshotPerson.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.TaSnapshotPersonMapper">
4
+    <select id="getSnapshotList" resultType="com.huiju.welcome.model.TaSnapshotPerson">
5
+        SELECT
6
+            t.*,
7
+            m.`name` AS matchName,
8
+            m.avatar AS matchAvatar
9
+        FROM ta_snapshot_person t
10
+        LEFT JOIN ta_person s ON t.match_person = s.person_id
11
+        LEFT JOIN ta_person m on s.real_id = m.person_id
12
+        <where>
13
+            <if test="null != deviceId">
14
+                t.device_id = #{deviceId}
15
+            </if>
16
+            <if test="null != startDate">
17
+                AND t.create_date &gt;= str_to_date(#{startDate}, '%Y-%m-%dT%T')
18
+            </if>
19
+            <if test="null != endDate">
20
+                AND t.create_date &lt;= str_to_date(#{endDate}, '%Y-%m-%dT%T')
21
+            </if>
22
+        </where>
23
+        ORDER BY t.create_date desc
24
+    </select>
25
+</mapper>

+ 1
- 1
src/main/resources/mapper/TaSyncLogMapper.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.welcome.huiju.mapper.TaSyncLogMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaSyncLogMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 78
- 1
src/main/resources/mapper/TaVisitingLogMapper.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.welcome.huiju.mapper.TaVisitingLogMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaVisitingLogMapper">
4
+    <select id="getVisitingList" resultType="com.huiju.welcome.model.TaVisitingLog">
5
+        SELECT
6
+            t.log_id,
7
+            t.person_id,
8
+            t.visite_date,
9
+            t.car_style,
10
+            t.license_plate_num,
11
+            t.channel,
12
+            t.remark,
13
+            t.device_id,
14
+            t.device_name,
15
+            t.avatar,
16
+            t.visit_num,
17
+            t.visit_purpose,
18
+            t.sales_id,
19
+            t.sales_name,
20
+            t.real_person,
21
+            t.intention,
22
+            s.`name`
23
+        FROM
24
+            ta_visiting_log t
25
+        LEFT JOIN ta_person s ON t.real_person = s.real_id
26
+        <where>
27
+            <if test="null != personId">
28
+                t.real_person = #{personId}
29
+            </if>
30
+            <if test="null != startDate">
31
+                AND t.visite_date &gt;= str_to_date(#{startDate}, '%Y-%m-%dT%T')
32
+            </if>
33
+            <if test="null != endDate">
34
+                AND t.visite_date &lt;= str_to_date(#{endDate}, '%Y-%m-%dT%T')
35
+            </if>
36
+        </where>
37
+        ORDER BY t.visite_date DESC
38
+    </select>
4
 
39
 
40
+    <select id="getVisitingDailyAmount" resultType="map">
41
+        SELECT
42
+          t.dt as visiteDate,
43
+          sum(IF(s.person_id IS NULL, 0, 1)) as amount
44
+        FROM
45
+          (
46
+            SELECT
47
+              DATE_FORMAT(
48
+                DATE_ADD(
49
+                  #{startDate},
50
+                  INTERVAL rownum DAY
51
+                ),
52
+                '%Y-%m-%d'
53
+            ) AS dt
54
+            FROM sequence
55
+            WHERE rownum &lt; DATEDIFF(#{endDate}, #{startDate}) + 1
56
+        ) t
57
+        LEFT JOIN ta_visiting_log s ON t.dt = DATE_FORMAT(s.visite_date, '%Y-%m-%d')
58
+        GROUP BY    t.dt
59
+    </select>
60
+
61
+    <select id="getRegularClientTodayAmount" resultType="map">
62
+        SELECT
63
+            count(DISTINCT a.real_person) AS total
64
+        FROM
65
+            (
66
+                SELECT
67
+                    t.real_person,
68
+                    t.person_id,
69
+                    count(*)
70
+                FROM
71
+                    ta_visiting_log t
72
+                JOIN ta_person s ON t.person_id = s.person_id
73
+                WHERE
74
+                    TO_DAYS(s.last_visite_date) = TO_DAYS(now())
75
+                GROUP BY
76
+                    t.real_person,
77
+                    TO_DAYS(t.visite_date)
78
+                HAVING
79
+                    count(*) > 1
80
+            ) a
81
+    </select>
5
 </mapper>
82
 </mapper>

+ 1
- 2
src/main/resources/mapper/TaVisitingWordsMapper.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.welcome.huiju.mapper.TaVisitingWordsMapper">
4
-
3
+<mapper namespace="com.huiju.welcome.mapper.TaVisitingWordsMapper">
5
 </mapper>
4
 </mapper>

+ 23
- 1
target/classes/application.yml View File

1
 spring:
1
 spring:
2
   datasource:
2
   datasource:
3
     driver-class-name: com.mysql.cj.jdbc.Driver
3
     driver-class-name: com.mysql.cj.jdbc.Driver
4
-    url: jdbc:mysql://47.101.36.130:3306/welcome2.0?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
4
+    url: jdbc:mysql://127.0.0.1:3306/welcome3?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
5
     username: welcome
5
     username: welcome
6
     password: welcome
6
     password: welcome
7
   servlet:
7
   servlet:
17
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
17
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
18
     call-setters-on-nulls: true
18
     call-setters-on-nulls: true
19
   mapper-locations: classpath:mapper/*.xml
19
   mapper-locations: classpath:mapper/*.xml
20
+
21
+# 科大讯飞语音合成
22
+xfyun:
23
+  huijuapi: http://ycapi.jcjyhn.com/welcome-api/
24
+huiju:
25
+  files: E:\\files\\
26
+
27
+# 阿里云市场 - 免费天气
28
+# https://market.aliyun.com/products/56928004/cmapi014123.html?spm=5176.2020520132.101.2.34e17218FhSo5V#sku=yuncode812300000
29
+saweather:
30
+  appcode: 7be3addb3f79424abe200778db8f9642
31
+  api: http://saweather.market.alicloudapi.com/spot-to-weather
32
+  method: GET
33
+  # 地区
34
+  city: 南京浦口
35
+  # 穿衣指数等 指导数据
36
+  needIndex: 1
37
+  # 其他
38
+  need3HourForcast: 0
39
+  needAlarm: 0
40
+  needHourData: 0
41
+  needMoreDay: 0

+ 1
- 1
target/classes/mapper/SysUserMapper.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.welcome.huiju.mapper.SysUserMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.SysUserMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 1
- 1
target/classes/mapper/TaContentLibMapper.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.welcome.huiju.mapper.TaContentLibMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaContentLibMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 1
- 1
target/classes/mapper/TaDeviceMapper.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.welcome.huiju.mapper.TaDeviceMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaDeviceMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 2
- 2
target/classes/mapper/TaFirstpageContentMapper.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.welcome.huiju.mapper.TaFirstpageContentMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaFirstpageContentMapper">
4
 
4
 
5
-    <select id="getFirstpageContent" resultType="com.welcome.huiju.model.TaContentLib">
5
+    <select id="getFirstpageContent" resultType="com.huiju.welcome.model.TaContentLib">
6
         SELECT
6
         SELECT
7
             t.content,
7
             t.content,
8
             t.content_type AS contentType,
8
             t.content_type AS contentType,

+ 1
- 1
target/classes/mapper/TaFirstpageMapper.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.welcome.huiju.mapper.TaFirstpageMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaFirstpageMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 2
- 2
target/classes/mapper/TaFirstpageNoticeMapper.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.welcome.huiju.mapper.TaFirstpageNoticeMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaFirstpageNoticeMapper">
4
 
4
 
5
-    <select id="getFirstpageNotice" resultType="com.welcome.huiju.model.TaNotice">
5
+    <select id="getFirstpageNotice" resultType="com.huiju.welcome.model.TaNotice">
6
         SELECT
6
         SELECT
7
             t.content,
7
             t.content,
8
             t.create_date AS createDate,
8
             t.create_date AS createDate,

+ 1
- 1
target/classes/mapper/TaImagesMapper.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.welcome.huiju.mapper.TaImagesMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaImagesMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 1
- 1
target/classes/mapper/TaNoticeMapper.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.welcome.huiju.mapper.TaNoticeMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaNoticeMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 49
- 2
target/classes/mapper/TaPersonMapper.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.welcome.huiju.mapper.TaPersonMapper">
4
-    <update id="updatePersonAvatar" statementType="PREPARED" parameterType="com.welcome.huiju.model.TaPerson">
3
+<mapper namespace="com.huiju.welcome.mapper.TaPersonMapper">
4
+    <update id="updatePersonAvatar" statementType="PREPARED" parameterType="com.huiju.welcome.model.TaPerson">
5
         UPDATE ta_person
5
         UPDATE ta_person
6
         SET avatar = #{avatar}
6
         SET avatar = #{avatar}
7
         WHERE
7
         WHERE
19
         WHERE
19
         WHERE
20
             t.person_id = #{personId}
20
             t.person_id = #{personId}
21
     </select>
21
     </select>
22
+
23
+    <select id="statsPerson" resultType="Map">
24
+        SELECT
25
+            count(distinct t.real_id) AS total,
26
+            sum(
27
+                IF (
28
+                    to_days(t.create_date) = to_days(now())
29
+                    OR to_days(t.last_visite_date) = to_days(now()),
30
+                    1,
31
+                    0
32
+                )
33
+            ) AS today
34
+        FROM
35
+            `ta_person` t
36
+        JOIN ta_person_type s USING (type_id)
37
+        WHERE
38
+            s.need_show = 1
39
+    </select>
40
+
41
+    <select id="getRealPersonList" resultType="com.huiju.welcome.model.TaPerson">
42
+        SELECT t.*
43
+        FROM ta_person t
44
+        JOIN ta_person s USING (person_id)
45
+        <where>
46
+            <if test='personId != null'>
47
+                t.person_id = #{personId}
48
+            </if>
49
+            <if test='typeId != null'>
50
+                AND t.type_id = #{typeId}
51
+            </if>
52
+            <if test='name != null'>
53
+                AND t.name like concat('%', #{name}, '%')
54
+            </if>
55
+            <if test='phone != null'>
56
+                AND t.phone = #{phone}
57
+            </if>
58
+            <if test='beginDate != null'>
59
+                AND t.last_visite_date &gt;= str_to_date(#{beginDate}, '%Y-%m-%dT%T')
60
+            </if>
61
+            <if test='endDate != null'>
62
+                AND t.last_visite_date &lt;= str_to_date(#{endDate}, '%Y-%m-%dT%T')
63
+            </if>
64
+        </where>
65
+        GROUP BY t.real_id
66
+        ORDER BY t.last_visite_date DESC
67
+    </select>
68
+
22
 </mapper>
69
 </mapper>

+ 1
- 1
target/classes/mapper/TaPersonTypeMapper.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.welcome.huiju.mapper.TaPersonTypeMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaPersonTypeMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 1
- 1
target/classes/mapper/TaSyncLogMapper.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.welcome.huiju.mapper.TaSyncLogMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaSyncLogMapper">
4
 
4
 
5
 </mapper>
5
 </mapper>

+ 78
- 1
target/classes/mapper/TaVisitingLogMapper.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.welcome.huiju.mapper.TaVisitingLogMapper">
3
+<mapper namespace="com.huiju.welcome.mapper.TaVisitingLogMapper">
4
+    <select id="getVisitingList" resultType="com.huiju.welcome.model.TaVisitingLog">
5
+        SELECT
6
+            t.log_id,
7
+            t.person_id,
8
+            t.visite_date,
9
+            t.car_style,
10
+            t.license_plate_num,
11
+            t.channel,
12
+            t.remark,
13
+            t.device_id,
14
+            t.device_name,
15
+            t.avatar,
16
+            t.visit_num,
17
+            t.visit_purpose,
18
+            t.sales_id,
19
+            t.sales_name,
20
+            t.real_person,
21
+            t.intention,
22
+            s.`name`
23
+        FROM
24
+            ta_visiting_log t
25
+        LEFT JOIN ta_person s ON t.real_person = s.real_id
26
+        <where>
27
+            <if test="null != personId">
28
+                t.real_person = #{personId}
29
+            </if>
30
+            <if test="null != startDate">
31
+                AND t.visite_date &gt;= str_to_date(#{startDate}, '%Y-%m-%dT%T')
32
+            </if>
33
+            <if test="null != endDate">
34
+                AND t.visite_date &lt;= str_to_date(#{endDate}, '%Y-%m-%dT%T')
35
+            </if>
36
+        </where>
37
+        ORDER BY t.visite_date DESC
38
+    </select>
4
 
39
 
40
+    <select id="getVisitingDailyAmount" resultType="map">
41
+        SELECT
42
+          t.dt as visiteDate,
43
+          sum(IF(s.person_id IS NULL, 0, 1)) as amount
44
+        FROM
45
+          (
46
+            SELECT
47
+              DATE_FORMAT(
48
+                DATE_ADD(
49
+                  #{startDate},
50
+                  INTERVAL rownum DAY
51
+                ),
52
+                '%Y-%m-%d'
53
+            ) AS dt
54
+            FROM sequence
55
+            WHERE rownum &lt; DATEDIFF(#{endDate}, #{startDate}) + 1
56
+        ) t
57
+        LEFT JOIN ta_visiting_log s ON t.dt = DATE_FORMAT(s.visite_date, '%Y-%m-%d')
58
+        GROUP BY    t.dt
59
+    </select>
60
+
61
+    <select id="getRegularClientTodayAmount" resultType="map">
62
+        SELECT
63
+            count(DISTINCT a.real_person) AS total
64
+        FROM
65
+            (
66
+                SELECT
67
+                    t.real_person,
68
+                    t.person_id,
69
+                    count(*)
70
+                FROM
71
+                    ta_visiting_log t
72
+                JOIN ta_person s ON t.person_id = s.person_id
73
+                WHERE
74
+                    TO_DAYS(s.last_visite_date) = TO_DAYS(now())
75
+                GROUP BY
76
+                    t.real_person,
77
+                    TO_DAYS(t.visite_date)
78
+                HAVING
79
+                    count(*) > 1
80
+            ) a
81
+    </select>
5
 </mapper>
82
 </mapper>

+ 1
- 2
target/classes/mapper/TaVisitingWordsMapper.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.welcome.huiju.mapper.TaVisitingWordsMapper">
4
-
3
+<mapper namespace="com.huiju.welcome.mapper.TaVisitingWordsMapper">
5
 </mapper>
4
 </mapper>

+ 95
- 0
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst View File

1
+com\huiju\welcome\controller\TaVisitingWordsController.class
2
+com\huiju\welcome\service\impl\TaNoticeServiceImpl.class
3
+com\huiju\welcome\config\AccessConfig.class
4
+com\huiju\welcome\service\impl\TaVisitingLogServiceImpl.class
5
+com\huiju\welcome\controller\CameraController.class
6
+com\huiju\welcome\service\ITaPersonTypeService.class
7
+com\huiju\welcome\MainbizApplication.class
8
+com\huiju\welcome\service\impl\TaSyncLogServiceImpl.class
9
+com\huiju\welcome\config\MybatisPlusConfig.class
10
+com\huiju\welcome\controller\TaNoticeController.class
11
+com\huiju\welcome\mapper\TaPersonMapper.class
12
+com\huiju\welcome\model\SysParam.class
13
+com\huiju\welcome\service\impl\SysUserServiceImpl.class
14
+com\huiju\welcome\controller\TaSnapshotPersonController.class
15
+com\huiju\welcome\service\ITaDeviceService.class
16
+com\huiju\welcome\common\base\ResponseBean.class
17
+com\huiju\welcome\utils\StatusUtils.class
18
+com\huiju\welcome\model\TaNotice.class
19
+com\huiju\welcome\interceptor\AccessInterceptor.class
20
+com\huiju\welcome\mapper\SysUserMapper.class
21
+com\huiju\welcome\model\TaVisitingLog.class
22
+com\huiju\welcome\mapper\TaSnapshotPersonMapper.class
23
+com\huiju\welcome\service\impl\TaSnapshotPersonImpl.class
24
+com\huiju\welcome\controller\TaVisitingLogController.class
25
+com\huiju\welcome\model\TaVisitingWords.class
26
+com\huiju\welcome\model\TaFirstpage.class
27
+com\huiju\welcome\model\TaSnapshotPerson.class
28
+com\huiju\welcome\service\ITaFirstpageService.class
29
+com\huiju\welcome\controller\SysUserController.class
30
+com\huiju\welcome\service\impl\TaVisitingWordsServiceImpl.class
31
+com\huiju\welcome\service\ITaCustomWordsService.class
32
+com\huiju\welcome\controller\TaFirstpageController.class
33
+com\huiju\welcome\model\TaSyncLog.class
34
+com\huiju\welcome\utils\Encrypt.class
35
+com\huiju\welcome\service\impl\TaDeviceServiceImpl.class
36
+com\huiju\welcome\model\TaPersonType.class
37
+com\huiju\welcome\common\WebSocketServer.class
38
+com\huiju\welcome\controller\TaPersonTypeController.class
39
+com\huiju\welcome\service\impl\TaContentLibServiceImpl.class
40
+com\huiju\welcome\service\impl\TaCustomWordsServiceImpl.class
41
+com\huiju\welcome\service\ISysUserService.class
42
+com\huiju\welcome\service\ITaFirstpageNoticeService.class
43
+com\huiju\welcome\service\ITaContentLibService.class
44
+com\huiju\welcome\service\ISysParamService.class
45
+com\huiju\welcome\service\ITaNoticeService.class
46
+com\huiju\welcome\mapper\TaFirstpageContentMapper.class
47
+com\huiju\welcome\controller\TaFirstpageContentController.class
48
+com\huiju\welcome\service\ITaSnapshotPersonService.class
49
+com\huiju\welcome\common\base\BaseController.class
50
+com\huiju\welcome\utils\XFYun.class
51
+com\huiju\welcome\service\ITaSyncLogService.class
52
+com\huiju\welcome\mapper\TaFirstpageMapper.class
53
+com\huiju\welcome\service\ITaFirstpageContentService.class
54
+com\huiju\welcome\mapper\TaVisitingLogMapper.class
55
+com\huiju\welcome\model\TaContentLib.class
56
+com\huiju\welcome\controller\AudioController.class
57
+com\huiju\welcome\mapper\SysParamMapper.class
58
+com\huiju\welcome\common\uuid\IdGen$IdGenHolder.class
59
+com\huiju\welcome\mapper\TaFirstpageNoticeMapper.class
60
+com\huiju\welcome\model\TaPerson.class
61
+com\huiju\welcome\model\TaCustomWords.class
62
+com\huiju\welcome\model\TaFirstpageNotice.class
63
+com\huiju\welcome\controller\ImgController.class
64
+com\huiju\welcome\config\WebSocketConfig.class
65
+com\huiju\welcome\service\impl\TaFirstpageServiceImpl.class
66
+com\huiju\welcome\mapper\TaCustomWordsMapper.class
67
+com\huiju\welcome\mapper\TaContentLibMapper.class
68
+com\huiju\welcome\common\uuid\IdGen.class
69
+com\huiju\welcome\mapper\TaDeviceMapper.class
70
+com\huiju\welcome\model\TaFirstpageContent.class
71
+com\huiju\welcome\service\impl\TaFirstpageContentServiceImpl.class
72
+com\huiju\welcome\utils\FileUtil.class
73
+com\huiju\welcome\service\ICameraService.class
74
+com\huiju\welcome\mapper\TaVisitingWordsMapper.class
75
+com\huiju\welcome\service\impl\TaPersonServiceImpl.class
76
+com\huiju\welcome\service\impl\CameraServiceImpl.class
77
+com\huiju\welcome\service\impl\TaFirstpageNoticeServiceImpl.class
78
+com\huiju\welcome\model\TaDevice.class
79
+com\huiju\welcome\service\ITaPersonService.class
80
+com\huiju\welcome\service\impl\TaPersonTypeServiceImpl.class
81
+com\huiju\welcome\controller\TaContentLibController.class
82
+com\huiju\welcome\mapper\TaSyncLogMapper.class
83
+com\huiju\welcome\controller\TaDeviceController.class
84
+com\huiju\welcome\service\impl\SysParamServiceImpl.class
85
+com\huiju\welcome\utils\SAWeather.class
86
+com\huiju\welcome\controller\TaPersonController.class
87
+com\huiju\welcome\controller\TaSyncLogController.class
88
+com\huiju\welcome\service\ITaVisitingLogService.class
89
+com\huiju\welcome\model\TaImages.class
90
+com\huiju\welcome\controller\SysParamController.class
91
+com\huiju\welcome\service\ITaVisitingWordsService.class
92
+com\huiju\welcome\model\SysUser.class
93
+com\huiju\welcome\mapper\TaPersonTypeMapper.class
94
+com\huiju\welcome\mapper\TaNoticeMapper.class
95
+com\huiju\welcome\controller\TaFirstpageNoticeController.class

+ 11
- 1
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst View File

4
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaFirstpageContentServiceImpl.java
4
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaFirstpageContentServiceImpl.java
5
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaFirstpageNoticeController.java
5
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaFirstpageNoticeController.java
6
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaNoticeController.java
6
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaNoticeController.java
7
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaCustomWordsMapper.java
8
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ICameraService.java
7
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaPersonService.java
9
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaPersonService.java
8
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaNoticeMapper.java
10
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaNoticeMapper.java
9
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\MainbizApplication.java
11
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\MainbizApplication.java
10
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaNoticeServiceImpl.java
12
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaNoticeServiceImpl.java
11
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaFirstpageMapper.java
13
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaFirstpageMapper.java
12
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaImages.java
14
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaImages.java
15
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaSnapshotPersonMapper.java
13
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaVisitingLogServiceImpl.java
16
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaVisitingLogServiceImpl.java
14
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaContentLibMapper.java
17
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaContentLibMapper.java
15
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaPersonType.java
18
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaPersonType.java
25
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaDeviceMapper.java
28
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaDeviceMapper.java
26
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\common\base\ResponseBean.java
29
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\common\base\ResponseBean.java
27
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\ImgController.java
30
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\ImgController.java
31
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaCustomWordsService.java
28
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaDeviceService.java
32
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaDeviceService.java
29
-E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\utils\AMap.java
30
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\SysParamMapper.java
33
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\SysParamMapper.java
31
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\utils\SAWeather.java
34
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\utils\SAWeather.java
32
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaFirstpageController.java
35
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaFirstpageController.java
33
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaSyncLog.java
36
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaSyncLog.java
37
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaSnapshotPerson.java
34
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\config\WebSocketConfig.java
38
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\config\WebSocketConfig.java
35
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaFirstpageNoticeMapper.java
39
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaFirstpageNoticeMapper.java
36
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaContentLibService.java
40
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaContentLibService.java
41
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\SysUserMapper.java
45
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\SysUserMapper.java
42
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaVisitingLog.java
46
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaVisitingLog.java
43
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\common\uuid\IdGen.java
47
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\common\uuid\IdGen.java
48
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaCustomWordsServiceImpl.java
44
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ISysParamService.java
49
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ISysParamService.java
45
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ISysUserService.java
50
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ISysUserService.java
46
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaVisitingWords.java
51
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaVisitingWords.java
47
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaFirstpageServiceImpl.java
52
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaFirstpageServiceImpl.java
48
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaVisitingWordsServiceImpl.java
53
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaVisitingWordsServiceImpl.java
54
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaCustomWords.java
49
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaContentLib.java
55
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaContentLib.java
50
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\SysParamServiceImpl.java
56
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\SysParamServiceImpl.java
51
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaVisitingWordsService.java
57
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaVisitingWordsService.java
64
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaSyncLogServiceImpl.java
70
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaSyncLogServiceImpl.java
65
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaFirstpageContentMapper.java
71
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaFirstpageContentMapper.java
66
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaFirstpageService.java
72
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaFirstpageService.java
73
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\CameraServiceImpl.java
67
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaVisitingWordsController.java
74
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaVisitingWordsController.java
68
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\config\AccessConfig.java
75
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\config\AccessConfig.java
69
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaSyncLogMapper.java
76
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaSyncLogMapper.java
70
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\SysUser.java
77
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\SysUser.java
78
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaSnapshotPersonService.java
71
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\common\base\BaseController.java
79
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\common\base\BaseController.java
72
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaPersonServiceImpl.java
80
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaPersonServiceImpl.java
81
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaSnapshotPersonController.java
73
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaNotice.java
82
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaNotice.java
74
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaContentLibServiceImpl.java
83
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaContentLibServiceImpl.java
75
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaVisitingWordsMapper.java
84
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\mapper\TaVisitingWordsMapper.java
80
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaFirstpageContentController.java
89
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaFirstpageContentController.java
81
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaPersonController.java
90
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\controller\TaPersonController.java
82
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaFirstpageContent.java
91
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\model\TaFirstpageContent.java
92
+E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\impl\TaSnapshotPersonImpl.java
83
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaPersonTypeService.java
93
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\service\ITaPersonTypeService.java
84
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\utils\XFYun.java
94
 E:\JavaProjects\welcome3.0\service\src\main\java\com.huiju.welcome\utils\XFYun.java