diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java index 01ffff9..5f00f1d 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.metadata.service.IMetadataSupportService; import com.casic.missiles.modular.register.model.IrisData; import com.casic.missiles.modular.register.service.IIrisDataService; import com.casic.missiles.modular.register.util.Base64Util; @@ -41,33 +42,21 @@ @Value("${casic.file.uploadPath:C://casic//tmp//}") private String filePath; - @Value("${casic.iris.recServiceHost:localhost}") - private String recServiceHost; - @Value("${casic.iris.recServicePort:20004}") - private Integer recServicePort; + @Autowired private IIrisDataService irisDataService; + /** * 虹膜注册接口 */ @RequestMapping(value = "/add") @ResponseBody public Object imageUpload(String image_zy0,String image_zy1,String image_yy0,String image_yy1,String personId,String idCardNo) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(ToolUtil.isEmpty(image_zy0)||ToolUtil.isEmpty(image_zy1) || ToolUtil.isEmpty(image_yy0) || ToolUtil.isEmpty(image_yy1)){ return ResponseData.error("有图像为空"); } - IrisData irisData = new IrisData(); - if(map!=null && map.size()>0 ){ - //return ResponseData.error("已存在该人员的虹膜数据"); - irisData = irisDataService.selectById(map.get("id").toString()); - } - - String leftFilePath1 = this.filePath+personId+"_left_1.jpg"; String leftFilePath2 = this.filePath+personId+"_left_2.jpg"; String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; @@ -85,190 +74,13 @@ return ResponseData.error("右眼图像2转换失败"); } + String result = irisDataService.addIrisData(leftFilePath1,leftFilePath2,rightFilePath1,rightFilePath2,personId,idCardNo); - BASE64Decoder decoder = new BASE64Decoder(); - //左眼1 - byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - byte[] leftCode2 = getIrisCode(new FileInputStream(leftFilePath2)); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - byte[] rightCode1 = getIrisCode(new FileInputStream(rightFilePath1)); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - byte[] rightCode2 = getIrisCode(new FileInputStream(rightFilePath2)); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisData.setIdCardNo(idCardNo); - irisData.setPersonId(Long.valueOf(personId)); - - if(map!=null && map.size()>0 ){ - irisDataService.updateById(irisData); - }else { - irisDataService.insert(irisData); - } - return ResponseData.success(); + return ResponseData.success(result); } - /** - * 虹膜注册接口 - */ - @RequestMapping(value = "/addFile") - @ResponseBody - public Object imageUpload(MultipartFile image_zy0,MultipartFile image_zy1,MultipartFile image_yy0,MultipartFile image_yy1,String personId,String idCardNo) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(map!=null){ - return ResponseData.error("已存在该人员的虹膜数据"); - } - - if(image_zy0.isEmpty()||image_zy1.isEmpty() || image_yy0.isEmpty() ||image_yy1.isEmpty()){ - return ResponseData.error("有图像为空"); - } - - IrisData irisData = new IrisData(); - - String leftFilePath1 = this.filePath+personId+"_left_1.bmp"; - String leftFilePath2 = this.filePath+personId+"_left_2.bmp"; - String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; - String rightFilePath2 = this.filePath+personId+"_right_2.bmp"; - - - //左眼1 - byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - byte[] leftCode2 = getIrisCode(image_zy1.getInputStream()); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - byte[] rightCode1 = getIrisCode(image_yy0.getInputStream()); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - byte[] rightCode2 = getIrisCode(image_yy1.getInputStream()); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisData.setIdCardNo(idCardNo); - irisData.setPersonId(Long.valueOf(personId)); - irisDataService.insert(irisData); - return ResponseData.success(); - } - - /** - * 修改虹膜数据接口 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object imageUpload(@RequestParam("image_zy0")String image_zy0,@RequestParam("image_zy1")String image_zy1,@RequestParam("image_yy0")String image_yy0,@RequestParam("image_yy1")String image_yy1,@RequestParam("personId")String personId) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(map!=null){ - return ResponseData.error("不存在该记录"); - } - if(ToolUtil.isEmpty(image_zy0)||ToolUtil.isEmpty(image_zy1) || ToolUtil.isEmpty(image_yy0) || ToolUtil.isEmpty(image_yy1)){ - return ResponseData.error("有图像为空"); - } - - IrisData irisData = irisDataService.selectById(map.get("id").toString()); - - String leftFilePath1 = this.filePath+personId+"_left_1.bmp"; - String leftFilePath2 = this.filePath+personId+"_left_2.bmp"; - String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; - String rightFilePath2 = this.filePath+personId+"_right_2.bmp"; - if(!Base64Util.Base64ToImage(image_zy0,leftFilePath1)){ - return ResponseData.error("左眼图像1转换失败"); - } - if(!Base64Util.Base64ToImage(image_zy1,leftFilePath2)){ - return ResponseData.error("左眼图像2转换失败"); - } - if(!Base64Util.Base64ToImage(image_yy0,rightFilePath1 )){ - return ResponseData.error("右眼图像1转换失败"); - } - if(!Base64Util.Base64ToImage(image_yy1,rightFilePath2)){ - return ResponseData.error("右眼图像2转换失败"); - } - - - BASE64Decoder decoder = new BASE64Decoder(); - //左眼1 - byte[] imageBytes = decoder.decodeBuffer(image_zy0); - InputStream fis = new ByteArrayInputStream(imageBytes); - byte[] leftCode1 = getIrisCode(fis); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - imageBytes = decoder.decodeBuffer(image_zy1); - fis = new ByteArrayInputStream(imageBytes); - byte[] leftCode2 = getIrisCode(fis); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - imageBytes = decoder.decodeBuffer(image_yy0); - fis = new ByteArrayInputStream(imageBytes); - byte[] rightCode1 = getIrisCode(fis); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - imageBytes = decoder.decodeBuffer(image_yy1); - fis = new ByteArrayInputStream(imageBytes); - byte[] rightCode2 = getIrisCode(fis); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisDataService.updateById(irisData); - return ResponseData.success(); - } /** * 详情 @@ -320,42 +132,7 @@ - //与c#的服务通信,获取虹膜编码 - private byte[] getIrisCode(InputStream fis) throws IOException { - byte[] irisCode = new byte[1024]; - //1.创建客户端Socket,指定服务器地址和端口 - Socket socket=new Socket(recServiceHost, recServicePort); - - //2.获取输出流,向服务器端发送信息 - OutputStream os=socket.getOutputStream();//字节输出流 - byte[] buf = new byte[4096]; - int len=0; - while((len = fis.read(buf))!=-1) { - os.write(buf, 0, len); - } - socket.shutdownOutput();//关闭输出流 - - //3.获取输入流,读取服务器端的响应信息 - InputStream is=socket.getInputStream(); - - byte[] bufIn = new byte[1024]; - int num =0; - int totalNum=0; - while ((num = is.read(bufIn))!=-1){ - System.arraycopy(bufIn,0,irisCode,totalNum,num); - totalNum = totalNum+num; - } - - //4.关闭资源 - is.close(); - os.close(); - socket.close(); - if(totalNum==1024){ - return irisCode; - } - else return null; - } } diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java index 01ffff9..5f00f1d 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.metadata.service.IMetadataSupportService; import com.casic.missiles.modular.register.model.IrisData; import com.casic.missiles.modular.register.service.IIrisDataService; import com.casic.missiles.modular.register.util.Base64Util; @@ -41,33 +42,21 @@ @Value("${casic.file.uploadPath:C://casic//tmp//}") private String filePath; - @Value("${casic.iris.recServiceHost:localhost}") - private String recServiceHost; - @Value("${casic.iris.recServicePort:20004}") - private Integer recServicePort; + @Autowired private IIrisDataService irisDataService; + /** * 虹膜注册接口 */ @RequestMapping(value = "/add") @ResponseBody public Object imageUpload(String image_zy0,String image_zy1,String image_yy0,String image_yy1,String personId,String idCardNo) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(ToolUtil.isEmpty(image_zy0)||ToolUtil.isEmpty(image_zy1) || ToolUtil.isEmpty(image_yy0) || ToolUtil.isEmpty(image_yy1)){ return ResponseData.error("有图像为空"); } - IrisData irisData = new IrisData(); - if(map!=null && map.size()>0 ){ - //return ResponseData.error("已存在该人员的虹膜数据"); - irisData = irisDataService.selectById(map.get("id").toString()); - } - - String leftFilePath1 = this.filePath+personId+"_left_1.jpg"; String leftFilePath2 = this.filePath+personId+"_left_2.jpg"; String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; @@ -85,190 +74,13 @@ return ResponseData.error("右眼图像2转换失败"); } + String result = irisDataService.addIrisData(leftFilePath1,leftFilePath2,rightFilePath1,rightFilePath2,personId,idCardNo); - BASE64Decoder decoder = new BASE64Decoder(); - //左眼1 - byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - byte[] leftCode2 = getIrisCode(new FileInputStream(leftFilePath2)); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - byte[] rightCode1 = getIrisCode(new FileInputStream(rightFilePath1)); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - byte[] rightCode2 = getIrisCode(new FileInputStream(rightFilePath2)); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisData.setIdCardNo(idCardNo); - irisData.setPersonId(Long.valueOf(personId)); - - if(map!=null && map.size()>0 ){ - irisDataService.updateById(irisData); - }else { - irisDataService.insert(irisData); - } - return ResponseData.success(); + return ResponseData.success(result); } - /** - * 虹膜注册接口 - */ - @RequestMapping(value = "/addFile") - @ResponseBody - public Object imageUpload(MultipartFile image_zy0,MultipartFile image_zy1,MultipartFile image_yy0,MultipartFile image_yy1,String personId,String idCardNo) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(map!=null){ - return ResponseData.error("已存在该人员的虹膜数据"); - } - - if(image_zy0.isEmpty()||image_zy1.isEmpty() || image_yy0.isEmpty() ||image_yy1.isEmpty()){ - return ResponseData.error("有图像为空"); - } - - IrisData irisData = new IrisData(); - - String leftFilePath1 = this.filePath+personId+"_left_1.bmp"; - String leftFilePath2 = this.filePath+personId+"_left_2.bmp"; - String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; - String rightFilePath2 = this.filePath+personId+"_right_2.bmp"; - - - //左眼1 - byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - byte[] leftCode2 = getIrisCode(image_zy1.getInputStream()); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - byte[] rightCode1 = getIrisCode(image_yy0.getInputStream()); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - byte[] rightCode2 = getIrisCode(image_yy1.getInputStream()); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisData.setIdCardNo(idCardNo); - irisData.setPersonId(Long.valueOf(personId)); - irisDataService.insert(irisData); - return ResponseData.success(); - } - - /** - * 修改虹膜数据接口 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object imageUpload(@RequestParam("image_zy0")String image_zy0,@RequestParam("image_zy1")String image_zy1,@RequestParam("image_yy0")String image_yy0,@RequestParam("image_yy1")String image_yy1,@RequestParam("personId")String personId) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(map!=null){ - return ResponseData.error("不存在该记录"); - } - if(ToolUtil.isEmpty(image_zy0)||ToolUtil.isEmpty(image_zy1) || ToolUtil.isEmpty(image_yy0) || ToolUtil.isEmpty(image_yy1)){ - return ResponseData.error("有图像为空"); - } - - IrisData irisData = irisDataService.selectById(map.get("id").toString()); - - String leftFilePath1 = this.filePath+personId+"_left_1.bmp"; - String leftFilePath2 = this.filePath+personId+"_left_2.bmp"; - String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; - String rightFilePath2 = this.filePath+personId+"_right_2.bmp"; - if(!Base64Util.Base64ToImage(image_zy0,leftFilePath1)){ - return ResponseData.error("左眼图像1转换失败"); - } - if(!Base64Util.Base64ToImage(image_zy1,leftFilePath2)){ - return ResponseData.error("左眼图像2转换失败"); - } - if(!Base64Util.Base64ToImage(image_yy0,rightFilePath1 )){ - return ResponseData.error("右眼图像1转换失败"); - } - if(!Base64Util.Base64ToImage(image_yy1,rightFilePath2)){ - return ResponseData.error("右眼图像2转换失败"); - } - - - BASE64Decoder decoder = new BASE64Decoder(); - //左眼1 - byte[] imageBytes = decoder.decodeBuffer(image_zy0); - InputStream fis = new ByteArrayInputStream(imageBytes); - byte[] leftCode1 = getIrisCode(fis); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - imageBytes = decoder.decodeBuffer(image_zy1); - fis = new ByteArrayInputStream(imageBytes); - byte[] leftCode2 = getIrisCode(fis); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - imageBytes = decoder.decodeBuffer(image_yy0); - fis = new ByteArrayInputStream(imageBytes); - byte[] rightCode1 = getIrisCode(fis); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - imageBytes = decoder.decodeBuffer(image_yy1); - fis = new ByteArrayInputStream(imageBytes); - byte[] rightCode2 = getIrisCode(fis); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisDataService.updateById(irisData); - return ResponseData.success(); - } /** * 详情 @@ -320,42 +132,7 @@ - //与c#的服务通信,获取虹膜编码 - private byte[] getIrisCode(InputStream fis) throws IOException { - byte[] irisCode = new byte[1024]; - //1.创建客户端Socket,指定服务器地址和端口 - Socket socket=new Socket(recServiceHost, recServicePort); - - //2.获取输出流,向服务器端发送信息 - OutputStream os=socket.getOutputStream();//字节输出流 - byte[] buf = new byte[4096]; - int len=0; - while((len = fis.read(buf))!=-1) { - os.write(buf, 0, len); - } - socket.shutdownOutput();//关闭输出流 - - //3.获取输入流,读取服务器端的响应信息 - InputStream is=socket.getInputStream(); - - byte[] bufIn = new byte[1024]; - int num =0; - int totalNum=0; - while ((num = is.read(bufIn))!=-1){ - System.arraycopy(bufIn,0,irisCode,totalNum,num); - totalNum = totalNum+num; - } - - //4.关闭资源 - is.close(); - os.close(); - socket.close(); - if(totalNum==1024){ - return irisCode; - } - else return null; - } } diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java index 64b5120..105479d 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.service.IService; import org.apache.ibatis.annotations.Param; +import java.io.FileNotFoundException; +import java.io.IOException; import java.util.Map; /** @@ -16,4 +18,6 @@ */ public interface IIrisDataService extends IService { Map selectByPersonId(@Param("personId") String personId); + + String addIrisData(String leftFilePath1,String leftFilePath2,String rightFilePath1,String rightFilePath2,String personId,String idCardNo) throws IOException; } diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java index 01ffff9..5f00f1d 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.metadata.service.IMetadataSupportService; import com.casic.missiles.modular.register.model.IrisData; import com.casic.missiles.modular.register.service.IIrisDataService; import com.casic.missiles.modular.register.util.Base64Util; @@ -41,33 +42,21 @@ @Value("${casic.file.uploadPath:C://casic//tmp//}") private String filePath; - @Value("${casic.iris.recServiceHost:localhost}") - private String recServiceHost; - @Value("${casic.iris.recServicePort:20004}") - private Integer recServicePort; + @Autowired private IIrisDataService irisDataService; + /** * 虹膜注册接口 */ @RequestMapping(value = "/add") @ResponseBody public Object imageUpload(String image_zy0,String image_zy1,String image_yy0,String image_yy1,String personId,String idCardNo) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(ToolUtil.isEmpty(image_zy0)||ToolUtil.isEmpty(image_zy1) || ToolUtil.isEmpty(image_yy0) || ToolUtil.isEmpty(image_yy1)){ return ResponseData.error("有图像为空"); } - IrisData irisData = new IrisData(); - if(map!=null && map.size()>0 ){ - //return ResponseData.error("已存在该人员的虹膜数据"); - irisData = irisDataService.selectById(map.get("id").toString()); - } - - String leftFilePath1 = this.filePath+personId+"_left_1.jpg"; String leftFilePath2 = this.filePath+personId+"_left_2.jpg"; String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; @@ -85,190 +74,13 @@ return ResponseData.error("右眼图像2转换失败"); } + String result = irisDataService.addIrisData(leftFilePath1,leftFilePath2,rightFilePath1,rightFilePath2,personId,idCardNo); - BASE64Decoder decoder = new BASE64Decoder(); - //左眼1 - byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - byte[] leftCode2 = getIrisCode(new FileInputStream(leftFilePath2)); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - byte[] rightCode1 = getIrisCode(new FileInputStream(rightFilePath1)); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - byte[] rightCode2 = getIrisCode(new FileInputStream(rightFilePath2)); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisData.setIdCardNo(idCardNo); - irisData.setPersonId(Long.valueOf(personId)); - - if(map!=null && map.size()>0 ){ - irisDataService.updateById(irisData); - }else { - irisDataService.insert(irisData); - } - return ResponseData.success(); + return ResponseData.success(result); } - /** - * 虹膜注册接口 - */ - @RequestMapping(value = "/addFile") - @ResponseBody - public Object imageUpload(MultipartFile image_zy0,MultipartFile image_zy1,MultipartFile image_yy0,MultipartFile image_yy1,String personId,String idCardNo) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(map!=null){ - return ResponseData.error("已存在该人员的虹膜数据"); - } - - if(image_zy0.isEmpty()||image_zy1.isEmpty() || image_yy0.isEmpty() ||image_yy1.isEmpty()){ - return ResponseData.error("有图像为空"); - } - - IrisData irisData = new IrisData(); - - String leftFilePath1 = this.filePath+personId+"_left_1.bmp"; - String leftFilePath2 = this.filePath+personId+"_left_2.bmp"; - String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; - String rightFilePath2 = this.filePath+personId+"_right_2.bmp"; - - - //左眼1 - byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - byte[] leftCode2 = getIrisCode(image_zy1.getInputStream()); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - byte[] rightCode1 = getIrisCode(image_yy0.getInputStream()); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - byte[] rightCode2 = getIrisCode(image_yy1.getInputStream()); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisData.setIdCardNo(idCardNo); - irisData.setPersonId(Long.valueOf(personId)); - irisDataService.insert(irisData); - return ResponseData.success(); - } - - /** - * 修改虹膜数据接口 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object imageUpload(@RequestParam("image_zy0")String image_zy0,@RequestParam("image_zy1")String image_zy1,@RequestParam("image_yy0")String image_yy0,@RequestParam("image_yy1")String image_yy1,@RequestParam("personId")String personId) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(map!=null){ - return ResponseData.error("不存在该记录"); - } - if(ToolUtil.isEmpty(image_zy0)||ToolUtil.isEmpty(image_zy1) || ToolUtil.isEmpty(image_yy0) || ToolUtil.isEmpty(image_yy1)){ - return ResponseData.error("有图像为空"); - } - - IrisData irisData = irisDataService.selectById(map.get("id").toString()); - - String leftFilePath1 = this.filePath+personId+"_left_1.bmp"; - String leftFilePath2 = this.filePath+personId+"_left_2.bmp"; - String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; - String rightFilePath2 = this.filePath+personId+"_right_2.bmp"; - if(!Base64Util.Base64ToImage(image_zy0,leftFilePath1)){ - return ResponseData.error("左眼图像1转换失败"); - } - if(!Base64Util.Base64ToImage(image_zy1,leftFilePath2)){ - return ResponseData.error("左眼图像2转换失败"); - } - if(!Base64Util.Base64ToImage(image_yy0,rightFilePath1 )){ - return ResponseData.error("右眼图像1转换失败"); - } - if(!Base64Util.Base64ToImage(image_yy1,rightFilePath2)){ - return ResponseData.error("右眼图像2转换失败"); - } - - - BASE64Decoder decoder = new BASE64Decoder(); - //左眼1 - byte[] imageBytes = decoder.decodeBuffer(image_zy0); - InputStream fis = new ByteArrayInputStream(imageBytes); - byte[] leftCode1 = getIrisCode(fis); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - imageBytes = decoder.decodeBuffer(image_zy1); - fis = new ByteArrayInputStream(imageBytes); - byte[] leftCode2 = getIrisCode(fis); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - imageBytes = decoder.decodeBuffer(image_yy0); - fis = new ByteArrayInputStream(imageBytes); - byte[] rightCode1 = getIrisCode(fis); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - imageBytes = decoder.decodeBuffer(image_yy1); - fis = new ByteArrayInputStream(imageBytes); - byte[] rightCode2 = getIrisCode(fis); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisDataService.updateById(irisData); - return ResponseData.success(); - } /** * 详情 @@ -320,42 +132,7 @@ - //与c#的服务通信,获取虹膜编码 - private byte[] getIrisCode(InputStream fis) throws IOException { - byte[] irisCode = new byte[1024]; - //1.创建客户端Socket,指定服务器地址和端口 - Socket socket=new Socket(recServiceHost, recServicePort); - - //2.获取输出流,向服务器端发送信息 - OutputStream os=socket.getOutputStream();//字节输出流 - byte[] buf = new byte[4096]; - int len=0; - while((len = fis.read(buf))!=-1) { - os.write(buf, 0, len); - } - socket.shutdownOutput();//关闭输出流 - - //3.获取输入流,读取服务器端的响应信息 - InputStream is=socket.getInputStream(); - - byte[] bufIn = new byte[1024]; - int num =0; - int totalNum=0; - while ((num = is.read(bufIn))!=-1){ - System.arraycopy(bufIn,0,irisCode,totalNum,num); - totalNum = totalNum+num; - } - - //4.关闭资源 - is.close(); - os.close(); - socket.close(); - if(totalNum==1024){ - return irisCode; - } - else return null; - } } diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java index 64b5120..105479d 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.service.IService; import org.apache.ibatis.annotations.Param; +import java.io.FileNotFoundException; +import java.io.IOException; import java.util.Map; /** @@ -16,4 +18,6 @@ */ public interface IIrisDataService extends IService { Map selectByPersonId(@Param("personId") String personId); + + String addIrisData(String leftFilePath1,String leftFilePath2,String rightFilePath1,String rightFilePath2,String personId,String idCardNo) throws IOException; } diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java index 38fe2b1..7759189 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java @@ -1,12 +1,23 @@ package com.casic.missiles.modular.register.service.impl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.metadata.service.IMetadataSupportService; import com.casic.missiles.modular.register.dao.IrisDataMapper; import com.casic.missiles.modular.register.model.IrisData; import com.casic.missiles.modular.register.service.IIrisDataService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.register.util.Base64Util; +import com.casic.missiles.modular.system.model.Person; import org.apache.ibatis.annotations.Param; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import sun.misc.BASE64Decoder; +import java.io.*; +import java.net.Socket; +import java.util.HashMap; import java.util.Map; /** @@ -19,8 +30,112 @@ */ @Service public class IrisDataServiceImpl extends ServiceImpl implements IIrisDataService { + @Value("${casic.file.uploadPath:C://casic//tmp//}") + private String filePath; + @Autowired + private IMetadataSupportService metadataSupportService; + @Override public Map selectByPersonId(String personId){ return this.baseMapper.selectByPersonId(personId); } + + @Override + public String addIrisData(String leftFilePath1,String leftFilePath2,String rightFilePath1,String rightFilePath2,String personId,String idCardNo) throws IOException { + Map map = null; + map = selectByPersonId(personId); + + + IrisData irisData = new IrisData(); + if(map!=null && map.size()>0 ){ + //return ResponseData.error("已存在该人员的虹膜数据"); + irisData = selectById(map.get("id").toString()); + } + + + BASE64Decoder decoder = new BASE64Decoder(); + //左眼1 + byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); + if(leftCode1 ==null || leftCode1.length!=1024){ + return "左眼图像1编码失败"; + } + //左眼2 + byte[] leftCode2 = getIrisCode(new FileInputStream(leftFilePath2)); + if(leftCode2==null || leftCode2.length!=1024){ + return "左眼图像2编码失败"; + } + //右眼1 + byte[] rightCode1 = getIrisCode(new FileInputStream(rightFilePath1)); + if(rightCode1==null || rightCode1.length!=1024){ + return "右眼图像1编码失败"; + } + //右眼2 + byte[] rightCode2 = getIrisCode(new FileInputStream(rightFilePath2)); + if(rightCode2==null || rightCode2.length!=1024){ + return "右眼图像2编码失败"; + } + + irisData.setLeftIrisCode1(leftCode1); + irisData.setLeftIrisCode2(leftCode2); + irisData.setRightIrisCode1(rightCode1); + irisData.setRightIrisCode2(rightCode2); + + irisData.setLeftImage1(leftFilePath1); + irisData.setLeftImage2(leftFilePath2); + irisData.setRightImage1(rightFilePath1); + irisData.setRightImage2(rightFilePath2); + + irisData.setIdCardNo(idCardNo); + irisData.setPersonId(Long.valueOf(personId)); + + if(map!=null && map.size()>0 ){ + updateById(irisData); + }else { + insert(irisData); + } + //更新人员扩展表的是否注册过虹膜数据标志位 + Map mapIsRegist = new HashMap<>(); + mapIsRegist.put("isRegist",1); + metadataSupportService.updateMetaDataByTargetId(Person.class,map,personId); + + return "注册成功"; + } + + //与c#的服务通信,获取虹膜编码 + public byte[] getIrisCode(InputStream fis) throws IOException { + byte[] irisCode = new byte[1024]; + + //1.创建客户端Socket,指定服务器地址和端口 + Socket socket=new Socket("localhost", 20005); + + //2.获取输出流,向服务器端发送信息 + OutputStream os=socket.getOutputStream();//字节输出流 + byte[] buf = new byte[4096]; + int len=0; + while((len = fis.read(buf))!=-1) { + os.write(buf, 0, len); + } + socket.shutdownOutput();//关闭输出流 + + //3.获取输入流,读取服务器端的响应信息 + InputStream is=socket.getInputStream(); + + byte[] bufIn = new byte[1024]; + int num =0; + int totalNum=0; + while ((num = is.read(bufIn))!=-1){ + System.arraycopy(bufIn,0,irisCode,totalNum,num); + totalNum = totalNum+num; + } + + //4.关闭资源 + is.close(); + os.close(); + socket.close(); + if(totalNum==1024){ + return irisCode; + } + else return null; + } + } diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java index 01ffff9..5f00f1d 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.metadata.service.IMetadataSupportService; import com.casic.missiles.modular.register.model.IrisData; import com.casic.missiles.modular.register.service.IIrisDataService; import com.casic.missiles.modular.register.util.Base64Util; @@ -41,33 +42,21 @@ @Value("${casic.file.uploadPath:C://casic//tmp//}") private String filePath; - @Value("${casic.iris.recServiceHost:localhost}") - private String recServiceHost; - @Value("${casic.iris.recServicePort:20004}") - private Integer recServicePort; + @Autowired private IIrisDataService irisDataService; + /** * 虹膜注册接口 */ @RequestMapping(value = "/add") @ResponseBody public Object imageUpload(String image_zy0,String image_zy1,String image_yy0,String image_yy1,String personId,String idCardNo) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(ToolUtil.isEmpty(image_zy0)||ToolUtil.isEmpty(image_zy1) || ToolUtil.isEmpty(image_yy0) || ToolUtil.isEmpty(image_yy1)){ return ResponseData.error("有图像为空"); } - IrisData irisData = new IrisData(); - if(map!=null && map.size()>0 ){ - //return ResponseData.error("已存在该人员的虹膜数据"); - irisData = irisDataService.selectById(map.get("id").toString()); - } - - String leftFilePath1 = this.filePath+personId+"_left_1.jpg"; String leftFilePath2 = this.filePath+personId+"_left_2.jpg"; String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; @@ -85,190 +74,13 @@ return ResponseData.error("右眼图像2转换失败"); } + String result = irisDataService.addIrisData(leftFilePath1,leftFilePath2,rightFilePath1,rightFilePath2,personId,idCardNo); - BASE64Decoder decoder = new BASE64Decoder(); - //左眼1 - byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - byte[] leftCode2 = getIrisCode(new FileInputStream(leftFilePath2)); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - byte[] rightCode1 = getIrisCode(new FileInputStream(rightFilePath1)); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - byte[] rightCode2 = getIrisCode(new FileInputStream(rightFilePath2)); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisData.setIdCardNo(idCardNo); - irisData.setPersonId(Long.valueOf(personId)); - - if(map!=null && map.size()>0 ){ - irisDataService.updateById(irisData); - }else { - irisDataService.insert(irisData); - } - return ResponseData.success(); + return ResponseData.success(result); } - /** - * 虹膜注册接口 - */ - @RequestMapping(value = "/addFile") - @ResponseBody - public Object imageUpload(MultipartFile image_zy0,MultipartFile image_zy1,MultipartFile image_yy0,MultipartFile image_yy1,String personId,String idCardNo) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(map!=null){ - return ResponseData.error("已存在该人员的虹膜数据"); - } - - if(image_zy0.isEmpty()||image_zy1.isEmpty() || image_yy0.isEmpty() ||image_yy1.isEmpty()){ - return ResponseData.error("有图像为空"); - } - - IrisData irisData = new IrisData(); - - String leftFilePath1 = this.filePath+personId+"_left_1.bmp"; - String leftFilePath2 = this.filePath+personId+"_left_2.bmp"; - String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; - String rightFilePath2 = this.filePath+personId+"_right_2.bmp"; - - - //左眼1 - byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - byte[] leftCode2 = getIrisCode(image_zy1.getInputStream()); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - byte[] rightCode1 = getIrisCode(image_yy0.getInputStream()); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - byte[] rightCode2 = getIrisCode(image_yy1.getInputStream()); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisData.setIdCardNo(idCardNo); - irisData.setPersonId(Long.valueOf(personId)); - irisDataService.insert(irisData); - return ResponseData.success(); - } - - /** - * 修改虹膜数据接口 - */ - @RequestMapping(value = "/update") - @ResponseBody - public Object imageUpload(@RequestParam("image_zy0")String image_zy0,@RequestParam("image_zy1")String image_zy1,@RequestParam("image_yy0")String image_yy0,@RequestParam("image_yy1")String image_yy1,@RequestParam("personId")String personId) throws IOException { - Map map = null; - map = irisDataService.selectByPersonId(personId); - if(map!=null){ - return ResponseData.error("不存在该记录"); - } - if(ToolUtil.isEmpty(image_zy0)||ToolUtil.isEmpty(image_zy1) || ToolUtil.isEmpty(image_yy0) || ToolUtil.isEmpty(image_yy1)){ - return ResponseData.error("有图像为空"); - } - - IrisData irisData = irisDataService.selectById(map.get("id").toString()); - - String leftFilePath1 = this.filePath+personId+"_left_1.bmp"; - String leftFilePath2 = this.filePath+personId+"_left_2.bmp"; - String rightFilePath1 = this.filePath+personId+"_right_1.bmp"; - String rightFilePath2 = this.filePath+personId+"_right_2.bmp"; - if(!Base64Util.Base64ToImage(image_zy0,leftFilePath1)){ - return ResponseData.error("左眼图像1转换失败"); - } - if(!Base64Util.Base64ToImage(image_zy1,leftFilePath2)){ - return ResponseData.error("左眼图像2转换失败"); - } - if(!Base64Util.Base64ToImage(image_yy0,rightFilePath1 )){ - return ResponseData.error("右眼图像1转换失败"); - } - if(!Base64Util.Base64ToImage(image_yy1,rightFilePath2)){ - return ResponseData.error("右眼图像2转换失败"); - } - - - BASE64Decoder decoder = new BASE64Decoder(); - //左眼1 - byte[] imageBytes = decoder.decodeBuffer(image_zy0); - InputStream fis = new ByteArrayInputStream(imageBytes); - byte[] leftCode1 = getIrisCode(fis); - if(leftCode1 ==null || leftCode1.length!=1024){ - return ResponseData.error("左眼图像1编码失败"); - } - //左眼2 - imageBytes = decoder.decodeBuffer(image_zy1); - fis = new ByteArrayInputStream(imageBytes); - byte[] leftCode2 = getIrisCode(fis); - if(leftCode2==null || leftCode2.length!=1024){ - return ResponseData.error("左眼图像2编码失败"); - } - //右眼1 - imageBytes = decoder.decodeBuffer(image_yy0); - fis = new ByteArrayInputStream(imageBytes); - byte[] rightCode1 = getIrisCode(fis); - if(rightCode1==null || rightCode1.length!=1024){ - return ResponseData.error("右眼图像1编码失败"); - } - //右眼2 - imageBytes = decoder.decodeBuffer(image_yy1); - fis = new ByteArrayInputStream(imageBytes); - byte[] rightCode2 = getIrisCode(fis); - if(rightCode2==null || rightCode2.length!=1024){ - return ResponseData.error("右眼图像2编码失败"); - } - - irisData.setLeftIrisCode1(leftCode1); - irisData.setLeftIrisCode2(leftCode2); - irisData.setRightIrisCode1(rightCode1); - irisData.setRightIrisCode2(rightCode2); - - irisData.setLeftImage1(leftFilePath1); - irisData.setLeftImage2(leftFilePath2); - irisData.setRightImage1(rightFilePath1); - irisData.setRightImage2(rightFilePath2); - - irisDataService.updateById(irisData); - return ResponseData.success(); - } /** * 详情 @@ -320,42 +132,7 @@ - //与c#的服务通信,获取虹膜编码 - private byte[] getIrisCode(InputStream fis) throws IOException { - byte[] irisCode = new byte[1024]; - //1.创建客户端Socket,指定服务器地址和端口 - Socket socket=new Socket(recServiceHost, recServicePort); - - //2.获取输出流,向服务器端发送信息 - OutputStream os=socket.getOutputStream();//字节输出流 - byte[] buf = new byte[4096]; - int len=0; - while((len = fis.read(buf))!=-1) { - os.write(buf, 0, len); - } - socket.shutdownOutput();//关闭输出流 - - //3.获取输入流,读取服务器端的响应信息 - InputStream is=socket.getInputStream(); - - byte[] bufIn = new byte[1024]; - int num =0; - int totalNum=0; - while ((num = is.read(bufIn))!=-1){ - System.arraycopy(bufIn,0,irisCode,totalNum,num); - totalNum = totalNum+num; - } - - //4.关闭资源 - is.close(); - os.close(); - socket.close(); - if(totalNum==1024){ - return irisCode; - } - else return null; - } } diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java index 64b5120..105479d 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.service.IService; import org.apache.ibatis.annotations.Param; +import java.io.FileNotFoundException; +import java.io.IOException; import java.util.Map; /** @@ -16,4 +18,6 @@ */ public interface IIrisDataService extends IService { Map selectByPersonId(@Param("personId") String personId); + + String addIrisData(String leftFilePath1,String leftFilePath2,String rightFilePath1,String rightFilePath2,String personId,String idCardNo) throws IOException; } diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java index 38fe2b1..7759189 100644 --- a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java +++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java @@ -1,12 +1,23 @@ package com.casic.missiles.modular.register.service.impl; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.metadata.service.IMetadataSupportService; import com.casic.missiles.modular.register.dao.IrisDataMapper; import com.casic.missiles.modular.register.model.IrisData; import com.casic.missiles.modular.register.service.IIrisDataService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.modular.register.util.Base64Util; +import com.casic.missiles.modular.system.model.Person; import org.apache.ibatis.annotations.Param; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import sun.misc.BASE64Decoder; +import java.io.*; +import java.net.Socket; +import java.util.HashMap; import java.util.Map; /** @@ -19,8 +30,112 @@ */ @Service public class IrisDataServiceImpl extends ServiceImpl implements IIrisDataService { + @Value("${casic.file.uploadPath:C://casic//tmp//}") + private String filePath; + @Autowired + private IMetadataSupportService metadataSupportService; + @Override public Map selectByPersonId(String personId){ return this.baseMapper.selectByPersonId(personId); } + + @Override + public String addIrisData(String leftFilePath1,String leftFilePath2,String rightFilePath1,String rightFilePath2,String personId,String idCardNo) throws IOException { + Map map = null; + map = selectByPersonId(personId); + + + IrisData irisData = new IrisData(); + if(map!=null && map.size()>0 ){ + //return ResponseData.error("已存在该人员的虹膜数据"); + irisData = selectById(map.get("id").toString()); + } + + + BASE64Decoder decoder = new BASE64Decoder(); + //左眼1 + byte[] leftCode1 = getIrisCode(new FileInputStream(leftFilePath1)); + if(leftCode1 ==null || leftCode1.length!=1024){ + return "左眼图像1编码失败"; + } + //左眼2 + byte[] leftCode2 = getIrisCode(new FileInputStream(leftFilePath2)); + if(leftCode2==null || leftCode2.length!=1024){ + return "左眼图像2编码失败"; + } + //右眼1 + byte[] rightCode1 = getIrisCode(new FileInputStream(rightFilePath1)); + if(rightCode1==null || rightCode1.length!=1024){ + return "右眼图像1编码失败"; + } + //右眼2 + byte[] rightCode2 = getIrisCode(new FileInputStream(rightFilePath2)); + if(rightCode2==null || rightCode2.length!=1024){ + return "右眼图像2编码失败"; + } + + irisData.setLeftIrisCode1(leftCode1); + irisData.setLeftIrisCode2(leftCode2); + irisData.setRightIrisCode1(rightCode1); + irisData.setRightIrisCode2(rightCode2); + + irisData.setLeftImage1(leftFilePath1); + irisData.setLeftImage2(leftFilePath2); + irisData.setRightImage1(rightFilePath1); + irisData.setRightImage2(rightFilePath2); + + irisData.setIdCardNo(idCardNo); + irisData.setPersonId(Long.valueOf(personId)); + + if(map!=null && map.size()>0 ){ + updateById(irisData); + }else { + insert(irisData); + } + //更新人员扩展表的是否注册过虹膜数据标志位 + Map mapIsRegist = new HashMap<>(); + mapIsRegist.put("isRegist",1); + metadataSupportService.updateMetaDataByTargetId(Person.class,map,personId); + + return "注册成功"; + } + + //与c#的服务通信,获取虹膜编码 + public byte[] getIrisCode(InputStream fis) throws IOException { + byte[] irisCode = new byte[1024]; + + //1.创建客户端Socket,指定服务器地址和端口 + Socket socket=new Socket("localhost", 20005); + + //2.获取输出流,向服务器端发送信息 + OutputStream os=socket.getOutputStream();//字节输出流 + byte[] buf = new byte[4096]; + int len=0; + while((len = fis.read(buf))!=-1) { + os.write(buf, 0, len); + } + socket.shutdownOutput();//关闭输出流 + + //3.获取输入流,读取服务器端的响应信息 + InputStream is=socket.getInputStream(); + + byte[] bufIn = new byte[1024]; + int num =0; + int totalNum=0; + while ((num = is.read(bufIn))!=-1){ + System.arraycopy(bufIn,0,irisCode,totalNum,num); + totalNum = totalNum+num; + } + + //4.关闭资源 + is.close(); + os.close(); + socket.close(); + if(totalNum==1024){ + return irisCode; + } + else return null; + } + } diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 9e93411..0770aa9 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -12,7 +12,7 @@ casic: kaptcha-open: false #是否开启登录时验证码 (true/false) nologin-urls: /user/login,/user/appLogin,/kaptcha,/config/baseConfig,/route/mockToken,/process/processDiagram - export-temp-path: E:\soft\othersoft\203\casic-iris-parent\casic-web\src\main\resources\config\temp\ + export-temp-path: D:\java\boot\casic-web-1.0.0-SNAPSHOT\export\ mybatis-plus: global-config: sql-injector: com.casic.missiles.modular.metadata.inject.MetaSqlInject