Commit 3009e2ac365fd61592b29348170bb183d2ef47db

Authored by 陶汉栋
1 parent cd07eb23
Exists in master

权限模板增加

Showing 26 changed files with 768 additions and 236 deletions   Show diff stats
cloud/dahua/src/main/java/com/example/dahua/bean/StudentBean.java
@@ -39,7 +39,7 @@ public class StudentBean implements Serializable { @@ -39,7 +39,7 @@ public class StudentBean implements Serializable {
39 39
40 private String Face; 40 private String Face;
41 41
42 - private String StudentCode; 42 +// private String StudentCode;
43 43
44 private String student_num; 44 private String student_num;
45 45
@@ -201,13 +201,13 @@ public class StudentBean implements Serializable { @@ -201,13 +201,13 @@ public class StudentBean implements Serializable {
201 Face = face; 201 Face = face;
202 } 202 }
203 203
204 - public String getStudentCode() {  
205 - return StudentCode;  
206 - }  
207 -  
208 - public void setStudentCode(String studentCode) {  
209 - StudentCode = studentCode;  
210 - } 204 +// public String getStudentCode() {
  205 +// return StudentCode;
  206 +// }
  207 +//
  208 +// public void setStudentCode(String studentCode) {
  209 +// StudentCode = studentCode;
  210 +// }
211 211
212 public long getID() { 212 public long getID() {
213 return ID; 213 return ID;
@@ -245,7 +245,7 @@ public class StudentBean implements Serializable { @@ -245,7 +245,7 @@ public class StudentBean implements Serializable {
245 ", AddTime=" + AddTime + 245 ", AddTime=" + AddTime +
246 ", Sex=" + Sex + 246 ", Sex=" + Sex +
247 ", Face='" + Face + '\'' + 247 ", Face='" + Face + '\'' +
248 - ", StudentCode='" + StudentCode + '' + 248 +// ", StudentCode='" + StudentCode + '' +
249 ", student_num='" + student_num + '\'' + 249 ", student_num='" + student_num + '\'' +
250 ", student_id='" + student_id + '\'' + 250 ", student_id='" + student_id + '\'' +
251 ", user_id='" + user_id + '\'' + 251 ", user_id='" + user_id + '\'' +
cloud/dahua/src/main/java/com/example/dahua/control/FaceUnifyController.java
@@ -44,4 +44,12 @@ public class FaceUnifyController { @@ -44,4 +44,12 @@ public class FaceUnifyController {
44 return JSON.toJSONString(permissFaceService.getPermissions(schoolId)); 44 return JSON.toJSONString(permissFaceService.getPermissions(schoolId));
45 } 45 }
46 46
  47 +
  48 + @RequestMapping(value = "addFace",method = RequestMethod.POST)
  49 + @ApiOperation("上传学生/老师人脸")
  50 + public String addFace(@RequestParam("imgUrl")String imgUrl,@RequestParam("userId")String userId) throws UnsupportedEncodingException {
  51 + return JSON.toJSONString(permissFaceService.addFace(imgUrl,userId));
  52 + }
  53 +
  54 +
47 } 55 }
cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java
@@ -115,186 +115,15 @@ public class UserControl { @@ -115,186 +115,15 @@ public class UserControl {
115 @RequestMapping(value = "checkFace", method = RequestMethod.GET) 115 @RequestMapping(value = "checkFace", method = RequestMethod.GET)
116 @ApiOperation("在线活体检测") 116 @ApiOperation("在线活体检测")
117 public boolean checkFace(@RequestParam("url") String httpurl) { 117 public boolean checkFace(@RequestParam("url") String httpurl) {
118 - // 请求url  
119 - String url = "https://aip.baidubce.com/rest/2.0/face/v3/faceverify";  
120 - try {  
121 -  
122 - List list = new ArrayList();  
123 - Map<String, String> map = new HashMap<>();  
124 - String image_type = "";  
125 - String imgFilePath = httpurl;  
126 - File target = new File("./huoti/");  
127 - if (!target.exists()) target.mkdirs();  
128 - File target1 = new File(target.getAbsolutePath(), new File(httpurl).getName());  
129 - if (httpurl.startsWith("http")) image_type = "URL";  
130 - else {  
131 - CompressPic.CompressPic(httpurl, target1.getAbsolutePath(), "");//压缩后的图片  
132 - image_type = "BASE64";  
133 - httpurl = Base64Util.encode(image2byte(target1.getAbsolutePath()));  
134 - }  
135 - map.put("image", httpurl);  
136 - map.put("image_type", image_type);  
137 -// map.put("face_field","");  
138 -// map.put("option","GATE");  
139 - list.add(map);  
140 - String param = GsonUtils.toJson(list);  
141 - // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。  
142 - String accessToken = getAuth();  
143 -  
144 - String result1 = HttpUtil.post(url, accessToken, "application/json", param);  
145 - JSONObject jsonObject = new JSONObject(result1);  
146 - String error_msg = jsonObject.optString("error_msg");  
147 - JSONObject result = jsonObject.optJSONObject("result");  
148 - if (error_msg.equals("SUCCESS")) {  
149 - double face_liveness = result.optDouble("face_liveness", 0.00);//活体分数值  
150 - JSONArray face_list = result.optJSONArray("face_list");  
151 - JSONObject location = face_list.optJSONObject(0).optJSONObject("location");  
152 - double rotation = location.optDouble("rotation", 0.0);//竖直方向旋转角度  
153 - System.out.println(" face_liveness:" + face_liveness);  
154 - if (face_liveness > 0.4) {  
155 - int angel = 0;  
156 - if (45 < rotation && rotation < 135) {//右向横图,需要旋转270度  
157 - System.out.println("旋转270度");  
158 - angel = 270;  
159 - } else if (rotation > -135 && rotation < -45) {//左向横图,需要旋转90度  
160 - System.out.println("旋转90度");  
161 - angel = 90;  
162 - } else if (rotation >= -180 && rotation <= -135 || rotation >= 135 && rotation <= 180) {//倒向图片,需要旋转180度  
163 - System.out.println("旋转180度");  
164 - angel = 180;  
165 - }  
166 - System.out.println("图片检验成功");  
167 - FileUtils.getInstance().writeLogs("检测成功:" + imgFilePath, FileUtils.checkSuc);  
168 - //E:\wwwhtdocs\SmartCampus\face17e50\School  
169 - //http://campus.myjxt.com//face17e5/School861/Student/GBZX20171134.jpg  
170 - //F:\wwwroot\smartcampus\face17e5  
171 -// imgFilePath =httpurl.replace("http://campus.myjxt.com","E:\\wwwhtdocs\\SmartCampus");  
172 -// imgFilePath = httpurl.replace("http://60.190.202.57:1000","F:\\wwwroot\\smartcampus");  
173 -// System.out.println("图片是否存在:" + imgFilePath);  
174 - if (angel != 0)  
175 - ImageUtils.rotatePhonePhoto(imgFilePath, angel);  
176 - return true;  
177 - } else {  
178 - FileUtils.getInstance().writeLogs("检测失败,活体分数:" + face_liveness + " " + imgFilePath, FileUtils.checkFail);  
179 - System.out.println("图片不合格" + imgFilePath);  
180 - deleteImgFile(imgFilePath);  
181 - return false;  
182 - }  
183 - } else {  
184 - System.out.println("检测失败");  
185 - FileUtils.getInstance().writeLogs("检测失败:" + error_msg + imgFilePath, FileUtils.checkFail);  
186 - deleteImgFile(imgFilePath);  
187 - return false;  
188 - }  
189 - } catch (Exception e) {  
190 - e.printStackTrace();  
191 - }  
192 - return true;  
193 - }  
194 118
195 - private boolean deleteImgFile(String imgFilePath) {  
196 - imgFilePath = imgFilePath.replace("http://campus.myjxt.com", "E:\\wwwhtdocs\\SmartCampus");  
197 - File file = new File(imgFilePath);  
198 - if (file.exists()) {  
199 - return file.delete();  
200 - }  
201 - return false;  
202 - } 119 + return BaiduUtils.getBaiduUtils().checkImg(httpurl);
203 120
204 - //图片到byte数组  
205 - public byte[] image2byte(String path) {  
206 - byte[] data = null;  
207 - FileImageInputStream input = null;  
208 - try {  
209 - input = new FileImageInputStream(new File(path));  
210 - ByteArrayOutputStream output = new ByteArrayOutputStream();  
211 - byte[] buf = new byte[1024];  
212 - int numBytesRead = 0;  
213 - while ((numBytesRead = input.read(buf)) != -1) {  
214 - output.write(buf, 0, numBytesRead);  
215 - }  
216 - data = output.toByteArray();  
217 - output.close();  
218 - input.close();  
219 - } catch (FileNotFoundException ex1) {  
220 - ex1.printStackTrace();  
221 - } catch (IOException ex1) {  
222 - ex1.printStackTrace();  
223 - }  
224 - return data;  
225 } 121 }
226 122
227 - /**  
228 - * 获取权限token  
229 - *  
230 - * @return 返回示例:  
231 - * {  
232 - * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",  
233 - * "expires_in": 2592000  
234 - * }  
235 - */  
236 - public String getAuth() {  
237 - // 官网获取的 API Key 更新为你注册的  
238 - String clientId = "u6rV4YxRZmwzKj56N0DCW8eO";  
239 - // 官网获取的 Secret Key 更新为你注册的  
240 - String clientSecret = "Krp3KhmIBdnNEsRa1LavMHuZl0KhQGVm";  
241 - return getAuth(clientId, clientSecret);  
242 - }  
243 123
244 - /**  
245 - * 获取API访问token  
246 - * 该token有一定的有效期,需要自行管理,当失效时需重新获取.  
247 - *  
248 - * @param ak - 百度云官网获取的 API Key  
249 - * @param sk - 百度云官网获取的 Securet Key  
250 - * @return assess_token 示例:  
251 - * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"  
252 - */  
253 - public static String getAuth(String ak, String sk) {  
254 - // 获取token地址  
255 - String authHost = "https://aip.baidubce.com/oauth/2.0/token?";  
256 - String getAccessTokenUrl = authHost  
257 - // 1. grant_type为固定参数  
258 - + "grant_type=client_credentials"  
259 - // 2. 官网获取的 API Key  
260 - + "&client_id=" + ak  
261 - // 3. 官网获取的 Secret Key  
262 - + "&client_secret=" + sk;  
263 - try {  
264 - URL realUrl = new URL(getAccessTokenUrl);  
265 - // 打开和URL之间的连接  
266 - HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();  
267 - connection.setRequestMethod("GET");  
268 - connection.connect();  
269 - // 获取所有响应头字段  
270 - Map<String, List<String>> map = connection.getHeaderFields();  
271 - // 遍历所有的响应头字段  
272 -// for (String key : map.keySet()) {  
273 -// System.err.println(key + "--->" + map.get(key));  
274 -// }  
275 - // 定义 BufferedReader输入流来读取URL的响应  
276 - BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));  
277 - String result = "";  
278 - String line;  
279 - while ((line = in.readLine()) != null) {  
280 - result += line;  
281 - }  
282 - /**  
283 - * 返回结果示例  
284 - */  
285 -// System.err.println("result:" + result);  
286 - JSONObject jsonObject = new JSONObject(result);  
287 - String access_token = jsonObject.getString("access_token");  
288 - return access_token;  
289 - } catch (Exception e) {  
290 - System.err.printf("获取token失败!");  
291 - e.printStackTrace(System.err);  
292 - }  
293 - return null;  
294 - }  
295 124
296 125
297 - @RequestMapping(value = "tranpic", method = RequestMethod.GET) 126 + /*@RequestMapping(value = "tranpic", method = RequestMethod.GET)
298 @ApiOperation("旋转图片") 127 @ApiOperation("旋转图片")
299 public void tranPic(@RequestParam("path") String httpurl) { 128 public void tranPic(@RequestParam("path") String httpurl) {
300 // 请求url 129 // 请求url
@@ -366,7 +195,7 @@ public class UserControl { @@ -366,7 +195,7 @@ public class UserControl {
366 } catch (Exception e) { 195 } catch (Exception e) {
367 e.printStackTrace(); 196 e.printStackTrace();
368 } 197 }
369 - } 198 + }*/
370 199
371 // @RequestMapping(value = "deleteFace", method = RequestMethod.GET) 200 // @RequestMapping(value = "deleteFace", method = RequestMethod.GET)
372 // @ApiOperation("删除人脸") 201 // @ApiOperation("删除人脸")
@@ -377,7 +206,7 @@ public class UserControl { @@ -377,7 +206,7 @@ public class UserControl {
377 // } 206 // }
378 207
379 208
380 - @RequestMapping(value = "FaceSearch", method = RequestMethod.POST) 209 + /* @RequestMapping(value = "FaceSearch", method = RequestMethod.POST)
381 @ApiOperation("人脸搜索") 210 @ApiOperation("人脸搜索")
382 public String FaceSearch(@RequestPart("file") MultipartFile file) { 211 public String FaceSearch(@RequestPart("file") MultipartFile file) {
383 212
@@ -401,7 +230,7 @@ public class UserControl { @@ -401,7 +230,7 @@ public class UserControl {
401 } 230 }
402 return null; 231 return null;
403 232
404 - } 233 + }*/
405 234
406 235
407 @RequestMapping(value = "movePic", method = RequestMethod.GET) 236 @RequestMapping(value = "movePic", method = RequestMethod.GET)
@@ -451,7 +280,7 @@ public class UserControl { @@ -451,7 +280,7 @@ public class UserControl {
451 280
452 } 281 }
453 282
454 - @RequestMapping(value = "translatePic", method = RequestMethod.POST) 283 + /* @RequestMapping(value = "translatePic", method = RequestMethod.POST)
455 @ApiOperation("图片转文字") 284 @ApiOperation("图片转文字")
456 public String translatePic(@RequestPart MultipartFile file) { 285 public String translatePic(@RequestPart MultipartFile file) {
457 try { 286 try {
@@ -479,13 +308,13 @@ public class UserControl { @@ -479,13 +308,13 @@ public class UserControl {
479 e.printStackTrace(); 308 e.printStackTrace();
480 } 309 }
481 return "解析失败"; 310 return "解析失败";
482 - } 311 + }*/
483 312
484 313
485 private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" + AuthService.getAuth(); 314 private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" + AuthService.getAuth();
486 // + AuthService.getAuth(); 315 // + AuthService.getAuth();
487 316
488 - private String getAnswer(String imgUrl, int type) { 317 + /* private String getAnswer(String imgUrl, int type) {
489 RestTemplate restTemplate = new RestTemplate(); 318 RestTemplate restTemplate = new RestTemplate();
490 319
491 HttpHeaders headers = new HttpHeaders(); 320 HttpHeaders headers = new HttpHeaders();
@@ -521,6 +350,6 @@ public class UserControl { @@ -521,6 +350,6 @@ public class UserControl {
521 System.out.println("result:" + stringBuilder.toString()); 350 System.out.println("result:" + stringBuilder.toString());
522 } 351 }
523 return stringBuilder.toString().equals("") ? "" : stringBuilder.toString(); 352 return stringBuilder.toString().equals("") ? "" : stringBuilder.toString();
524 - } 353 + }*/
525 354
526 } 355 }
cloud/dahua/src/main/java/com/example/dahua/dao/UserDao.java
@@ -23,6 +23,9 @@ public interface UserDao { @@ -23,6 +23,9 @@ public interface UserDao {
23 @Select(" select Top(1)* from SZ_V_School_Student where school_id = #{school_id} and studentcode = #{studentcode}") 23 @Select(" select Top(1)* from SZ_V_School_Student where school_id = #{school_id} and studentcode = #{studentcode}")
24 UserInfoBean getUserInfo(@Param("school_id") String school_id, @Param("studentcode") String studentcode); 24 UserInfoBean getUserInfo(@Param("school_id") String school_id, @Param("studentcode") String studentcode);
25 25
  26 + @Select("select * from SZ_V_School_Student where school_id = 1066 and class_id between 78506 and 78514")
  27 + List<UserInfoBean> getStuUserInfos();
  28 +
26 @Select(" select Top(1)* from SZ_V_School_Teacher where school_id = #{school_id} and num = #{num}") 29 @Select(" select Top(1)* from SZ_V_School_Teacher where school_id = #{school_id} and num = #{num}")
27 TeacherBean getTeacher(@Param("school_id") String school_id, @Param("num") String num); 30 TeacherBean getTeacher(@Param("school_id") String school_id, @Param("num") String num);
28 31
@@ -88,6 +91,9 @@ public interface UserDao { @@ -88,6 +91,9 @@ public interface UserDao {
88 @Select("select * from SZ_Attendance where clint_type = #{clint_type} and school_id = #{school_id}") 91 @Select("select * from SZ_Attendance where clint_type = #{clint_type} and school_id = #{school_id}")
89 List<AttendanceBean> selectDeviceWithschool_id(@Param("clint_type") String clint_type, @Param("school_id") String school_id); 92 List<AttendanceBean> selectDeviceWithschool_id(@Param("clint_type") String clint_type, @Param("school_id") String school_id);
90 93
  94 + @Select("select * from SZ_Attendance where school_id = #{school_id}")
  95 + List<AttendanceBean> getAllDevices(@Param("school_id") String school_id);
  96 +
91 @Select("select * from SZ_V_School_Student where school_id = #{school_id} and len(photo)>0 and len(student_num)>0") 97 @Select("select * from SZ_V_School_Student where school_id = #{school_id} and len(photo)>0 and len(student_num)>0")
92 List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id") String school_id); 98 List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id") String school_id);
93 99
@@ -118,4 +124,13 @@ public interface UserDao { @@ -118,4 +124,13 @@ public interface UserDao {
118 124
119 @Select(" select * from SZ_V_School_Teacher where school_id = #{school_id}") 125 @Select(" select * from SZ_V_School_Teacher where school_id = #{school_id}")
120 List<TeacherBean> getTeachers(@Param("school_id") String school_id); 126 List<TeacherBean> getTeachers(@Param("school_id") String school_id);
  127 +
  128 + @Select("select * from SZ_User where user_id =#{userId} and state = 1")
  129 + void getUserWidthUserId(@Param("userId") String userId);
  130 +
  131 + @Select("select * from SZ_V_School_Student where user_id = #{userId}")
  132 + List<StudentBean> getStudentWithUserId(@Param("userId")String userId);
  133 +
  134 + @Select("select * from SZ_V_School_Teacher where user_id = #{userId}")
  135 + List<TeacherBean> getTeaWithUserId(@Param("userId")String userId);
121 } 136 }
cloud/dahua/src/main/java/com/example/dahua/service/PermissFaceService.java
@@ -16,4 +16,5 @@ public interface PermissFaceService { @@ -16,4 +16,5 @@ public interface PermissFaceService {
16 public ResponseBeanList<PermissionFaceBean> getPermissionDetail(int permissionId); 16 public ResponseBeanList<PermissionFaceBean> getPermissionDetail(int permissionId);
17 17
18 18
  19 + ResponseBean<String> addFace(String imgUrl, String userId);
19 } 20 }
cloud/dahua/src/main/java/com/example/dahua/service/imp/PermissFaceServiceImp.java
@@ -5,12 +5,22 @@ import com.example.dahua.bean.*; @@ -5,12 +5,22 @@ import com.example.dahua.bean.*;
5 import com.example.dahua.dao.PermissionFaceDao; 5 import com.example.dahua.dao.PermissionFaceDao;
6 import com.example.dahua.dao.UserDao; 6 import com.example.dahua.dao.UserDao;
7 import com.example.dahua.service.PermissFaceService; 7 import com.example.dahua.service.PermissFaceService;
  8 +import com.example.dahua.utils.BaiduUtils;
  9 +import com.example.dahua.utils.HttpUtil;
8 import com.example.dahua.utils.HttpUtils; 10 import com.example.dahua.utils.HttpUtils;
9 import lombok.extern.slf4j.Slf4j; 11 import lombok.extern.slf4j.Slf4j;
10 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.http.HttpMethod;
  14 +import org.springframework.http.ResponseEntity;
11 import org.springframework.stereotype.Service; 15 import org.springframework.stereotype.Service;
12 import org.springframework.util.StringUtils; 16 import org.springframework.util.StringUtils;
  17 +import org.springframework.web.client.RestTemplate;
13 18
  19 +import java.io.File;
  20 +import java.io.FileOutputStream;
  21 +import java.io.IOException;
  22 +import java.net.URI;
  23 +import java.net.URISyntaxException;
14 import java.util.List; 24 import java.util.List;
15 25
16 @Slf4j 26 @Slf4j
@@ -114,8 +124,6 @@ public class PermissFaceServiceImp implements PermissFaceService { @@ -114,8 +124,6 @@ public class PermissFaceServiceImp implements PermissFaceService {
114 } 124 }
115 125
116 126
117 -  
118 -  
119 @Override 127 @Override
120 public ResponseBeanList<PermissionFaceBean> getPermissions(int schoolId) { 128 public ResponseBeanList<PermissionFaceBean> getPermissions(int schoolId) {
121 ResponseBeanList responseBeanList = new ResponseBeanList(); 129 ResponseBeanList responseBeanList = new ResponseBeanList();
@@ -149,4 +157,93 @@ public class PermissFaceServiceImp implements PermissFaceService { @@ -149,4 +157,93 @@ public class PermissFaceServiceImp implements PermissFaceService {
149 } 157 }
150 return responseBeanList; 158 return responseBeanList;
151 } 159 }
  160 +
  161 + @Override
  162 + public ResponseBean<String> addFace(String imgUrl, String userId) {
  163 +
  164 + RestTemplate restTemplate = new RestTemplate();
  165 + try {
  166 + URI uri = new URI(imgUrl);
  167 + ResponseEntity<byte[]> responseEntity = restTemplate.exchange(uri, HttpMethod.GET, null, byte[].class);
  168 +
  169 + byte[] bytes = responseEntity.getBody();
  170 +
  171 + String savePath = "./imgsave/";
  172 + File saveFile = new File(savePath);
  173 + if (!saveFile.exists()) saveFile.mkdirs();
  174 + File saveImgFile = new File(savePath, System.currentTimeMillis() + ".jpg");
  175 + if (!saveImgFile.exists()) saveImgFile.createNewFile();
  176 + FileOutputStream fileOutputStream = new FileOutputStream(saveImgFile);
  177 +
  178 + fileOutputStream.write(bytes);
  179 +
  180 + //检测图片
  181 + BaiduUtils.getBaiduUtils().checkImg(saveImgFile.getAbsolutePath());
  182 +
  183 + List<StudentBean> studentBeans = userDao.getStudentWithUserId(userId);
  184 +
  185 + if (null != studentBeans && studentBeans.size() > 0) {
  186 + log.error("学生下发");
  187 + for (int i = 0; i < studentBeans.size(); i++) {
  188 + StudentBean studentBean = studentBeans.get(i);
  189 + int schoolId = studentBean.getSchool_id();
  190 + uploadImgs(saveImgFile, schoolId + "", studentBean.getStudentcode(), 2, studentBean.getCard(), studentBean.getName());
  191 + }
  192 +
  193 + } else {
  194 + List<TeacherBean> teacherBeans = userDao.getTeaWithUserId(userId);
  195 +log.error("教师下发");
  196 + if (null != teacherBeans && teacherBeans.size() > 0) {
  197 +
  198 + for (int i = 0; i < teacherBeans.size(); i++) {
  199 + TeacherBean teacherBean = teacherBeans.get(i);
  200 +
  201 + String schoolId = teacherBean.getSchool_id();
  202 + uploadImgs(saveImgFile, schoolId, teacherBean.getNum(), 1, teacherBean.getTeacher_num(), teacherBean.getName());
  203 +
  204 + }
  205 +
  206 + }
  207 +
  208 + }
  209 +
  210 + fileOutputStream.close();
  211 + } catch (URISyntaxException | IOException e) {
  212 + e.printStackTrace();
  213 + }
  214 +
  215 +// userDao.getUserWidthUserId(userId);
  216 +
  217 +// HttpUtils.uploadImgs()
  218 +
  219 + ResponseBean responseBean = new ResponseBean();
  220 +
  221 + responseBean.setData(1);
  222 + responseBean.setMessage("下发成功");
  223 + responseBean.setData(true);
  224 +
  225 + return responseBean;
  226 + }
  227 +
  228 + private void uploadImgs(File saveImgFile, String schoolId, String studentcode, int userType, String card, String name) {
  229 + List<AttendanceBean> attendanceBeanList = userDao.getAllDevices(schoolId + "");
  230 + if (null != attendanceBeanList && attendanceBeanList.size() > 0)
  231 + for (int i = 0; i < attendanceBeanList.size(); i++) {
  232 + AttendanceBean attendanceBean = attendanceBeanList.get(i);
  233 +
  234 + String clintType = attendanceBean.getClint_type();
  235 + //根据设备类型上传人脸
  236 + log.error("设备:{}",clintType);
  237 + if (clintType.equals("18") || clintType.equals("28")) {
  238 + HttpUtils.uploadImg2HK(saveImgFile.getAbsolutePath(), card, name, attendanceBean.getClint_id(), String.valueOf(userType));
  239 +
  240 + } else if (clintType.equals("22") || clintType.equals("29")) {
  241 + HttpUtils.uploadImgs(saveImgFile, schoolId, studentcode
  242 + , clintType, userType);
  243 + }
  244 +
  245 + }
  246 +
  247 +
  248 + }
152 } 249 }
cloud/dahua/src/main/java/com/example/dahua/utils/BaiduUtils.java 0 → 100644
@@ -0,0 +1,211 @@ @@ -0,0 +1,211 @@
  1 +package com.example.dahua.utils;
  2 +
  3 +import com.example.dahua.async.ImageUtils;
  4 +import com.example.dahua.lib.CompressPic;
  5 +import org.json.JSONArray;
  6 +import org.json.JSONObject;
  7 +
  8 +import javax.imageio.stream.FileImageInputStream;
  9 +import java.io.*;
  10 +import java.net.HttpURLConnection;
  11 +import java.net.URL;
  12 +import java.util.ArrayList;
  13 +import java.util.HashMap;
  14 +import java.util.List;
  15 +import java.util.Map;
  16 +
  17 +public class BaiduUtils {
  18 +
  19 + private static BaiduUtils baiduUtils;
  20 +
  21 + public static BaiduUtils getBaiduUtils(){
  22 +
  23 + if (null==baiduUtils){
  24 + synchronized (BaiduUtils.class){
  25 + if (null==baiduUtils)baiduUtils=new BaiduUtils();
  26 + }
  27 + }
  28 + return baiduUtils;
  29 + }
  30 +
  31 +
  32 + public boolean checkImg(String httpurl){
  33 + // 请求url
  34 + String url = "https://aip.baidubce.com/rest/2.0/face/v3/faceverify";
  35 + try {
  36 +
  37 + List list = new ArrayList();
  38 + Map<String, String> map = new HashMap<>();
  39 + String image_type = "";
  40 + String imgFilePath = httpurl;
  41 + File target = new File("./huoti/");
  42 + if (!target.exists()) target.mkdirs();
  43 + File target1 = new File(target.getAbsolutePath(), new File(httpurl).getName());
  44 + if (httpurl.startsWith("http")) image_type = "URL";
  45 + else {
  46 + CompressPic.CompressPic(httpurl, target1.getAbsolutePath(), "");//压缩后的图片
  47 + image_type = "BASE64";
  48 + httpurl = Base64Util.encode(image2byte(target1.getAbsolutePath()));
  49 + }
  50 + map.put("image", httpurl);
  51 + map.put("image_type", image_type);
  52 +// map.put("face_field","");
  53 +// map.put("option","GATE");
  54 + list.add(map);
  55 + String param = GsonUtils.toJson(list);
  56 + // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
  57 + String accessToken = getAuth();
  58 +
  59 + String result1 = HttpUtil.post(url, accessToken, "application/json", param);
  60 + JSONObject jsonObject = new JSONObject(result1);
  61 + String error_msg = jsonObject.optString("error_msg");
  62 + JSONObject result = jsonObject.optJSONObject("result");
  63 + if (error_msg.equals("SUCCESS")) {
  64 + double face_liveness = result.optDouble("face_liveness", 0.00);//活体分数值
  65 + JSONArray face_list = result.optJSONArray("face_list");
  66 + JSONObject location = face_list.optJSONObject(0).optJSONObject("location");
  67 + double rotation = location.optDouble("rotation", 0.0);//竖直方向旋转角度
  68 + System.out.println(" face_liveness:" + face_liveness);
  69 + if (face_liveness > 0.4) {
  70 + int angel = 0;
  71 + if (45 < rotation && rotation < 135) {//右向横图,需要旋转270度
  72 + System.out.println("旋转270度");
  73 + angel = 270;
  74 + } else if (rotation > -135 && rotation < -45) {//左向横图,需要旋转90度
  75 + System.out.println("旋转90度");
  76 + angel = 90;
  77 + } else if (rotation >= -180 && rotation <= -135 || rotation >= 135 && rotation <= 180) {//倒向图片,需要旋转180度
  78 + System.out.println("旋转180度");
  79 + angel = 180;
  80 + }
  81 + System.out.println("图片检验成功");
  82 + FileUtils.getInstance().writeLogs("检测成功:" + imgFilePath, FileUtils.checkSuc);
  83 + //E:\wwwhtdocs\SmartCampus\face17e50\School
  84 + //http://campus.myjxt.com//face17e5/School861/Student/GBZX20171134.jpg
  85 + //F:\wwwroot\smartcampus\face17e5
  86 +// imgFilePath =httpurl.replace("http://campus.myjxt.com","E:\\wwwhtdocs\\SmartCampus");
  87 +// imgFilePath = httpurl.replace("http://60.190.202.57:1000","F:\\wwwroot\\smartcampus");
  88 +// System.out.println("图片是否存在:" + imgFilePath);
  89 + if (angel != 0)
  90 + ImageUtils.rotatePhonePhoto(imgFilePath, angel);
  91 + return true;
  92 + } else {
  93 + FileUtils.getInstance().writeLogs("检测失败,活体分数:" + face_liveness + " " + imgFilePath, FileUtils.checkFail);
  94 + System.out.println("图片不合格" + imgFilePath);
  95 + deleteImgFile(imgFilePath);
  96 + return false;
  97 + }
  98 + } else {
  99 + System.out.println("检测失败");
  100 + FileUtils.getInstance().writeLogs("检测失败:" + error_msg + imgFilePath, FileUtils.checkFail);
  101 + deleteImgFile(imgFilePath);
  102 + return false;
  103 + }
  104 + } catch (Exception e) {
  105 + e.printStackTrace();
  106 + }
  107 + return true;
  108 + }
  109 +
  110 + //图片到byte数组
  111 + public byte[] image2byte(String path) {
  112 + byte[] data = null;
  113 + FileImageInputStream input = null;
  114 + try {
  115 + input = new FileImageInputStream(new File(path));
  116 + ByteArrayOutputStream output = new ByteArrayOutputStream();
  117 + byte[] buf = new byte[1024];
  118 + int numBytesRead = 0;
  119 + while ((numBytesRead = input.read(buf)) != -1) {
  120 + output.write(buf, 0, numBytesRead);
  121 + }
  122 + data = output.toByteArray();
  123 + output.close();
  124 + input.close();
  125 + } catch (FileNotFoundException ex1) {
  126 + ex1.printStackTrace();
  127 + } catch (IOException ex1) {
  128 + ex1.printStackTrace();
  129 + }
  130 + return data;
  131 + }
  132 +
  133 + private boolean deleteImgFile(String imgFilePath) {
  134 + imgFilePath = imgFilePath.replace("http://campus.myjxt.com", "E:\\wwwhtdocs\\SmartCampus");
  135 + File file = new File(imgFilePath);
  136 + if (file.exists()) {
  137 + return file.delete();
  138 + }
  139 + return false;
  140 + }
  141 +
  142 + /**
  143 + * 获取权限token
  144 + *
  145 + * @return 返回示例:
  146 + * {
  147 + * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
  148 + * "expires_in": 2592000
  149 + * }
  150 + */
  151 + public String getAuth() {
  152 + // 官网获取的 API Key 更新为你注册的
  153 + String clientId = "u6rV4YxRZmwzKj56N0DCW8eO";
  154 + // 官网获取的 Secret Key 更新为你注册的
  155 + String clientSecret = "Krp3KhmIBdnNEsRa1LavMHuZl0KhQGVm";
  156 + return getAuth(clientId, clientSecret);
  157 + }
  158 +
  159 + /**
  160 + * 获取API访问token
  161 + * 该token有一定的有效期,需要自行管理,当失效时需重新获取.
  162 + *
  163 + * @param ak - 百度云官网获取的 API Key
  164 + * @param sk - 百度云官网获取的 Securet Key
  165 + * @return assess_token 示例:
  166 + * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
  167 + */
  168 + public static String getAuth(String ak, String sk) {
  169 + // 获取token地址
  170 + String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
  171 + String getAccessTokenUrl = authHost
  172 + // 1. grant_type为固定参数
  173 + + "grant_type=client_credentials"
  174 + // 2. 官网获取的 API Key
  175 + + "&client_id=" + ak
  176 + // 3. 官网获取的 Secret Key
  177 + + "&client_secret=" + sk;
  178 + try {
  179 + URL realUrl = new URL(getAccessTokenUrl);
  180 + // 打开和URL之间的连接
  181 + HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
  182 + connection.setRequestMethod("GET");
  183 + connection.connect();
  184 + // 获取所有响应头字段
  185 + Map<String, List<String>> map = connection.getHeaderFields();
  186 + // 遍历所有的响应头字段
  187 +// for (String key : map.keySet()) {
  188 +// System.err.println(key + "--->" + map.get(key));
  189 +// }
  190 + // 定义 BufferedReader输入流来读取URL的响应
  191 + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
  192 + String result = "";
  193 + String line;
  194 + while ((line = in.readLine()) != null) {
  195 + result += line;
  196 + }
  197 + /**
  198 + * 返回结果示例
  199 + */
  200 +// System.err.println("result:" + result);
  201 + JSONObject jsonObject = new JSONObject(result);
  202 + String access_token = jsonObject.getString("access_token");
  203 + return access_token;
  204 + } catch (Exception e) {
  205 + System.err.printf("获取token失败!");
  206 + e.printStackTrace(System.err);
  207 + }
  208 + return null;
  209 + }
  210 +
  211 +}
cloud/dahua/src/main/java/com/example/dahua/utils/HttpUtils.java
@@ -63,6 +63,20 @@ public class HttpUtils { @@ -63,6 +63,20 @@ public class HttpUtils {
63 } 63 }
64 64
65 65
  66 + public static String uploadImg2HK(String filePath,String card,String name,String deviceId,String userType){
  67 +
  68 + String url = String.format("http://114.55.30.100:8089/facereco/sendCardAndImg1?filePath=%s&card=%s&name=%s&userType=%s&deviceId=%s",
  69 + filePath,card,name,userType,deviceId);
  70 +
  71 + RestTemplate restTemplate = new RestTemplate();
  72 +
  73 + ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
  74 +
  75 + System.out.println("responseEntity:" + responseEntity.getBody());
  76 + return responseEntity.getBody();
  77 + }
  78 +
  79 +
66 public static boolean imgsSend(String schoolId, int type) { 80 public static boolean imgsSend(String schoolId, int type) {
67 String url = "http://121.40.109.21:8991/file/imgsSend?schoolId=" + schoolId + "&type=" + type; 81 String url = "http://121.40.109.21:8991/file/imgsSend?schoolId=" + schoolId + "&type=" + type;
68 RestTemplate restTemplate = new RestTemplate(); 82 RestTemplate restTemplate = new RestTemplate();
cloud/dahua/src/test/java/com/example/dahua/DahuaApplicationTests.java
@@ -23,6 +23,7 @@ import org.springframework.http.ResponseEntity; @@ -23,6 +23,7 @@ import org.springframework.http.ResponseEntity;
23 import org.springframework.test.context.junit4.SpringRunner; 23 import org.springframework.test.context.junit4.SpringRunner;
24 import org.springframework.web.client.RestTemplate; 24 import org.springframework.web.client.RestTemplate;
25 25
  26 +import java.io.*;
26 import java.util.*; 27 import java.util.*;
27 28
28 @RunWith(SpringRunner.class) 29 @RunWith(SpringRunner.class)
@@ -368,7 +369,7 @@ public class DahuaApplicationTests { @@ -368,7 +369,7 @@ public class DahuaApplicationTests {
368 sendCards.setStartTime("2020-06-23 00:07:59"); 369 sendCards.setStartTime("2020-06-23 00:07:59");
369 sendCards.setType("1"); 370 sendCards.setType("1");
370 371
371 - Map<String, String> body = new HashMap<String,String>(); 372 + Map<String, String> body = new HashMap<String, String>();
372 body.put("cardNo", teacherBean.getTeacher_num()); 373 body.put("cardNo", teacherBean.getTeacher_num());
373 body.put("endTime", "2030-06-23T00:07:59"); 374 body.put("endTime", "2030-06-23T00:07:59");
374 body.put("id", "5"); 375 body.put("id", "5");
@@ -413,7 +414,7 @@ public class DahuaApplicationTests { @@ -413,7 +414,7 @@ public class DahuaApplicationTests {
413 for (int j = 0; j < deviceids.length; j++) { 414 for (int j = 0; j < deviceids.length; j++) {
414 String deviceId = deviceids[j]; 415 String deviceId = deviceids[j];
415 416
416 - Map<String, String> body = new HashMap<String,String>(); 417 + Map<String, String> body = new HashMap<String, String>();
417 body.put("cardNo", teacherBean.getStudent_num()); 418 body.put("cardNo", teacherBean.getStudent_num());
418 body.put("id", "8"); 419 body.put("id", "8");
419 body.put("sn", deviceId); 420 body.put("sn", deviceId);
@@ -454,7 +455,7 @@ public class DahuaApplicationTests { @@ -454,7 +455,7 @@ public class DahuaApplicationTests {
454 for (int j = 0; j < deviceids.length; j++) { 455 for (int j = 0; j < deviceids.length; j++) {
455 String deviceId = deviceids[j]; 456 String deviceId = deviceids[j];
456 457
457 - Map<String, String> body = new HashMap<String,String>(); 458 + Map<String, String> body = new HashMap<String, String>();
458 body.put("cardNo", teacherBean.getStudent_num()); 459 body.put("cardNo", teacherBean.getStudent_num());
459 body.put("id", "8"); 460 body.put("id", "8");
460 body.put("sn", deviceId); 461 body.put("sn", deviceId);
@@ -486,14 +487,37 @@ public class DahuaApplicationTests { @@ -486,14 +487,37 @@ public class DahuaApplicationTests {
486 // 487 //
487 // System.out.println("list:" + list.toString()); 488 // System.out.println("list:" + list.toString());
488 489
489 - List<AttendanceBean> attendanceBeanList = userDao.getAttendanceBeans("479","4"); 490 +// List<AttendanceBean> attendanceBeanList = userDao.getAttendanceBeans("479","4");
  491 +//
  492 +// for (int i = 0; i < attendanceBeanList.size(); i++) {
  493 +// AttendanceBean attendanceBean = attendanceBeanList.get(i);
  494 +//
  495 +//
  496 +// }
490 497
491 - for (int i = 0; i < attendanceBeanList.size(); i++) {  
492 - AttendanceBean attendanceBean = attendanceBeanList.get(i); 498 + File file = new File("D:\\新七年级\\名字.txt");
493 499
  500 + try {
  501 + FileReader fileReader = new FileReader(file);
  502 + BufferedReader bufferedReader = new BufferedReader(fileReader);
  503 + List<UserInfoBean> userInfoBeans = userDao.getStuUserInfos();
  504 + String content = null;
  505 + while ((content = bufferedReader.readLine()) != null) {
494 506
495 - } 507 + for (int i = 0; i < userInfoBeans.size(); i++) {
  508 + UserInfoBean userInfoBean = userInfoBeans.get(i);
  509 + if (content.equals(userInfoBean.getName())){
  510 + System.out.println(userInfoBean.getStudentcode()+"\t");
  511 + }
  512 + }
  513 +
  514 + }
496 515
  516 + } catch (FileNotFoundException e) {
  517 + e.printStackTrace();
  518 + } catch (IOException e) {
  519 + e.printStackTrace();
  520 + }
497 521
498 522
499 } 523 }
@@ -506,7 +530,7 @@ public class DahuaApplicationTests { @@ -506,7 +530,7 @@ public class DahuaApplicationTests {
506 530
507 mqttManager.init(); 531 mqttManager.init();
508 532
509 - List<String> stringList = userDao.getAllDecWithSch(479); 533 + List<String> stringList = userDao.getAllDecWithSch(27);
510 System.out.println("stringList:" + stringList.size()); 534 System.out.println("stringList:" + stringList.size());
511 for (int i = 0; i < stringList.size(); i++) { 535 for (int i = 0; i < stringList.size(); i++) {
512 String devId = stringList.get(i); 536 String devId = stringList.get(i);
cloud/haikangface/mvnw
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
19 # ---------------------------------------------------------------------------- 19 # ----------------------------------------------------------------------------
20 20
21 # ---------------------------------------------------------------------------- 21 # ----------------------------------------------------------------------------
22 -# Maven2 Start Up Batch script 22 +# Maven Start Up Batch script
23 # 23 #
24 # Required ENV vars: 24 # Required ENV vars:
25 # ------------------ 25 # ------------------
@@ -114,7 +114,6 @@ if $mingw ; then @@ -114,7 +114,6 @@ if $mingw ; then
114 M2_HOME="`(cd "$M2_HOME"; pwd)`" 114 M2_HOME="`(cd "$M2_HOME"; pwd)`"
115 [ -n "$JAVA_HOME" ] && 115 [ -n "$JAVA_HOME" ] &&
116 JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" 116 JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117 - # TODO classpath?  
118 fi 117 fi
119 118
120 if [ -z "$JAVA_HOME" ]; then 119 if [ -z "$JAVA_HOME" ]; then
@@ -212,7 +211,11 @@ else @@ -212,7 +211,11 @@ else
212 if [ "$MVNW_VERBOSE" = true ]; then 211 if [ "$MVNW_VERBOSE" = true ]; then
213 echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." 212 echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
214 fi 213 fi
215 - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" 214 + if [ -n "$MVNW_REPOURL" ]; then
  215 + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
  216 + else
  217 + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
  218 + fi
216 while IFS="=" read key value; do 219 while IFS="=" read key value; do
217 case "$key" in (wrapperUrl) jarUrl="$value"; break ;; 220 case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
218 esac 221 esac
@@ -221,22 +224,38 @@ else @@ -221,22 +224,38 @@ else
221 echo "Downloading from: $jarUrl" 224 echo "Downloading from: $jarUrl"
222 fi 225 fi
223 wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" 226 wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
  227 + if $cygwin; then
  228 + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
  229 + fi
224 230
225 if command -v wget > /dev/null; then 231 if command -v wget > /dev/null; then
226 if [ "$MVNW_VERBOSE" = true ]; then 232 if [ "$MVNW_VERBOSE" = true ]; then
227 echo "Found wget ... using wget" 233 echo "Found wget ... using wget"
228 fi 234 fi
229 - wget "$jarUrl" -O "$wrapperJarPath" 235 + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
  236 + wget "$jarUrl" -O "$wrapperJarPath"
  237 + else
  238 + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
  239 + fi
230 elif command -v curl > /dev/null; then 240 elif command -v curl > /dev/null; then
231 if [ "$MVNW_VERBOSE" = true ]; then 241 if [ "$MVNW_VERBOSE" = true ]; then
232 echo "Found curl ... using curl" 242 echo "Found curl ... using curl"
233 fi 243 fi
234 - curl -o "$wrapperJarPath" "$jarUrl" 244 + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
  245 + curl -o "$wrapperJarPath" "$jarUrl" -f
  246 + else
  247 + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
  248 + fi
  249 +
235 else 250 else
236 if [ "$MVNW_VERBOSE" = true ]; then 251 if [ "$MVNW_VERBOSE" = true ]; then
237 echo "Falling back to using Java to download" 252 echo "Falling back to using Java to download"
238 fi 253 fi
239 javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" 254 javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
  255 + # For Cygwin, switch paths to Windows format before running javac
  256 + if $cygwin; then
  257 + javaClass=`cygpath --path --windows "$javaClass"`
  258 + fi
240 if [ -e "$javaClass" ]; then 259 if [ -e "$javaClass" ]; then
241 if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then 260 if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
242 if [ "$MVNW_VERBOSE" = true ]; then 261 if [ "$MVNW_VERBOSE" = true ]; then
@@ -277,6 +296,11 @@ if $cygwin; then @@ -277,6 +296,11 @@ if $cygwin; then
277 MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` 296 MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
278 fi 297 fi
279 298
  299 +# Provide a "standardized" way to retrieve the CLI args that will
  300 +# work with both Windows and non-Windows executions.
  301 +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
  302 +export MAVEN_CMD_LINE_ARGS
  303 +
280 WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 304 WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281 305
282 exec "$JAVACMD" \ 306 exec "$JAVACMD" \
cloud/haikangface/mvnw.cmd
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 @REM ---------------------------------------------------------------------------- 18 @REM ----------------------------------------------------------------------------
19 19
20 @REM ---------------------------------------------------------------------------- 20 @REM ----------------------------------------------------------------------------
21 -@REM Maven2 Start Up Batch script 21 +@REM Maven Start Up Batch script
22 @REM 22 @REM
23 @REM Required ENV vars: 23 @REM Required ENV vars:
24 @REM JAVA_HOME - location of a JDK home dir 24 @REM JAVA_HOME - location of a JDK home dir
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 @REM Optional ENV vars 26 @REM Optional ENV vars
27 @REM M2_HOME - location of maven2's installed home dir 27 @REM M2_HOME - location of maven2's installed home dir
28 @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands 28 @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29 -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending 29 +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
30 @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven 30 @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31 @REM e.g. to debug Maven itself, use 31 @REM e.g. to debug Maven itself, use
32 @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 32 @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 @echo off 37 @echo off
38 @REM set title of command window 38 @REM set title of command window
39 title %0 39 title %0
40 -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' 40 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41 @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% 41 @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42 42
43 @REM set %HOME% to equivalent of $HOME 43 @REM set %HOME% to equivalent of $HOME
@@ -120,23 +120,44 @@ SET MAVEN_JAVA_EXE=&quot;%JAVA_HOME%\bin\java.exe&quot; @@ -120,23 +120,44 @@ SET MAVEN_JAVA_EXE=&quot;%JAVA_HOME%\bin\java.exe&quot;
120 set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" 120 set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121 set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain 121 set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122 122
123 -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"  
124 -FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (  
125 - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 123 +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
  124 +
  125 +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
  126 + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
126 ) 127 )
127 128
128 @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central 129 @REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
129 @REM This allows using the maven wrapper in projects that prohibit checking in binary data. 130 @REM This allows using the maven wrapper in projects that prohibit checking in binary data.
130 if exist %WRAPPER_JAR% ( 131 if exist %WRAPPER_JAR% (
131 - echo Found %WRAPPER_JAR% 132 + if "%MVNW_VERBOSE%" == "true" (
  133 + echo Found %WRAPPER_JAR%
  134 + )
132 ) else ( 135 ) else (
133 - echo Couldn't find %WRAPPER_JAR%, downloading it ...  
134 - echo Downloading from: %DOWNLOAD_URL%  
135 - powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"  
136 - echo Finished downloading %WRAPPER_JAR% 136 + if not "%MVNW_REPOURL%" == "" (
  137 + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
  138 + )
  139 + if "%MVNW_VERBOSE%" == "true" (
  140 + echo Couldn't find %WRAPPER_JAR%, downloading it ...
  141 + echo Downloading from: %DOWNLOAD_URL%
  142 + )
  143 +
  144 + powershell -Command "&{"^
  145 + "$webclient = new-object System.Net.WebClient;"^
  146 + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
  147 + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
  148 + "}"^
  149 + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
  150 + "}"
  151 + if "%MVNW_VERBOSE%" == "true" (
  152 + echo Finished downloading %WRAPPER_JAR%
  153 + )
137 ) 154 )
138 @REM End of extension 155 @REM End of extension
139 156
  157 +@REM Provide a "standardized" way to retrieve the CLI args that will
  158 +@REM work with both Windows and non-Windows executions.
  159 +set MAVEN_CMD_LINE_ARGS=%*
  160 +
140 %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* 161 %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
141 if ERRORLEVEL 1 goto error 162 if ERRORLEVEL 1 goto error
142 goto end 163 goto end
cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
1 package com.sincere.haikangface; 1 package com.sincere.haikangface;
2 2
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONArray;
4 import com.alibaba.fastjson.JSONObject; 5 import com.alibaba.fastjson.JSONObject;
5 import com.sincere.haikangface.bean.*; 6 import com.sincere.haikangface.bean.*;
  7 +import com.sincere.haikangface.bean.face.BaiduUserInfoBean;
6 import com.sincere.haikangface.bean.xiaoan.Face_Recoder; 8 import com.sincere.haikangface.bean.xiaoan.Face_Recoder;
7 import com.sincere.haikangface.dao.DeviceDao; 9 import com.sincere.haikangface.dao.DeviceDao;
8 import com.sincere.haikangface.dao.UserDao; 10 import com.sincere.haikangface.dao.UserDao;
@@ -21,8 +23,14 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -21,8 +23,14 @@ import org.springframework.beans.factory.annotation.Autowired;
21 import org.springframework.beans.factory.annotation.Value; 23 import org.springframework.beans.factory.annotation.Value;
22 import org.springframework.boot.ApplicationArguments; 24 import org.springframework.boot.ApplicationArguments;
23 import org.springframework.boot.ApplicationRunner; 25 import org.springframework.boot.ApplicationRunner;
  26 +import org.springframework.core.io.FileSystemResource;
  27 +import org.springframework.http.HttpEntity;
  28 +import org.springframework.http.HttpHeaders;
  29 +import org.springframework.http.MediaType;
24 import org.springframework.http.ResponseEntity; 30 import org.springframework.http.ResponseEntity;
25 import org.springframework.stereotype.Component; 31 import org.springframework.stereotype.Component;
  32 +import org.springframework.util.LinkedMultiValueMap;
  33 +import org.springframework.util.MultiValueMap;
26 import org.springframework.util.StringUtils; 34 import org.springframework.util.StringUtils;
27 import org.springframework.web.client.RestTemplate; 35 import org.springframework.web.client.RestTemplate;
28 36
@@ -30,6 +38,8 @@ import java.io.*; @@ -30,6 +38,8 @@ import java.io.*;
30 import java.net.InetAddress; 38 import java.net.InetAddress;
31 import java.net.UnknownHostException; 39 import java.net.UnknownHostException;
32 import java.nio.ByteBuffer; 40 import java.nio.ByteBuffer;
  41 +import java.text.DecimalFormat;
  42 +import java.text.ParseException;
33 import java.text.SimpleDateFormat; 43 import java.text.SimpleDateFormat;
34 import java.util.Date; 44 import java.util.Date;
35 import java.util.HashMap; 45 import java.util.HashMap;
@@ -54,8 +64,8 @@ public class CMSServer implements ApplicationRunner { @@ -54,8 +64,8 @@ public class CMSServer implements ApplicationRunner {
54 //114.55.30.100 64 //114.55.30.100
55 //120.26.116.253 65 //120.26.116.253
56 // private String ip_cloud = "120.26.116.253"; 66 // private String ip_cloud = "120.26.116.253";
57 - private String ip_cloud = "172.16.2.53";  
58 - // private String ip_cloud = "114.55.30.100"; 67 +// private String ip_cloud = "192.168.71.242";
  68 + private String ip_cloud = "114.55.30.100";
59 private String ip; 69 private String ip;
60 70
61 { 71 {
@@ -144,6 +154,7 @@ public class CMSServer implements ApplicationRunner { @@ -144,6 +154,7 @@ public class CMSServer implements ApplicationRunner {
144 pInBuffer.dwSize = pInBuffer.size(); 154 pInBuffer.dwSize = pInBuffer.size();
145 AttendanceBean attendanceBean = new AttendanceBean(); 155 AttendanceBean attendanceBean = new AttendanceBean();
146 attendanceBean.setClint_id(deviceId); 156 attendanceBean.setClint_id(deviceId);
  157 +
147 if (deviceId.startsWith("ytj")) 158 if (deviceId.startsWith("ytj"))
148 attendanceBean.setClint_type("28"); 159 attendanceBean.setClint_type("28");
149 else 160 else
@@ -291,6 +302,7 @@ public class CMSServer implements ApplicationRunner { @@ -291,6 +302,7 @@ public class CMSServer implements ApplicationRunner {
291 public class PSS_Storage_Callback implements HCEHomeSS.EHomeSSStorageCallBack { 302 public class PSS_Storage_Callback implements HCEHomeSS.EHomeSSStorageCallBack {
292 303
293 public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) { 304 public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) {
  305 + log.error("图片进来:{}" , pFileName);
294 String strPath = "C://EhomePicServer/"; 306 String strPath = "C://EhomePicServer/";
295 // System.out.println("pFileName:" + pFileName); 307 // System.out.println("pFileName:" + pFileName);
296 pFileName = pFileName.replace("_", ""); 308 pFileName = pFileName.replace("_", "");
@@ -335,6 +347,9 @@ public class CMSServer implements ApplicationRunner { @@ -335,6 +347,9 @@ public class CMSServer implements ApplicationRunner {
335 buffers.get(bytes); 347 buffers.get(bytes);
336 fout.write(bytes); 348 fout.write(bytes);
337 fout.close(); 349 fout.close();
  350 +
  351 + sendToKB(strFilePathFile);
  352 +
338 } catch (FileNotFoundException e) { 353 } catch (FileNotFoundException e) {
339 // TODO Auto-generated catch block 354 // TODO Auto-generated catch block
340 e.printStackTrace(); 355 e.printStackTrace();
@@ -354,6 +369,77 @@ public class CMSServer implements ApplicationRunner { @@ -354,6 +369,77 @@ public class CMSServer implements ApplicationRunner {
354 } 369 }
355 } 370 }
356 371
  372 + /**
  373 + * 发送人脸到看板
  374 + *
  375 + * @param strFilePathFile
  376 + */
  377 + public void sendToKB(File strFilePathFile) {
  378 + try {
  379 +
  380 + log.error("开始识别.....");
  381 + String url = "http://120.26.116.253:9214/baiduapi/search/16";
  382 +
  383 + RestTemplate restTemplate = new RestTemplate();
  384 +
  385 + HttpHeaders headers = new HttpHeaders();
  386 + MediaType mediaType = MediaType.parseMediaType(MediaType.MULTIPART_FORM_DATA_VALUE);
  387 + headers.setContentType(mediaType);
  388 + MultiValueMap<String, Object> multiValueMap = new LinkedMultiValueMap<>();
  389 + FileSystemResource fileSystemResource = new FileSystemResource(strFilePathFile);
  390 +
  391 + multiValueMap.add("file ", fileSystemResource);
  392 + HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(multiValueMap, headers);
  393 +
  394 + ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, httpEntity, String.class);
  395 + log.error("识别结果:{}" , responseEntity.getBody());
  396 + JSONObject jsonObject = JSON.parseObject(responseEntity.getBody());
  397 +
  398 + String face = jsonObject.getString("data");
  399 + if (face.startsWith("face"))return;
  400 +
  401 + JSONObject data = jsonObject.getJSONObject("data");
  402 + String error_msg = data.getString("error_msg");
  403 +
  404 + if (error_msg.equals("SUCCESS")) {//识别成功
  405 + JSONObject result = data.getJSONObject("result");
  406 + JSONArray user_list = result.getJSONArray("user_list");
  407 +
  408 + if (user_list != null && user_list.size() > 0) {
  409 +
  410 + for (int i = 0; i < user_list.size(); i++) {
  411 + JSONObject user = user_list.getJSONObject(i);
  412 +
  413 + String user_id = user.getString("user_id");
  414 + String score = user.getString("score");
  415 + double sc = Double.valueOf(score.split("\\.")[0]);
  416 + if (sc >= 60) {
  417 + System.out.println("user_id:" + user_id);
  418 + TeacherBean teacherBean = userDao.getTeacherWithUserId1(user_id);
  419 + if (null != teacherBean) {
  420 + if (TextUtils.isEmpty(teacherBean.getTeacer_num()))teacherBean.setTeacer_num(user_id);
  421 + MqtUtils.getInstance().sendMsg("09EA8EB5142F2964", 1, teacherBean.toString());
  422 + } else {
  423 + System.out.println("用户身份信息不存在");
  424 + }
  425 + }else {
  426 + System.out.println("用户身份信息不存在"+score);
  427 + }
  428 +
  429 + }
  430 +
  431 + }
  432 + } else {
  433 + System.out.println("识别失败:" + error_msg);
  434 + }
  435 + log.error("发送成功.....");
  436 +// System.out.println("responseEntity:"+responseEntity.getBody());
  437 + }catch (Exception e){
  438 + e.printStackTrace();
  439 + }
  440 +
  441 + }
  442 +
357 HCEHomeAlarm.NET_EHOME_ALARM_LISTEN_PARAM net_ehome_alarm_listen_param = new HCEHomeAlarm.NET_EHOME_ALARM_LISTEN_PARAM(); 443 HCEHomeAlarm.NET_EHOME_ALARM_LISTEN_PARAM net_ehome_alarm_listen_param = new HCEHomeAlarm.NET_EHOME_ALARM_LISTEN_PARAM();
358 EHomeMsgCallBack cbEHomeMsgCallBack; 444 EHomeMsgCallBack cbEHomeMsgCallBack;
359 ;//报警监听回调函数实现 445 ;//报警监听回调函数实现
@@ -420,8 +506,8 @@ public class CMSServer implements ApplicationRunner { @@ -420,8 +506,8 @@ public class CMSServer implements ApplicationRunner {
420 strXMLData.read(); 506 strXMLData.read();
421 507
422 String strXML = new String(strXMLData.byValue); 508 String strXML = new String(strXMLData.byValue);
423 - System.out.println(strXML);  
424 - 509 +// System.out.println(strXML);
  510 +// log.error("报警监听:{}",strXML);
425 if (null == alarmUtils) { 511 if (null == alarmUtils) {
426 alarmUtils = new AlarmUtils(deviceDao); 512 alarmUtils = new AlarmUtils(deviceDao);
427 alarmUtils.setCallBack(new AlarmUtils.AlarmCallBack() { 513 alarmUtils.setCallBack(new AlarmUtils.AlarmCallBack() {
@@ -477,7 +563,7 @@ public class CMSServer implements ApplicationRunner { @@ -477,7 +563,7 @@ public class CMSServer implements ApplicationRunner {
477 cardNo = sendRecoderUtils.getCard(card); 563 cardNo = sendRecoderUtils.getCard(card);
478 564
479 StudentBean studentBean = userDao.getStudentWithCard(cardNo); 565 StudentBean studentBean = userDao.getStudentWithCard(cardNo);
480 - 566 + log.error("studentBean:{}",studentBean);
481 if (null != studentBean) { 567 if (null != studentBean) {
482 FileUtils.getInstance().writeLogs(studentBean.getName() + " " + cardNo, FileUtils.facerecoder); 568 FileUtils.getInstance().writeLogs(studentBean.getName() + " " + cardNo, FileUtils.facerecoder);
483 569
@@ -501,7 +587,6 @@ public class CMSServer implements ApplicationRunner { @@ -501,7 +587,6 @@ public class CMSServer implements ApplicationRunner {
501 } else { 587 } else {
502 //教师点名 588 //教师点名
503 isTeacher(cardNo, deviceID); 589 isTeacher(cardNo, deviceID);
504 - FileUtils.getInstance().writeLogs("card:" + card, FileUtils.faceSuccess);  
505 } 590 }
506 591
507 if (deviceID.startsWith("qj")) {//枪击 用来抓拍人脸考勤用 592 if (deviceID.startsWith("qj")) {//枪击 用来抓拍人脸考勤用
@@ -529,10 +614,12 @@ public class CMSServer implements ApplicationRunner { @@ -529,10 +614,12 @@ public class CMSServer implements ApplicationRunner {
529 public void isTeacher(String cardNo, String deviceID) { 614 public void isTeacher(String cardNo, String deviceID) {
530 615
531 List<String> devLists = userDao.getDeviceRoomRelation(deviceID); 616 List<String> devLists = userDao.getDeviceRoomRelation(deviceID);
  617 + log.error("cardNo:{},devLists{}",cardNo,devLists);
532 618
533 if (null != devLists && devLists.size() > 0) { 619 if (null != devLists && devLists.size() > 0) {
534 620
535 StudentBean teacher = userDao.getTeacherWithCard(cardNo); 621 StudentBean teacher = userDao.getTeacherWithCard(cardNo);
  622 + FileUtils.getInstance().writeLogs("teacher:" + teacher+"----"+cardNo, "教师点名.txt");
536 if (null != teacher) { 623 if (null != teacher) {
537 String url = String.format("http://campus.myjxt.com/api/RollCall/AddRollCallPersonnelRecord?userId=%s&deviceId=%s", teacher.getUser_id(), deviceID); 624 String url = String.format("http://campus.myjxt.com/api/RollCall/AddRollCallPersonnelRecord?userId=%s&deviceId=%s", teacher.getUser_id(), deviceID);
538 625
@@ -540,7 +627,7 @@ public class CMSServer implements ApplicationRunner { @@ -540,7 +627,7 @@ public class CMSServer implements ApplicationRunner {
540 627
541 String res = restTemplate.getForObject(url, String.class); 628 String res = restTemplate.getForObject(url, String.class);
542 JSONObject jsonObject = JSON.parseObject(res); 629 JSONObject jsonObject = JSON.parseObject(res);
543 - 630 + FileUtils.getInstance().writeLogs("card:" + res, "教师点名.txt");
544 System.out.println("result:" + res + "------url:" + jsonObject.getBoolean("data")); 631 System.out.println("result:" + res + "------url:" + jsonObject.getBoolean("data"));
545 632
546 } 633 }
@@ -657,11 +744,11 @@ public class CMSServer implements ApplicationRunner { @@ -657,11 +744,11 @@ public class CMSServer implements ApplicationRunner {
657 "<password>MTIzNDU2</password>\r\n" + 744 "<password>MTIzNDU2</password>\r\n" +
658 "<maxSwipeTime></maxSwipeTime>\r\n" + 745 "<maxSwipeTime></maxSwipeTime>\r\n" +
659 "<swipeTime></swipeTime>\r\n" + 746 "<swipeTime></swipeTime>\r\n" +
660 - "<groupNo>5</groupNo>\r\n" + 747 + "<groupNo></groupNo>\r\n" +
661 "<name>"; 748 "<name>";
662 String nameAfter = "</name>\r\n" + 749 String nameAfter = "</name>\r\n" +
663 "<employeeNo>" + employeeNo + "</employeeNo>\r\n" + 750 "<employeeNo>" + employeeNo + "</employeeNo>\r\n" +
664 - "<departmentNo>3</departmentNo>\r\n" + 751 + "<departmentNo></departmentNo>\r\n" +
665 "<schedulePlanNo></schedulePlanNo>\r\n" + 752 "<schedulePlanNo></schedulePlanNo>\r\n" +
666 "<schedulePlanType></schedulePlanType>\r\n" + 753 "<schedulePlanType></schedulePlanType>\r\n" +
667 "</CardCfg>\r\n" + 754 "</CardCfg>\r\n" +
cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java
@@ -105,7 +105,7 @@ public class SendUserAsync { @@ -105,7 +105,7 @@ public class SendUserAsync {
105 if (weekDay.getDeviceIds() != null && weekDay.getDeviceIds().size() > 0) { 105 if (weekDay.getDeviceIds() != null && weekDay.getDeviceIds().size() > 0) {
106 permissionBean.setDeviceIds(weekDay.getDeviceIds()); 106 permissionBean.setDeviceIds(weekDay.getDeviceIds());
107 } 107 }
108 - List<String> deviceIds = permissionBean.getDeviceIds(); 108 + List<String> deviceIds = weekDay.getDeviceIds();
109 List<String> cardNumList = new ArrayList<>(); 109 List<String> cardNumList = new ArrayList<>();
110 String sex = weekDay.getSex(); 110 String sex = weekDay.getSex();
111 if (userType.equals("1")) { 111 if (userType.equals("1")) {
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/TeacherBean.java
@@ -10,6 +10,16 @@ public class TeacherBean implements Serializable { @@ -10,6 +10,16 @@ public class TeacherBean implements Serializable {
10 10
11 private String num; 11 private String num;
12 12
  13 + private String face;
  14 +
  15 + public String getTeacher_num() {
  16 + return teacher_num;
  17 + }
  18 +
  19 + public void setTeacher_num(String teacher_num) {
  20 + this.teacher_num = teacher_num;
  21 + }
  22 +
13 public String getNum() { 23 public String getNum() {
14 return num; 24 return num;
15 } 25 }
@@ -33,4 +43,20 @@ public class TeacherBean implements Serializable { @@ -33,4 +43,20 @@ public class TeacherBean implements Serializable {
33 public void setTeacer_num(String teacer_num) { 43 public void setTeacer_num(String teacer_num) {
34 this.teacher_num = teacer_num; 44 this.teacher_num = teacer_num;
35 } 45 }
  46 +
  47 + public String getFace() {
  48 + return face;
  49 + }
  50 +
  51 + public void setFace(String face) {
  52 + this.face = face;
  53 + }
  54 +
  55 + @Override
  56 + public String toString() {
  57 + return "{\"name\":\"" + name + '\"' +
  58 + ", \"teacher_num\":\"" + teacher_num + '\"' +
  59 + ", \"num\":\"" + num + '\"' +
  60 + ", \"face\":\"" + face + '\"' +"}";
  61 + }
36 } 62 }
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/face/BaiduUserInfoBean.java 0 → 100644
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
  1 +package com.sincere.haikangface.bean.face;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +public class BaiduUserInfoBean implements Serializable {
  6 +
  7 + private int status;
  8 +
  9 + private String message;
  10 +
  11 + private BaiduUserInfoDataBean data;
  12 +
  13 + public int getStatus() {
  14 + return status;
  15 + }
  16 +
  17 + public void setStatus(int status) {
  18 + this.status = status;
  19 + }
  20 +
  21 + public String getMessage() {
  22 + return message;
  23 + }
  24 +
  25 + public void setMessage(String message) {
  26 + this.message = message;
  27 + }
  28 +
  29 + public BaiduUserInfoDataBean getData() {
  30 + return data;
  31 + }
  32 +
  33 + public void setData(BaiduUserInfoDataBean data) {
  34 + this.data = data;
  35 + }
  36 +
  37 + @Override
  38 + public String toString() {
  39 + return "BaiduUserInfoBean{" +
  40 + "status=" + status +
  41 + ", message='" + message + '\'' +
  42 + ", data=" + data +
  43 + '}';
  44 + }
  45 +}
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/face/BaiduUserInfoDataBean.java 0 → 100644
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
  1 +package com.sincere.haikangface.bean.face;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +public class BaiduUserInfoDataBean implements Serializable {
  6 +
  7 + private String error_msg;
  8 +
  9 + private int error_code;
  10 +
  11 + private BaiduUserInfoResultBean data;
  12 +
  13 + public String getError_msg() {
  14 + return error_msg;
  15 + }
  16 +
  17 + public void setError_msg(String error_msg) {
  18 + this.error_msg = error_msg;
  19 + }
  20 +
  21 + public int getError_code() {
  22 + return error_code;
  23 + }
  24 +
  25 + public void setError_code(int error_code) {
  26 + this.error_code = error_code;
  27 + }
  28 +
  29 + public BaiduUserInfoResultBean getData() {
  30 + return data;
  31 + }
  32 +
  33 + public void setData(BaiduUserInfoResultBean data) {
  34 + this.data = data;
  35 + }
  36 +
  37 + @Override
  38 + public String toString() {
  39 + return "BaiduUserInfoDataBean{" +
  40 + "error_msg='" + error_msg + '\'' +
  41 + ", error_code=" + error_code +
  42 + ", data=" + data +
  43 + '}';
  44 + }
  45 +}
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/face/BaiduUserInfoListBean.java 0 → 100644
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 +package com.sincere.haikangface.bean.face;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +public class BaiduUserInfoListBean implements Serializable {
  6 +
  7 + private String user_id;
  8 +
  9 + public String getUser_id() {
  10 + return user_id;
  11 + }
  12 +
  13 + public void setUser_id(String user_id) {
  14 + this.user_id = user_id;
  15 + }
  16 +
  17 + @Override
  18 + public String toString() {
  19 + return "BaiduUserInfoListBean{" +
  20 + "user_id='" + user_id + '\'' +
  21 + '}';
  22 + }
  23 +}
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/face/BaiduUserInfoResultBean.java 0 → 100644
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
  1 +package com.sincere.haikangface.bean.face;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.List;
  5 +
  6 +public class BaiduUserInfoResultBean implements Serializable {
  7 +
  8 + private List<BaiduUserInfoListBean> user_list;
  9 +
  10 + public List<BaiduUserInfoListBean> getUser_list() {
  11 + return user_list;
  12 + }
  13 +
  14 + public void setUser_list(List<BaiduUserInfoListBean> user_list) {
  15 + this.user_list = user_list;
  16 + }
  17 +
  18 + @Override
  19 + public String toString() {
  20 + return "BaiduUserInfoResultBean{" +
  21 + "user_list=" + user_list +
  22 + '}';
  23 + }
  24 +}
cloud/haikangface/src/main/java/com/sincere/haikangface/control/FileControl.java
@@ -81,7 +81,7 @@ public class FileControl { @@ -81,7 +81,7 @@ public class FileControl {
81 String filePath = dest.getAbsolutePath(); 81 String filePath = dest.getAbsolutePath();
82 FileUtils.getInstance().writeLogs("filePath:" + filePath + " card:" + card + " name:" + name + " deviceId:" + deviceId, FileUtils.sendUserInfo); 82 FileUtils.getInstance().writeLogs("filePath:" + filePath + " card:" + card + " name:" + name + " deviceId:" + deviceId, FileUtils.sendUserInfo);
83 long time = System.currentTimeMillis(); 83 long time = System.currentTimeMillis();
84 - if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png"); 84 +// if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png");
85 if (new File(filePath.trim()).exists()) { 85 if (new File(filePath.trim()).exists()) {
86 String targetPath = FileUtils.picPathComp + new File(filePath).getName().replace(".png", ".jpg"); 86 String targetPath = FileUtils.picPathComp + new File(filePath).getName().replace(".png", ".jpg");
87 87
cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserControl.java
@@ -67,6 +67,7 @@ public class UserControl { @@ -67,6 +67,7 @@ public class UserControl {
67 @ApiOperation("下发权限给设备") 67 @ApiOperation("下发权限给设备")
68 public boolean sendPermiss(@RequestBody PermissionBean permissionBean) { 68 public boolean sendPermiss(@RequestBody PermissionBean permissionBean) {
69 log.error("permissionBean:{}", JSON.toJSONString(permissionBean)); 69 log.error("permissionBean:{}", JSON.toJSONString(permissionBean));
  70 + FileUtils.getInstance().writeLogs("传入权限模板:"+JSON.toJSONString(permissionBean),"设置权限内容.txt");
70 if (!StringUtils.isEmpty(permissionBean.getDeviceIds())) { 71 if (!StringUtils.isEmpty(permissionBean.getDeviceIds())) {
71 // List<String> cardNumList = userDao.getStudentCardsWidthSchoolId(permissionBean.getSchoolId()); 72 // List<String> cardNumList = userDao.getStudentCardsWidthSchoolId(permissionBean.getSchoolId());
72 return sendUserAsync.sendPermiss(permissionBean, 0); 73 return sendUserAsync.sendPermiss(permissionBean, 0);
@@ -97,6 +98,16 @@ public class UserControl { @@ -97,6 +98,16 @@ public class UserControl {
97 } 98 }
98 } 99 }
99 100
  101 + @RequestMapping(value = "sendToKB", method = RequestMethod.GET)
  102 + @ApiOperation("发送数据到看板")
  103 + public void sendToKB(@RequestParam("filePath") String filePath) {
  104 + try {
  105 + cmsServer.sendToKB(new File(filePath));
  106 + } catch (Exception e) {
  107 + e.printStackTrace();
  108 + }
  109 + }
  110 +
100 111
101 @RequestMapping(value = "sendStuCardAndImg", method = RequestMethod.GET) 112 @RequestMapping(value = "sendStuCardAndImg", method = RequestMethod.GET)
102 @ApiOperation("下发人脸给设备") 113 @ApiOperation("下发人脸给设备")
@@ -106,10 +117,18 @@ public class UserControl { @@ -106,10 +117,18 @@ public class UserControl {
106 return sendImg2Device(filePath, card, name, deviceId, userType); 117 return sendImg2Device(filePath, card, name, deviceId, userType);
107 } 118 }
108 119
  120 + @RequestMapping(value = "sendCardAndImg1", method = RequestMethod.GET)
  121 + @ApiOperation("下发人脸给设备")
  122 + public boolean sendCardAndImg1(@RequestParam("filePath") String filePath, @RequestParam("card") String card
  123 + , @RequestParam("name") String name, @RequestParam("deviceId") String deviceId, @RequestParam("userType") String userType) {
  124 + log.error("sendCardAndImg1:---------------------------------");
  125 + return sendImg2Device(filePath, card, name, deviceId, userType);
  126 + }
  127 +
109 private boolean sendImg2Device(String filePath, String card, String name, String deviceId, String userType) { 128 private boolean sendImg2Device(String filePath, String card, String name, String deviceId, String userType) {
110 try { 129 try {
111 130
112 - if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png"); 131 +// if (filePath.contains(".jpg")) filePath = filePath.replace(".jpg", ".png");
113 if (new File(filePath.trim()).exists()) { 132 if (new File(filePath.trim()).exists()) {
114 String targetPath = FileUtils.picPathComp + new File(filePath).getName(); 133 String targetPath = FileUtils.picPathComp + new File(filePath).getName();
115 try { 134 try {
cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
@@ -239,6 +239,9 @@ public interface UserDao { @@ -239,6 +239,9 @@ public interface UserDao {
239 @Select("select Top(1) * from SZ_V_School_Teacher where user_id = #{userId} and teacher_num<>''") 239 @Select("select Top(1) * from SZ_V_School_Teacher where user_id = #{userId} and teacher_num<>''")
240 TeacherBean getTeacherWithUserId(@Param("userId") String userId); 240 TeacherBean getTeacherWithUserId(@Param("userId") String userId);
241 241
  242 + @Select("select Top(1) * from SZ_V_School_Teacher where user_id = #{userId}")
  243 + TeacherBean getTeacherWithUserId1(@Param("userId") String userId);
  244 +
242 245
243 List<String> getStudentWiSidAndSex(@Param("schoolId") String schoolId, @Param("sexs") List<String> sexs); 246 List<String> getStudentWiSidAndSex(@Param("schoolId") String schoolId, @Param("sexs") List<String> sexs);
244 247
cloud/haikangface/src/main/java/com/sincere/haikangface/mqtt/MqttManager.java
@@ -20,6 +20,22 @@ public class MqttManager { @@ -20,6 +20,22 @@ public class MqttManager {
20 20
21 private static int qosLevel; 21 private static int qosLevel;
22 22
  23 + private static MqttManager mqttManager;
  24 +
  25 +// public static MqttManager getInstance(){
  26 +//
  27 +// if (null==mqttManager){
  28 +// synchronized (MqttManager.class){
  29 +// if (null==mqttManager) {
  30 +// mqttManager = new MqttManager();
  31 +// init();
  32 +// }
  33 +// }
  34 +// }
  35 +// return mqttManager;
  36 +// }
  37 +
  38 +
23 public void init() { 39 public void init() {
24 final String brokerUrl = "tcp://post-cn-4590mq2hr03.mqtt.aliyuncs.com:1883"; 40 final String brokerUrl = "tcp://post-cn-4590mq2hr03.mqtt.aliyuncs.com:1883";
25 groupId = "GID_HFJSIURFHAQO110"; 41 groupId = "GID_HFJSIURFHAQO110";
@@ -95,7 +111,7 @@ public class MqttManager { @@ -95,7 +111,7 @@ public class MqttManager {
95 public void sendMq(String deviceId, int cmd, String msg) { 111 public void sendMq(String deviceId, int cmd, String msg) {
96 String recvClientId = groupId + "@@@" + deviceId; 112 String recvClientId = groupId + "@@@" + deviceId;
97 final String p2pSendTopic = topic + "/p2p/" + recvClientId; 113 final String p2pSendTopic = topic + "/p2p/" + recvClientId;
98 - String content = "{\"cmd\":\"" + cmd + "\",\"clientId\":\"\",\"data\": \"" + msg + "\"}"; 114 + String content = "{\"cmd\":\"" + cmd + "\",\"clientId\":\"\",\"data\": " + msg + "}";
99 MqttMessage message = new MqttMessage(content.getBytes()); 115 MqttMessage message = new MqttMessage(content.getBytes());
100 message.setQos(qosLevel); 116 message.setQos(qosLevel);
101 System.out.println("发送内容:" + p2pSendTopic + " msg:---------" + msg); 117 System.out.println("发送内容:" + p2pSendTopic + " msg:---------" + msg);
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/CompressPic.java
@@ -22,10 +22,10 @@ public class CompressPic { @@ -22,10 +22,10 @@ public class CompressPic {
22 int width = bufferedImage.getWidth(null); 22 int width = bufferedImage.getWidth(null);
23 int height = bufferedImage.getHeight(null); 23 int height = bufferedImage.getHeight(null);
24 long fileLength = file.length(); 24 long fileLength = file.length();
25 - System.out.println("fileLength:" + fileLength);  
26 - System.out.println("原始宽高:" + "width:" + width + "--height:" + height); 25 +// System.out.println("fileLength:" + fileLength);
  26 +// System.out.println("原始宽高:" + "width:" + width + "--height:" + height);
27 if ((fileLength / 1024) < 200) { 27 if ((fileLength / 1024) < 200) {
28 - System.out.println("小于200k压缩:" + "width:" + width + "--height:" + height); 28 +// System.out.println("小于200k压缩:" + "width:" + width + "--height:" + height);
29 writeImgToFile(bufferedImage, width, height, targetPath); 29 writeImgToFile(bufferedImage, width, height, targetPath);
30 } else { 30 } else {
31 while ((fileLength / 1024) >= 200) { 31 while ((fileLength / 1024) >= 200) {
@@ -40,8 +40,8 @@ public class CompressPic { @@ -40,8 +40,8 @@ public class CompressPic {
40 width = bufferedImage1.getWidth(null); 40 width = bufferedImage1.getWidth(null);
41 height = bufferedImage1.getHeight(null); 41 height = bufferedImage1.getHeight(null);
42 fileLength = file1.length(); 42 fileLength = file1.length();
43 - System.out.println("最终宽高:" + "width:" + width + "--height:" + height);  
44 - System.out.println("fileLength1:" + fileLength); 43 +// System.out.println("最终宽高:" + "width:" + width + "--height:" + height);
  44 +// System.out.println("fileLength1:" + fileLength);
45 fileInputStream.close(); 45 fileInputStream.close();
46 } 46 }
47 } 47 }
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/HttpUtil.java
@@ -124,7 +124,7 @@ public class HttpUtil { @@ -124,7 +124,7 @@ public class HttpUtil {
124 124
125 ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, httpEntity, String.class); 125 ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, httpEntity, String.class);
126 126
127 - System.out.println("responseEntity:" + responseEntity.getBody()); 127 + System.out.println("responseEntity:" + responseEntity.getBody()+name);
128 return responseEntity.getBody().equals("1"); 128 return responseEntity.getBody().equals("1");
129 } 129 }
130 130
cloud/haikangface/src/main/resources/mapper/usermapper.xml
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
19 </select> 19 </select>
20 20
21 <select id="getDeviceRoomRelation" resultType="java.lang.String"> 21 <select id="getDeviceRoomRelation" resultType="java.lang.String">
22 - select clint_id from SZ_DeviceRoomRelation where clint_id = #{clint_id}; 22 + select clint_id from SZ_DeviceRoomRelation where clint_id = #{clint_id} and state = 1;
23 </select> 23 </select>
24 24
25 </mapper> 25 </mapper>
cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java
@@ -40,7 +40,7 @@ public class MyRunnerableInt implements ApplicationRunner { @@ -40,7 +40,7 @@ public class MyRunnerableInt implements ApplicationRunner {
40 40
41 @Override 41 @Override
42 public void run(ApplicationArguments args) throws Exception { 42 public void run(ApplicationArguments args) throws Exception {
43 - initMqConsumer(); 43 +// initMqConsumer();
44 } 44 }
45 45
46 /** 46 /**