diff --git a/cloud/dahua/src/main/java/com/example/dahua/MyTask.java b/cloud/dahua/src/main/java/com/example/dahua/MyTask.java index 176d4a7..277a8d1 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/MyTask.java +++ b/cloud/dahua/src/main/java/com/example/dahua/MyTask.java @@ -15,6 +15,7 @@ import com.example.dahua.mqtt.MqttManager; import com.example.dahua.service.AttendanceService; import com.example.dahua.utils.DateUtils; import com.example.dahua.utils.FileUtils; +import com.example.dahua.utils.JsonUtils; import com.example.dahua.xiananDao.SearchMapper; import com.example.dahua.xiananDao.SendRecordDao; import com.sun.jna.Pointer; @@ -445,6 +446,7 @@ public class MyTask implements ApplicationRunner { searchMapper.checkIn(checkIn); if (checkIn.getIsSuccess() == 1) { + log.info("考勤成功: checkIn: {}, 方向:{}",JsonUtils.nonDefaultMapper().toJson(checkIn),eventType == 1 ? "进门" : "出门"); //考勤成功 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime; @@ -538,7 +540,7 @@ public class MyTask implements ApplicationRunner { if (null != placeId) { //关联的显示看板设备 List kanbanIds = userDao.getKanBanIdWithPlaceId(placeId); - + log.info("设备ID集: "+ JsonUtils.nonDefaultMapper().toJson(kanbanIds)); for (int i = 0; i < kanbanIds.size(); i++) { String kanbanId = kanbanIds.get(i); String data = "{\"cmd\":\"" + 34 + "\",\"clientId\":\"" + kanbanId + "\",\"data\":{\"cardNum\":\"" + cardNum + "\",\"inOrOut\":\"" + inOrOut + "\"}}"; @@ -551,6 +553,7 @@ public class MyTask implements ApplicationRunner { String schoolId = userDao.getSchoolIdWidthCardNum(cardNum); if(StringUtils.isEmpty(schoolId)||Integer.parseInt(schoolId) <=0)return; List clintIds = userDao.getClintIds(schoolId); + log.info("设备ID集: "+ JsonUtils.nonDefaultMapper().toJson(clintIds)); for (int i = 0; i < clintIds.size(); i++) { String clintId = clintIds.get(i); String data = "{\"cmd\":\"" + 34 + "\",\"clientId\":\"" + clintId + "\",\"data\":{\"cardNum\":\"" + cardNum + "\",\"inOrOut\":\"" + inOrOut + "\"}}"; diff --git a/cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java b/cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java index c90a5b3..c69e3ff 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java +++ b/cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java @@ -256,7 +256,11 @@ public class UserControl { public boolean checkFace(@RequestParam("url") String httpurl) { boolean check = BaiduUtils.getBaiduUtils().checkImg(httpurl); - + //获取文件名 + File file1 = new File(httpurl); + File target = new File("./huoti/"); + //压缩后的文件 + httpurl = target.getAbsolutePath() + "/"+ file1.getName(); if (check) { File file = new File(httpurl); diff --git a/cloud/dahua/src/main/java/com/example/dahua/service/UserService.java b/cloud/dahua/src/main/java/com/example/dahua/service/UserService.java index 882464c..1083ecc 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/service/UserService.java +++ b/cloud/dahua/src/main/java/com/example/dahua/service/UserService.java @@ -62,5 +62,9 @@ public interface UserService { */ String getUserId(String code,String schoolId); - + /** + * 测试用 + * @param url + */ + void test(String url); } diff --git a/cloud/dahua/src/main/java/com/example/dahua/service/imp/UserServiceImp.java b/cloud/dahua/src/main/java/com/example/dahua/service/imp/UserServiceImp.java index bbd911b..9556d1c 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/service/imp/UserServiceImp.java +++ b/cloud/dahua/src/main/java/com/example/dahua/service/imp/UserServiceImp.java @@ -8,12 +8,15 @@ import com.example.dahua.enums.EnumDeviceType; import com.example.dahua.lib.NetSDKLib; import com.example.dahua.module.GateModule; import com.example.dahua.service.UserService; +import com.example.dahua.utils.BaiduUtils; +import com.example.dahua.utils.FileUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; +import java.io.File; import java.util.List; @Repository @@ -154,5 +157,33 @@ public class UserServiceImp implements UserService { return userId; } + @Override + public void test(String httpurl) { + log.info("在线活体检测, 文件地址:"+httpurl); + boolean check = BaiduUtils.getBaiduUtils().checkImg(httpurl); + File file1 = new File(httpurl); + + File target = new File("./huoti/"); + httpurl = target.getAbsolutePath() + "/"+ file1.getName(); + + if (check) { + File file = new File(httpurl); + + String userCode = file.getName().split("\\.")[0]; + + String schoolId = "864"; + if (httpurl.contains("Student") && !httpurl.startsWith("http")) { + schoolId = httpurl.substring(httpurl.indexOf("School") + 6, httpurl.indexOf("\\Student")); + } else if (httpurl.contains("Teacher") && !httpurl.startsWith("http")) { + schoolId = httpurl.substring(httpurl.indexOf("School") + 6, httpurl.indexOf("\\Teacher")); + } + System.out.println("choolId:" + schoolId + "userCode:" + userCode); + if (!org.springframework.util.StringUtils.isEmpty(schoolId) && !org.springframework.util.StringUtils.isEmpty(userCode)) { + String userId = getUserId(userCode, schoolId); + BaiduUtils.getBaiduUtils().addFace(new File(httpurl), schoolId, userId, userId); + FileUtils.getInstance().writeLogs("人脸添加成功:" + userId, "人脸添加成功.txt"); + } + } + } } diff --git a/cloud/dahua/src/main/java/com/example/dahua/utils/BaiduUtils.java b/cloud/dahua/src/main/java/com/example/dahua/utils/BaiduUtils.java index c4b3809..d183f66 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/utils/BaiduUtils.java +++ b/cloud/dahua/src/main/java/com/example/dahua/utils/BaiduUtils.java @@ -3,6 +3,7 @@ package com.example.dahua.utils; import com.alibaba.fastjson.JSON; import com.example.dahua.async.ImageUtils; import com.example.dahua.lib.CompressPic; +import lombok.extern.slf4j.Slf4j; import org.json.JSONArray; import org.json.JSONObject; @@ -12,6 +13,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.util.*; +@Slf4j public class BaiduUtils { private static BaiduUtils baiduUtils; @@ -53,8 +55,12 @@ public class BaiduUtils { String param = GsonUtils.toJson(list); // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 String accessToken = getAuth(); - - String result1 = HttpUtil.post(url, accessToken, "application/json", param); + String result1 =""; + try{ + result1 = HttpUtil.post(url, accessToken, "application/json", param); + }catch (IOException e){ + log.error("活体检测异常,错误信息:{}",e); + } JSONObject jsonObject = new JSONObject(result1); String error_msg = jsonObject.optString("error_msg"); JSONObject result = jsonObject.optJSONObject("result"); @@ -227,7 +233,6 @@ public class BaiduUtils { String url = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add"; - try { Map map = new HashMap<>(); map.put("image", Base64Util.encode(InputStream2ByteArray(img.getAbsolutePath()))); @@ -260,6 +265,7 @@ public class BaiduUtils { // facerecordService.addFacerecord(facerecordBean); return "注册成功"; } else { + log.info("注册人脸失败,文件大小,size: "+ img.length()); return error_msg; } diff --git a/cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java b/cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java index e46bb63..e1b6116 100644 --- a/cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java +++ b/cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java @@ -13,12 +13,15 @@ import com.example.dahua.dao.UserDao; import com.example.dahua.mqtt.MqttManager; import com.example.dahua.service.PermissFaceService; import com.example.dahua.service.UserService; +import com.example.dahua.utils.BaiduUtils; import com.example.dahua.utils.DateUtils; +import com.example.dahua.utils.HttpUtil; import com.example.dahua.utils.JsonUtils; import com.example.dahua.xiananDao.SearchMapper; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; +import java.io.File; import java.util.Date; /** @@ -118,7 +121,12 @@ public class SearchMapperTest extends Tester { System.out.println("发送成功"); } + @Test + public void test6() { +// String path = "D://dahua-logs/sxzx2020889.png"; + String path = "D://dahua-logs/sxzx2020002.png"; + userService.test(path); + } -// boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType, String devid); } -- libgit2 0.21.0