Commit 79abf0116570070b72a0b4512fee5b35a3baf0c6
1 parent
b971c436
Exists in
master
博冠人脸机
Showing
65 changed files
with
3962 additions
and
392 deletions
Show diff stats
cloud/common/pom.xml
... | ... | @@ -22,6 +22,17 @@ |
22 | 22 | |
23 | 23 | <dependencies> |
24 | 24 | <dependency> |
25 | + <groupId>cn.rongcloud.im</groupId> | |
26 | + <artifactId>server-sdk-java</artifactId> | |
27 | + <version>3.1.4</version> | |
28 | + </dependency> | |
29 | + <!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail --> | |
30 | + <dependency> | |
31 | + <groupId>com.sun.mail</groupId> | |
32 | + <artifactId>javax.mail</artifactId> | |
33 | + <version>1.6.2</version> | |
34 | + </dependency> | |
35 | + <dependency> | |
25 | 36 | <groupId>com.nimbusds</groupId> |
26 | 37 | <artifactId>nimbus-jose-jwt</artifactId> |
27 | 38 | <version>6.0</version> | ... | ... |
cloud/common/src/main/java/com/sincere/common/dto/smartCampus/SZ_AttendanceDto.java
... | ... | @@ -26,6 +26,16 @@ public class SZ_AttendanceDto { |
26 | 26 | private String ip ; |
27 | 27 | private int port ; |
28 | 28 | |
29 | + private int outOrIn ; | |
30 | + | |
31 | + public int getOutOrIn() { | |
32 | + return outOrIn; | |
33 | + } | |
34 | + | |
35 | + public void setOutOrIn(int outOrIn) { | |
36 | + this.outOrIn = outOrIn; | |
37 | + } | |
38 | + | |
29 | 39 | public String getIp() { |
30 | 40 | return ip; |
31 | 41 | } | ... | ... |
cloud/common/src/main/java/com/sincere/common/dto/smartCampus/StudentBean.java
0 → 100644
... | ... | @@ -0,0 +1,307 @@ |
1 | +package com.sincere.common.dto.smartCampus; | |
2 | + | |
3 | +import java.io.Serializable; | |
4 | +import java.util.Date; | |
5 | + | |
6 | +public class StudentBean implements Serializable { | |
7 | + | |
8 | + private String teacher_id; | |
9 | + | |
10 | + private String parent_id; | |
11 | + | |
12 | + private long ID; | |
13 | + | |
14 | + private String UserId; | |
15 | + | |
16 | + private String CustomerId; | |
17 | + | |
18 | + private int StudentType; | |
19 | + | |
20 | + private int UserType; | |
21 | + | |
22 | + private String name; | |
23 | + | |
24 | + private int ClassId; | |
25 | + | |
26 | + private String ClassName; | |
27 | + | |
28 | + private String OldCard; | |
29 | + | |
30 | + private String Card; | |
31 | + | |
32 | + private int SchoolId; | |
33 | + | |
34 | + private int school_id; | |
35 | + | |
36 | + private int IsNew; | |
37 | + | |
38 | + private int UpdateType; | |
39 | + | |
40 | + private Date AddTime; | |
41 | + | |
42 | + private int Sex; | |
43 | + | |
44 | + private String Face; | |
45 | + | |
46 | + private String studentcode; | |
47 | + | |
48 | + private String student_num; | |
49 | + | |
50 | + private String student_id; | |
51 | + | |
52 | + private String user_id; | |
53 | + | |
54 | + private String photo; | |
55 | + | |
56 | + private String teacher_num; | |
57 | + | |
58 | + private String num; | |
59 | + | |
60 | + public String getNum() { | |
61 | + return num; | |
62 | + } | |
63 | + | |
64 | + public void setNum(String num) { | |
65 | + this.num = num; | |
66 | + } | |
67 | + | |
68 | + public String getTeacher_num() { | |
69 | + return teacher_num; | |
70 | + } | |
71 | + | |
72 | + public void setTeacher_num(String teacher_num) { | |
73 | + this.teacher_num = teacher_num; | |
74 | + } | |
75 | + | |
76 | + public String getPhoto() { | |
77 | + return photo; | |
78 | + } | |
79 | + | |
80 | + public void setPhoto(String photo) { | |
81 | + this.photo = photo; | |
82 | + } | |
83 | + | |
84 | + public String getUser_id() { | |
85 | + return user_id; | |
86 | + } | |
87 | + | |
88 | + public void setUser_id(String user_id) { | |
89 | + this.user_id = user_id; | |
90 | + } | |
91 | + | |
92 | + public String getStudentcode() { | |
93 | + return studentcode; | |
94 | + } | |
95 | + | |
96 | + public void setStudentcode(String studentcode) { | |
97 | + this.studentcode = studentcode; | |
98 | + } | |
99 | + | |
100 | + public String getUserId() { | |
101 | + return UserId; | |
102 | + } | |
103 | + | |
104 | + public void setUserId(String userId) { | |
105 | + UserId = userId; | |
106 | + } | |
107 | + | |
108 | + public String getCustomerId() { | |
109 | + return CustomerId; | |
110 | + } | |
111 | + | |
112 | + public void setCustomerId(String customerId) { | |
113 | + CustomerId = customerId; | |
114 | + } | |
115 | + | |
116 | + public int getStudentType() { | |
117 | + return StudentType; | |
118 | + } | |
119 | + | |
120 | + public void setStudentType(int studentType) { | |
121 | + StudentType = studentType; | |
122 | + } | |
123 | + | |
124 | + public int getUserType() { | |
125 | + return UserType; | |
126 | + } | |
127 | + | |
128 | + public String getTeacher_id() { | |
129 | + return teacher_id; | |
130 | + } | |
131 | + | |
132 | + public String getParent_id() { | |
133 | + return parent_id; | |
134 | + } | |
135 | + | |
136 | + public void setParent_id(String parent_id) { | |
137 | + this.parent_id = parent_id; | |
138 | + } | |
139 | + | |
140 | + public void setTeacher_id(String teacher_id) { | |
141 | + this.teacher_id = teacher_id; | |
142 | + } | |
143 | + | |
144 | + public void setUserType(int userType) { | |
145 | + UserType = userType; | |
146 | + } | |
147 | + | |
148 | + public String getName() { | |
149 | + return name; | |
150 | + } | |
151 | + | |
152 | + public void setName(String name) { | |
153 | + this.name = name; | |
154 | + } | |
155 | + | |
156 | + public int getClassId() { | |
157 | + return ClassId; | |
158 | + } | |
159 | + | |
160 | + public void setClassId(int classId) { | |
161 | + ClassId = classId; | |
162 | + } | |
163 | + | |
164 | + public String getClassName() { | |
165 | + return ClassName; | |
166 | + } | |
167 | + | |
168 | + public void setClassName(String className) { | |
169 | + ClassName = className; | |
170 | + } | |
171 | + | |
172 | + public String getOldCard() { | |
173 | + return OldCard; | |
174 | + } | |
175 | + | |
176 | + public void setOldCard(String oldCard) { | |
177 | + OldCard = oldCard; | |
178 | + } | |
179 | + | |
180 | + public String getCard() { | |
181 | + return Card; | |
182 | + } | |
183 | + | |
184 | + public int getSchool_id() { | |
185 | + return school_id; | |
186 | + } | |
187 | + | |
188 | + public void setSchool_id(int school_id) { | |
189 | + this.school_id = school_id; | |
190 | + } | |
191 | + | |
192 | + public String getStudent_num() { | |
193 | + return student_num; | |
194 | + } | |
195 | + | |
196 | + public void setStudent_num(String student_num) { | |
197 | + this.student_num = student_num; | |
198 | + } | |
199 | + | |
200 | + public void setCard(String card) { | |
201 | + Card = card; | |
202 | + } | |
203 | + | |
204 | + public int getSchoolId() { | |
205 | + return SchoolId; | |
206 | + } | |
207 | + | |
208 | + public void setSchoolId(int schoolId) { | |
209 | + SchoolId = schoolId; | |
210 | + } | |
211 | + | |
212 | + public int getIsNew() { | |
213 | + return IsNew; | |
214 | + } | |
215 | + | |
216 | + public void setIsNew(int isNew) { | |
217 | + IsNew = isNew; | |
218 | + } | |
219 | + | |
220 | + public int getUpdateType() { | |
221 | + return UpdateType; | |
222 | + } | |
223 | + | |
224 | + public void setUpdateType(int updateType) { | |
225 | + UpdateType = updateType; | |
226 | + } | |
227 | + | |
228 | + public Date getAddTime() { | |
229 | + return AddTime; | |
230 | + } | |
231 | + | |
232 | + public void setAddTime(Date addTime) { | |
233 | + AddTime = addTime; | |
234 | + } | |
235 | + | |
236 | + public int getSex() { | |
237 | + return Sex; | |
238 | + } | |
239 | + | |
240 | + public void setSex(int sex) { | |
241 | + Sex = sex; | |
242 | + } | |
243 | + | |
244 | + public String getFace() { | |
245 | + return Face; | |
246 | + } | |
247 | + | |
248 | + public void setFace(String face) { | |
249 | + Face = face; | |
250 | + } | |
251 | + | |
252 | + public String getStudentCode() { | |
253 | + return studentcode; | |
254 | + } | |
255 | + | |
256 | + public void setStudentCode(String studentCode) { | |
257 | + this.studentcode = studentCode; | |
258 | + } | |
259 | + | |
260 | + public long getID() { | |
261 | + return ID; | |
262 | + } | |
263 | + | |
264 | + public void setID(long ID) { | |
265 | + this.ID = ID; | |
266 | + } | |
267 | + | |
268 | + public String getStudent_id() { | |
269 | + return student_id; | |
270 | + } | |
271 | + | |
272 | + public void setStudent_id(String student_id) { | |
273 | + this.student_id = student_id; | |
274 | + } | |
275 | + | |
276 | + @Override | |
277 | + public String toString() { | |
278 | + return "StudentBean{" + | |
279 | + "teacher_id='" + teacher_id + '\'' + | |
280 | + ", parent_id='" + parent_id + '\'' + | |
281 | + ", ID=" + ID + | |
282 | + ", UserId='" + UserId + '\'' + | |
283 | + ", CustomerId='" + CustomerId + '\'' + | |
284 | + ", StudentType=" + StudentType + | |
285 | + ", UserType=" + UserType + | |
286 | + ", name='" + name + '\'' + | |
287 | + ", ClassId=" + ClassId + | |
288 | + ", ClassName='" + ClassName + '\'' + | |
289 | + ", OldCard='" + OldCard + '\'' + | |
290 | + ", Card='" + Card + '\'' + | |
291 | + ", SchoolId=" + SchoolId + | |
292 | + ", school_id=" + school_id + | |
293 | + ", IsNew=" + IsNew + | |
294 | + ", UpdateType=" + UpdateType + | |
295 | + ", AddTime=" + AddTime + | |
296 | + ", Sex=" + Sex + | |
297 | + ", Face='" + Face + '\'' + | |
298 | + ", studentcode='" + studentcode + '\'' + | |
299 | + ", student_num='" + student_num + '\'' + | |
300 | + ", student_id='" + student_id + '\'' + | |
301 | + ", user_id='" + user_id + '\'' + | |
302 | + ", photo='" + photo + '\'' + | |
303 | + ", teacher_num='" + teacher_num + '\'' + | |
304 | + ", num='" + num + '\'' + | |
305 | + '}'; | |
306 | + } | |
307 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/dto/smartCampus/SzVSchoolStudent.java
0 → 100644
... | ... | @@ -0,0 +1,235 @@ |
1 | +package com.sincere.common.dto.smartCampus; | |
2 | + | |
3 | +import java.util.Date; | |
4 | + | |
5 | +public class SzVSchoolStudent { | |
6 | + private Integer schoolId; | |
7 | + | |
8 | + private Integer classId; | |
9 | + | |
10 | + private Integer studentId; | |
11 | + | |
12 | + private String userId; | |
13 | + | |
14 | + private String studentNum; | |
15 | + | |
16 | + private String name; | |
17 | + | |
18 | + private String num; | |
19 | + | |
20 | + private String photo; | |
21 | + | |
22 | + private Integer ismonitor; | |
23 | + | |
24 | + private Integer classState; | |
25 | + | |
26 | + private Integer roleState; | |
27 | + | |
28 | + private String modifystate; | |
29 | + | |
30 | + private String mobile; | |
31 | + | |
32 | + private String className; | |
33 | + | |
34 | + private Integer studentType; | |
35 | + | |
36 | + private String matrikelnummer; | |
37 | + | |
38 | + private String studentcode; | |
39 | + | |
40 | + private String sex; | |
41 | + | |
42 | + private String parentmobile; | |
43 | + | |
44 | + private String othername; | |
45 | + | |
46 | + private Date activetime; | |
47 | + | |
48 | + private Integer active; | |
49 | + | |
50 | + private String pass; | |
51 | + | |
52 | + public Integer getSchoolId() { | |
53 | + return schoolId; | |
54 | + } | |
55 | + | |
56 | + public void setSchoolId(Integer schoolId) { | |
57 | + this.schoolId = schoolId; | |
58 | + } | |
59 | + | |
60 | + public Integer getClassId() { | |
61 | + return classId; | |
62 | + } | |
63 | + | |
64 | + public void setClassId(Integer classId) { | |
65 | + this.classId = classId; | |
66 | + } | |
67 | + | |
68 | + public Integer getStudentId() { | |
69 | + return studentId; | |
70 | + } | |
71 | + | |
72 | + public void setStudentId(Integer studentId) { | |
73 | + this.studentId = studentId; | |
74 | + } | |
75 | + | |
76 | + public String getUserId() { | |
77 | + return userId; | |
78 | + } | |
79 | + | |
80 | + public void setUserId(String userId) { | |
81 | + this.userId = userId; | |
82 | + } | |
83 | + | |
84 | + public String getStudentNum() { | |
85 | + return studentNum; | |
86 | + } | |
87 | + | |
88 | + public void setStudentNum(String studentNum) { | |
89 | + this.studentNum = studentNum; | |
90 | + } | |
91 | + | |
92 | + public String getName() { | |
93 | + return name; | |
94 | + } | |
95 | + | |
96 | + public void setName(String name) { | |
97 | + this.name = name; | |
98 | + } | |
99 | + | |
100 | + public String getNum() { | |
101 | + return num; | |
102 | + } | |
103 | + | |
104 | + public void setNum(String num) { | |
105 | + this.num = num; | |
106 | + } | |
107 | + | |
108 | + public String getPhoto() { | |
109 | + return photo; | |
110 | + } | |
111 | + | |
112 | + public void setPhoto(String photo) { | |
113 | + this.photo = photo; | |
114 | + } | |
115 | + | |
116 | + public Integer getIsmonitor() { | |
117 | + return ismonitor; | |
118 | + } | |
119 | + | |
120 | + public void setIsmonitor(Integer ismonitor) { | |
121 | + this.ismonitor = ismonitor; | |
122 | + } | |
123 | + | |
124 | + public Integer getClassState() { | |
125 | + return classState; | |
126 | + } | |
127 | + | |
128 | + public void setClassState(Integer classState) { | |
129 | + this.classState = classState; | |
130 | + } | |
131 | + | |
132 | + public Integer getRoleState() { | |
133 | + return roleState; | |
134 | + } | |
135 | + | |
136 | + public void setRoleState(Integer roleState) { | |
137 | + this.roleState = roleState; | |
138 | + } | |
139 | + | |
140 | + public String getModifystate() { | |
141 | + return modifystate; | |
142 | + } | |
143 | + | |
144 | + public void setModifystate(String modifystate) { | |
145 | + this.modifystate = modifystate; | |
146 | + } | |
147 | + | |
148 | + public String getMobile() { | |
149 | + return mobile; | |
150 | + } | |
151 | + | |
152 | + public void setMobile(String mobile) { | |
153 | + this.mobile = mobile; | |
154 | + } | |
155 | + | |
156 | + public String getClassName() { | |
157 | + return className; | |
158 | + } | |
159 | + | |
160 | + public void setClassName(String className) { | |
161 | + this.className = className; | |
162 | + } | |
163 | + | |
164 | + public Integer getStudentType() { | |
165 | + return studentType; | |
166 | + } | |
167 | + | |
168 | + public void setStudentType(Integer studentType) { | |
169 | + this.studentType = studentType; | |
170 | + } | |
171 | + | |
172 | + public String getMatrikelnummer() { | |
173 | + return matrikelnummer; | |
174 | + } | |
175 | + | |
176 | + public void setMatrikelnummer(String matrikelnummer) { | |
177 | + this.matrikelnummer = matrikelnummer; | |
178 | + } | |
179 | + | |
180 | + public String getStudentcode() { | |
181 | + return studentcode; | |
182 | + } | |
183 | + | |
184 | + public void setStudentcode(String studentcode) { | |
185 | + this.studentcode = studentcode; | |
186 | + } | |
187 | + | |
188 | + public String getSex() { | |
189 | + return sex; | |
190 | + } | |
191 | + | |
192 | + public void setSex(String sex) { | |
193 | + this.sex = sex; | |
194 | + } | |
195 | + | |
196 | + public String getParentmobile() { | |
197 | + return parentmobile; | |
198 | + } | |
199 | + | |
200 | + public void setParentmobile(String parentmobile) { | |
201 | + this.parentmobile = parentmobile; | |
202 | + } | |
203 | + | |
204 | + public String getOthername() { | |
205 | + return othername; | |
206 | + } | |
207 | + | |
208 | + public void setOthername(String othername) { | |
209 | + this.othername = othername; | |
210 | + } | |
211 | + | |
212 | + public Date getActivetime() { | |
213 | + return activetime; | |
214 | + } | |
215 | + | |
216 | + public void setActivetime(Date activetime) { | |
217 | + this.activetime = activetime; | |
218 | + } | |
219 | + | |
220 | + public Integer getActive() { | |
221 | + return active; | |
222 | + } | |
223 | + | |
224 | + public void setActive(Integer active) { | |
225 | + this.active = active; | |
226 | + } | |
227 | + | |
228 | + public String getPass() { | |
229 | + return pass; | |
230 | + } | |
231 | + | |
232 | + public void setPass(String pass) { | |
233 | + this.pass = pass; | |
234 | + } | |
235 | +} | |
0 | 236 | \ No newline at end of file | ... | ... |
cloud/common/src/main/java/com/sincere/common/dto/smartCampus/SzVSchoolTeacher.java
0 → 100644
... | ... | @@ -0,0 +1,173 @@ |
1 | +package com.sincere.common.dto.smartCampus; | |
2 | + | |
3 | +public class SzVSchoolTeacher { | |
4 | + private Integer schoolId; | |
5 | + | |
6 | + private Integer classId; | |
7 | + | |
8 | + private Integer teacherId; | |
9 | + | |
10 | + private String userId; | |
11 | + | |
12 | + private String name; | |
13 | + | |
14 | + private String face; | |
15 | + | |
16 | + private String num; | |
17 | + | |
18 | + private String teacherNum; | |
19 | + | |
20 | + private String teacherMobile; | |
21 | + | |
22 | + private String mobile; | |
23 | + | |
24 | + private Integer classState; | |
25 | + | |
26 | + private Integer roleState; | |
27 | + | |
28 | + private Integer iskaoqin; | |
29 | + | |
30 | + private String openid; | |
31 | + | |
32 | + private String pass; | |
33 | + | |
34 | + private String dinguserid; | |
35 | + | |
36 | + private String qiyehaouserid; | |
37 | + | |
38 | + public Integer getSchoolId() { | |
39 | + return schoolId; | |
40 | + } | |
41 | + | |
42 | + public void setSchoolId(Integer schoolId) { | |
43 | + this.schoolId = schoolId; | |
44 | + } | |
45 | + | |
46 | + public Integer getClassId() { | |
47 | + return classId; | |
48 | + } | |
49 | + | |
50 | + public void setClassId(Integer classId) { | |
51 | + this.classId = classId; | |
52 | + } | |
53 | + | |
54 | + public Integer getTeacherId() { | |
55 | + return teacherId; | |
56 | + } | |
57 | + | |
58 | + public void setTeacherId(Integer teacherId) { | |
59 | + this.teacherId = teacherId; | |
60 | + } | |
61 | + | |
62 | + public String getUserId() { | |
63 | + return userId; | |
64 | + } | |
65 | + | |
66 | + public void setUserId(String userId) { | |
67 | + this.userId = userId; | |
68 | + } | |
69 | + | |
70 | + public String getName() { | |
71 | + return name; | |
72 | + } | |
73 | + | |
74 | + public void setName(String name) { | |
75 | + this.name = name; | |
76 | + } | |
77 | + | |
78 | + public String getFace() { | |
79 | + return face; | |
80 | + } | |
81 | + | |
82 | + public void setFace(String face) { | |
83 | + this.face = face; | |
84 | + } | |
85 | + | |
86 | + public String getNum() { | |
87 | + return num; | |
88 | + } | |
89 | + | |
90 | + public void setNum(String num) { | |
91 | + this.num = num; | |
92 | + } | |
93 | + | |
94 | + public String getTeacherNum() { | |
95 | + return teacherNum; | |
96 | + } | |
97 | + | |
98 | + public void setTeacherNum(String teacherNum) { | |
99 | + this.teacherNum = teacherNum; | |
100 | + } | |
101 | + | |
102 | + public String getTeacherMobile() { | |
103 | + return teacherMobile; | |
104 | + } | |
105 | + | |
106 | + public void setTeacherMobile(String teacherMobile) { | |
107 | + this.teacherMobile = teacherMobile; | |
108 | + } | |
109 | + | |
110 | + public String getMobile() { | |
111 | + return mobile; | |
112 | + } | |
113 | + | |
114 | + public void setMobile(String mobile) { | |
115 | + this.mobile = mobile; | |
116 | + } | |
117 | + | |
118 | + public Integer getClassState() { | |
119 | + return classState; | |
120 | + } | |
121 | + | |
122 | + public void setClassState(Integer classState) { | |
123 | + this.classState = classState; | |
124 | + } | |
125 | + | |
126 | + public Integer getRoleState() { | |
127 | + return roleState; | |
128 | + } | |
129 | + | |
130 | + public void setRoleState(Integer roleState) { | |
131 | + this.roleState = roleState; | |
132 | + } | |
133 | + | |
134 | + public Integer getIskaoqin() { | |
135 | + return iskaoqin; | |
136 | + } | |
137 | + | |
138 | + public void setIskaoqin(Integer iskaoqin) { | |
139 | + this.iskaoqin = iskaoqin; | |
140 | + } | |
141 | + | |
142 | + public String getOpenid() { | |
143 | + return openid; | |
144 | + } | |
145 | + | |
146 | + public void setOpenid(String openid) { | |
147 | + this.openid = openid; | |
148 | + } | |
149 | + | |
150 | + public String getPass() { | |
151 | + return pass; | |
152 | + } | |
153 | + | |
154 | + public void setPass(String pass) { | |
155 | + this.pass = pass; | |
156 | + } | |
157 | + | |
158 | + public String getDinguserid() { | |
159 | + return dinguserid; | |
160 | + } | |
161 | + | |
162 | + public void setDinguserid(String dinguserid) { | |
163 | + this.dinguserid = dinguserid; | |
164 | + } | |
165 | + | |
166 | + public String getQiyehaouserid() { | |
167 | + return qiyehaouserid; | |
168 | + } | |
169 | + | |
170 | + public void setQiyehaouserid(String qiyehaouserid) { | |
171 | + this.qiyehaouserid = qiyehaouserid; | |
172 | + } | |
173 | +} | |
0 | 174 | \ No newline at end of file | ... | ... |
cloud/common/src/main/java/com/sincere/common/dto/xiaoan/FaceRecoder.java
0 → 100644
... | ... | @@ -0,0 +1,75 @@ |
1 | +package com.sincere.common.dto.xiaoan; | |
2 | + | |
3 | +import java.util.Date; | |
4 | + | |
5 | +public class FaceRecoder { | |
6 | + private String deviceid; | |
7 | + | |
8 | + private String userId; | |
9 | + | |
10 | + private String name; | |
11 | + | |
12 | + private String imgurl; | |
13 | + | |
14 | + private Integer inorout; | |
15 | + | |
16 | + private Date time; | |
17 | + | |
18 | + private String cardnum; | |
19 | + | |
20 | + public String getDeviceid() { | |
21 | + return deviceid; | |
22 | + } | |
23 | + | |
24 | + public void setDeviceid(String deviceid) { | |
25 | + this.deviceid = deviceid; | |
26 | + } | |
27 | + | |
28 | + public String getUserId() { | |
29 | + return userId; | |
30 | + } | |
31 | + | |
32 | + public void setUserId(String userId) { | |
33 | + this.userId = userId; | |
34 | + } | |
35 | + | |
36 | + public String getName() { | |
37 | + return name; | |
38 | + } | |
39 | + | |
40 | + public void setName(String name) { | |
41 | + this.name = name; | |
42 | + } | |
43 | + | |
44 | + public String getImgurl() { | |
45 | + return imgurl; | |
46 | + } | |
47 | + | |
48 | + public void setImgurl(String imgurl) { | |
49 | + this.imgurl = imgurl; | |
50 | + } | |
51 | + | |
52 | + public Integer getInorout() { | |
53 | + return inorout; | |
54 | + } | |
55 | + | |
56 | + public void setInorout(Integer inorout) { | |
57 | + this.inorout = inorout; | |
58 | + } | |
59 | + | |
60 | + public Date getTime() { | |
61 | + return time; | |
62 | + } | |
63 | + | |
64 | + public void setTime(Date time) { | |
65 | + this.time = time; | |
66 | + } | |
67 | + | |
68 | + public String getCardnum() { | |
69 | + return cardnum; | |
70 | + } | |
71 | + | |
72 | + public void setCardnum(String cardnum) { | |
73 | + this.cardnum = cardnum; | |
74 | + } | |
75 | +} | |
0 | 76 | \ No newline at end of file | ... | ... |
cloud/common/src/main/java/com/sincere/common/dto/xiaoan/FaceSendfail.java
0 → 100644
... | ... | @@ -0,0 +1,123 @@ |
1 | +package com.sincere.common.dto.xiaoan; | |
2 | + | |
3 | +public class FaceSendfail { | |
4 | + private String deviceid; | |
5 | + | |
6 | + private String customerid; | |
7 | + | |
8 | + private String num; | |
9 | + | |
10 | + private String name; | |
11 | + | |
12 | + private String time; | |
13 | + | |
14 | + private String schoolname; | |
15 | + | |
16 | + private String imgpath; | |
17 | + | |
18 | + private Integer schoolid; | |
19 | + | |
20 | + private String failcontent; | |
21 | + | |
22 | + private Integer failtype; | |
23 | + | |
24 | + private Integer usertype; | |
25 | + | |
26 | + private Integer devicetype; | |
27 | + | |
28 | + public String getDeviceid() { | |
29 | + return deviceid; | |
30 | + } | |
31 | + | |
32 | + public void setDeviceid(String deviceid) { | |
33 | + this.deviceid = deviceid; | |
34 | + } | |
35 | + | |
36 | + public String getCustomerid() { | |
37 | + return customerid; | |
38 | + } | |
39 | + | |
40 | + public void setCustomerid(String customerid) { | |
41 | + this.customerid = customerid; | |
42 | + } | |
43 | + | |
44 | + public String getNum() { | |
45 | + return num; | |
46 | + } | |
47 | + | |
48 | + public void setNum(String num) { | |
49 | + this.num = num; | |
50 | + } | |
51 | + | |
52 | + public String getName() { | |
53 | + return name; | |
54 | + } | |
55 | + | |
56 | + public void setName(String name) { | |
57 | + this.name = name; | |
58 | + } | |
59 | + | |
60 | + public String getTime() { | |
61 | + return time; | |
62 | + } | |
63 | + | |
64 | + public void setTime(String time) { | |
65 | + this.time = time; | |
66 | + } | |
67 | + | |
68 | + public String getSchoolname() { | |
69 | + return schoolname; | |
70 | + } | |
71 | + | |
72 | + public void setSchoolname(String schoolname) { | |
73 | + this.schoolname = schoolname; | |
74 | + } | |
75 | + | |
76 | + public String getImgpath() { | |
77 | + return imgpath; | |
78 | + } | |
79 | + | |
80 | + public void setImgpath(String imgpath) { | |
81 | + this.imgpath = imgpath; | |
82 | + } | |
83 | + | |
84 | + public Integer getSchoolid() { | |
85 | + return schoolid; | |
86 | + } | |
87 | + | |
88 | + public void setSchoolid(Integer schoolid) { | |
89 | + this.schoolid = schoolid; | |
90 | + } | |
91 | + | |
92 | + public String getFailcontent() { | |
93 | + return failcontent; | |
94 | + } | |
95 | + | |
96 | + public void setFailcontent(String failcontent) { | |
97 | + this.failcontent = failcontent; | |
98 | + } | |
99 | + | |
100 | + public Integer getFailtype() { | |
101 | + return failtype; | |
102 | + } | |
103 | + | |
104 | + public void setFailtype(Integer failtype) { | |
105 | + this.failtype = failtype; | |
106 | + } | |
107 | + | |
108 | + public Integer getUsertype() { | |
109 | + return usertype; | |
110 | + } | |
111 | + | |
112 | + public void setUsertype(Integer usertype) { | |
113 | + this.usertype = usertype; | |
114 | + } | |
115 | + | |
116 | + public Integer getDevicetype() { | |
117 | + return devicetype; | |
118 | + } | |
119 | + | |
120 | + public void setDevicetype(Integer devicetype) { | |
121 | + this.devicetype = devicetype; | |
122 | + } | |
123 | +} | |
0 | 124 | \ No newline at end of file | ... | ... |
cloud/common/src/main/java/com/sincere/common/dto/xiaoan/FaceSendsuccess.java
0 → 100644
... | ... | @@ -0,0 +1,105 @@ |
1 | +package com.sincere.common.dto.xiaoan; | |
2 | + | |
3 | +import java.util.Date; | |
4 | + | |
5 | +public class FaceSendsuccess { | |
6 | + private String deviceid; | |
7 | + | |
8 | + private String customerid; | |
9 | + | |
10 | + private String num; | |
11 | + | |
12 | + private String name; | |
13 | + | |
14 | + private Date time; | |
15 | + | |
16 | + private String schoolname; | |
17 | + | |
18 | + private String imgpath; | |
19 | + | |
20 | + private Integer schoolid; | |
21 | + | |
22 | + private Integer usertype; | |
23 | + | |
24 | + private Integer devicetype; | |
25 | + | |
26 | + public String getDeviceid() { | |
27 | + return deviceid; | |
28 | + } | |
29 | + | |
30 | + public void setDeviceid(String deviceid) { | |
31 | + this.deviceid = deviceid; | |
32 | + } | |
33 | + | |
34 | + public String getCustomerid() { | |
35 | + return customerid; | |
36 | + } | |
37 | + | |
38 | + public void setCustomerid(String customerid) { | |
39 | + this.customerid = customerid; | |
40 | + } | |
41 | + | |
42 | + public String getNum() { | |
43 | + return num; | |
44 | + } | |
45 | + | |
46 | + public void setNum(String num) { | |
47 | + this.num = num; | |
48 | + } | |
49 | + | |
50 | + public String getName() { | |
51 | + return name; | |
52 | + } | |
53 | + | |
54 | + public void setName(String name) { | |
55 | + this.name = name; | |
56 | + } | |
57 | + | |
58 | + public Date getTime() { | |
59 | + return time; | |
60 | + } | |
61 | + | |
62 | + public void setTime(Date time) { | |
63 | + this.time = time; | |
64 | + } | |
65 | + | |
66 | + public String getSchoolname() { | |
67 | + return schoolname; | |
68 | + } | |
69 | + | |
70 | + public void setSchoolname(String schoolname) { | |
71 | + this.schoolname = schoolname; | |
72 | + } | |
73 | + | |
74 | + public String getImgpath() { | |
75 | + return imgpath; | |
76 | + } | |
77 | + | |
78 | + public void setImgpath(String imgpath) { | |
79 | + this.imgpath = imgpath; | |
80 | + } | |
81 | + | |
82 | + public Integer getSchoolid() { | |
83 | + return schoolid; | |
84 | + } | |
85 | + | |
86 | + public void setSchoolid(Integer schoolid) { | |
87 | + this.schoolid = schoolid; | |
88 | + } | |
89 | + | |
90 | + public Integer getUsertype() { | |
91 | + return usertype; | |
92 | + } | |
93 | + | |
94 | + public void setUsertype(Integer usertype) { | |
95 | + this.usertype = usertype; | |
96 | + } | |
97 | + | |
98 | + public Integer getDevicetype() { | |
99 | + return devicetype; | |
100 | + } | |
101 | + | |
102 | + public void setDevicetype(Integer devicetype) { | |
103 | + this.devicetype = devicetype; | |
104 | + } | |
105 | +} | |
0 | 106 | \ No newline at end of file | ... | ... |
cloud/common/src/main/java/com/sincere/common/util/DateUtils.java
... | ... | @@ -28,6 +28,13 @@ public class DateUtils { |
28 | 28 | return System.currentTimeMillis(); |
29 | 29 | } |
30 | 30 | |
31 | + public static Date getByLong(String lo){ | |
32 | + long time = Long.parseLong(lo); | |
33 | + Date date = new Date(time); | |
34 | + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
35 | + return string2Date(sd.format(date),format2); | |
36 | + } | |
37 | + | |
31 | 38 | public static String date2String(Date date, String format) { |
32 | 39 | SimpleDateFormat sdf = new SimpleDateFormat(format); |
33 | 40 | return sdf.format(date); | ... | ... |
cloud/common/src/main/java/com/sincere/common/util/HttpClientUtils.java
1 | 1 | package com.sincere.common.util; |
2 | 2 | |
3 | 3 | import com.alibaba.fastjson.JSONObject; |
4 | +import io.rong.RongCloud; | |
5 | +import io.rong.methods.user.User; | |
6 | +import io.rong.models.response.TokenResult; | |
7 | +import io.rong.models.user.UserModel; | |
4 | 8 | import org.apache.commons.httpclient.HttpClient; |
5 | 9 | import org.apache.commons.httpclient.methods.InputStreamRequestEntity; |
6 | 10 | import org.apache.commons.httpclient.methods.PostMethod; |
... | ... | @@ -40,17 +44,49 @@ public class HttpClientUtils { |
40 | 44 | requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).build(); |
41 | 45 | } |
42 | 46 | |
43 | -// public static void main(String[] args){ | |
44 | -//// String url = "http://http://zhktest.114school.com.cn/szkjapi/toyxy/addTeacherOrg" ; | |
45 | -//// String json = "{\"name\": \"子部门\",\"groupname\": \"父部门\",\"schoolid\": \"16\",\"token\": \"05719991\"}" ; | |
46 | -//// JSONObject jsonObject = HttpClientUtils.httpPostJson(url,json); | |
47 | -//// System.out.println(jsonObject.toJSONString()); | |
48 | -// | |
49 | -// String url = "http://campus.myjxt.com/api/Room/GetListPageRoom" ; | |
50 | -// String json = "PageIndex=1&roomId=6583&pageSize=9999" ; | |
51 | -// JSONObject jsonObject = HttpClientUtils.httpPost(url,json); | |
47 | + public static void main(String[] args) throws Exception { | |
48 | +// String url = "http://http://zhktest.114school.com.cn/szkjapi/toyxy/addTeacherOrg" ; | |
49 | +// String json = "{\"name\": \"子部门\",\"groupname\": \"父部门\",\"schoolid\": \"16\",\"token\": \"05719991\"}" ; | |
50 | +// JSONObject jsonObject = HttpClientUtils.httpPostJson(url,json); | |
52 | 51 | // System.out.println(jsonObject.toJSONString()); |
53 | -// } | |
52 | + | |
53 | + String url = "http://39.100.248.170:8080/recv" ; | |
54 | + String json = "{\n" + | |
55 | + " \"appKey\":\"c9kqb3rdc2j9j\",\n" + | |
56 | + " \"channelId\":\"12\",\n" + | |
57 | + " \"event\":2,\n" + | |
58 | + " \"userId\":\"hHjap87\",\n" + | |
59 | + " \"timestamp\":"+System.currentTimeMillis()+",\n" + | |
60 | + " \"token\":\"y6f/aqQ2uJy9cgB4iKxxBNAX/fjWZa8YqXq8ZvODQXbnQpU4ylueQGbBvhBzsKU5camPO4XrURpN73+6paUtbPDbI+qinUYn\",\n" + | |
61 | + " \"extra\":\"xxxx\",\n" + | |
62 | + " \"members\":\n" + | |
63 | + " [{\n" + | |
64 | + " \"userId\": \"hHjap87\",\n" + | |
65 | + " \"data\":{\n" + | |
66 | + " \"key1\":\"value1\"\n" + | |
67 | + " }\n" + | |
68 | + " }\n" + | |
69 | + "}" ; | |
70 | + JSONObject jsonObject = HttpClientUtils.httpPostJson(url,json); | |
71 | + System.out.println(jsonObject.toJSONString()); | |
72 | +// String appKey = "c9kqb3rdc2j9j"; | |
73 | +// String appSecret = "L2ven2G1fB5"; | |
74 | +// | |
75 | +// RongCloud rongCloud = RongCloud.getInstance(appKey, appSecret); | |
76 | +// User user = rongCloud.user; | |
77 | +// | |
78 | +// /** | |
79 | +// * API 文档: http://www.rongcloud.cn/docs/server_sdk_api/user/user.html#register | |
80 | +// * | |
81 | +// * 注册用户,生成用户在融云的唯一身份标识 Token | |
82 | +// */ | |
83 | +// UserModel userModel = new UserModel() | |
84 | +// .setId("hHjap87") | |
85 | +// .setName("RongCloud") | |
86 | +// .setPortrait("http://www.rongcloud.cn/images/logo.png"); | |
87 | +// TokenResult result = user.register(userModel); | |
88 | +// System.out.println("getToken: " + result.toString()); | |
89 | + } | |
54 | 90 | |
55 | 91 | /** |
56 | 92 | * post请求传输json参数 | ... | ... |
... | ... | @@ -0,0 +1,191 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | |
3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
5 | + <parent> | |
6 | + <artifactId>cloud</artifactId> | |
7 | + <groupId>com.sincere</groupId> | |
8 | + <version>1.0.0</version> | |
9 | + </parent> | |
10 | + <modelVersion>4.0.0</modelVersion> | |
11 | + | |
12 | + <artifactId>lapi</artifactId> | |
13 | + <properties> | |
14 | + <java.version>1.8</java.version> | |
15 | + <swagger-version>2.9.2</swagger-version> | |
16 | + </properties> | |
17 | + | |
18 | + <dependencies> | |
19 | + <dependency> | |
20 | + <groupId>org.springframework.boot</groupId> | |
21 | + <artifactId>spring-boot-starter-web</artifactId> | |
22 | + <version>2.2.5.RELEASE</version> | |
23 | + </dependency> | |
24 | + <dependency> | |
25 | + <groupId>com.sincere</groupId> | |
26 | + <artifactId>common</artifactId> | |
27 | + <version>1.0.0</version> | |
28 | + </dependency> | |
29 | + | |
30 | + <dependency> | |
31 | + <groupId>org.springframework.boot</groupId> | |
32 | + <artifactId>spring-boot-starter-test</artifactId> | |
33 | + <version>2.2.5.RELEASE</version> | |
34 | + <scope>test</scope> | |
35 | + </dependency> | |
36 | + | |
37 | + <dependency> | |
38 | + <groupId>io.netty</groupId> | |
39 | + <artifactId>netty-all</artifactId> | |
40 | + <version>4.1.2.Final</version> | |
41 | + </dependency> | |
42 | + | |
43 | + <dependency> | |
44 | + <groupId>com.alibaba</groupId> | |
45 | + <artifactId>fastjson</artifactId> | |
46 | + <version>1.2.67</version> | |
47 | + </dependency> | |
48 | + | |
49 | + <dependency> | |
50 | + <groupId>org.apache.commons</groupId> | |
51 | + <artifactId>commons-lang3</artifactId> | |
52 | + <version>3.9</version> | |
53 | + </dependency> | |
54 | + <!-- <dependency>--> | |
55 | + <!-- <groupId>org.springframework</groupId>--> | |
56 | + <!-- <artifactId>spring-test</artifactId>--> | |
57 | + <!-- <version>5.1.6.RELEASE</version>--> | |
58 | + <!-- <scope>compile</scope>--> | |
59 | + <!-- </dependency>--> | |
60 | + <dependency> | |
61 | + <groupId>org.springframework.cloud</groupId> | |
62 | + <artifactId>spring-cloud-starter-feign</artifactId> | |
63 | + <version>1.3.6.RELEASE</version> | |
64 | + </dependency> | |
65 | + <dependency> | |
66 | + <groupId>org.springframework.cloud</groupId> | |
67 | + <artifactId>spring-cloud-openfeign-core</artifactId> | |
68 | + <version>2.1.2.RELEASE</version> | |
69 | + </dependency> | |
70 | + <dependency> | |
71 | + <groupId>org.apache.httpcomponents</groupId> | |
72 | + <artifactId>httpclient</artifactId> | |
73 | + <version>4.5.12</version> | |
74 | + </dependency> | |
75 | + | |
76 | + <dependency> | |
77 | + <groupId>org.apache.httpcomponents</groupId> | |
78 | + <artifactId>httpcore</artifactId> | |
79 | + <version>4.4.13</version> | |
80 | + </dependency> | |
81 | + | |
82 | + <dependency> | |
83 | + <groupId>org.apache.httpcomponents</groupId> | |
84 | + <artifactId>httpmime</artifactId> | |
85 | + <version>4.5.12</version> | |
86 | + </dependency> | |
87 | + <dependency> | |
88 | + <groupId>org.springframework</groupId> | |
89 | + <artifactId>spring-test</artifactId> | |
90 | + <version>5.2.4.RELEASE</version> | |
91 | + <scope>compile</scope> | |
92 | + </dependency> | |
93 | + | |
94 | + <dependency> | |
95 | + <groupId>io.springfox</groupId> | |
96 | + <artifactId>springfox-swagger-ui</artifactId> | |
97 | + <version>${swagger-version}</version> | |
98 | + </dependency> | |
99 | + <dependency> | |
100 | + <groupId>io.springfox</groupId> | |
101 | + <artifactId>springfox-swagger2</artifactId> | |
102 | + <version>${swagger-version}</version> | |
103 | + </dependency> | |
104 | + | |
105 | + </dependencies> | |
106 | + | |
107 | + <build> | |
108 | + <!--打包文件名--> | |
109 | + <finalName>boguan_server</finalName> | |
110 | + <!--打包方式--> | |
111 | + <plugins> | |
112 | + <!-- 设置编译版本 --> | |
113 | + <plugin> | |
114 | + <groupId>org.apache.maven.plugins</groupId> | |
115 | + <artifactId>maven-compiler-plugin</artifactId> | |
116 | + <version>3.1</version> | |
117 | + <configuration> | |
118 | + <source>1.8</source> | |
119 | + <target>1.8</target> | |
120 | + <encoding>UTF-8</encoding> | |
121 | + </configuration> | |
122 | + </plugin> | |
123 | + <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --> | |
124 | + <!-- 本地启动需要注释--> | |
125 | + <plugin> | |
126 | + <groupId>org.apache.maven.plugins</groupId> | |
127 | + <artifactId>maven-jar-plugin</artifactId> | |
128 | + <configuration> | |
129 | + <archive> | |
130 | + <manifest> | |
131 | + <mainClass>com.sincere.lapi.LapiDemoApplication</mainClass> | |
132 | + <addClasspath>true</addClasspath> | |
133 | + <classpathPrefix>lib/</classpathPrefix> | |
134 | + </manifest> | |
135 | + <manifestEntries> | |
136 | + <Class-Path>./config/</Class-Path> | |
137 | + </manifestEntries> | |
138 | + </archive> | |
139 | + <excludes> | |
140 | + <exclude>config/**</exclude> | |
141 | + </excludes> | |
142 | + <classesDirectory></classesDirectory> | |
143 | + </configuration> | |
144 | + </plugin> | |
145 | + <!-- 拷贝依赖的jar包到lib目录 --> | |
146 | + <plugin> | |
147 | + <groupId>org.apache.maven.plugins</groupId> | |
148 | + <artifactId>maven-dependency-plugin</artifactId> | |
149 | + <executions> | |
150 | + <execution> | |
151 | + <id>copy</id> | |
152 | + <phase>package</phase> | |
153 | + <goals> | |
154 | + <goal>copy-dependencies</goal> | |
155 | + </goals> | |
156 | + <configuration> | |
157 | + <outputDirectory> | |
158 | + ${project.build.directory}/lib | |
159 | + </outputDirectory> | |
160 | + </configuration> | |
161 | + </execution> | |
162 | + </executions> | |
163 | + </plugin> | |
164 | + <!-- 解决资源文件的编码问题 --> | |
165 | + <plugin> | |
166 | + <groupId>org.apache.maven.plugins</groupId> | |
167 | + <artifactId>maven-resources-plugin</artifactId> | |
168 | + <version>2.5</version> | |
169 | + <configuration> | |
170 | + <encoding>UTF-8</encoding> | |
171 | + </configuration> | |
172 | + </plugin> | |
173 | + <!-- 打包source文件为jar文件 --> | |
174 | + <plugin> | |
175 | + <artifactId>maven-source-plugin</artifactId> | |
176 | + <version>2.2</version> | |
177 | + <configuration> | |
178 | + <attach>true</attach> | |
179 | + </configuration> | |
180 | + <executions> | |
181 | + <execution> | |
182 | + <phase>compile</phase> | |
183 | + <goals> | |
184 | + <goal>jar</goal> | |
185 | + </goals> | |
186 | + </execution> | |
187 | + </executions> | |
188 | + </plugin> | |
189 | + </plugins> | |
190 | + </build> | |
191 | +</project> | |
0 | 192 | \ No newline at end of file | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/LapiDemoApplication.java
0 → 100644
... | ... | @@ -0,0 +1,18 @@ |
1 | +package com.sincere.lapi; | |
2 | + | |
3 | +import com.sincere.lapi.server.ServerRun; | |
4 | +import org.springframework.boot.SpringApplication; | |
5 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | |
6 | +import org.springframework.cloud.openfeign.EnableFeignClients; | |
7 | + | |
8 | +@EnableFeignClients(basePackages = "com.sincere.lapi.feign") | |
9 | +@SpringBootApplication | |
10 | +public class LapiDemoApplication { | |
11 | + | |
12 | + public static void main(String[] args) { | |
13 | + SpringApplication.run(LapiDemoApplication.class, args); | |
14 | + ServerRun serverRun = new ServerRun(); | |
15 | + serverRun.start(5300); | |
16 | + } | |
17 | + | |
18 | +} | ... | ... |
... | ... | @@ -0,0 +1,44 @@ |
1 | +package com.sincere.lapi; | |
2 | + | |
3 | +import org.springframework.context.annotation.Bean; | |
4 | +import org.springframework.context.annotation.Configuration; | |
5 | +import springfox.documentation.builders.ApiInfoBuilder; | |
6 | +import springfox.documentation.builders.ParameterBuilder; | |
7 | +import springfox.documentation.builders.PathSelectors; | |
8 | +import springfox.documentation.builders.RequestHandlerSelectors; | |
9 | +import springfox.documentation.schema.ModelRef; | |
10 | +import springfox.documentation.service.ApiInfo; | |
11 | +import springfox.documentation.service.Parameter; | |
12 | +import springfox.documentation.spi.DocumentationType; | |
13 | +import springfox.documentation.spring.web.plugins.Docket; | |
14 | +import springfox.documentation.swagger2.annotations.EnableSwagger2; | |
15 | + | |
16 | +import java.util.ArrayList; | |
17 | +import java.util.List; | |
18 | + | |
19 | +@EnableSwagger2 | |
20 | +@Configuration //让Spring来加载该类配置 | |
21 | +public class Swagger2 { | |
22 | + | |
23 | + @Bean | |
24 | + public Docket createRestApi() { | |
25 | + ParameterBuilder ticketPar = new ParameterBuilder(); | |
26 | + return new Docket(DocumentationType.SWAGGER_2) | |
27 | + .apiInfo(apiInfo()) | |
28 | + .enableUrlTemplating(true) | |
29 | + .select() | |
30 | + // 扫描所有有注解的api,用这种方式更灵活 | |
31 | + .apis(RequestHandlerSelectors.basePackage("com.sincere.lapi.controller")) | |
32 | + .paths(PathSelectors.any()) | |
33 | + .build(); | |
34 | + | |
35 | + } | |
36 | + private ApiInfo apiInfo() { | |
37 | + return new ApiInfoBuilder() | |
38 | + .title("Spring Boot中使用Swagger2构建RESTful APIs") | |
39 | + .description("接口文档") | |
40 | + .termsOfServiceUrl("") | |
41 | + .version("1.0") | |
42 | + .build(); | |
43 | + } | |
44 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/Utils/FileUtils.java
0 → 100644
... | ... | @@ -0,0 +1,136 @@ |
1 | +package com.sincere.lapi.Utils; | |
2 | + | |
3 | +import org.apache.tomcat.util.http.fileupload.IOUtils; | |
4 | + | |
5 | +import javax.imageio.ImageIO; | |
6 | +import java.awt.image.BufferedImage; | |
7 | +import java.io.*; | |
8 | +import java.net.HttpURLConnection; | |
9 | +import java.net.MalformedURLException; | |
10 | +import java.net.URL; | |
11 | +import java.net.URLConnection; | |
12 | + | |
13 | +public class FileUtils { | |
14 | + | |
15 | + public static String img_url = "c:\\\\lapi\\" ; | |
16 | + public static String zip_url = "c:\\\\lapi\\zip\\" ; | |
17 | + | |
18 | + public static byte[] getBytes(String filePath){ | |
19 | + try{ | |
20 | + String dir = download(filePath); | |
21 | + String fName = dir.trim(); | |
22 | + String temp[] = fName.split("\\\\"); | |
23 | + String fileName = temp[temp.length-1]; | |
24 | + String zipUrl = CompressPic(dir,zip_url+fileName); | |
25 | + File file = new File(zipUrl); | |
26 | + long fileSize = file.length(); | |
27 | + if (fileSize > Integer.MAX_VALUE) { | |
28 | + System.out.println("file too big..."); | |
29 | + return null; | |
30 | + } | |
31 | + byte[] buffer = null; | |
32 | + FileInputStream fi = new FileInputStream(file); | |
33 | + buffer = new byte[(int) fileSize]; | |
34 | + int offset = 0; | |
35 | + int numRead = 0; | |
36 | + while (offset < buffer.length | |
37 | + && (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) { | |
38 | + offset += numRead; | |
39 | + } | |
40 | + // 确保所有数据均被读取 | |
41 | + if (offset != buffer.length) { | |
42 | + throw new IOException("Could not completely read file " | |
43 | + + file.getName()); | |
44 | + } | |
45 | + return buffer; | |
46 | + }catch (Exception e){ | |
47 | + | |
48 | + } | |
49 | + return null ; | |
50 | + } | |
51 | + | |
52 | + public static String download(String urlPath){ | |
53 | + File file = null; | |
54 | + String fName = urlPath.trim(); | |
55 | + String temp[] = fName.split("\\/"); | |
56 | + String fileName = temp[temp.length-1]; | |
57 | + try { | |
58 | + // 统一资源 | |
59 | + URL url = new URL(urlPath); | |
60 | + // 连接类的父类,抽象类 | |
61 | + URLConnection urlConnection = url.openConnection(); | |
62 | + // http的连接类 | |
63 | + HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection; | |
64 | + //设置超时 | |
65 | + httpURLConnection.setConnectTimeout(1000*5); | |
66 | + //设置请求方式,默认是GET | |
67 | + httpURLConnection.setRequestMethod("GET"); | |
68 | + // 设置字符编码 | |
69 | + httpURLConnection.setRequestProperty("Charset", "UTF-8"); | |
70 | + // 打开到此 URL引用的资源的通信链接(如果尚未建立这样的连接)。 | |
71 | + httpURLConnection.connect(); | |
72 | + | |
73 | + BufferedInputStream bin = new BufferedInputStream(httpURLConnection.getInputStream()); | |
74 | + // 指定存放位置(有需求可以自定义) | |
75 | + String path = img_url + "lapi.jpg"; | |
76 | + file = new File(path); | |
77 | + // 校验文件夹目录是否存在,不存在就创建一个目录 | |
78 | + if (!file.getParentFile().exists()) { | |
79 | + file.getParentFile().mkdirs(); | |
80 | + } | |
81 | + FileOutputStream fos = new FileOutputStream(file); | |
82 | + IOUtils.copy(bin, fos); | |
83 | + IOUtils.closeQuietly(fos); | |
84 | + return path; | |
85 | + } catch (MalformedURLException e) { | |
86 | + e.printStackTrace(); | |
87 | + } catch (IOException e) { | |
88 | + e.printStackTrace(); | |
89 | + } | |
90 | + return null ; | |
91 | + } | |
92 | + | |
93 | + public static String CompressPic(String srcPath, String targetPath) throws Exception { | |
94 | + double cutPercent = 0.2; | |
95 | + File file = new File(srcPath.trim()); | |
96 | + FileInputStream fileInputStream = new FileInputStream(file); | |
97 | + BufferedImage bufferedImage = ImageIO.read(fileInputStream); | |
98 | + int width = bufferedImage.getWidth(null); | |
99 | + int height = bufferedImage.getHeight(null); | |
100 | + long fileLength = file.length(); | |
101 | + if ((fileLength / 1024) < 100) { | |
102 | + writeImgToFile(bufferedImage, width, height, targetPath); | |
103 | + } else | |
104 | + while ((fileLength / 1024) >= 100) { | |
105 | + width = (int) (width * (1 - cutPercent)); | |
106 | + height = (int) (height * (1 - cutPercent)); | |
107 | + | |
108 | + writeImgToFile(bufferedImage, width, height, targetPath); | |
109 | + | |
110 | + File file1 = new File(targetPath); | |
111 | + FileInputStream fileInputStream1 = new FileInputStream(file1); | |
112 | + BufferedImage bufferedImage1 = ImageIO.read(fileInputStream1); | |
113 | + width = bufferedImage1.getWidth(null); | |
114 | + height = bufferedImage1.getHeight(null); | |
115 | + fileLength = file1.length(); | |
116 | + fileInputStream1.close(); | |
117 | + } | |
118 | +// System.out.printf("图片大小:"+fileLength/1024); | |
119 | + fileInputStream.close(); | |
120 | + return targetPath; | |
121 | + } | |
122 | + | |
123 | + private static void writeImgToFile(BufferedImage bufferedImage, int width, int height, String targetPath) { | |
124 | + try { | |
125 | + | |
126 | + BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR); | |
127 | + tag.getGraphics().drawImage(bufferedImage, 0, 0, width, height, null); // 绘制缩小后的图 | |
128 | + FileOutputStream deskImage = new FileOutputStream(targetPath); // 输出到文件流 | |
129 | + boolean write = ImageIO.write(tag, "jpg", deskImage); | |
130 | + deskImage.close(); | |
131 | + } catch (Exception e) { | |
132 | + e.printStackTrace(); | |
133 | + } | |
134 | + } | |
135 | + | |
136 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/Utils/SpringContextHolder.java
0 → 100644
... | ... | @@ -0,0 +1,32 @@ |
1 | +package com.sincere.lapi.Utils; | |
2 | + | |
3 | +import com.sincere.lapi.service.request.AttendanceService; | |
4 | +import com.sincere.lapi.service.request.TerminalHttpCall; | |
5 | +import org.springframework.beans.BeansException; | |
6 | +import org.springframework.context.ApplicationContext; | |
7 | +import org.springframework.context.ApplicationContextAware; | |
8 | +import org.springframework.stereotype.Component; | |
9 | + | |
10 | +/** | |
11 | + * @author chen | |
12 | + * @version 1.0 | |
13 | + * @date 2019/10/29 0029 16:35 | |
14 | + */ | |
15 | +@Component | |
16 | +public class SpringContextHolder implements ApplicationContextAware { | |
17 | + | |
18 | + private static ApplicationContext applicationContext; | |
19 | + | |
20 | + @Override | |
21 | + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { | |
22 | + SpringContextHolder.applicationContext = applicationContext; | |
23 | + } | |
24 | + | |
25 | + public static TerminalHttpCall getTerminalHttpCall(){ | |
26 | + return (TerminalHttpCall) applicationContext.getBean("terminalHttpCall"); | |
27 | + } | |
28 | + | |
29 | + public static AttendanceService getAttendanceService(){ | |
30 | + return (AttendanceService) applicationContext.getBean("attendanceService"); | |
31 | + } | |
32 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/controller/LapiController.java
0 → 100644
... | ... | @@ -0,0 +1,274 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/7 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.controller; | |
18 | + | |
19 | +import com.sincere.common.dto.smartCampus.SzVSchoolStudent; | |
20 | +import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; | |
21 | +import com.sincere.common.dto.xiaoan.FaceSendfail; | |
22 | +import com.sincere.common.dto.xiaoan.FaceSendsuccess; | |
23 | +import com.sincere.lapi.Utils.FileUtils; | |
24 | +import com.sincere.lapi.feign.ScFeign; | |
25 | +import com.sincere.lapi.feign.XaFeign; | |
26 | +import com.sincere.lapi.pojo.*; | |
27 | +import com.sincere.lapi.server.UrlParam; | |
28 | +import com.sincere.lapi.service.request.TerminalHttpCall; | |
29 | +import io.swagger.annotations.ApiOperation; | |
30 | +import org.apache.commons.lang3.StringUtils; | |
31 | +import org.springframework.beans.factory.annotation.Autowired; | |
32 | +import org.springframework.web.bind.annotation.RequestMapping; | |
33 | +import org.springframework.web.bind.annotation.RequestMethod; | |
34 | +import org.springframework.web.bind.annotation.RequestParam; | |
35 | +import org.springframework.web.bind.annotation.RestController; | |
36 | +import sun.misc.BASE64Encoder; | |
37 | + | |
38 | +import java.util.ArrayList; | |
39 | +import java.util.HashMap; | |
40 | +import java.util.List; | |
41 | +import java.util.Map; | |
42 | + | |
43 | +/** | |
44 | + * description | |
45 | + * | |
46 | + * @author dW5565 | |
47 | + */ | |
48 | +@RestController | |
49 | +public class LapiController { | |
50 | + | |
51 | + @Autowired | |
52 | + ScFeign scFeign ; | |
53 | + | |
54 | + @Autowired | |
55 | + XaFeign xaFeign ; | |
56 | + | |
57 | + @Autowired | |
58 | + TerminalHttpCall terminalHttpCall = new TerminalHttpCall(); | |
59 | + | |
60 | + /** | |
61 | + * 下发整个学校 | |
62 | + * @param deviceIds 多个设备用,隔开 | |
63 | + * @param schoolId | |
64 | + * @param userType 1 老师 2 学生 | |
65 | + */ | |
66 | + @RequestMapping(value = "sendFaces", method = RequestMethod.GET) | |
67 | + @ApiOperation(value = "下发学校下所有人脸给指定设备", notes = "下发所有人脸给指定设备") | |
68 | + public void sendFaces(@RequestParam("deviceIds") String deviceIds, @RequestParam("schoolId") String schoolId, @RequestParam("userType") String userType) { | |
69 | + String[] deviceList = deviceIds.split(","); | |
70 | + if(userType.equals("1")){ | |
71 | + List<SzVSchoolTeacher> list = scFeign.selectTeacherBySchoolId(schoolId) ; | |
72 | + for(String deviceId :deviceList){ | |
73 | + sendTeacherBatch(list,deviceId); | |
74 | + } | |
75 | + }else if( userType.equals("2")){ | |
76 | + List<SzVSchoolStudent> list = scFeign.selectStudentBySchoolId(schoolId) ; | |
77 | + for(String deviceId :deviceList){ | |
78 | + sendStudentBatch(list,deviceId); | |
79 | + } | |
80 | + } | |
81 | + } | |
82 | + | |
83 | + | |
84 | + | |
85 | + //下发单张人脸到设备 | |
86 | + @RequestMapping(value = "sendStuCardAndImg", method = RequestMethod.GET) | |
87 | + @ApiOperation("下发人脸给设备") | |
88 | + public boolean sendCardAndImg( @RequestParam("deviceId") String deviceId, @RequestParam("customerId") int customerId, @RequestParam("userType") String userType){ | |
89 | + if(userType.equals("1")){ | |
90 | + SzVSchoolTeacher teacher = scFeign.selectByTeacherId(customerId) ; | |
91 | + sendTeacher(teacher,deviceId); | |
92 | + }else if( userType.equals("2")){ | |
93 | + SzVSchoolStudent student = scFeign.selectByStudentId(customerId) ; | |
94 | + sendStudent(student,deviceId); | |
95 | + } | |
96 | + return true; | |
97 | + } | |
98 | + | |
99 | + private void sendStudentBatch( List<SzVSchoolStudent> list , String deviceId){ | |
100 | + for(SzVSchoolStudent student : list){ | |
101 | + if(StringUtils.isNotBlank(student.getPhoto())){ | |
102 | + sendStudent(student,deviceId); | |
103 | + } | |
104 | + } | |
105 | + } | |
106 | + | |
107 | + private void sendStudent(SzVSchoolStudent student , String deviceId){ | |
108 | + try{ | |
109 | + LAPIResponse response = sendImg(Long.valueOf(student.getStudentId()),student.getName(),student.getStudentNum(),student.getPhoto(),deviceId); | |
110 | + System.out.println("接收到的json-------"+response.toString()); | |
111 | + terminalHttpCall.removeKey(deviceId); | |
112 | + if(response.getStatusString().equals("Succeed")){ | |
113 | + insertSuccess(deviceId,student.getStudentId(),student.getStudentNum(),student.getName(),student.getPhoto(),student.getSchoolId(),2); | |
114 | + }else { | |
115 | + insertFail(deviceId,student.getStudentId(),student.getStudentNum(),student.getName(),student.getPhoto(),student.getSchoolId(),2,response.getStatusCode()); | |
116 | + } | |
117 | + }catch (Exception e){ | |
118 | + e.printStackTrace(); | |
119 | + } | |
120 | + | |
121 | + } | |
122 | + | |
123 | + private void sendTeacherBatch( List<SzVSchoolTeacher> list , String deviceId){ | |
124 | + for(SzVSchoolTeacher teacher : list){ | |
125 | + if(StringUtils.isNotBlank(teacher.getFace())){ | |
126 | + sendTeacher(teacher,deviceId); | |
127 | + } | |
128 | + } | |
129 | + } | |
130 | + | |
131 | + private void sendTeacher(SzVSchoolTeacher teacher , String deviceId){ | |
132 | + try{ | |
133 | + LAPIResponse response = sendImg(Long.valueOf(teacher.getTeacherId()),teacher.getName(),teacher.getTeacherNum(),teacher.getFace(),deviceId); | |
134 | + terminalHttpCall.removeKey(deviceId); | |
135 | + if(response.getStatusString().equals("Succeed")){ | |
136 | + insertSuccess(deviceId,teacher.getTeacherId(),teacher.getTeacherNum(),teacher.getName(),teacher.getFace(),teacher.getSchoolId(),1); | |
137 | + }else { | |
138 | + insertFail(deviceId,teacher.getTeacherId(),teacher.getTeacherNum(),teacher.getName(),teacher.getFace(),teacher.getSchoolId(),1,response.getStatusCode()); | |
139 | + } | |
140 | + }catch (Exception e){ | |
141 | + e.printStackTrace(); | |
142 | + } | |
143 | + | |
144 | + } | |
145 | + | |
146 | + private LAPIResponse sendImg(long personId , String name , String code , String fileUrl , String deviceId){ | |
147 | + LAPIResponse response = new LAPIResponse() ; | |
148 | + PersonInfoList personInfoList = new PersonInfoList(); | |
149 | + List<PersonInfo> list1 = new ArrayList<PersonInfo>(); | |
150 | + personInfoList.setPersonInfoList(list1); | |
151 | + PersonInfo personInfo = new PersonInfo(); | |
152 | + list1.add(personInfo); | |
153 | + personInfoList.setNum(list1.size()); | |
154 | + | |
155 | + personInfo.setPersonID(personId); | |
156 | + personInfo.setLastChange(System.currentTimeMillis() / 1000); | |
157 | + personInfo.setPersonName(name); | |
158 | + personInfo.setGender(1); | |
159 | + | |
160 | + PersonTimeTemplateInfo personTimeTemplateInfo = new PersonTimeTemplateInfo(); | |
161 | + personTimeTemplateInfo.setBeginTime(System.currentTimeMillis() / 1000); | |
162 | + personTimeTemplateInfo.setEndTime((System.currentTimeMillis() + 10 * 365 * 24 * 60 * 60 * 1000L) / 1000); | |
163 | + personTimeTemplateInfo.setIndex(0); | |
164 | + personInfo.setTimeTemplate(personTimeTemplateInfo); | |
165 | + | |
166 | + List<IdentificationInfo> list = new ArrayList<IdentificationInfo>(); | |
167 | + IdentificationInfo identificationInfo = new IdentificationInfo(); | |
168 | + list.add(identificationInfo); | |
169 | + identificationInfo.setNumber(Long.parseLong(getCard(code), 16)+""); | |
170 | + identificationInfo.setType(1); | |
171 | + personInfo.setIdentificationList(list); | |
172 | + personInfo.setIdentificationNum(list.size()); | |
173 | + | |
174 | + List<PersonImageInfo> imageList = new ArrayList<PersonImageInfo>(); | |
175 | + try{ | |
176 | + PersonImageInfo personImageInfo = new PersonImageInfo(); | |
177 | + String picture = new BASE64Encoder().encode(FileUtils.getBytes(fileUrl)); | |
178 | + picture = picture.replaceAll("\n", "").replaceAll("\r", ""); | |
179 | + personImageInfo.setData(picture); | |
180 | + personImageInfo.setFaceID(1L); | |
181 | + //personImageInfo.setName("1.jpg"); | |
182 | + personImageInfo.setSize(picture.length()); | |
183 | + imageList.add(personImageInfo); | |
184 | + personInfo.setImageList(imageList); | |
185 | + personInfo.setImageNum(imageList.size()); | |
186 | + terminalHttpCall.addPerson(deviceId, personInfoList); | |
187 | + | |
188 | + Thread.sleep(2000); | |
189 | + try{ | |
190 | + response = terminalHttpCall.getResponse(deviceId); | |
191 | + response.getStatusString(); | |
192 | + }catch (Exception e){ | |
193 | + Thread.sleep(5000); | |
194 | + response = terminalHttpCall.getResponse(deviceId); | |
195 | + } | |
196 | + | |
197 | + } catch(Exception e) { | |
198 | + System.out.println("下发失败"+e.getMessage()); | |
199 | + } | |
200 | + return response ; | |
201 | + } | |
202 | + | |
203 | + | |
204 | + private String getCard(String card) { | |
205 | + | |
206 | + if (card.length() == 8) { | |
207 | + int length = card.length(); | |
208 | + String result = card.substring(length - 2, length) + card.substring(length - 4, length - 2) + card.substring(length - 6, length - 4) | |
209 | + + card.substring(length - 8, length - 6); | |
210 | + return result; | |
211 | + | |
212 | + } else { | |
213 | + System.out.println("卡号位数不对:" + card); | |
214 | + return ""; | |
215 | + } | |
216 | + | |
217 | + } | |
218 | + | |
219 | + private void insertSuccess(String deviceId , int customerId , String num , String name , String imgPath , int schoolId ,int userType){ | |
220 | + FaceSendsuccess send = new FaceSendsuccess(); | |
221 | + send.setDeviceid(deviceId); | |
222 | + send.setCustomerid(customerId+""); | |
223 | + send.setDevicetype(25); | |
224 | + send.setImgpath(imgPath); | |
225 | + send.setSchoolid(schoolId); | |
226 | + send.setUsertype(userType); | |
227 | + send.setName(name); | |
228 | + send.setNum(num); | |
229 | + xaFeign.insertFaceSuccess(send); | |
230 | + } | |
231 | + | |
232 | + private void insertFail(String deviceId , int customerId , String num , String name , String imgPath , int schoolId ,int userType , int failType ){ | |
233 | + FaceSendfail send = new FaceSendfail(); | |
234 | + send.setDeviceid(deviceId); | |
235 | + send.setCustomerid(customerId+""); | |
236 | + send.setDevicetype(25); | |
237 | + send.setImgpath(imgPath); | |
238 | + send.setSchoolid(schoolId); | |
239 | + send.setUsertype(userType); | |
240 | + send.setName(name); | |
241 | + send.setNum(num); | |
242 | + send.setFailtype(failType); | |
243 | + send.setFailcontent(failMap.get(failType+"")); | |
244 | + xaFeign.insertFaceFail(send); | |
245 | + } | |
246 | + | |
247 | + | |
248 | + public static Map<String,String> failMap = new HashMap<>(); | |
249 | + | |
250 | + static { | |
251 | + failMap.put("1000","算法初始化失败"); | |
252 | + failMap.put("1001","人脸检测失败"); | |
253 | + failMap.put("1002","图片未检测到人脸"); | |
254 | + failMap.put("1003","jpeg照片解码失败"); | |
255 | + failMap.put("1004","图片质量分数不满足"); | |
256 | + failMap.put("1005","图片缩放失败"); | |
257 | + failMap.put("1006","未启用智能"); | |
258 | + failMap.put("1007","导入图片过小"); | |
259 | + failMap.put("1008","导入图片过大"); | |
260 | + failMap.put("1009","导入图片分辨率超过1920*1080"); | |
261 | + failMap.put("1010","导入图片不存在"); | |
262 | + failMap.put("1011","人脸元素个数已达到上限"); | |
263 | + failMap.put("1012",":智能棒算法模型不匹配"); | |
264 | + failMap.put("1013","人脸导入库成员证件号非法"); | |
265 | + failMap.put("1014","人脸导入库成员图片格式错误"); | |
266 | + failMap.put("1015","通道布控已达设备能力上限"); | |
267 | + failMap.put("1016","其它客户端正在进行操作人脸库"); | |
268 | + failMap.put("1017","人脸库文件正在更新中"); | |
269 | + failMap.put("1018","Json反序列化失败"); | |
270 | + failMap.put("1019","Base64解码失败"); | |
271 | + failMap.put("1020","人脸照片,编码后的大小和实际接收到的长度不一致"); | |
272 | + | |
273 | + } | |
274 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/feign/ScFeign.java
0 → 100644
... | ... | @@ -0,0 +1,39 @@ |
1 | +package com.sincere.lapi.feign; | |
2 | + | |
3 | +import com.sincere.common.dto.smartCampus.SZ_AttendanceDto; | |
4 | +import com.sincere.common.dto.smartCampus.SzVSchoolStudent; | |
5 | +import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; | |
6 | +import org.springframework.cloud.openfeign.FeignClient; | |
7 | +import org.springframework.web.bind.annotation.RequestBody; | |
8 | +import org.springframework.web.bind.annotation.RequestMapping; | |
9 | +import org.springframework.web.bind.annotation.RequestMethod; | |
10 | +import org.springframework.web.bind.annotation.RequestParam; | |
11 | + | |
12 | +import java.util.List; | |
13 | + | |
14 | +/** | |
15 | + * @author chen | |
16 | + * @version 1.0 | |
17 | + * @date 2019/11/28 0028 9:17 | |
18 | + */ | |
19 | +@FeignClient("smartCampusSearch") | |
20 | +public interface ScFeign { | |
21 | + | |
22 | + @RequestMapping(value = "/attendance/addAttendance", method = RequestMethod.POST) | |
23 | + void addAttendance(@RequestBody SZ_AttendanceDto attendanceDto); | |
24 | + | |
25 | + @RequestMapping(method = RequestMethod.GET, value = "/attendance/selectAttendaceWithId") | |
26 | + SZ_AttendanceDto selectAttendaceWithId(@RequestParam("clint_id") String clint_id); | |
27 | + | |
28 | + @RequestMapping(value = "/sm/user/selectTeacherBySchoolId",method = RequestMethod.GET) | |
29 | + List<SzVSchoolTeacher> selectTeacherBySchoolId(@RequestParam("schoolId") String schoolId); | |
30 | + | |
31 | + @RequestMapping(value = "/sm/user/selectStudentBySchoolId",method = RequestMethod.GET) | |
32 | + List<SzVSchoolStudent> selectStudentBySchoolId(@RequestParam("schoolId") String schoolId); | |
33 | + | |
34 | + @RequestMapping(value = "/sm/user/selectByTeacherId",method = RequestMethod.GET) | |
35 | + SzVSchoolTeacher selectByTeacherId(@RequestParam("teacherId") int teacherId); | |
36 | + | |
37 | + @RequestMapping(value = "/sm/user/selectByStudentId",method = RequestMethod.GET) | |
38 | + SzVSchoolStudent selectByStudentId(@RequestParam("studentId") int studentId); | |
39 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/feign/XaFeign.java
0 → 100644
... | ... | @@ -0,0 +1,22 @@ |
1 | +package com.sincere.lapi.feign; | |
2 | + | |
3 | +import com.sincere.common.dto.xiaoan.FaceRecoder; | |
4 | +import com.sincere.common.dto.xiaoan.FaceSendfail; | |
5 | +import com.sincere.common.dto.xiaoan.FaceSendsuccess; | |
6 | +import org.springframework.cloud.openfeign.FeignClient; | |
7 | +import org.springframework.web.bind.annotation.RequestBody; | |
8 | +import org.springframework.web.bind.annotation.RequestMapping; | |
9 | +import org.springframework.web.bind.annotation.RequestMethod; | |
10 | + | |
11 | +@FeignClient("xiaoanSearch") | |
12 | +public interface XaFeign { | |
13 | + | |
14 | + @RequestMapping(value = "/xa/face/success",method = RequestMethod.POST) | |
15 | + void insertFaceSuccess(@RequestBody FaceSendsuccess faceSendsuccess); | |
16 | + | |
17 | + @RequestMapping(value = "/xa/face/fail",method = RequestMethod.POST) | |
18 | + void insertFaceFail(@RequestBody FaceSendfail faceSendfail); | |
19 | + | |
20 | + @RequestMapping(value = "/xa/face/insertRecode",method = RequestMethod.POST) | |
21 | + void insertRecode(@RequestBody FaceRecoder faceRecoder); | |
22 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/pojo/HeartInfo.java
0 → 100644
... | ... | @@ -0,0 +1,60 @@ |
1 | +package com.sincere.lapi.pojo; | |
2 | + | |
3 | +import com.alibaba.fastjson.annotation.JSONField; | |
4 | + | |
5 | +import java.io.Serializable; | |
6 | + | |
7 | +//心跳 | |
8 | +public class HeartInfo implements Serializable { | |
9 | + | |
10 | + @JSONField(name = "RefId", ordinal = 1) | |
11 | + private String refId ; | |
12 | + @JSONField(name = "Time", ordinal = 2) | |
13 | + private String time ; | |
14 | + @JSONField(name = "NextTime", ordinal = 3) | |
15 | + private String nextTime ; | |
16 | + @JSONField(name = "DeviceCode", ordinal = 4) | |
17 | + private String deviceCode ; | |
18 | + @JSONField(name = "DeviceType", ordinal = 5) | |
19 | + private int deviceType ; | |
20 | + | |
21 | + public String getRefId() { | |
22 | + return refId; | |
23 | + } | |
24 | + | |
25 | + public void setRefId(String refId) { | |
26 | + this.refId = refId; | |
27 | + } | |
28 | + | |
29 | + public String getTime() { | |
30 | + return time; | |
31 | + } | |
32 | + | |
33 | + public void setTime(String time) { | |
34 | + this.time = time; | |
35 | + } | |
36 | + | |
37 | + public String getNextTime() { | |
38 | + return nextTime; | |
39 | + } | |
40 | + | |
41 | + public void setNextTime(String nextTime) { | |
42 | + this.nextTime = nextTime; | |
43 | + } | |
44 | + | |
45 | + public String getDeviceCode() { | |
46 | + return deviceCode; | |
47 | + } | |
48 | + | |
49 | + public void setDeviceCode(String deviceCode) { | |
50 | + this.deviceCode = deviceCode; | |
51 | + } | |
52 | + | |
53 | + public int getDeviceType() { | |
54 | + return deviceType; | |
55 | + } | |
56 | + | |
57 | + public void setDeviceType(int deviceType) { | |
58 | + this.deviceType = deviceType; | |
59 | + } | |
60 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/pojo/IdentificationInfo.java
0 → 100644
... | ... | @@ -0,0 +1,48 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/13 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.pojo; | |
18 | + | |
19 | +import com.alibaba.fastjson.annotation.JSONField; | |
20 | + | |
21 | +/** | |
22 | + * description | |
23 | + * | |
24 | + * @author dW5565 | |
25 | + */ | |
26 | +public class IdentificationInfo { | |
27 | + | |
28 | + @JSONField(name = "Type", ordinal = 1) | |
29 | + private Integer type; | |
30 | + @JSONField(name = "Number", ordinal = 2) | |
31 | + private String number; | |
32 | + | |
33 | + public Integer getType() { | |
34 | + return type; | |
35 | + } | |
36 | + | |
37 | + public void setType(Integer type) { | |
38 | + this.type = type; | |
39 | + } | |
40 | + | |
41 | + public String getNumber() { | |
42 | + return number; | |
43 | + } | |
44 | + | |
45 | + public void setNumber(String number) { | |
46 | + this.number = number; | |
47 | + } | |
48 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/pojo/LAPI.java
0 → 100644
... | ... | @@ -0,0 +1,17 @@ |
1 | +package com.sincere.lapi.pojo; | |
2 | + | |
3 | +import com.alibaba.fastjson.annotation.JSONField; | |
4 | + | |
5 | +public class LAPI { | |
6 | + | |
7 | + @JSONField(name = "Response", ordinal = 1) | |
8 | + private LAPIResponse response ; | |
9 | + | |
10 | + public LAPIResponse getResponse() { | |
11 | + return response; | |
12 | + } | |
13 | + | |
14 | + public void setResponse(LAPIResponse response) { | |
15 | + this.response = response; | |
16 | + } | |
17 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/pojo/LAPIResponse.java
0 → 100644
... | ... | @@ -0,0 +1,96 @@ |
1 | +package com.sincere.lapi.pojo; | |
2 | + | |
3 | +import com.alibaba.fastjson.annotation.JSONField; | |
4 | + | |
5 | +import java.io.Serializable; | |
6 | + | |
7 | +/** | |
8 | + * @author wW4799 | |
9 | + * @date 2018/10/18. | |
10 | + */ | |
11 | +public class LAPIResponse implements Serializable { | |
12 | + /** | |
13 | + * 响应URL | |
14 | + */ | |
15 | + @JSONField(name = "ResponseURL", ordinal = 1) | |
16 | + private String responseUrl; | |
17 | + | |
18 | + /** | |
19 | + * 创建Id | |
20 | + */ | |
21 | + @JSONField(name = "CreatedID", ordinal = 2) | |
22 | + private int createdId; | |
23 | + | |
24 | + /** | |
25 | + * 状态编码 | |
26 | + */ | |
27 | + @JSONField(name = "StatusCode", ordinal = 3) | |
28 | + private int statusCode; | |
29 | + | |
30 | + /** | |
31 | + * 状态描述 | |
32 | + */ | |
33 | + @JSONField(name = "StatusString", ordinal = 4) | |
34 | + private String statusString; | |
35 | + | |
36 | + /** | |
37 | + * 返回数据 | |
38 | + */ | |
39 | + @JSONField(name = "Data", ordinal = 5) | |
40 | + private String data; | |
41 | + | |
42 | + public String getResponseUrl() { | |
43 | + return responseUrl; | |
44 | + } | |
45 | + | |
46 | + public void setResponseUrl(String responseUrl) { | |
47 | + this.responseUrl = responseUrl; | |
48 | + } | |
49 | + | |
50 | + | |
51 | + public int getCreatedId() { | |
52 | + return createdId; | |
53 | + } | |
54 | + | |
55 | + public void setCreatedId(int createdId) { | |
56 | + this.createdId = createdId; | |
57 | + } | |
58 | + | |
59 | + | |
60 | + public int getStatusCode() { | |
61 | + return statusCode; | |
62 | + } | |
63 | + | |
64 | + public void setStatusCode(int statusCode) { | |
65 | + this.statusCode = statusCode; | |
66 | + } | |
67 | + | |
68 | + | |
69 | + public String getStatusString() { | |
70 | + return statusString; | |
71 | + } | |
72 | + | |
73 | + public void setStatusString(String statusString) { | |
74 | + this.statusString = statusString; | |
75 | + } | |
76 | + | |
77 | + | |
78 | + public String getData() { | |
79 | + return data; | |
80 | + } | |
81 | + | |
82 | + public void setData(String data) { | |
83 | + this.data = data; | |
84 | + } | |
85 | + | |
86 | + @Override | |
87 | + public String toString() { | |
88 | + return "LAPIResponse{" + | |
89 | + "responseUrl='" + responseUrl + '\'' + | |
90 | + ", createdId=" + createdId + | |
91 | + ", statusCode=" + statusCode + | |
92 | + ", statusString='" + statusString + '\'' + | |
93 | + ", data='" + data + '\'' + | |
94 | + '}'; | |
95 | + } | |
96 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/pojo/PersonImageInfo.java
0 → 100644
... | ... | @@ -0,0 +1,67 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/13 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.pojo; | |
18 | + | |
19 | +import com.alibaba.fastjson.annotation.JSONField; | |
20 | + | |
21 | +/** | |
22 | + * description | |
23 | + * | |
24 | + * @author dW5565 | |
25 | + */ | |
26 | +public class PersonImageInfo { | |
27 | + @JSONField(name = "FaceID", ordinal = 1) | |
28 | + private Long faceID; | |
29 | + @JSONField(name = "Name", ordinal = 2) | |
30 | + private String name; | |
31 | + @JSONField(name = "Size", ordinal = 3) | |
32 | + private Integer size; | |
33 | + @JSONField(name = "Data", ordinal = 4) | |
34 | + private String data; | |
35 | + | |
36 | + public Long getFaceID() { | |
37 | + return faceID; | |
38 | + } | |
39 | + | |
40 | + public void setFaceID(Long faceID) { | |
41 | + this.faceID = faceID; | |
42 | + } | |
43 | + | |
44 | + public String getName() { | |
45 | + return name; | |
46 | + } | |
47 | + | |
48 | + public void setName(String name) { | |
49 | + this.name = name; | |
50 | + } | |
51 | + | |
52 | + public Integer getSize() { | |
53 | + return size; | |
54 | + } | |
55 | + | |
56 | + public void setSize(Integer size) { | |
57 | + this.size = size; | |
58 | + } | |
59 | + | |
60 | + public String getData() { | |
61 | + return data; | |
62 | + } | |
63 | + | |
64 | + public void setData(String data) { | |
65 | + this.data = data; | |
66 | + } | |
67 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/pojo/PersonInfo.java
0 → 100644
... | ... | @@ -0,0 +1,120 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/13 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.pojo; | |
18 | + | |
19 | +import com.alibaba.fastjson.annotation.JSONField; | |
20 | + | |
21 | +import java.util.List; | |
22 | + | |
23 | +/** | |
24 | + * description | |
25 | + * | |
26 | + * @author dW5565 | |
27 | + */ | |
28 | +public class PersonInfo { | |
29 | + | |
30 | + @JSONField(name = "PersonID", ordinal = 1) | |
31 | + private Long personID; | |
32 | + @JSONField(name = "LastChange", ordinal = 2) | |
33 | + private Long lastChange; | |
34 | + @JSONField(name = "PersonName", ordinal = 3) | |
35 | + private String personName; | |
36 | + @JSONField(name = "Gender", ordinal = 4) | |
37 | + private Integer gender; | |
38 | + @JSONField(name = "TimeTemplate", ordinal = 5) | |
39 | + private PersonTimeTemplateInfo timeTemplate; | |
40 | + @JSONField(name = "IdentificationNum", ordinal = 6) | |
41 | + private Integer identificationNum; | |
42 | + @JSONField(name = "IdentificationList", ordinal = 7) | |
43 | + private List<IdentificationInfo> identificationList; | |
44 | + @JSONField(name = "ImageNum", ordinal = 8) | |
45 | + private Integer imageNum; | |
46 | + @JSONField(name = "ImageList", ordinal = 9) | |
47 | + private List<PersonImageInfo> imageList; | |
48 | + | |
49 | + public Long getPersonID() { | |
50 | + return personID; | |
51 | + } | |
52 | + | |
53 | + public void setPersonID(Long personID) { | |
54 | + this.personID = personID; | |
55 | + } | |
56 | + | |
57 | + public Long getLastChange() { | |
58 | + return lastChange; | |
59 | + } | |
60 | + | |
61 | + public void setLastChange(Long lastChange) { | |
62 | + this.lastChange = lastChange; | |
63 | + } | |
64 | + | |
65 | + public String getPersonName() { | |
66 | + return personName; | |
67 | + } | |
68 | + | |
69 | + public void setPersonName(String personName) { | |
70 | + this.personName = personName; | |
71 | + } | |
72 | + | |
73 | + public Integer getGender() { | |
74 | + return gender; | |
75 | + } | |
76 | + | |
77 | + public void setGender(Integer gender) { | |
78 | + this.gender = gender; | |
79 | + } | |
80 | + | |
81 | + public PersonTimeTemplateInfo getTimeTemplate() { | |
82 | + return timeTemplate; | |
83 | + } | |
84 | + | |
85 | + public void setTimeTemplate(PersonTimeTemplateInfo timeTemplate) { | |
86 | + this.timeTemplate = timeTemplate; | |
87 | + } | |
88 | + | |
89 | + public Integer getIdentificationNum() { | |
90 | + return identificationNum; | |
91 | + } | |
92 | + | |
93 | + public void setIdentificationNum(Integer identificationNum) { | |
94 | + this.identificationNum = identificationNum; | |
95 | + } | |
96 | + | |
97 | + public List<IdentificationInfo> getIdentificationList() { | |
98 | + return identificationList; | |
99 | + } | |
100 | + | |
101 | + public void setIdentificationList(List<IdentificationInfo> identificationList) { | |
102 | + this.identificationList = identificationList; | |
103 | + } | |
104 | + | |
105 | + public Integer getImageNum() { | |
106 | + return imageNum; | |
107 | + } | |
108 | + | |
109 | + public void setImageNum(Integer imageNum) { | |
110 | + this.imageNum = imageNum; | |
111 | + } | |
112 | + | |
113 | + public List<PersonImageInfo> getImageList() { | |
114 | + return imageList; | |
115 | + } | |
116 | + | |
117 | + public void setImageList(List<PersonImageInfo> imageList) { | |
118 | + this.imageList = imageList; | |
119 | + } | |
120 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/pojo/PersonInfoList.java
0 → 100644
... | ... | @@ -0,0 +1,50 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/13 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.pojo; | |
18 | + | |
19 | +import com.alibaba.fastjson.annotation.JSONField; | |
20 | + | |
21 | +import java.util.List; | |
22 | + | |
23 | +/** | |
24 | + * description | |
25 | + * | |
26 | + * @author dW5565 | |
27 | + */ | |
28 | +public class PersonInfoList { | |
29 | + | |
30 | + @JSONField(name = "Num", ordinal = 1) | |
31 | + private Integer num; | |
32 | + @JSONField(name = "PersonInfoList", ordinal = 2) | |
33 | + private List<PersonInfo> personInfoList; | |
34 | + | |
35 | + public Integer getNum() { | |
36 | + return num; | |
37 | + } | |
38 | + | |
39 | + public void setNum(Integer num) { | |
40 | + this.num = num; | |
41 | + } | |
42 | + | |
43 | + public List<PersonInfo> getPersonInfoList() { | |
44 | + return personInfoList; | |
45 | + } | |
46 | + | |
47 | + public void setPersonInfoList(List<PersonInfo> personInfoList) { | |
48 | + this.personInfoList = personInfoList; | |
49 | + } | |
50 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/pojo/PersonTimeTemplateInfo.java
0 → 100644
... | ... | @@ -0,0 +1,61 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/13 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.pojo; | |
18 | + | |
19 | +import com.alibaba.fastjson.annotation.JSONField; | |
20 | + | |
21 | +/** | |
22 | + * description | |
23 | + * | |
24 | + * @author dW5565 | |
25 | + */ | |
26 | +public class PersonTimeTemplateInfo { | |
27 | + | |
28 | + | |
29 | + @JSONField(name = "BeginTime", ordinal = 1) | |
30 | + private Long beginTime; | |
31 | + | |
32 | + @JSONField(name = "EndTime", ordinal = 2) | |
33 | + private Long endTime; | |
34 | + | |
35 | + @JSONField(name = "Index", ordinal = 3) | |
36 | + private Integer index; | |
37 | + | |
38 | + public Long getBeginTime() { | |
39 | + return beginTime; | |
40 | + } | |
41 | + | |
42 | + public void setBeginTime(Long beginTime) { | |
43 | + this.beginTime = beginTime; | |
44 | + } | |
45 | + | |
46 | + public Long getEndTime() { | |
47 | + return endTime; | |
48 | + } | |
49 | + | |
50 | + public void setEndTime(Long endTime) { | |
51 | + this.endTime = endTime; | |
52 | + } | |
53 | + | |
54 | + public Integer getIndex() { | |
55 | + return index; | |
56 | + } | |
57 | + | |
58 | + public void setIndex(Integer index) { | |
59 | + this.index = index; | |
60 | + } | |
61 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/server/ServerRun.java
0 → 100644
... | ... | @@ -0,0 +1,35 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/7 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.server; | |
18 | + | |
19 | +import com.sincere.lapi.server.thread.ServerThread; | |
20 | + | |
21 | +/** | |
22 | + * description | |
23 | + * | |
24 | + * @author dW5565 | |
25 | + */ | |
26 | +public class ServerRun { | |
27 | + public void start(int port){ | |
28 | + try { | |
29 | + Thread runthread = new Thread(new ServerThread(port),"LapiServer"); | |
30 | + runthread.start(); | |
31 | + } catch (Exception e) { | |
32 | + System.out.println("Fail to create loop for:" + e); | |
33 | + } | |
34 | + } | |
35 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/server/UrlParam.java
0 → 100644
... | ... | @@ -0,0 +1,12 @@ |
1 | +package com.sincere.lapi.server; | |
2 | + | |
3 | +public class UrlParam { | |
4 | + | |
5 | + //远程开门 | |
6 | + public static String remote_open = "/LAPI/V1.0/PACS/Controller/RemoteOpened" ; | |
7 | + //默认员工库 添加员工 默认员工库id=3 | |
8 | + public static String person_add = "/LAPI/V1.0/PeopleLibraries/3/People" ; | |
9 | + //设备在线 | |
10 | + public static String keep_alive = "/LAPI/V1.0/System/KeepAlive" ; | |
11 | + | |
12 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/server/handler/HttpClientHandler.java
0 → 100644
... | ... | @@ -0,0 +1,107 @@ |
1 | +package com.sincere.lapi.server.handler; | |
2 | + | |
3 | +import com.alibaba.fastjson.JSONObject; | |
4 | +import com.sincere.common.util.DateUtils; | |
5 | +import com.sincere.lapi.Utils.SpringContextHolder; | |
6 | +import com.sincere.lapi.pojo.HeartInfo; | |
7 | +import com.sincere.lapi.pojo.LAPI; | |
8 | +import com.sincere.lapi.pojo.LAPIResponse; | |
9 | +import com.sincere.lapi.server.UrlParam; | |
10 | +import com.sincere.lapi.server.pojo.HeartBack; | |
11 | +import com.sincere.lapi.service.request.AttendanceService; | |
12 | +import com.sincere.lapi.service.request.TerminalHttpCall; | |
13 | +import io.netty.buffer.ByteBuf; | |
14 | +import io.netty.channel.Channel; | |
15 | +import io.netty.channel.ChannelHandlerContext; | |
16 | +import io.netty.channel.ChannelInboundHandlerAdapter; | |
17 | +import io.netty.handler.codec.http.*; | |
18 | +import io.netty.util.CharsetUtil; | |
19 | +import org.apache.commons.lang3.StringUtils; | |
20 | +import org.slf4j.Logger; | |
21 | +import org.slf4j.LoggerFactory; | |
22 | + | |
23 | +import java.text.SimpleDateFormat; | |
24 | +import java.util.Date; | |
25 | + | |
26 | +import static io.netty.buffer.Unpooled.copiedBuffer; | |
27 | + | |
28 | +/** | |
29 | + * description | |
30 | + * | |
31 | + * @author dW5565 | |
32 | + */ | |
33 | +public class HttpClientHandler extends ChannelInboundHandlerAdapter { | |
34 | + | |
35 | + Logger logger = LoggerFactory.getLogger(HttpClientHandler.class); | |
36 | + | |
37 | + @Override | |
38 | + public void channelRead(ChannelHandlerContext ctx, Object msg) | |
39 | + throws Exception { | |
40 | + TerminalHttpCall call = SpringContextHolder.getTerminalHttpCall(); | |
41 | + AttendanceService attendanceService = SpringContextHolder.getAttendanceService(); | |
42 | + String content = (String) msg; | |
43 | + logger.info(content); | |
44 | + if (content.contains("/LAPI/V1.0/PACS/Controller/HeartReportInfo")) { | |
45 | + HeartInfo heartInfo = JSONObject.parseObject(getJson(content),HeartInfo.class); | |
46 | + call.addChannel(heartInfo.getDeviceCode(),ctx); | |
47 | + attendanceService.addAttendance(heartInfo.getDeviceCode()); | |
48 | + } | |
49 | + // 记录推送 | |
50 | + if (content.contains("/LAPI/V1.0/System/Event/Notification/PersonVerification")) { | |
51 | + String faceInfo = content.substring(content.indexOf("FaceInfoList")); | |
52 | + String timeInfo = faceInfo.substring(faceInfo.indexOf("Timestamp")); | |
53 | + String time = timeInfo.substring(11,timeInfo.indexOf(",")).trim(); | |
54 | + String deviceString = content.substring(content.indexOf("DeviceCode")); | |
55 | + String deviceCode = deviceString.substring(15,deviceString.indexOf(",")); | |
56 | + deviceCode = deviceCode.substring(0,deviceCode.length()-1); | |
57 | + call.setDeviceTime(deviceCode,time); | |
58 | + }else if (StringUtils.contains(content, "Response")) { | |
59 | + LAPIResponse lapiResponse = JSONObject.parseObject(content, LAPI.class).getResponse(); | |
60 | + if(lapiResponse.getResponseUrl().equals(UrlParam.person_add)){ | |
61 | + //人脸添加 | |
62 | + call.putResponse(call.getDeviceCodeByChannel(ctx),lapiResponse); | |
63 | + } | |
64 | + }else if(content.contains("MatchPersonID")){ | |
65 | + String personIdString = content.substring(content.indexOf("MatchPersonID")); | |
66 | + String personId = personIdString.substring(15,personIdString.indexOf(",")).trim(); | |
67 | + String deviceCode = call.getDeviceCodeByChannel(ctx); | |
68 | + String time = call.getDeviceTime(deviceCode); | |
69 | + attendanceService.insertRecode(personId,deviceCode,time); | |
70 | + } | |
71 | + ctx.flush(); | |
72 | + } | |
73 | + | |
74 | + public String getJson(String context){ | |
75 | + String msg = context.substring(context.indexOf("{"),context.indexOf("}")+1); | |
76 | + return msg ; | |
77 | + } | |
78 | + | |
79 | + //心跳回包 | |
80 | + @Override | |
81 | + public void channelActive(ChannelHandlerContext ctx) throws Exception { | |
82 | + super.channelActive(ctx); | |
83 | + HeartBack heartBack =new HeartBack(); | |
84 | + heartBack.setCode(0); | |
85 | + heartBack.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(System.currentTimeMillis()))); | |
86 | + ByteBuf myContent = copiedBuffer(heartBack.toString(), CharsetUtil.UTF_8); | |
87 | + FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, myContent); | |
88 | + | |
89 | + response.headers().set(HttpHeaderNames.CONTENT_LENGTH, heartBack.toString().length()); | |
90 | + response.headers().set(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.TEXT_PLAIN); | |
91 | + //开启长连接 | |
92 | + response.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.CLOSE); | |
93 | + response.headers().set("X-Frame-Options", "SAMEORIGIN"); | |
94 | + | |
95 | + //ChannelFuture future = ctx.writeAndFlush(response); | |
96 | + // System.out.println(future.isSuccess()); | |
97 | + } | |
98 | + | |
99 | + @Override | |
100 | + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { | |
101 | + //super.exceptionCaught(ctx, cause); | |
102 | + Channel incoming = ctx.channel(); | |
103 | + System.out.println("SimpleChatClient:" + incoming.remoteAddress()+"异常 : "+ cause); | |
104 | + //异常出现就关闭连接 | |
105 | + if(incoming.isActive())ctx.close(); | |
106 | + } | |
107 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/server/init/LapiServerInitializer.java
0 → 100644
... | ... | @@ -0,0 +1,50 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/8 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.server.init; | |
18 | + | |
19 | +import com.sincere.lapi.server.handler.HttpClientHandler; | |
20 | +import io.netty.channel.ChannelInitializer; | |
21 | +import io.netty.channel.ChannelPipeline; | |
22 | +import io.netty.channel.socket.SocketChannel; | |
23 | +import io.netty.handler.codec.rtsp.RtspEncoder; | |
24 | +import io.netty.handler.codec.string.StringDecoder; | |
25 | +import io.netty.handler.timeout.ReadTimeoutHandler; | |
26 | + | |
27 | + | |
28 | + | |
29 | +/** | |
30 | + * description | |
31 | + * | |
32 | + * @author dW5565 | |
33 | + */ | |
34 | +public class LapiServerInitializer extends ChannelInitializer<SocketChannel> { | |
35 | + | |
36 | + @Override | |
37 | + protected void initChannel(SocketChannel ch) throws Exception { | |
38 | + ChannelPipeline pipeline = ch.pipeline(); | |
39 | + | |
40 | + pipeline.addLast(new StringDecoder()); | |
41 | +// pipeline.addLast(new HttpRequestEncoder()); | |
42 | + //pipeline.addLast(new HttpResponseEncoder()); | |
43 | + //可以进行请求、响应编码 | |
44 | + pipeline.addLast(new RtspEncoder()); | |
45 | + //保活超时时间 | |
46 | + pipeline.addLast(new ReadTimeoutHandler(600)); | |
47 | + //处理 | |
48 | + pipeline.addLast(new HttpClientHandler()); | |
49 | + } | |
50 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/server/init/NettyFactory.java
0 → 100644
... | ... | @@ -0,0 +1,68 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/8 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.server.init; | |
18 | + | |
19 | +import io.netty.bootstrap.ServerBootstrap; | |
20 | +import io.netty.channel.ChannelFuture; | |
21 | +import io.netty.channel.ChannelOption; | |
22 | +import io.netty.channel.EventLoopGroup; | |
23 | +import io.netty.channel.nio.NioEventLoopGroup; | |
24 | +import io.netty.channel.socket.nio.NioServerSocketChannel; | |
25 | + | |
26 | +/** | |
27 | + * description | |
28 | + * | |
29 | + * @author dW5565 | |
30 | + */ | |
31 | +public class NettyFactory { | |
32 | + | |
33 | + public void createNetty(int port) { | |
34 | + //Group:群组,Loop:循环,Event:事件,这几个东西联在一起,相比大家也大概明白它的用途了。 | |
35 | + //Netty内部都是通过线程在处理各种数据,EventLoopGroup就是用来管理调度他们的,注册Channel,管理他们的生命周期。 | |
36 | + //NioEventLoopGroup是一个处理I/O操作的多线程事件循环 | |
37 | + //bossGroup作为boss,接收传入连接 | |
38 | + //因为bossGroup仅接收客户端连接,不做复杂的逻辑处理,为了尽可能减少资源的占用,取值越小越好 | |
39 | + EventLoopGroup bossGroup = new NioEventLoopGroup(1); | |
40 | + //workerGroup作为worker,处理boss接收的连接的流量和将接收的连接注册进入这个worker | |
41 | + EventLoopGroup workerGroup = new NioEventLoopGroup(); | |
42 | + try { | |
43 | + ServerBootstrap b = new ServerBootstrap(); | |
44 | + b.group(bossGroup, workerGroup); | |
45 | + b.channel(NioServerSocketChannel.class); | |
46 | + //服务初始化通道处理 | |
47 | + b.childHandler(new LapiServerInitializer()); | |
48 | + //等待处理的队列大小 | |
49 | + b.option(ChannelOption.SO_BACKLOG, 128); | |
50 | + // b.option(ChannelOption.SO_RCVBUF,1024*1024*10); | |
51 | + //是否启用心跳保活机制。在双方TCP套接字建立连接后(即都进入ESTABLISHED状态)并且在两个小时左右上层没有任何数据传输的情况下,这套机制才会被激活。 | |
52 | + //childOption是用来给父级ServerChannel之下的Channels设置参数的 | |
53 | + b.childOption(ChannelOption.SO_KEEPALIVE, true); | |
54 | + // 绑定端口 | |
55 | + ChannelFuture f = b.bind(port).sync(); | |
56 | + //sync()会同步等待连接操作结果,用户线程将在此wait(),直到连接操作完成之后,线程被notify(),用户代码继续执行 | |
57 | + //closeFuture()当Channel关闭时返回一个ChannelFuture,用于链路检测 | |
58 | + f.channel().closeFuture().sync(); | |
59 | + } catch (Exception e) { | |
60 | + System.out.println(e); | |
61 | + } finally { | |
62 | + //资源优雅释放 | |
63 | + bossGroup.shutdownGracefully(); | |
64 | + workerGroup.shutdownGracefully(); | |
65 | + } | |
66 | + } | |
67 | + | |
68 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/server/pojo/HeartBack.java
0 → 100644
... | ... | @@ -0,0 +1,82 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/9 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.server.pojo; | |
18 | + | |
19 | +import com.alibaba.fastjson.annotation.JSONField; | |
20 | + | |
21 | +/** | |
22 | + * 本用例未做心跳回包,请自行回包 | |
23 | + * | |
24 | + * @author dW5565 | |
25 | + */ | |
26 | +public class HeartBack { | |
27 | + | |
28 | + @JSONField(name = "ResponseURL", ordinal = 1) | |
29 | + private String responseURL; | |
30 | + @JSONField(name = "Code", ordinal = 1) | |
31 | + private int code = 0; | |
32 | + @JSONField(name = "Data", ordinal = 1) | |
33 | + private String time; | |
34 | + | |
35 | + //private class Data{ | |
36 | + // @JSONField(name = "Time", ordinal = 1) | |
37 | + //private String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(System.currentTimeMillis())); | |
38 | + | |
39 | + public String getTime() { | |
40 | + return time; | |
41 | + } | |
42 | + | |
43 | + public void setTime(String time) { | |
44 | + this.time = time; | |
45 | + } | |
46 | + //} | |
47 | + | |
48 | + public String getResponseURL() { | |
49 | + return responseURL; | |
50 | + } | |
51 | + | |
52 | + public void setResponseURL(String responseURL) { | |
53 | + this.responseURL = responseURL; | |
54 | + } | |
55 | + | |
56 | + public int getCode() { | |
57 | + return code; | |
58 | + } | |
59 | + | |
60 | + public void setCode(int code) { | |
61 | + this.code = code; | |
62 | + } | |
63 | + | |
64 | + //public Data getData() { | |
65 | + //return data; | |
66 | + //} | |
67 | + | |
68 | + //public void setData(Data data) { | |
69 | + //this.data = data; | |
70 | + //} | |
71 | + | |
72 | + @Override | |
73 | + public String toString() { | |
74 | + return "{\n" + | |
75 | + "\"ResponseURL\": \"/LAPI/V1.0/PACS/Controller/HeartReportInfo\", \n" + | |
76 | + "\"Code\": 0, \n" + | |
77 | + "\"Data\": {\n" + | |
78 | + " \"Time\": \"" + time + "\"\n" + | |
79 | + "}\n" + | |
80 | + "}\n"; | |
81 | + } | |
82 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/server/thread/ServerThread.java
0 → 100644
... | ... | @@ -0,0 +1,39 @@ |
1 | +/* | |
2 | + * Copyright (c) 2018, ZheJiang Uniview Technologies Co., Ltd. All rights reserved. | |
3 | + * <http://www.uniview.com/> | |
4 | + *------------------------------------------------------------------------------ | |
5 | + * Product : 速通门 | |
6 | + * Module Name : com.unv.fastgate.server.service | |
7 | + * Date Created: 2019/5/7 | |
8 | + * Creator : dW5565 dongchenghao | |
9 | + * Description : | |
10 | + * | |
11 | + *------------------------------------------------------------------------------ | |
12 | + * Modification History | |
13 | + * DATE NAME DESCRIPTION | |
14 | + *------------------------------------------------------------------------------ | |
15 | + *------------------------------------------------------------------------------ | |
16 | + */ | |
17 | +package com.sincere.lapi.server.thread; | |
18 | + | |
19 | +import com.sincere.lapi.server.init.NettyFactory; | |
20 | + | |
21 | + | |
22 | +/** | |
23 | + * description | |
24 | + * | |
25 | + * @author dW5565 | |
26 | + */ | |
27 | +public class ServerThread implements Runnable { | |
28 | + private int port; | |
29 | + | |
30 | + public ServerThread(int port) { | |
31 | + this.port = port; | |
32 | + } | |
33 | + | |
34 | + @Override | |
35 | + public void run() { | |
36 | + NettyFactory nettyFactory = new NettyFactory(); | |
37 | + nettyFactory.createNetty(port); | |
38 | + } | |
39 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/service/request/AttendanceService.java
0 → 100644
... | ... | @@ -0,0 +1,52 @@ |
1 | +package com.sincere.lapi.service.request; | |
2 | + | |
3 | +import com.sincere.common.dto.smartCampus.SZ_AttendanceDto; | |
4 | +import com.sincere.common.dto.smartCampus.SzVSchoolStudent; | |
5 | +import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; | |
6 | +import com.sincere.common.dto.xiaoan.FaceRecoder; | |
7 | +import com.sincere.common.util.DateUtils; | |
8 | +import com.sincere.lapi.feign.ScFeign; | |
9 | +import com.sincere.lapi.feign.XaFeign; | |
10 | +import org.springframework.beans.factory.annotation.Autowired; | |
11 | +import org.springframework.stereotype.Service; | |
12 | + | |
13 | +@Service("attendanceService") | |
14 | +public class AttendanceService { | |
15 | + | |
16 | + @Autowired | |
17 | + ScFeign scFeign ; | |
18 | + | |
19 | + @Autowired | |
20 | + XaFeign xaFeign ; | |
21 | + | |
22 | + public void addAttendance(String clientId){ | |
23 | + SZ_AttendanceDto dto = new SZ_AttendanceDto(); | |
24 | + dto.setClint_id(clientId); | |
25 | + dto.setClint_type("25"); | |
26 | + scFeign.addAttendance(dto); | |
27 | + } | |
28 | + | |
29 | + | |
30 | + public void insertRecode(String customerId , String deviceCode , String time){ | |
31 | + SZ_AttendanceDto attendanceDto = scFeign.selectAttendaceWithId(deviceCode); | |
32 | + FaceRecoder faceRecoder = new FaceRecoder(); | |
33 | + faceRecoder.setDeviceid(deviceCode); | |
34 | + faceRecoder.setInorout(attendanceDto.getOutOrIn()); | |
35 | + faceRecoder.setTime(DateUtils.getByLong(time)); | |
36 | + SzVSchoolTeacher teacher = scFeign.selectByTeacherId(Integer.valueOf(customerId)); | |
37 | + if(teacher == null){ | |
38 | + SzVSchoolStudent student = scFeign.selectByStudentId(Integer.valueOf(customerId)); | |
39 | + faceRecoder.setName(student.getName()); | |
40 | + faceRecoder.setImgurl(student.getPhoto()); | |
41 | + faceRecoder.setUserId(customerId); | |
42 | + faceRecoder.setCardnum(student.getStudentNum()); | |
43 | + }else { | |
44 | + faceRecoder.setCardnum(teacher.getTeacherNum()); | |
45 | + faceRecoder.setUserId(customerId); | |
46 | + faceRecoder.setImgurl(teacher.getFace()); | |
47 | + faceRecoder.setName(teacher.getName()); | |
48 | + } | |
49 | + xaFeign.insertRecode(faceRecoder); | |
50 | + } | |
51 | + | |
52 | +} | ... | ... |
cloud/lapi/src/main/java/com/sincere/lapi/service/request/TerminalHttpCall.java
0 → 100644
... | ... | @@ -0,0 +1,152 @@ |
1 | +package com.sincere.lapi.service.request; | |
2 | + | |
3 | +import com.alibaba.fastjson.JSON; | |
4 | +import com.sincere.common.util.DateUtils; | |
5 | +import com.sincere.lapi.pojo.LAPIResponse; | |
6 | +import com.sincere.lapi.pojo.PersonInfoList; | |
7 | +import com.sincere.lapi.server.UrlParam; | |
8 | +import io.netty.buffer.Unpooled; | |
9 | +import io.netty.channel.ChannelHandlerContext; | |
10 | +import io.netty.handler.codec.http.*; | |
11 | +import org.springframework.stereotype.Component; | |
12 | + | |
13 | +import java.net.URI; | |
14 | +import java.util.Map; | |
15 | +import java.util.concurrent.ConcurrentHashMap; | |
16 | + | |
17 | +/** | |
18 | + * 终端http调用 | |
19 | + * | |
20 | + * @author dW5565 | |
21 | + */ | |
22 | +@Component("terminalHttpCall") | |
23 | +public class TerminalHttpCall { | |
24 | + | |
25 | + | |
26 | + //设备号 对应 通道 | |
27 | + private Map<String, ChannelHandlerContext> channelMap = new ConcurrentHashMap<String, ChannelHandlerContext>(); | |
28 | + | |
29 | + //通道 对应 设备 | |
30 | + private Map<ChannelHandlerContext , String> channelCodeMap = new ConcurrentHashMap<ChannelHandlerContext , String>(); | |
31 | + //key=deviceCode | |
32 | + private Map<String , LAPIResponse> responseMap = new ConcurrentHashMap<>(); | |
33 | + //设备刷脸时间 | |
34 | + private Map<String,String> device2TimeMap = new ConcurrentHashMap<>(); | |
35 | + | |
36 | + public void setDeviceTime(String deviceCode , String time){ | |
37 | + //给的是s 转ms | |
38 | + device2TimeMap.put(deviceCode,time+"000"); | |
39 | + } | |
40 | + | |
41 | + public String getDeviceTime(String deviceCode){ | |
42 | + String time = device2TimeMap.get(deviceCode); | |
43 | + device2TimeMap.remove(deviceCode); | |
44 | + return time ; | |
45 | + } | |
46 | + | |
47 | + | |
48 | + public void putResponse(String key , LAPIResponse lapiResponse){ | |
49 | + responseMap.put(key,lapiResponse); | |
50 | + } | |
51 | + | |
52 | + public LAPIResponse getResponse(String key){ | |
53 | + return responseMap.get(key); | |
54 | + } | |
55 | + | |
56 | + public void removeKey(String key){ | |
57 | + responseMap.remove(key); | |
58 | + } | |
59 | + | |
60 | + public void addChannel(String deviceCode , ChannelHandlerContext channelHandlerContext){ | |
61 | + channelMap.put(deviceCode, channelHandlerContext); | |
62 | + channelCodeMap.put(channelHandlerContext,deviceCode); | |
63 | + } | |
64 | + | |
65 | + public ChannelHandlerContext getChannel(String deviceCode) { | |
66 | + ChannelHandlerContext channelHandlerContext = channelMap.get(deviceCode); | |
67 | + if (channelHandlerContext.channel().isActive()) { | |
68 | + return channelHandlerContext; | |
69 | + } | |
70 | + return null; | |
71 | + } | |
72 | + | |
73 | + public String getDeviceCodeByChannel(ChannelHandlerContext channelHandlerContext){ | |
74 | + return channelCodeMap.get(channelHandlerContext); | |
75 | + } | |
76 | + | |
77 | + public boolean addPerson(String deviceCode , PersonInfoList personInfoList){ | |
78 | + return add(deviceCode, UrlParam.person_add,personInfoList); | |
79 | + } | |
80 | + | |
81 | + public boolean keepAlive(String deviceCode){ | |
82 | + return get(deviceCode,UrlParam.keep_alive); | |
83 | + } | |
84 | + | |
85 | + | |
86 | + private <E> boolean put(String deviceCode , String prefixUrl) { | |
87 | + try { | |
88 | + URI url = new URI(prefixUrl); | |
89 | + //配置HttpRequest的请求数据和一些配置信息 | |
90 | + FullHttpRequest request = new DefaultFullHttpRequest( | |
91 | + HttpVersion.HTTP_1_1, HttpMethod.PUT, url.toASCIIString()); | |
92 | + request.headers() | |
93 | + .set(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON) | |
94 | + .set(HttpHeaderNames.CONNECTION, HttpHeaderValues.KEEP_ALIVE); | |
95 | + ChannelHandlerContext ctx = this.getChannel(deviceCode); | |
96 | + if(ctx == null){ | |
97 | + return false; | |
98 | + } | |
99 | + ctx.writeAndFlush(request); | |
100 | + }catch (Exception e){ | |
101 | + System.out.println( e); | |
102 | + return false; | |
103 | + } | |
104 | + return true; | |
105 | + } | |
106 | + | |
107 | + private boolean get(String deviceCode , String prefixUrl) { | |
108 | + try { | |
109 | + URI url = new URI(prefixUrl); | |
110 | + //配置HttpRequest的请求数据和一些配置信息 | |
111 | + FullHttpRequest request = new DefaultFullHttpRequest( | |
112 | + HttpVersion.HTTP_1_1, HttpMethod.GET, url.toASCIIString()); | |
113 | + request.headers() | |
114 | + .set(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON) | |
115 | + .set(HttpHeaderNames.CONNECTION, HttpHeaderValues.KEEP_ALIVE); | |
116 | + ChannelHandlerContext ctx = this.getChannel(deviceCode); | |
117 | + if(ctx == null){ | |
118 | + return false; | |
119 | + } | |
120 | + ctx.writeAndFlush(request); | |
121 | + }catch (Exception e){ | |
122 | + System.out.println( e); | |
123 | + return false; | |
124 | + } | |
125 | + return true; | |
126 | + } | |
127 | + | |
128 | + private <E> boolean add(String deviceCode , String prefixUrl , E e) { | |
129 | + try { | |
130 | + URI url = new URI(prefixUrl); | |
131 | + //配置HttpRequest的请求数据和一些配置信息 | |
132 | + FullHttpRequest request = new DefaultFullHttpRequest( | |
133 | + HttpVersion.HTTP_1_1, HttpMethod.POST, url.toASCIIString(), Unpooled.wrappedBuffer(JSON.toJSONString(e).getBytes("UTF-8"))); | |
134 | + request.headers() | |
135 | + .set(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON) | |
136 | + //开启长连接 | |
137 | + .set(HttpHeaderNames.CONNECTION, HttpHeaderValues.KEEP_ALIVE) | |
138 | + //设置传递请求内容的长度 | |
139 | + .set(HttpHeaderNames.CONTENT_LENGTH, request.content().readableBytes()); | |
140 | + ChannelHandlerContext ctx = this.getChannel(deviceCode); | |
141 | + if(ctx == null){ | |
142 | + return false; | |
143 | + } | |
144 | + ctx.writeAndFlush(request); | |
145 | + return true; | |
146 | + }catch (Exception exc){ | |
147 | + System.out.println(exc); | |
148 | + } | |
149 | + return false; | |
150 | + } | |
151 | + | |
152 | +} | ... | ... |
... | ... | @@ -0,0 +1,19 @@ |
1 | +server: | |
2 | + port: 9006 | |
3 | +spring: | |
4 | + application: | |
5 | + name: bo_guan_server | |
6 | +ribbon: | |
7 | + ReadTimeout: 50000 | |
8 | + ConnectTimeout: 5000 | |
9 | +eureka: | |
10 | + client: | |
11 | + serviceUrl: | |
12 | + defaultZone: http://127.0.0.1:8761/eureka/,http://127.0.0.1:8762/eureka/ | |
13 | + registry-fetch-interval-seconds: 5 | |
14 | + instance-info-replication-interval-seconds: 10 | |
15 | + instance: | |
16 | + instance-id: ${spring.application.name} | |
17 | + lease-renewal-interval-in-seconds: 10 #每隔几秒告诉eureka服务器我还存活,用于心跳检测 | |
18 | + lease-expiration-duration-in-seconds: 10 #如果心跳检测一直没有发送,10秒后会从eureka服务器中将此服务剔除 | |
19 | + hostname: 127.0.0.1 | |
0 | 20 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,95 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<configuration debug="true"> | |
3 | + <!-- 项目名称 --> | |
4 | + | |
5 | + <property name="PROJECT_NAME" value="bo_guan"/> | |
6 | + | |
7 | + <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> | |
8 | + <property name="LOG_HOME" value="C://log"/> | |
9 | + | |
10 | + <!-- 控制台输出 --> | |
11 | + | |
12 | + <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> | |
13 | + <!--<withJansi>true</withJansi>--> | |
14 | + | |
15 | + <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | |
16 | + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> | |
17 | + | |
18 | + <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)</pattern> | |
19 | + | |
20 | + <charset>UTF-8</charset> | |
21 | + | |
22 | + </encoder> | |
23 | + | |
24 | + </appender> | |
25 | + | |
26 | + <!-- 按照每天生成日志文件 --> | |
27 | + | |
28 | + <appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | |
29 | + <!-- 过滤器,只打印ERROR级别的日志 --> | |
30 | + | |
31 | + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> | |
32 | + <!--日志文件输出的文件名--> | |
33 | + | |
34 | + <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}/%d{yyyy-MM-dd}.%i.log</FileNamePattern> | |
35 | + <!--日志文件保留天数--> | |
36 | + | |
37 | + <MaxHistory>30</MaxHistory> | |
38 | + <!--日志文件最大的大小--> | |
39 | + | |
40 | + <MaxFileSize>100MB</MaxFileSize> | |
41 | + | |
42 | + </rollingPolicy> | |
43 | + | |
44 | + | |
45 | + <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> | |
46 | + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> | |
47 | + | |
48 | + <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern> | |
49 | + | |
50 | + <charset>UTF-8</charset> | |
51 | + | |
52 | + </encoder> | |
53 | + | |
54 | + </appender> | |
55 | + | |
56 | + <logger name="system_error" additivity="true"> | |
57 | + | |
58 | + <appender-ref ref="SYSTEM_FILE"/> | |
59 | + | |
60 | + </logger> | |
61 | + | |
62 | + <!-- 设置Spring&Hibernate日志输出级别 --> | |
63 | + | |
64 | + <logger name="org.springframework" level="WARN"/> | |
65 | + | |
66 | + <logger name="org.mybatis" level="WARN"/> | |
67 | + | |
68 | + <logger name="com.ibatis" level="DEBUG"/> | |
69 | + | |
70 | + <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG"/> | |
71 | + | |
72 | + <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG"/> | |
73 | + | |
74 | + <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG"/> | |
75 | + | |
76 | + | |
77 | + | |
78 | + <logger name="java.sql.Connection" level="DEBUG"/> | |
79 | + | |
80 | + <logger name="java.sql.Statement" level="DEBUG"/> | |
81 | + | |
82 | + <logger name="java.sql.PreparedStatement" level="DEBUG"/> | |
83 | + | |
84 | + <logger name="com.sincere.smartSearch.mapper" level="DEBUG"/> | |
85 | + <!-- 开发环境下的日志配置 --> | |
86 | + | |
87 | + <root level="INFO"> | |
88 | + | |
89 | + <appender-ref ref="CONSOLE"/> | |
90 | + | |
91 | + <appender-ref ref="SYSTEM_FILE"/> | |
92 | + | |
93 | + </root> | |
94 | + | |
95 | +</configuration> | ... | ... |
cloud/quartz/src/main/java/com/sincere/quartz/Test.java
... | ... | @@ -1,23 +0,0 @@ |
1 | -package com.sincere.quartz; | |
2 | - | |
3 | -import com.alibaba.fastjson.JSONObject; | |
4 | -import com.netflix.ribbon.proxy.annotation.Http; | |
5 | -import com.sincere.common.util.HttpClientUtils; | |
6 | - | |
7 | -public class Test { | |
8 | - | |
9 | - public static void main(String[] args){ | |
10 | - for(int i = 1 ; i < 5000 ; i++){ | |
11 | - | |
12 | - String infoUrl = "https://static-data.eol.cn/www/2.0/school/"+i+"/info.json" ; | |
13 | - String gradePointUrl = "https://api.eol.cn/gkcx/api/?access_token=&local_province_id=33&local_type_id=3&page=1&school_id="+i+"&signsafe=&size=10&uri=apidata/api/gk/score/province&year=" ; | |
14 | - String prefessionUrl = "https://static-data.eol.cn/www/2.0/school/"+i+"/pc_special.json" ; | |
15 | - | |
16 | - JSONObject infoResult = HttpClientUtils.httpGet(infoUrl) ; | |
17 | - JSONObject gradePointResult = HttpClientUtils.httpGet(gradePointUrl); | |
18 | - JSONObject prefessionResult = HttpClientUtils.httpGet(prefessionUrl); | |
19 | - | |
20 | - System.out.println(1); | |
21 | - } | |
22 | - } | |
23 | -} |
cloud/quartz/src/main/java/com/sincere/quartz/job/SyncJob.java
cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYReadService.java
... | ... | @@ -9,6 +9,7 @@ import com.sincere.quartz.model.YxyAgency; |
9 | 9 | import com.sincere.quartz.model.YxyStudent; |
10 | 10 | import com.sincere.quartz.model.YxyTeacher; |
11 | 11 | import com.sincere.quartz.service.YxyService; |
12 | +import com.sincere.quartz.utils.ThreadUtils; | |
12 | 13 | import org.apache.commons.lang3.StringUtils; |
13 | 14 | import org.slf4j.Logger; |
14 | 15 | import org.slf4j.LoggerFactory; |
... | ... | @@ -20,6 +21,8 @@ import java.security.MessageDigest; |
20 | 21 | import java.util.ArrayList; |
21 | 22 | import java.util.Date; |
22 | 23 | import java.util.List; |
24 | +import java.util.concurrent.ExecutorService; | |
25 | +import java.util.concurrent.TimeUnit; | |
23 | 26 | |
24 | 27 | @Service |
25 | 28 | public class YXYReadService { |
... | ... | @@ -46,6 +49,10 @@ public class YXYReadService { |
46 | 49 | private Logger logger = LoggerFactory.getLogger(YXYReadService.class); |
47 | 50 | |
48 | 51 | public void sync(){ |
52 | + ExecutorService pool = ThreadUtils.newFixedThreadPool(8); | |
53 | + yxyService.updateAgency(); | |
54 | + yxyService.updateStudent(); | |
55 | + yxyService.updateTeacher(); | |
49 | 56 | List<String> areaCodeList = new ArrayList<>(); |
50 | 57 | areaCodeList.add("0571") ; |
51 | 58 | areaCodeList.add("0572") ; |
... | ... | @@ -56,11 +63,7 @@ public class YXYReadService { |
56 | 63 | areaCodeList.add("0577") ; |
57 | 64 | areaCodeList.add("0578") ; |
58 | 65 | areaCodeList.add("0579") ; |
59 | - areaCodeList.add("0580") ; | |
60 | - | |
61 | - yxyService.updateAgency(); | |
62 | - yxyService.updateStudent(); | |
63 | - yxyService.updateTeacher(); | |
66 | + List<String> schoolList = new ArrayList<>(); | |
64 | 67 | for(String areaCode : areaCodeList){ |
65 | 68 | try{ |
66 | 69 | // 先获取学校,部门,年级 班级 |
... | ... | @@ -74,34 +77,48 @@ public class YXYReadService { |
74 | 77 | String method = getALlDept_method; |
75 | 78 | JSONArray jsonArray = getMessage(wsdl, ns, method, list); |
76 | 79 | if(jsonArray != null){ |
77 | - List<String> schoolList = new ArrayList<>(); | |
80 | + logger.info("市编码:" + areaCode); | |
78 | 81 | for(int i = 0 ; i < jsonArray.size() ; i++){ |
79 | - logger.info("市编码:" + areaCode); | |
80 | 82 | JSONObject object = (JSONObject) jsonArray.get(i) ; |
81 | 83 | YxyAgency agency = new YxyAgency() ; |
82 | 84 | agency.setDeptId(object.get("deptID").toString()); |
83 | 85 | agency.setDeptName(object.get("deptName").toString()); |
84 | 86 | agency.setSuperDeptId(object.get("superDeptID").toString()); |
85 | 87 | if(areaCode.equals(object.get("superDeptID").toString())){ |
86 | - logger.info("学校:" + object.get("deptName").toString()); | |
88 | + logger.info("学校:" + object.get("deptName").toString() +";编码"+object.get("deptID").toString()); | |
87 | 89 | schoolList.add(object.get("deptID").toString()) ; |
88 | 90 | } |
89 | 91 | yxyService.insertAgency(agency); |
90 | 92 | } |
91 | - for(String schoolId : schoolList){ | |
92 | - syncTeacher(schoolId) ; | |
93 | - syncStudent(schoolId) ; | |
94 | - } | |
95 | 93 | } |
96 | 94 | }catch (Exception e){ |
97 | 95 | e.printStackTrace(); |
98 | 96 | } |
99 | - | |
97 | + } | |
98 | + for(String schoolId : schoolList){ | |
99 | + pool.execute(initSchool(schoolId)); | |
100 | + } | |
101 | + try { | |
102 | + boolean loop = true; | |
103 | + do { //等待所有任务完成 | |
104 | + loop = !pool.awaitTermination(2, TimeUnit.SECONDS); //阻塞,直到线程池里所有任务结束 | |
105 | + } while(loop); | |
106 | + } catch (InterruptedException e) { | |
107 | + e.printStackTrace(); | |
100 | 108 | } |
101 | 109 | } |
102 | 110 | |
103 | 111 | |
104 | - private void syncStudent(String schoolId){ | |
112 | + private Runnable initSchool(String schoolId){ | |
113 | + Runnable runnable = () -> { | |
114 | + syncStudent(schoolId); | |
115 | + syncTeacher(schoolId); | |
116 | + }; | |
117 | + return runnable ; | |
118 | + } | |
119 | + | |
120 | + | |
121 | + public void syncStudent(String schoolId){ | |
105 | 122 | List list = new ArrayList(); |
106 | 123 | list.add(SI); |
107 | 124 | list.add(getPassword(SI_CODE)); |
... | ... | @@ -110,21 +127,30 @@ public class YXYReadService { |
110 | 127 | String ns = nameSpace; |
111 | 128 | String method = getALlStudent_method; |
112 | 129 | JSONArray jsonArray = getMessage(wsdl, ns, method, list); |
113 | - logger.info("学校ID为:"+schoolId + "共有学生" + jsonArray.size() +"人"); | |
114 | - if(jsonArray != null){ | |
115 | - for(int i = 0 ; i < jsonArray.size() ; i++){ | |
116 | - JSONObject object = (JSONObject) jsonArray.get(i) ; | |
117 | - YxyStudent student = new YxyStudent(); | |
118 | - student.setClassId(object.get("classID").toString()); | |
119 | - student.setAccount(object.get("account").toString()); | |
120 | - student.setName(object.get("name").toString()); | |
121 | - student.setUserId(object.get("userID").toString()); | |
122 | - yxyService.insertStudent(student); | |
130 | + try{ | |
131 | + logger.info("学校ID为:"+schoolId + "共有学生" + jsonArray.size() +"人"); | |
132 | + if(jsonArray != null){ | |
133 | + for(int i = 0 ; i < jsonArray.size() ; i++){ | |
134 | + JSONObject object = (JSONObject) jsonArray.get(i) ; | |
135 | + YxyStudent student = new YxyStudent(); | |
136 | + try{ | |
137 | + student.setClassId(object.get("classID").toString()); | |
138 | + student.setAccount(object.get("account").toString()); | |
139 | + student.setName(object.get("name").toString()); | |
140 | + student.setUserId(object.get("userID").toString()); | |
141 | + }catch (Exception e){ | |
142 | + } | |
143 | + yxyService.insertStudent(student); | |
144 | + } | |
123 | 145 | } |
146 | + }catch (Exception e){ | |
147 | + logger.info(e.toString()); | |
148 | + logger.info("学校ID为:"+schoolId + "学生数据没返回"); | |
124 | 149 | } |
150 | + | |
125 | 151 | } |
126 | 152 | |
127 | - private void syncTeacher(String schoolId){ | |
153 | + public void syncTeacher(String schoolId){ | |
128 | 154 | List list = new ArrayList(); |
129 | 155 | list.add(SI); |
130 | 156 | list.add(getPassword(SI_CODE)); |
... | ... | @@ -133,32 +159,45 @@ public class YXYReadService { |
133 | 159 | String ns = nameSpace; |
134 | 160 | String method = getAllTeacher_method; |
135 | 161 | JSONArray jsonArray = getMessage(wsdl, ns, method, list); |
136 | - logger.info("学校ID为:"+schoolId + "共有老师" + jsonArray.size() +"人"); | |
137 | - if(jsonArray != null){ | |
138 | - for(int i = 0 ; i < jsonArray.size() ; i++){ | |
139 | - JSONObject object = (JSONObject) jsonArray.get(i) ; | |
140 | - YxyTeacher teacher = new YxyTeacher(); | |
141 | - teacher.setDeptId(object.get("classID").toString()); | |
142 | - teacher.setAccount(object.get("account").toString()); | |
143 | - teacher.setName(object.get("name").toString()); | |
144 | - teacher.setUserId(object.get("userID").toString()); | |
145 | - yxyService.insertTeacher(teacher); | |
162 | + try{ | |
163 | + logger.info("学校ID为:"+schoolId + "共有老师" + jsonArray.size() +"人"); | |
164 | + if(jsonArray != null){ | |
165 | + for(int i = 0 ; i < jsonArray.size() ; i++){ | |
166 | + JSONObject object = (JSONObject) jsonArray.get(i) ; | |
167 | + YxyTeacher teacher = new YxyTeacher(); | |
168 | + try { | |
169 | + teacher.setDeptId(object.get("classID").toString()); | |
170 | + teacher.setAccount(object.get("account").toString()); | |
171 | + teacher.setName(object.get("name").toString()); | |
172 | + teacher.setUserId(object.get("userID").toString()); | |
173 | + }catch (Exception e){ | |
174 | + } | |
175 | + yxyService.insertTeacher(teacher); | |
176 | + } | |
146 | 177 | } |
178 | + }catch (Exception e){ | |
179 | + logger.info(e.toString()); | |
180 | + logger.info("学校ID为:"+schoolId + "老师数据没返回"); | |
147 | 181 | } |
182 | + | |
148 | 183 | } |
149 | 184 | |
150 | 185 | private JSONArray getMessage(String wsdl, String ns, String method, List<String> list){ |
151 | 186 | String resultXml = HttpClientUtils.invoiceWebService(wsdl,ns,method,list); |
152 | - if(StringUtils.isNotBlank(resultXml)){ | |
153 | - resultXml = resultXml.replaceAll("<", "<"); | |
154 | - resultXml = resultXml.replaceAll(">", ">"); | |
155 | - int begin = resultXml.indexOf("<JXT"); | |
156 | - int end = resultXml.indexOf("</JXT"); | |
157 | - String str = resultXml.substring(begin, end+6); | |
158 | - JSONObject json = Xml2JsonUtils.xml2Json(str); | |
159 | - if(json != null){ | |
160 | - return (JSONArray)json.get("resultInfo") ; | |
187 | + try { | |
188 | + if (StringUtils.isNotBlank(resultXml)) { | |
189 | + resultXml = resultXml.replaceAll("<", "<"); | |
190 | + resultXml = resultXml.replaceAll(">", ">"); | |
191 | + int begin = resultXml.indexOf("<JXT"); | |
192 | + int end = resultXml.indexOf("</JXT"); | |
193 | + String str = resultXml.substring(begin, end + 6); | |
194 | + JSONObject json = Xml2JsonUtils.xml2Json(str); | |
195 | + if (json != null) { | |
196 | + return (JSONArray) json.get("resultInfo"); | |
197 | + } | |
161 | 198 | } |
199 | + }catch (Exception e){ | |
200 | + logger.info("获取信息报错"+e.getMessage()); | |
162 | 201 | } |
163 | 202 | return null ; |
164 | 203 | } | ... | ... |
cloud/quartz/src/main/java/com/sincere/quartz/utils/ThreadUtils.java
0 → 100644
... | ... | @@ -0,0 +1,19 @@ |
1 | +package com.sincere.quartz.utils; | |
2 | + | |
3 | +import com.google.common.util.concurrent.ThreadFactoryBuilder; | |
4 | + | |
5 | +import java.util.concurrent.ExecutorService; | |
6 | +import java.util.concurrent.LinkedBlockingQueue; | |
7 | +import java.util.concurrent.ThreadPoolExecutor; | |
8 | +import java.util.concurrent.TimeUnit; | |
9 | + | |
10 | +public class ThreadUtils { | |
11 | + public static ExecutorService newFixedThreadPool(int nThreads) { | |
12 | + ThreadPoolExecutor pool = new ThreadPoolExecutor(nThreads, 2*nThreads, | |
13 | + 0L, TimeUnit.MILLISECONDS, | |
14 | + new LinkedBlockingQueue<>(1024), | |
15 | + new ThreadFactoryBuilder().setNameFormat("pool-%d").build(), | |
16 | + new ThreadPoolExecutor.AbortPolicy()); | |
17 | + return pool ; | |
18 | + } | |
19 | +} | ... | ... |
cloud/search_smartCampus/pom.xml
... | ... | @@ -126,6 +126,15 @@ |
126 | 126 | <finalName>search_smartCampus</finalName> |
127 | 127 | <!--打包方式--> |
128 | 128 | <plugins> |
129 | + <plugin> | |
130 | + <groupId>org.mybatis.generator</groupId> | |
131 | + <artifactId>mybatis-generator-maven-plugin</artifactId> | |
132 | + <version>1.3.5</version> | |
133 | + <configuration> | |
134 | + <verbose>true</verbose> | |
135 | + <overwrite>true</overwrite> | |
136 | + </configuration> | |
137 | + </plugin> | |
129 | 138 | <!-- 设置编译版本 --> |
130 | 139 | <plugin> |
131 | 140 | <groupId>org.apache.maven.plugins</groupId> | ... | ... |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/AttendanceController.java
... | ... | @@ -6,7 +6,6 @@ import com.sincere.smartSearch.service.AttendacenService; |
6 | 6 | import com.sincere.smartSearch.service.DeviceService; |
7 | 7 | import io.swagger.annotations.Api; |
8 | 8 | import io.swagger.annotations.ApiOperation; |
9 | -import org.apache.ibatis.annotations.Param; | |
10 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
11 | 10 | import org.springframework.web.bind.annotation.*; |
12 | 11 | |
... | ... | @@ -24,6 +23,27 @@ public class AttendanceController { |
24 | 23 | @Autowired |
25 | 24 | DeviceService deviceService; |
26 | 25 | |
26 | + /** | |
27 | + * 没有就新增,有就更新在线时间 | |
28 | + * @param attendanceDto | |
29 | + */ | |
30 | + @RequestMapping(value = "addAttendance", method = RequestMethod.POST) | |
31 | + public void addAttendance(@RequestBody SZ_AttendanceDto attendanceDto){ | |
32 | + SZ_AttendanceDto attendance = attendacenService.selectDevice(attendanceDto.getClint_id()); | |
33 | + if(attendance != null){ | |
34 | + attendacenService.updateAttendance(attendance.getClint_id()); | |
35 | + }else { | |
36 | + attendanceDto.setState(1); | |
37 | + attendanceDto.setSchool_id("0"); | |
38 | + try { | |
39 | + attendanceDto.setIntime(DateUtils.getToday(DateUtils.format2)); | |
40 | + }catch (Exception e){ | |
41 | + | |
42 | + } | |
43 | + attendacenService.insertAttendance(attendanceDto); | |
44 | + } | |
45 | + } | |
46 | + | |
27 | 47 | @RequestMapping(method = RequestMethod.GET, value = "selectAttendaceWithId") |
28 | 48 | public SZ_AttendanceDto selectAttendaceWithId(@RequestParam("clint_id") String clint_id) { |
29 | 49 | return attendacenService.selectDevice(clint_id); | ... | ... |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/UserController.java
1 | 1 | package com.sincere.smartSearch.controller; |
2 | 2 | |
3 | +import com.sincere.common.dto.smartCampus.StudentBean; | |
4 | +import com.sincere.common.dto.smartCampus.SzVSchoolStudent; | |
5 | +import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; | |
3 | 6 | import com.sincere.smartSearch.service.UserService; |
4 | 7 | import org.springframework.beans.factory.annotation.Autowired; |
5 | 8 | import org.springframework.web.bind.annotation.RequestMapping; |
... | ... | @@ -7,6 +10,8 @@ import org.springframework.web.bind.annotation.RequestMethod; |
7 | 10 | import org.springframework.web.bind.annotation.RequestParam; |
8 | 11 | import org.springframework.web.bind.annotation.RestController; |
9 | 12 | |
13 | +import java.util.List; | |
14 | + | |
10 | 15 | /** |
11 | 16 | * @author chen |
12 | 17 | * @version 1.0 |
... | ... | @@ -27,15 +32,33 @@ public class UserController { |
27 | 32 | |
28 | 33 | |
29 | 34 | @RequestMapping(value = "getStudent_NumWitdCode",method = RequestMethod.GET) |
30 | - String getStudent_NumWitdCode(@RequestParam("studentcode") String studentcode){ | |
35 | + StudentBean getStudent_NumWitdCode(@RequestParam("studentcode") String studentcode){ | |
31 | 36 | return userService.getStudent_NumWitdCode(studentcode); |
32 | 37 | } |
33 | 38 | |
34 | 39 | |
35 | 40 | @RequestMapping(value = "getTeacherWithstudentcode",method = RequestMethod.GET) |
36 | - String getTeacherWithstudentcode(@RequestParam("num") String num,@RequestParam("schoolId") String schoolId){ | |
41 | + StudentBean getTeacherWithstudentcode(@RequestParam("num") String num,@RequestParam("schoolId") String schoolId){ | |
37 | 42 | return userService.getTeacherWithstudentcode(num,schoolId); |
38 | 43 | } |
39 | 44 | |
45 | + @RequestMapping(value = "selectTeacherBySchoolId",method = RequestMethod.GET) | |
46 | + List<SzVSchoolTeacher> selectTeacherBySchoolId(@RequestParam("schoolId") String schoolId){ | |
47 | + return userService.selectTeacherBySchool(Integer.valueOf(schoolId)); | |
48 | + } | |
49 | + | |
50 | + @RequestMapping(value = "selectStudentBySchoolId",method = RequestMethod.GET) | |
51 | + List<SzVSchoolStudent> selectStudentBySchoolId(@RequestParam("schoolId") String schoolId){ | |
52 | + return userService.selectStudentBySchool(Integer.valueOf(schoolId)); | |
53 | + } | |
40 | 54 | |
55 | + @RequestMapping(value = "selectByTeacherId",method = RequestMethod.GET) | |
56 | + SzVSchoolTeacher selectByTeacherId(@RequestParam("teacherId") int teacherId){ | |
57 | + return userService.selectByTeacherId(teacherId); | |
58 | + } | |
59 | + | |
60 | + @RequestMapping(value = "selectByStudentId",method = RequestMethod.GET) | |
61 | + SzVSchoolStudent selectByStudentId(@RequestParam("studentId") int studentId){ | |
62 | + return userService.selectByStudentId(studentId); | |
63 | + } | |
41 | 64 | } | ... | ... |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/SzVSchoolStudentMapper.java
0 → 100644
... | ... | @@ -0,0 +1,16 @@ |
1 | +package com.sincere.smartSearch.mapper; | |
2 | + | |
3 | +import com.sincere.common.dto.smartCampus.SzVSchoolStudent; | |
4 | + | |
5 | +import java.util.List; | |
6 | + | |
7 | +public interface SzVSchoolStudentMapper { | |
8 | + | |
9 | + List<SzVSchoolStudent> selectBySchool(int schoolId); | |
10 | + | |
11 | + SzVSchoolStudent selectByStudentId(int studentId); | |
12 | + | |
13 | + int insert(SzVSchoolStudent record); | |
14 | + | |
15 | + int insertSelective(SzVSchoolStudent record); | |
16 | +} | |
0 | 17 | \ No newline at end of file | ... | ... |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/SzVSchoolTeacherMapper.java
0 → 100644
... | ... | @@ -0,0 +1,16 @@ |
1 | +package com.sincere.smartSearch.mapper; | |
2 | + | |
3 | +import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; | |
4 | + | |
5 | +import java.util.List; | |
6 | + | |
7 | +public interface SzVSchoolTeacherMapper { | |
8 | + | |
9 | + List<SzVSchoolTeacher> selectBySchool(int schoolId); | |
10 | + | |
11 | + SzVSchoolTeacher selectByTeacherId(int teacherId); | |
12 | + | |
13 | + int insert(SzVSchoolTeacher record); | |
14 | + | |
15 | + int insertSelective(SzVSchoolTeacher record); | |
16 | +} | |
0 | 17 | \ No newline at end of file | ... | ... |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/UserMapper.java
1 | 1 | package com.sincere.smartSearch.mapper; |
2 | 2 | |
3 | +import com.sincere.common.dto.smartCampus.StudentBean; | |
4 | +import org.apache.ibatis.annotations.Param; | |
5 | +import org.apache.ibatis.annotations.Select; | |
6 | + | |
7 | +import java.util.List; | |
8 | + | |
3 | 9 | /** |
4 | 10 | * @author chen |
5 | 11 | * @version 1.0 |
... | ... | @@ -12,9 +18,10 @@ public interface UserMapper { |
12 | 18 | @Select("select Top(1)*\n" + |
13 | 19 | "from SZ_V_School_Teacher\n" + |
14 | 20 | "where num = #{num} and school_id = #{schoolId}") |
15 | - StudentBean getTeacherWithstudentcode(@Param("num") String num,@Param("schoolId")String schoolId); | |
21 | + StudentBean getTeacherWithstudentcode(@Param("num") String num, @Param("schoolId")String schoolId); | |
16 | 22 | |
17 | 23 | @Select("select Top(1) * from SZ_V_School_Student where studentcode = #{studentcode}") |
18 | 24 | StudentBean getStudent_NumWitdCode(@Param("studentcode") String studentcode); |
19 | 25 | |
26 | + | |
20 | 27 | } | ... | ... |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/StudentBean.java
... | ... | @@ -1,307 +0,0 @@ |
1 | -package com.sincere.haikangface.bean; | |
2 | - | |
3 | -import java.io.Serializable; | |
4 | -import java.util.Date; | |
5 | - | |
6 | -public class StudentBean implements Serializable { | |
7 | - | |
8 | - private String teacher_id; | |
9 | - | |
10 | - private String parent_id; | |
11 | - | |
12 | - private long ID; | |
13 | - | |
14 | - private String UserId; | |
15 | - | |
16 | - private String CustomerId; | |
17 | - | |
18 | - private int StudentType; | |
19 | - | |
20 | - private int UserType; | |
21 | - | |
22 | - private String name; | |
23 | - | |
24 | - private int ClassId; | |
25 | - | |
26 | - private String ClassName; | |
27 | - | |
28 | - private String OldCard; | |
29 | - | |
30 | - private String Card; | |
31 | - | |
32 | - private int SchoolId; | |
33 | - | |
34 | - private int school_id; | |
35 | - | |
36 | - private int IsNew; | |
37 | - | |
38 | - private int UpdateType; | |
39 | - | |
40 | - private Date AddTime; | |
41 | - | |
42 | - private int Sex; | |
43 | - | |
44 | - private String Face; | |
45 | - | |
46 | - private String studentcode; | |
47 | - | |
48 | - private String student_num; | |
49 | - | |
50 | - private String student_id; | |
51 | - | |
52 | - private String user_id; | |
53 | - | |
54 | - private String photo; | |
55 | - | |
56 | - private String teacher_num; | |
57 | - | |
58 | - private String num; | |
59 | - | |
60 | - public String getNum() { | |
61 | - return num; | |
62 | - } | |
63 | - | |
64 | - public void setNum(String num) { | |
65 | - this.num = num; | |
66 | - } | |
67 | - | |
68 | - public String getTeacher_num() { | |
69 | - return teacher_num; | |
70 | - } | |
71 | - | |
72 | - public void setTeacher_num(String teacher_num) { | |
73 | - this.teacher_num = teacher_num; | |
74 | - } | |
75 | - | |
76 | - public String getPhoto() { | |
77 | - return photo; | |
78 | - } | |
79 | - | |
80 | - public void setPhoto(String photo) { | |
81 | - this.photo = photo; | |
82 | - } | |
83 | - | |
84 | - public String getUser_id() { | |
85 | - return user_id; | |
86 | - } | |
87 | - | |
88 | - public void setUser_id(String user_id) { | |
89 | - this.user_id = user_id; | |
90 | - } | |
91 | - | |
92 | - public String getStudentcode() { | |
93 | - return studentcode; | |
94 | - } | |
95 | - | |
96 | - public void setStudentcode(String studentcode) { | |
97 | - this.studentcode = studentcode; | |
98 | - } | |
99 | - | |
100 | - public String getUserId() { | |
101 | - return UserId; | |
102 | - } | |
103 | - | |
104 | - public void setUserId(String userId) { | |
105 | - UserId = userId; | |
106 | - } | |
107 | - | |
108 | - public String getCustomerId() { | |
109 | - return CustomerId; | |
110 | - } | |
111 | - | |
112 | - public void setCustomerId(String customerId) { | |
113 | - CustomerId = customerId; | |
114 | - } | |
115 | - | |
116 | - public int getStudentType() { | |
117 | - return StudentType; | |
118 | - } | |
119 | - | |
120 | - public void setStudentType(int studentType) { | |
121 | - StudentType = studentType; | |
122 | - } | |
123 | - | |
124 | - public int getUserType() { | |
125 | - return UserType; | |
126 | - } | |
127 | - | |
128 | - public String getTeacher_id() { | |
129 | - return teacher_id; | |
130 | - } | |
131 | - | |
132 | - public String getParent_id() { | |
133 | - return parent_id; | |
134 | - } | |
135 | - | |
136 | - public void setParent_id(String parent_id) { | |
137 | - this.parent_id = parent_id; | |
138 | - } | |
139 | - | |
140 | - public void setTeacher_id(String teacher_id) { | |
141 | - this.teacher_id = teacher_id; | |
142 | - } | |
143 | - | |
144 | - public void setUserType(int userType) { | |
145 | - UserType = userType; | |
146 | - } | |
147 | - | |
148 | - public String getName() { | |
149 | - return name; | |
150 | - } | |
151 | - | |
152 | - public void setName(String name) { | |
153 | - this.name = name; | |
154 | - } | |
155 | - | |
156 | - public int getClassId() { | |
157 | - return ClassId; | |
158 | - } | |
159 | - | |
160 | - public void setClassId(int classId) { | |
161 | - ClassId = classId; | |
162 | - } | |
163 | - | |
164 | - public String getClassName() { | |
165 | - return ClassName; | |
166 | - } | |
167 | - | |
168 | - public void setClassName(String className) { | |
169 | - ClassName = className; | |
170 | - } | |
171 | - | |
172 | - public String getOldCard() { | |
173 | - return OldCard; | |
174 | - } | |
175 | - | |
176 | - public void setOldCard(String oldCard) { | |
177 | - OldCard = oldCard; | |
178 | - } | |
179 | - | |
180 | - public String getCard() { | |
181 | - return Card; | |
182 | - } | |
183 | - | |
184 | - public int getSchool_id() { | |
185 | - return school_id; | |
186 | - } | |
187 | - | |
188 | - public void setSchool_id(int school_id) { | |
189 | - this.school_id = school_id; | |
190 | - } | |
191 | - | |
192 | - public String getStudent_num() { | |
193 | - return student_num; | |
194 | - } | |
195 | - | |
196 | - public void setStudent_num(String student_num) { | |
197 | - this.student_num = student_num; | |
198 | - } | |
199 | - | |
200 | - public void setCard(String card) { | |
201 | - Card = card; | |
202 | - } | |
203 | - | |
204 | - public int getSchoolId() { | |
205 | - return SchoolId; | |
206 | - } | |
207 | - | |
208 | - public void setSchoolId(int schoolId) { | |
209 | - SchoolId = schoolId; | |
210 | - } | |
211 | - | |
212 | - public int getIsNew() { | |
213 | - return IsNew; | |
214 | - } | |
215 | - | |
216 | - public void setIsNew(int isNew) { | |
217 | - IsNew = isNew; | |
218 | - } | |
219 | - | |
220 | - public int getUpdateType() { | |
221 | - return UpdateType; | |
222 | - } | |
223 | - | |
224 | - public void setUpdateType(int updateType) { | |
225 | - UpdateType = updateType; | |
226 | - } | |
227 | - | |
228 | - public Date getAddTime() { | |
229 | - return AddTime; | |
230 | - } | |
231 | - | |
232 | - public void setAddTime(Date addTime) { | |
233 | - AddTime = addTime; | |
234 | - } | |
235 | - | |
236 | - public int getSex() { | |
237 | - return Sex; | |
238 | - } | |
239 | - | |
240 | - public void setSex(int sex) { | |
241 | - Sex = sex; | |
242 | - } | |
243 | - | |
244 | - public String getFace() { | |
245 | - return Face; | |
246 | - } | |
247 | - | |
248 | - public void setFace(String face) { | |
249 | - Face = face; | |
250 | - } | |
251 | - | |
252 | - public String getStudentCode() { | |
253 | - return studentcode; | |
254 | - } | |
255 | - | |
256 | - public void setStudentCode(String studentCode) { | |
257 | - this.studentcode = studentCode; | |
258 | - } | |
259 | - | |
260 | - public long getID() { | |
261 | - return ID; | |
262 | - } | |
263 | - | |
264 | - public void setID(long ID) { | |
265 | - this.ID = ID; | |
266 | - } | |
267 | - | |
268 | - public String getStudent_id() { | |
269 | - return student_id; | |
270 | - } | |
271 | - | |
272 | - public void setStudent_id(String student_id) { | |
273 | - this.student_id = student_id; | |
274 | - } | |
275 | - | |
276 | - @Override | |
277 | - public String toString() { | |
278 | - return "StudentBean{" + | |
279 | - "teacher_id='" + teacher_id + '\'' + | |
280 | - ", parent_id='" + parent_id + '\'' + | |
281 | - ", ID=" + ID + | |
282 | - ", UserId='" + UserId + '\'' + | |
283 | - ", CustomerId='" + CustomerId + '\'' + | |
284 | - ", StudentType=" + StudentType + | |
285 | - ", UserType=" + UserType + | |
286 | - ", name='" + name + '\'' + | |
287 | - ", ClassId=" + ClassId + | |
288 | - ", ClassName='" + ClassName + '\'' + | |
289 | - ", OldCard='" + OldCard + '\'' + | |
290 | - ", Card='" + Card + '\'' + | |
291 | - ", SchoolId=" + SchoolId + | |
292 | - ", school_id=" + school_id + | |
293 | - ", IsNew=" + IsNew + | |
294 | - ", UpdateType=" + UpdateType + | |
295 | - ", AddTime=" + AddTime + | |
296 | - ", Sex=" + Sex + | |
297 | - ", Face='" + Face + '\'' + | |
298 | - ", studentcode='" + studentcode + '\'' + | |
299 | - ", student_num='" + student_num + '\'' + | |
300 | - ", student_id='" + student_id + '\'' + | |
301 | - ", user_id='" + user_id + '\'' + | |
302 | - ", photo='" + photo + '\'' + | |
303 | - ", teacher_num='" + teacher_num + '\'' + | |
304 | - ", num='" + num + '\'' + | |
305 | - '}'; | |
306 | - } | |
307 | -} |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/UserService.java
1 | 1 | package com.sincere.smartSearch.service; |
2 | 2 | |
3 | +import com.sincere.common.dto.smartCampus.StudentBean; | |
4 | +import com.sincere.common.dto.smartCampus.SzVSchoolStudent; | |
5 | +import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; | |
6 | + | |
7 | +import java.util.List; | |
8 | + | |
3 | 9 | /** |
4 | 10 | * @author chen |
5 | 11 | * @version 1.0 |
... | ... | @@ -9,8 +15,16 @@ public interface UserService { |
9 | 15 | |
10 | 16 | String selectStudentNumByStudentId(int studentId); |
11 | 17 | |
12 | - StudentBean getTeacherWithstudentcode(String num,String schoolId); | |
18 | + StudentBean getTeacherWithstudentcode(String num, String schoolId); | |
13 | 19 | |
14 | 20 | StudentBean getStudent_NumWitdCode(String studentcode); |
15 | 21 | |
22 | + List<SzVSchoolTeacher> selectTeacherBySchool(int schoolId); | |
23 | + | |
24 | + List<SzVSchoolStudent> selectStudentBySchool(int schoolId); | |
25 | + | |
26 | + SzVSchoolTeacher selectByTeacherId(int teacherId); | |
27 | + | |
28 | + SzVSchoolStudent selectByStudentId(int studentId); | |
29 | + | |
16 | 30 | } | ... | ... |
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/UserServiceImpl.java
1 | 1 | package com.sincere.smartSearch.service.impl; |
2 | 2 | |
3 | +import com.sincere.common.dto.smartCampus.SzVSchoolStudent; | |
4 | +import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; | |
5 | +import com.sincere.smartSearch.mapper.SzVSchoolStudentMapper; | |
6 | +import com.sincere.smartSearch.mapper.SzVSchoolTeacherMapper; | |
3 | 7 | import com.sincere.smartSearch.mapper.UserMapper; |
8 | +import com.sincere.common.dto.smartCampus.StudentBean; | |
4 | 9 | import com.sincere.smartSearch.service.UserService; |
5 | 10 | import org.springframework.beans.factory.annotation.Autowired; |
6 | 11 | import org.springframework.stereotype.Service; |
7 | 12 | |
13 | +import java.util.List; | |
14 | + | |
8 | 15 | /** |
9 | 16 | * @author chen |
10 | 17 | * @version 1.0 |
... | ... | @@ -16,6 +23,12 @@ public class UserServiceImpl implements UserService { |
16 | 23 | @Autowired |
17 | 24 | UserMapper userMapper ; |
18 | 25 | |
26 | + @Autowired | |
27 | + SzVSchoolStudentMapper szVSchoolStudentMapper; | |
28 | + | |
29 | + @Autowired | |
30 | + SzVSchoolTeacherMapper szVSchoolTeacherMapper; | |
31 | + | |
19 | 32 | @Override |
20 | 33 | public String selectStudentNumByStudentId(int studentId) { |
21 | 34 | return userMapper.selectStudentNumByStudentId(studentId); |
... | ... | @@ -33,4 +46,23 @@ public class UserServiceImpl implements UserService { |
33 | 46 | return userMapper.getTeacherWithstudentcode(num,schoolId); |
34 | 47 | } |
35 | 48 | |
49 | + @Override | |
50 | + public List<SzVSchoolTeacher> selectTeacherBySchool(int schoolId) { | |
51 | + return szVSchoolTeacherMapper.selectBySchool(schoolId); | |
52 | + } | |
53 | + | |
54 | + @Override | |
55 | + public List<SzVSchoolStudent> selectStudentBySchool(int schoolId) { | |
56 | + return szVSchoolStudentMapper.selectBySchool(schoolId); | |
57 | + } | |
58 | + | |
59 | + @Override | |
60 | + public SzVSchoolTeacher selectByTeacherId(int teacherId) { | |
61 | + return szVSchoolTeacherMapper.selectByTeacherId(teacherId); | |
62 | + } | |
63 | + | |
64 | + @Override | |
65 | + public SzVSchoolStudent selectByStudentId(int studentId) { | |
66 | + return szVSchoolStudentMapper.selectByStudentId(studentId); | |
67 | + } | |
36 | 68 | } | ... | ... |
cloud/search_smartCampus/src/main/resources/mapper/AttendanceMapper.xml
... | ... | @@ -12,7 +12,7 @@ |
12 | 12 | <result column="isConnection" property="isConnection"/> |
13 | 13 | <result column="state" property="state"/> |
14 | 14 | <result column="IsKaoqin" property="IsKaoqin"/> |
15 | - | |
15 | + <result column="OutOrIn" property="outOrIn"/> | |
16 | 16 | </resultMap> |
17 | 17 | |
18 | 18 | <select id="selectDevice" resultMap="BaseResultMap"> | ... | ... |
cloud/search_smartCampus/src/main/resources/mapper/SzVSchoolStudentMapper.xml
0 → 100644
... | ... | @@ -0,0 +1,201 @@ |
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.sincere.smartSearch.mapper.SzVSchoolStudentMapper"> | |
4 | + <resultMap id="BaseResultMap" type="com.sincere.common.dto.smartCampus.SzVSchoolStudent"> | |
5 | + <result column="school_id" jdbcType="INTEGER" property="schoolId" /> | |
6 | + <result column="class_id" jdbcType="INTEGER" property="classId" /> | |
7 | + <result column="student_id" jdbcType="INTEGER" property="studentId" /> | |
8 | + <result column="user_id" jdbcType="VARCHAR" property="userId" /> | |
9 | + <result column="student_num" jdbcType="VARCHAR" property="studentNum" /> | |
10 | + <result column="name" jdbcType="VARCHAR" property="name" /> | |
11 | + <result column="num" jdbcType="VARCHAR" property="num" /> | |
12 | + <result column="photo" jdbcType="VARCHAR" property="photo" /> | |
13 | + <result column="ismonitor" jdbcType="INTEGER" property="ismonitor" /> | |
14 | + <result column="class_state" jdbcType="INTEGER" property="classState" /> | |
15 | + <result column="role_state" jdbcType="INTEGER" property="roleState" /> | |
16 | + <result column="modifystate" jdbcType="CHAR" property="modifystate" /> | |
17 | + <result column="mobile" jdbcType="VARCHAR" property="mobile" /> | |
18 | + <result column="class_name" jdbcType="VARCHAR" property="className" /> | |
19 | + <result column="student_type" jdbcType="INTEGER" property="studentType" /> | |
20 | + <result column="matrikelnummer" jdbcType="VARCHAR" property="matrikelnummer" /> | |
21 | + <result column="studentcode" jdbcType="VARCHAR" property="studentcode" /> | |
22 | + <result column="sex" jdbcType="VARCHAR" property="sex" /> | |
23 | + <result column="ParentMobile" jdbcType="VARCHAR" property="parentmobile" /> | |
24 | + <result column="othername" jdbcType="VARCHAR" property="othername" /> | |
25 | + <result column="activetime" jdbcType="TIMESTAMP" property="activetime" /> | |
26 | + <result column="active" jdbcType="INTEGER" property="active" /> | |
27 | + <result column="pass" jdbcType="VARCHAR" property="pass" /> | |
28 | + </resultMap> | |
29 | + | |
30 | + <select id="selectBySchool" parameterType="java.lang.Integer" resultMap="BaseResultMap"> | |
31 | + select * from SZ_V_School_Student where school_id = #{schoolId} | |
32 | + </select> | |
33 | + | |
34 | + <select id="selectByStudentId" parameterType="java.lang.Integer" resultMap="BaseResultMap"> | |
35 | + select top 1 * from SZ_V_School_Student where student_id = #{studentId} | |
36 | + </select> | |
37 | + | |
38 | + <insert id="insert" parameterType="com.sincere.common.dto.smartCampus.SzVSchoolStudent"> | |
39 | + insert into SZ_V_School_Student (school_id, class_id, student_id, | |
40 | + user_id, student_num, name, | |
41 | + num, photo, ismonitor, | |
42 | + class_state, role_state, modifystate, | |
43 | + mobile, class_name, student_type, | |
44 | + matrikelnummer, studentcode, sex, | |
45 | + ParentMobile, othername, activetime, | |
46 | + active, pass) | |
47 | + values (#{schoolId,jdbcType=INTEGER}, #{classId,jdbcType=INTEGER}, #{studentId,jdbcType=INTEGER}, | |
48 | + #{userId,jdbcType=VARCHAR}, #{studentNum,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, | |
49 | + #{num,jdbcType=VARCHAR}, #{photo,jdbcType=VARCHAR}, #{ismonitor,jdbcType=INTEGER}, | |
50 | + #{classState,jdbcType=INTEGER}, #{roleState,jdbcType=INTEGER}, #{modifystate,jdbcType=CHAR}, | |
51 | + #{mobile,jdbcType=VARCHAR}, #{className,jdbcType=VARCHAR}, #{studentType,jdbcType=INTEGER}, | |
52 | + #{matrikelnummer,jdbcType=VARCHAR}, #{studentcode,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, | |
53 | + #{parentmobile,jdbcType=VARCHAR}, #{othername,jdbcType=VARCHAR}, #{activetime,jdbcType=TIMESTAMP}, | |
54 | + #{active,jdbcType=INTEGER}, #{pass,jdbcType=VARCHAR}) | |
55 | + </insert> | |
56 | + <insert id="insertSelective" parameterType="com.sincere.common.dto.smartCampus.SzVSchoolStudent"> | |
57 | + insert into SZ_V_School_Student | |
58 | + <trim prefix="(" suffix=")" suffixOverrides=","> | |
59 | + <if test="schoolId != null"> | |
60 | + school_id, | |
61 | + </if> | |
62 | + <if test="classId != null"> | |
63 | + class_id, | |
64 | + </if> | |
65 | + <if test="studentId != null"> | |
66 | + student_id, | |
67 | + </if> | |
68 | + <if test="userId != null"> | |
69 | + user_id, | |
70 | + </if> | |
71 | + <if test="studentNum != null"> | |
72 | + student_num, | |
73 | + </if> | |
74 | + <if test="name != null"> | |
75 | + name, | |
76 | + </if> | |
77 | + <if test="num != null"> | |
78 | + num, | |
79 | + </if> | |
80 | + <if test="photo != null"> | |
81 | + photo, | |
82 | + </if> | |
83 | + <if test="ismonitor != null"> | |
84 | + ismonitor, | |
85 | + </if> | |
86 | + <if test="classState != null"> | |
87 | + class_state, | |
88 | + </if> | |
89 | + <if test="roleState != null"> | |
90 | + role_state, | |
91 | + </if> | |
92 | + <if test="modifystate != null"> | |
93 | + modifystate, | |
94 | + </if> | |
95 | + <if test="mobile != null"> | |
96 | + mobile, | |
97 | + </if> | |
98 | + <if test="className != null"> | |
99 | + class_name, | |
100 | + </if> | |
101 | + <if test="studentType != null"> | |
102 | + student_type, | |
103 | + </if> | |
104 | + <if test="matrikelnummer != null"> | |
105 | + matrikelnummer, | |
106 | + </if> | |
107 | + <if test="studentcode != null"> | |
108 | + studentcode, | |
109 | + </if> | |
110 | + <if test="sex != null"> | |
111 | + sex, | |
112 | + </if> | |
113 | + <if test="parentmobile != null"> | |
114 | + ParentMobile, | |
115 | + </if> | |
116 | + <if test="othername != null"> | |
117 | + othername, | |
118 | + </if> | |
119 | + <if test="activetime != null"> | |
120 | + activetime, | |
121 | + </if> | |
122 | + <if test="active != null"> | |
123 | + active, | |
124 | + </if> | |
125 | + <if test="pass != null"> | |
126 | + pass, | |
127 | + </if> | |
128 | + </trim> | |
129 | + <trim prefix="values (" suffix=")" suffixOverrides=","> | |
130 | + <if test="schoolId != null"> | |
131 | + #{schoolId,jdbcType=INTEGER}, | |
132 | + </if> | |
133 | + <if test="classId != null"> | |
134 | + #{classId,jdbcType=INTEGER}, | |
135 | + </if> | |
136 | + <if test="studentId != null"> | |
137 | + #{studentId,jdbcType=INTEGER}, | |
138 | + </if> | |
139 | + <if test="userId != null"> | |
140 | + #{userId,jdbcType=VARCHAR}, | |
141 | + </if> | |
142 | + <if test="studentNum != null"> | |
143 | + #{studentNum,jdbcType=VARCHAR}, | |
144 | + </if> | |
145 | + <if test="name != null"> | |
146 | + #{name,jdbcType=VARCHAR}, | |
147 | + </if> | |
148 | + <if test="num != null"> | |
149 | + #{num,jdbcType=VARCHAR}, | |
150 | + </if> | |
151 | + <if test="photo != null"> | |
152 | + #{photo,jdbcType=VARCHAR}, | |
153 | + </if> | |
154 | + <if test="ismonitor != null"> | |
155 | + #{ismonitor,jdbcType=INTEGER}, | |
156 | + </if> | |
157 | + <if test="classState != null"> | |
158 | + #{classState,jdbcType=INTEGER}, | |
159 | + </if> | |
160 | + <if test="roleState != null"> | |
161 | + #{roleState,jdbcType=INTEGER}, | |
162 | + </if> | |
163 | + <if test="modifystate != null"> | |
164 | + #{modifystate,jdbcType=CHAR}, | |
165 | + </if> | |
166 | + <if test="mobile != null"> | |
167 | + #{mobile,jdbcType=VARCHAR}, | |
168 | + </if> | |
169 | + <if test="className != null"> | |
170 | + #{className,jdbcType=VARCHAR}, | |
171 | + </if> | |
172 | + <if test="studentType != null"> | |
173 | + #{studentType,jdbcType=INTEGER}, | |
174 | + </if> | |
175 | + <if test="matrikelnummer != null"> | |
176 | + #{matrikelnummer,jdbcType=VARCHAR}, | |
177 | + </if> | |
178 | + <if test="studentcode != null"> | |
179 | + #{studentcode,jdbcType=VARCHAR}, | |
180 | + </if> | |
181 | + <if test="sex != null"> | |
182 | + #{sex,jdbcType=VARCHAR}, | |
183 | + </if> | |
184 | + <if test="parentmobile != null"> | |
185 | + #{parentmobile,jdbcType=VARCHAR}, | |
186 | + </if> | |
187 | + <if test="othername != null"> | |
188 | + #{othername,jdbcType=VARCHAR}, | |
189 | + </if> | |
190 | + <if test="activetime != null"> | |
191 | + #{activetime,jdbcType=TIMESTAMP}, | |
192 | + </if> | |
193 | + <if test="active != null"> | |
194 | + #{active,jdbcType=INTEGER}, | |
195 | + </if> | |
196 | + <if test="pass != null"> | |
197 | + #{pass,jdbcType=VARCHAR}, | |
198 | + </if> | |
199 | + </trim> | |
200 | + </insert> | |
201 | +</mapper> | |
0 | 202 | \ No newline at end of file | ... | ... |
cloud/search_smartCampus/src/main/resources/mapper/SzVSchoolTeacherMapper.xml
0 → 100644
... | ... | @@ -0,0 +1,155 @@ |
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.sincere.smartSearch.mapper.SzVSchoolTeacherMapper"> | |
4 | + <resultMap id="BaseResultMap" type="com.sincere.common.dto.smartCampus.SzVSchoolTeacher"> | |
5 | + <result column="school_id" jdbcType="INTEGER" property="schoolId" /> | |
6 | + <result column="class_id" jdbcType="INTEGER" property="classId" /> | |
7 | + <result column="teacher_id" jdbcType="INTEGER" property="teacherId" /> | |
8 | + <result column="user_id" jdbcType="VARCHAR" property="userId" /> | |
9 | + <result column="name" jdbcType="VARCHAR" property="name" /> | |
10 | + <result column="face" jdbcType="VARCHAR" property="face" /> | |
11 | + <result column="num" jdbcType="VARCHAR" property="num" /> | |
12 | + <result column="teacher_num" jdbcType="VARCHAR" property="teacherNum" /> | |
13 | + <result column="teacher_mobile" jdbcType="VARCHAR" property="teacherMobile" /> | |
14 | + <result column="mobile" jdbcType="VARCHAR" property="mobile" /> | |
15 | + <result column="class_state" jdbcType="INTEGER" property="classState" /> | |
16 | + <result column="role_state" jdbcType="INTEGER" property="roleState" /> | |
17 | + <result column="IsKaoQin" jdbcType="INTEGER" property="iskaoqin" /> | |
18 | + <result column="OpenId" jdbcType="VARCHAR" property="openid" /> | |
19 | + <result column="pass" jdbcType="VARCHAR" property="pass" /> | |
20 | + <result column="DingUserId" jdbcType="VARCHAR" property="dinguserid" /> | |
21 | + <result column="QiYeHaoUserId" jdbcType="VARCHAR" property="qiyehaouserid" /> | |
22 | + </resultMap> | |
23 | + | |
24 | + <select id="selectBySchool" parameterType="java.lang.Integer" resultMap="BaseResultMap"> | |
25 | + select * from SZ_V_School_Teacher where school_id = #{schoolId} | |
26 | + </select> | |
27 | + | |
28 | + <select id="selectByTeacherId" parameterType="java.lang.Integer" resultMap="BaseResultMap"> | |
29 | + select top 1 * from SZ_V_School_Teacher where teacher_id = #{teacherId} | |
30 | + </select> | |
31 | + | |
32 | + <insert id="insert" parameterType="com.sincere.common.dto.smartCampus.SzVSchoolTeacher"> | |
33 | + insert into SZ_V_School_Teacher (school_id, class_id, teacher_id, | |
34 | + user_id, name, face, | |
35 | + num, teacher_num, teacher_mobile, | |
36 | + mobile, class_state, role_state, | |
37 | + IsKaoQin, OpenId, pass, | |
38 | + DingUserId, QiYeHaoUserId) | |
39 | + values (#{schoolId,jdbcType=INTEGER}, #{classId,jdbcType=INTEGER}, #{teacherId,jdbcType=INTEGER}, | |
40 | + #{userId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{face,jdbcType=VARCHAR}, | |
41 | + #{num,jdbcType=VARCHAR}, #{teacherNum,jdbcType=VARCHAR}, #{teacherMobile,jdbcType=VARCHAR}, | |
42 | + #{mobile,jdbcType=VARCHAR}, #{classState,jdbcType=INTEGER}, #{roleState,jdbcType=INTEGER}, | |
43 | + #{iskaoqin,jdbcType=INTEGER}, #{openid,jdbcType=VARCHAR}, #{pass,jdbcType=VARCHAR}, | |
44 | + #{dinguserid,jdbcType=VARCHAR}, #{qiyehaouserid,jdbcType=VARCHAR}) | |
45 | + </insert> | |
46 | + <insert id="insertSelective" parameterType="com.sincere.common.dto.smartCampus.SzVSchoolTeacher"> | |
47 | + insert into SZ_V_School_Teacher | |
48 | + <trim prefix="(" suffix=")" suffixOverrides=","> | |
49 | + <if test="schoolId != null"> | |
50 | + school_id, | |
51 | + </if> | |
52 | + <if test="classId != null"> | |
53 | + class_id, | |
54 | + </if> | |
55 | + <if test="teacherId != null"> | |
56 | + teacher_id, | |
57 | + </if> | |
58 | + <if test="userId != null"> | |
59 | + user_id, | |
60 | + </if> | |
61 | + <if test="name != null"> | |
62 | + name, | |
63 | + </if> | |
64 | + <if test="face != null"> | |
65 | + face, | |
66 | + </if> | |
67 | + <if test="num != null"> | |
68 | + num, | |
69 | + </if> | |
70 | + <if test="teacherNum != null"> | |
71 | + teacher_num, | |
72 | + </if> | |
73 | + <if test="teacherMobile != null"> | |
74 | + teacher_mobile, | |
75 | + </if> | |
76 | + <if test="mobile != null"> | |
77 | + mobile, | |
78 | + </if> | |
79 | + <if test="classState != null"> | |
80 | + class_state, | |
81 | + </if> | |
82 | + <if test="roleState != null"> | |
83 | + role_state, | |
84 | + </if> | |
85 | + <if test="iskaoqin != null"> | |
86 | + IsKaoQin, | |
87 | + </if> | |
88 | + <if test="openid != null"> | |
89 | + OpenId, | |
90 | + </if> | |
91 | + <if test="pass != null"> | |
92 | + pass, | |
93 | + </if> | |
94 | + <if test="dinguserid != null"> | |
95 | + DingUserId, | |
96 | + </if> | |
97 | + <if test="qiyehaouserid != null"> | |
98 | + QiYeHaoUserId, | |
99 | + </if> | |
100 | + </trim> | |
101 | + <trim prefix="values (" suffix=")" suffixOverrides=","> | |
102 | + <if test="schoolId != null"> | |
103 | + #{schoolId,jdbcType=INTEGER}, | |
104 | + </if> | |
105 | + <if test="classId != null"> | |
106 | + #{classId,jdbcType=INTEGER}, | |
107 | + </if> | |
108 | + <if test="teacherId != null"> | |
109 | + #{teacherId,jdbcType=INTEGER}, | |
110 | + </if> | |
111 | + <if test="userId != null"> | |
112 | + #{userId,jdbcType=VARCHAR}, | |
113 | + </if> | |
114 | + <if test="name != null"> | |
115 | + #{name,jdbcType=VARCHAR}, | |
116 | + </if> | |
117 | + <if test="face != null"> | |
118 | + #{face,jdbcType=VARCHAR}, | |
119 | + </if> | |
120 | + <if test="num != null"> | |
121 | + #{num,jdbcType=VARCHAR}, | |
122 | + </if> | |
123 | + <if test="teacherNum != null"> | |
124 | + #{teacherNum,jdbcType=VARCHAR}, | |
125 | + </if> | |
126 | + <if test="teacherMobile != null"> | |
127 | + #{teacherMobile,jdbcType=VARCHAR}, | |
128 | + </if> | |
129 | + <if test="mobile != null"> | |
130 | + #{mobile,jdbcType=VARCHAR}, | |
131 | + </if> | |
132 | + <if test="classState != null"> | |
133 | + #{classState,jdbcType=INTEGER}, | |
134 | + </if> | |
135 | + <if test="roleState != null"> | |
136 | + #{roleState,jdbcType=INTEGER}, | |
137 | + </if> | |
138 | + <if test="iskaoqin != null"> | |
139 | + #{iskaoqin,jdbcType=INTEGER}, | |
140 | + </if> | |
141 | + <if test="openid != null"> | |
142 | + #{openid,jdbcType=VARCHAR}, | |
143 | + </if> | |
144 | + <if test="pass != null"> | |
145 | + #{pass,jdbcType=VARCHAR}, | |
146 | + </if> | |
147 | + <if test="dinguserid != null"> | |
148 | + #{dinguserid,jdbcType=VARCHAR}, | |
149 | + </if> | |
150 | + <if test="qiyehaouserid != null"> | |
151 | + #{qiyehaouserid,jdbcType=VARCHAR}, | |
152 | + </if> | |
153 | + </trim> | |
154 | + </insert> | |
155 | +</mapper> | |
0 | 156 | \ No newline at end of file | ... | ... |
cloud/search_xiaoan/pom.xml
... | ... | @@ -127,6 +127,17 @@ |
127 | 127 | <finalName>search_xiaoan</finalName> |
128 | 128 | <!--打包方式--> |
129 | 129 | <plugins> |
130 | + | |
131 | + <plugin> | |
132 | + <groupId>org.mybatis.generator</groupId> | |
133 | + <artifactId>mybatis-generator-maven-plugin</artifactId> | |
134 | + <version>1.3.5</version> | |
135 | + <configuration> | |
136 | + <verbose>true</verbose> | |
137 | + <overwrite>true</overwrite> | |
138 | + </configuration> | |
139 | + </plugin> | |
140 | + | |
130 | 141 | <!-- 设置编译版本 --> |
131 | 142 | <plugin> |
132 | 143 | <groupId>org.apache.maven.plugins</groupId> | ... | ... |
cloud/search_xiaoan/src/main/java/com/sincere/xiaoanSearch/controller/FaceController.java
0 → 100644
... | ... | @@ -0,0 +1,35 @@ |
1 | +package com.sincere.xiaoanSearch.controller; | |
2 | + | |
3 | +import com.sincere.common.dto.xiaoan.FaceSendfail; | |
4 | +import com.sincere.common.dto.xiaoan.FaceSendsuccess; | |
5 | +import com.sincere.common.dto.xiaoan.FaceRecoder; | |
6 | +import com.sincere.xiaoanSearch.service.FaceService; | |
7 | +import org.springframework.beans.factory.annotation.Autowired; | |
8 | +import org.springframework.web.bind.annotation.RequestBody; | |
9 | +import org.springframework.web.bind.annotation.RequestMapping; | |
10 | +import org.springframework.web.bind.annotation.RequestMethod; | |
11 | +import org.springframework.web.bind.annotation.RestController; | |
12 | + | |
13 | +@RestController | |
14 | +@RequestMapping("/xa/face") | |
15 | +public class FaceController { | |
16 | + | |
17 | + @Autowired | |
18 | + FaceService faceService ; | |
19 | + | |
20 | + | |
21 | + @RequestMapping(value = "success",method = RequestMethod.POST) | |
22 | + void insertFaceSuccess(@RequestBody FaceSendsuccess faceSendsuccess){ | |
23 | + faceService.insertFaceSuccess(faceSendsuccess); | |
24 | + } | |
25 | + | |
26 | + @RequestMapping(value = "fail",method = RequestMethod.POST) | |
27 | + void insertFaceFail(@RequestBody FaceSendfail faceSendfail){ | |
28 | + faceService.insertFaceFail(faceSendfail); | |
29 | + } | |
30 | + | |
31 | + @RequestMapping(value = "insertRecode",method = RequestMethod.POST) | |
32 | + void insertRecode(@RequestBody FaceRecoder faceRecoder){ | |
33 | + faceService.insertRecode(faceRecoder); | |
34 | + } | |
35 | +} | ... | ... |
cloud/search_xiaoan/src/main/java/com/sincere/xiaoanSearch/mapper/FaceRecoderMapper.java
0 → 100644
cloud/search_xiaoan/src/main/java/com/sincere/xiaoanSearch/mapper/FaceSendfailMapper.java
0 → 100644
... | ... | @@ -0,0 +1,10 @@ |
1 | +package com.sincere.xiaoanSearch.mapper; | |
2 | + | |
3 | +import com.sincere.common.dto.xiaoan.FaceSendfail; | |
4 | + | |
5 | +public interface FaceSendfailMapper { | |
6 | + | |
7 | + int insert(FaceSendfail record); | |
8 | + | |
9 | + void deleteById(FaceSendfail faceSendfail); | |
10 | +} | |
0 | 11 | \ No newline at end of file | ... | ... |
cloud/search_xiaoan/src/main/java/com/sincere/xiaoanSearch/mapper/FaceSendsuccessMapper.java
0 → 100644
... | ... | @@ -0,0 +1,10 @@ |
1 | +package com.sincere.xiaoanSearch.mapper; | |
2 | + | |
3 | +import com.sincere.common.dto.xiaoan.FaceSendsuccess; | |
4 | + | |
5 | +public interface FaceSendsuccessMapper { | |
6 | + | |
7 | + int insert(FaceSendsuccess record); | |
8 | + | |
9 | + void deleteById(FaceSendsuccess faceSendsuccess); | |
10 | +} | |
0 | 11 | \ No newline at end of file | ... | ... |
cloud/search_xiaoan/src/main/java/com/sincere/xiaoanSearch/service/FaceService.java
0 → 100644
... | ... | @@ -0,0 +1,14 @@ |
1 | +package com.sincere.xiaoanSearch.service; | |
2 | + | |
3 | +import com.sincere.common.dto.xiaoan.FaceRecoder; | |
4 | +import com.sincere.common.dto.xiaoan.FaceSendfail; | |
5 | +import com.sincere.common.dto.xiaoan.FaceSendsuccess; | |
6 | + | |
7 | +public interface FaceService { | |
8 | + | |
9 | + void insertFaceSuccess(FaceSendsuccess faceSendsuccess); | |
10 | + | |
11 | + void insertFaceFail(FaceSendfail faceSendfail); | |
12 | + | |
13 | + void insertRecode(FaceRecoder faceRecoder); | |
14 | +} | ... | ... |
cloud/search_xiaoan/src/main/java/com/sincere/xiaoanSearch/service/impl/FaceServiceImpl.java
0 → 100644
... | ... | @@ -0,0 +1,51 @@ |
1 | +package com.sincere.xiaoanSearch.service.impl; | |
2 | + | |
3 | +import com.sincere.common.dto.xiaoan.FaceRecoder; | |
4 | +import com.sincere.xiaoanSearch.mapper.FaceRecoderMapper; | |
5 | +import com.sincere.xiaoanSearch.mapper.FaceSendfailMapper; | |
6 | +import com.sincere.xiaoanSearch.mapper.FaceSendsuccessMapper; | |
7 | +import com.sincere.common.dto.xiaoan.FaceSendfail; | |
8 | +import com.sincere.common.dto.xiaoan.FaceSendsuccess; | |
9 | +import com.sincere.xiaoanSearch.service.FaceService; | |
10 | +import org.springframework.beans.factory.annotation.Autowired; | |
11 | +import org.springframework.stereotype.Service; | |
12 | + | |
13 | +@Service | |
14 | +public class FaceServiceImpl implements FaceService { | |
15 | + | |
16 | + @Autowired | |
17 | + FaceSendfailMapper faceSendfailMapper ; | |
18 | + | |
19 | + @Autowired | |
20 | + FaceSendsuccessMapper faceSendsuccessMapper ; | |
21 | + | |
22 | + @Autowired | |
23 | + FaceRecoderMapper faceRecoderMapper; | |
24 | + | |
25 | + @Override | |
26 | + public void insertFaceSuccess(FaceSendsuccess faceSendsuccess) { | |
27 | + FaceSendfail faceSendfail = new FaceSendfail(); | |
28 | + faceSendfail.setCustomerid(faceSendsuccess.getCustomerid()); | |
29 | + faceSendfail.setDeviceid(faceSendsuccess.getDeviceid()); | |
30 | + faceSendfailMapper.deleteById(faceSendfail); | |
31 | + faceSendsuccessMapper.deleteById(faceSendsuccess); | |
32 | + | |
33 | + faceSendsuccessMapper.insert(faceSendsuccess); | |
34 | + } | |
35 | + | |
36 | + @Override | |
37 | + public void insertFaceFail(FaceSendfail faceSendfail) { | |
38 | + FaceSendsuccess faceSendsuccess = new FaceSendsuccess(); | |
39 | + faceSendsuccess.setCustomerid(faceSendfail.getCustomerid()); | |
40 | + faceSendsuccess.setDeviceid(faceSendfail.getDeviceid()); | |
41 | + faceSendfailMapper.deleteById(faceSendfail); | |
42 | + faceSendsuccessMapper.deleteById(faceSendsuccess); | |
43 | + | |
44 | + faceSendfailMapper.insert(faceSendfail); | |
45 | + } | |
46 | + | |
47 | + @Override | |
48 | + public void insertRecode(FaceRecoder faceRecoder) { | |
49 | + faceRecoderMapper.insert(faceRecoder); | |
50 | + } | |
51 | +} | ... | ... |
cloud/search_xiaoan/src/main/resources/application.yml
... | ... | @@ -7,6 +7,9 @@ spring: |
7 | 7 | username: szjxtuser |
8 | 8 | password: RQminVCJota3H1u8bBYH |
9 | 9 | url: jdbc:sqlserver://116.62.241.27:33419;database=xiaoanhxy |
10 | +# username: SZJXTUSER | |
11 | +# password: xst200919 | |
12 | +# url: jdbc:sqlserver://60.190.202.57:14333;database=xiaoanhxy | |
10 | 13 | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
11 | 14 | ##mybatis |
12 | 15 | mybatis: | ... | ... |
cloud/search_xiaoan/src/main/resources/logback.xml
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 | |
6 | 6 | <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> |
7 | 7 | <!-- <property name="LOG_HOME" value="/opt/web/log/" />--> |
8 | - <property name="LOG_HOME" value="D://xiaoanSearch//log"/> | |
8 | + <property name="LOG_HOME" value="C://log"/> | |
9 | 9 | |
10 | 10 | <!-- 控制台输出 --> |
11 | 11 | <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> | ... | ... |
cloud/search_xiaoan/src/main/resources/mapper/FaceRecoderMapper.xml
0 → 100644
... | ... | @@ -0,0 +1,70 @@ |
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.sincere.xiaoanSearch.mapper.FaceRecoderMapper"> | |
4 | + <resultMap id="BaseResultMap" type="com.sincere.common.dto.xiaoan.FaceRecoder"> | |
5 | + <result column="deviceId" jdbcType="VARCHAR" property="deviceid" /> | |
6 | + <result column="user_id" jdbcType="VARCHAR" property="userId" /> | |
7 | + <result column="name" jdbcType="VARCHAR" property="name" /> | |
8 | + <result column="imgurl" jdbcType="VARCHAR" property="imgurl" /> | |
9 | + <result column="inOrOut" jdbcType="INTEGER" property="inorout" /> | |
10 | + <result column="time" jdbcType="TIMESTAMP" property="time" /> | |
11 | + <result column="cardNum" jdbcType="VARCHAR" property="cardnum" /> | |
12 | + </resultMap> | |
13 | + <insert id="insert" parameterType="com.sincere.common.dto.xiaoan.FaceRecoder"> | |
14 | + insert into Face_Recoder (deviceId, user_id, name, | |
15 | + imgurl, inOrOut, time, | |
16 | + cardNum) | |
17 | + values (#{deviceid,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, | |
18 | + #{imgurl,jdbcType=VARCHAR}, #{inorout,jdbcType=INTEGER}, #{time,jdbcType=TIMESTAMP}, | |
19 | + #{cardnum,jdbcType=VARCHAR}) | |
20 | + </insert> | |
21 | + <insert id="insertSelective" parameterType="com.sincere.common.dto.xiaoan.FaceRecoder"> | |
22 | + insert into Face_Recoder | |
23 | + <trim prefix="(" suffix=")" suffixOverrides=","> | |
24 | + <if test="deviceid != null"> | |
25 | + deviceId, | |
26 | + </if> | |
27 | + <if test="userId != null"> | |
28 | + user_id, | |
29 | + </if> | |
30 | + <if test="name != null"> | |
31 | + name, | |
32 | + </if> | |
33 | + <if test="imgurl != null"> | |
34 | + imgurl, | |
35 | + </if> | |
36 | + <if test="inorout != null"> | |
37 | + inOrOut, | |
38 | + </if> | |
39 | + <if test="time != null"> | |
40 | + time, | |
41 | + </if> | |
42 | + <if test="cardnum != null"> | |
43 | + cardNum, | |
44 | + </if> | |
45 | + </trim> | |
46 | + <trim prefix="values (" suffix=")" suffixOverrides=","> | |
47 | + <if test="deviceid != null"> | |
48 | + #{deviceid,jdbcType=VARCHAR}, | |
49 | + </if> | |
50 | + <if test="userId != null"> | |
51 | + #{userId,jdbcType=VARCHAR}, | |
52 | + </if> | |
53 | + <if test="name != null"> | |
54 | + #{name,jdbcType=VARCHAR}, | |
55 | + </if> | |
56 | + <if test="imgurl != null"> | |
57 | + #{imgurl,jdbcType=VARCHAR}, | |
58 | + </if> | |
59 | + <if test="inorout != null"> | |
60 | + #{inorout,jdbcType=INTEGER}, | |
61 | + </if> | |
62 | + <if test="time != null"> | |
63 | + #{time,jdbcType=TIMESTAMP}, | |
64 | + </if> | |
65 | + <if test="cardnum != null"> | |
66 | + #{cardnum,jdbcType=VARCHAR}, | |
67 | + </if> | |
68 | + </trim> | |
69 | + </insert> | |
70 | +</mapper> | |
0 | 71 | \ No newline at end of file | ... | ... |
cloud/search_xiaoan/src/main/resources/mapper/FaceSendfailMapper.xml
0 → 100644
... | ... | @@ -0,0 +1,36 @@ |
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.sincere.xiaoanSearch.mapper.FaceSendfailMapper"> | |
4 | + <resultMap id="BaseResultMap" type="com.sincere.common.dto.xiaoan.FaceSendfail"> | |
5 | + <result column="deviceID" jdbcType="VARCHAR" property="deviceid" /> | |
6 | + <result column="customerid" jdbcType="VARCHAR" property="customerid" /> | |
7 | + <result column="Num" jdbcType="VARCHAR" property="num" /> | |
8 | + <result column="Name" jdbcType="VARCHAR" property="name" /> | |
9 | + <result column="time" jdbcType="VARCHAR" property="time" /> | |
10 | + <result column="schoolName" jdbcType="VARCHAR" property="schoolname" /> | |
11 | + <result column="imgPath" jdbcType="VARCHAR" property="imgpath" /> | |
12 | + <result column="schoolId" jdbcType="INTEGER" property="schoolid" /> | |
13 | + <result column="failContent" jdbcType="VARCHAR" property="failcontent" /> | |
14 | + <result column="failType" jdbcType="INTEGER" property="failtype" /> | |
15 | + <result column="userType" jdbcType="INTEGER" property="usertype" /> | |
16 | + <result column="deviceType" jdbcType="INTEGER" property="devicetype" /> | |
17 | + </resultMap> | |
18 | + <insert id="insert" parameterType="com.sincere.common.dto.xiaoan.FaceSendfail"> | |
19 | + insert into Face_SendFail (deviceID, customerid, Num, | |
20 | + Name, time, schoolName, | |
21 | + imgPath, schoolId, failContent, | |
22 | + failType, userType, deviceType | |
23 | + ) | |
24 | + values (#{deviceid,jdbcType=VARCHAR}, #{customerid,jdbcType=VARCHAR}, #{num,jdbcType=VARCHAR}, | |
25 | + #{name,jdbcType=VARCHAR}, GETDATE(), #{schoolname,jdbcType=VARCHAR}, | |
26 | + #{imgpath,jdbcType=VARCHAR}, #{schoolid,jdbcType=INTEGER}, #{failcontent,jdbcType=VARCHAR}, | |
27 | + #{failtype,jdbcType=INTEGER}, #{usertype,jdbcType=INTEGER}, #{devicetype,jdbcType=INTEGER} | |
28 | + ) | |
29 | + </insert> | |
30 | + | |
31 | + | |
32 | + <delete id="deleteById" parameterType="com.sincere.common.dto.xiaoan.FaceSendfail"> | |
33 | + delete Face_SendFail where deviceID = #{deviceid} and customerid = #{customerid} | |
34 | + </delete> | |
35 | + | |
36 | +</mapper> | |
0 | 37 | \ No newline at end of file | ... | ... |
cloud/search_xiaoan/src/main/resources/mapper/FaceSendsuccessMapper.xml
0 → 100644
... | ... | @@ -0,0 +1,32 @@ |
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.sincere.xiaoanSearch.mapper.FaceSendsuccessMapper"> | |
4 | + <resultMap id="BaseResultMap" type="com.sincere.common.dto.xiaoan.FaceSendsuccess"> | |
5 | + <result column="deviceID" jdbcType="VARCHAR" property="deviceid" /> | |
6 | + <result column="customerid" jdbcType="VARCHAR" property="customerid" /> | |
7 | + <result column="Num" jdbcType="VARCHAR" property="num" /> | |
8 | + <result column="Name" jdbcType="VARCHAR" property="name" /> | |
9 | + <result column="time" jdbcType="TIMESTAMP" property="time" /> | |
10 | + <result column="schoolName" jdbcType="VARCHAR" property="schoolname" /> | |
11 | + <result column="imgPath" jdbcType="VARCHAR" property="imgpath" /> | |
12 | + <result column="schoolId" jdbcType="INTEGER" property="schoolid" /> | |
13 | + <result column="userType" jdbcType="INTEGER" property="usertype" /> | |
14 | + <result column="deviceType" jdbcType="INTEGER" property="devicetype" /> | |
15 | + </resultMap> | |
16 | + <insert id="insert" parameterType="com.sincere.common.dto.xiaoan.FaceSendsuccess"> | |
17 | + insert into Face_SendSuccess (deviceID, customerid, Num, | |
18 | + Name, time, schoolName, | |
19 | + imgPath, schoolId, userType, | |
20 | + deviceType) | |
21 | + values (#{deviceid,jdbcType=VARCHAR}, #{customerid,jdbcType=VARCHAR}, #{num,jdbcType=VARCHAR}, | |
22 | + #{name,jdbcType=VARCHAR}, GETDATE(), #{schoolname,jdbcType=VARCHAR}, | |
23 | + #{imgpath,jdbcType=VARCHAR}, #{schoolid,jdbcType=INTEGER}, #{usertype,jdbcType=INTEGER}, | |
24 | + #{devicetype,jdbcType=INTEGER}) | |
25 | + </insert> | |
26 | + | |
27 | + <delete id="deleteById" parameterType="com.sincere.common.dto.xiaoan.FaceSendsuccess"> | |
28 | + delete Face_SendSuccess where deviceID = #{deviceid} and customerid = #{customerid} | |
29 | + </delete> | |
30 | + | |
31 | + | |
32 | +</mapper> | |
0 | 33 | \ No newline at end of file | ... | ... |