diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
new file mode 100644
index 0000000..9e75c7e
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.dao;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IrisDataMapper extends BaseMapper {
+
+}
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
new file mode 100644
index 0000000..9e75c7e
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.dao;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IrisDataMapper extends BaseMapper {
+
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
new file mode 100644
index 0000000..2b58905
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID AS id, PERSON_ID AS personId, ID_CARD_NO AS idCardNo, LEFT_IRIS_CODE1 AS leftIrisCode1, LEFT_IRIS_CODE2 AS leftIrisCode2, LEFT_IRIS_CODE3 AS leftIrisCode3, RIGHT_IRIS_CODE1 AS rightIrisCode1, RIGHT_IRIS_CODE2 AS rightIrisCode2, RIGHT_IRIS_CODE3 AS rightIrisCode3
+
+
+
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
new file mode 100644
index 0000000..9e75c7e
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.dao;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IrisDataMapper extends BaseMapper {
+
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
new file mode 100644
index 0000000..2b58905
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID AS id, PERSON_ID AS personId, ID_CARD_NO AS idCardNo, LEFT_IRIS_CODE1 AS leftIrisCode1, LEFT_IRIS_CODE2 AS leftIrisCode2, LEFT_IRIS_CODE3 AS leftIrisCode3, RIGHT_IRIS_CODE1 AS rightIrisCode1, RIGHT_IRIS_CODE2 AS rightIrisCode2, RIGHT_IRIS_CODE3 AS rightIrisCode3
+
+
+
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
new file mode 100644
index 0000000..9017b60
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
@@ -0,0 +1,92 @@
+package com.casic.missiles.modular.register.model;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ *
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Data
+@TableName("iris_data")
+public class IrisData extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "ID",type= IdType.ID_WORKER)
+ private Long id;
+ /**
+ * 对应person表的主键
+ */
+ @TableField("PERSON_ID")
+ private Long personId;
+ /**
+ * 身份证号
+ */
+ @TableField("ID_CARD_NO")
+ private String idCardNo;
+ /**
+ * 左眼虹膜编码
+ */
+ @TableField("LEFT_IRIS_CODE1")
+ private byte[] leftIrisCode1;
+ /**
+ * 左眼虹膜编码2
+ */
+ @TableField("LEFT_IRIS_CODE2")
+ private byte[] leftIrisCode2;
+ @TableField("LEFT_IRIS_CODE3")
+ private byte[] leftIrisCode3;
+ /**
+ * 右眼虹膜编码1
+ */
+ @TableField("RIGHT_IRIS_CODE1")
+ private byte[] rightIrisCode1;
+ /**
+ * 右眼虹膜编码2
+ */
+ @TableField("RIGHT_IRIS_CODE2")
+ private byte[] rightIrisCode2;
+ /**
+ * 右眼虹膜编码3
+ */
+ @TableField("RIGHT_IRIS_CODE3")
+ private byte[] rightIrisCode3;
+
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+ @Override
+ public String toString() {
+ return "IrisData{" +
+ "id=" + id +
+ ", personId=" + personId +
+ ", idCardNo=" + idCardNo +
+ ", leftIrisCode1=" + leftIrisCode1 +
+ ", leftIrisCode2=" + leftIrisCode2 +
+ ", leftIrisCode3=" + leftIrisCode3 +
+ ", rightIrisCode1=" + rightIrisCode1 +
+ ", rightIrisCode2=" + rightIrisCode2 +
+ ", rightIrisCode3=" + rightIrisCode3 +
+ "}";
+ }
+}
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
new file mode 100644
index 0000000..9e75c7e
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.dao;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IrisDataMapper extends BaseMapper {
+
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
new file mode 100644
index 0000000..2b58905
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID AS id, PERSON_ID AS personId, ID_CARD_NO AS idCardNo, LEFT_IRIS_CODE1 AS leftIrisCode1, LEFT_IRIS_CODE2 AS leftIrisCode2, LEFT_IRIS_CODE3 AS leftIrisCode3, RIGHT_IRIS_CODE1 AS rightIrisCode1, RIGHT_IRIS_CODE2 AS rightIrisCode2, RIGHT_IRIS_CODE3 AS rightIrisCode3
+
+
+
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
new file mode 100644
index 0000000..9017b60
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
@@ -0,0 +1,92 @@
+package com.casic.missiles.modular.register.model;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ *
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Data
+@TableName("iris_data")
+public class IrisData extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "ID",type= IdType.ID_WORKER)
+ private Long id;
+ /**
+ * 对应person表的主键
+ */
+ @TableField("PERSON_ID")
+ private Long personId;
+ /**
+ * 身份证号
+ */
+ @TableField("ID_CARD_NO")
+ private String idCardNo;
+ /**
+ * 左眼虹膜编码
+ */
+ @TableField("LEFT_IRIS_CODE1")
+ private byte[] leftIrisCode1;
+ /**
+ * 左眼虹膜编码2
+ */
+ @TableField("LEFT_IRIS_CODE2")
+ private byte[] leftIrisCode2;
+ @TableField("LEFT_IRIS_CODE3")
+ private byte[] leftIrisCode3;
+ /**
+ * 右眼虹膜编码1
+ */
+ @TableField("RIGHT_IRIS_CODE1")
+ private byte[] rightIrisCode1;
+ /**
+ * 右眼虹膜编码2
+ */
+ @TableField("RIGHT_IRIS_CODE2")
+ private byte[] rightIrisCode2;
+ /**
+ * 右眼虹膜编码3
+ */
+ @TableField("RIGHT_IRIS_CODE3")
+ private byte[] rightIrisCode3;
+
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+ @Override
+ public String toString() {
+ return "IrisData{" +
+ "id=" + id +
+ ", personId=" + personId +
+ ", idCardNo=" + idCardNo +
+ ", leftIrisCode1=" + leftIrisCode1 +
+ ", leftIrisCode2=" + leftIrisCode2 +
+ ", leftIrisCode3=" + leftIrisCode3 +
+ ", rightIrisCode1=" + rightIrisCode1 +
+ ", rightIrisCode2=" + rightIrisCode2 +
+ ", rightIrisCode3=" + rightIrisCode3 +
+ "}";
+ }
+}
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
new file mode 100644
index 0000000..dbfa826
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.service;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IIrisDataService extends IService {
+
+}
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
new file mode 100644
index 0000000..9e75c7e
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.dao;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IrisDataMapper extends BaseMapper {
+
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
new file mode 100644
index 0000000..2b58905
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID AS id, PERSON_ID AS personId, ID_CARD_NO AS idCardNo, LEFT_IRIS_CODE1 AS leftIrisCode1, LEFT_IRIS_CODE2 AS leftIrisCode2, LEFT_IRIS_CODE3 AS leftIrisCode3, RIGHT_IRIS_CODE1 AS rightIrisCode1, RIGHT_IRIS_CODE2 AS rightIrisCode2, RIGHT_IRIS_CODE3 AS rightIrisCode3
+
+
+
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
new file mode 100644
index 0000000..9017b60
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
@@ -0,0 +1,92 @@
+package com.casic.missiles.modular.register.model;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ *
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Data
+@TableName("iris_data")
+public class IrisData extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "ID",type= IdType.ID_WORKER)
+ private Long id;
+ /**
+ * 对应person表的主键
+ */
+ @TableField("PERSON_ID")
+ private Long personId;
+ /**
+ * 身份证号
+ */
+ @TableField("ID_CARD_NO")
+ private String idCardNo;
+ /**
+ * 左眼虹膜编码
+ */
+ @TableField("LEFT_IRIS_CODE1")
+ private byte[] leftIrisCode1;
+ /**
+ * 左眼虹膜编码2
+ */
+ @TableField("LEFT_IRIS_CODE2")
+ private byte[] leftIrisCode2;
+ @TableField("LEFT_IRIS_CODE3")
+ private byte[] leftIrisCode3;
+ /**
+ * 右眼虹膜编码1
+ */
+ @TableField("RIGHT_IRIS_CODE1")
+ private byte[] rightIrisCode1;
+ /**
+ * 右眼虹膜编码2
+ */
+ @TableField("RIGHT_IRIS_CODE2")
+ private byte[] rightIrisCode2;
+ /**
+ * 右眼虹膜编码3
+ */
+ @TableField("RIGHT_IRIS_CODE3")
+ private byte[] rightIrisCode3;
+
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+ @Override
+ public String toString() {
+ return "IrisData{" +
+ "id=" + id +
+ ", personId=" + personId +
+ ", idCardNo=" + idCardNo +
+ ", leftIrisCode1=" + leftIrisCode1 +
+ ", leftIrisCode2=" + leftIrisCode2 +
+ ", leftIrisCode3=" + leftIrisCode3 +
+ ", rightIrisCode1=" + rightIrisCode1 +
+ ", rightIrisCode2=" + rightIrisCode2 +
+ ", rightIrisCode3=" + rightIrisCode3 +
+ "}";
+ }
+}
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
new file mode 100644
index 0000000..dbfa826
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.service;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IIrisDataService extends IService {
+
+}
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
new file mode 100644
index 0000000..f691055
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.register.service.impl;
+
+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 org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Service
+public class IrisDataServiceImpl extends ServiceImpl implements IIrisDataService {
+
+}
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
new file mode 100644
index 0000000..9e75c7e
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.dao;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IrisDataMapper extends BaseMapper {
+
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
new file mode 100644
index 0000000..2b58905
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID AS id, PERSON_ID AS personId, ID_CARD_NO AS idCardNo, LEFT_IRIS_CODE1 AS leftIrisCode1, LEFT_IRIS_CODE2 AS leftIrisCode2, LEFT_IRIS_CODE3 AS leftIrisCode3, RIGHT_IRIS_CODE1 AS rightIrisCode1, RIGHT_IRIS_CODE2 AS rightIrisCode2, RIGHT_IRIS_CODE3 AS rightIrisCode3
+
+
+
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
new file mode 100644
index 0000000..9017b60
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
@@ -0,0 +1,92 @@
+package com.casic.missiles.modular.register.model;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ *
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Data
+@TableName("iris_data")
+public class IrisData extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "ID",type= IdType.ID_WORKER)
+ private Long id;
+ /**
+ * 对应person表的主键
+ */
+ @TableField("PERSON_ID")
+ private Long personId;
+ /**
+ * 身份证号
+ */
+ @TableField("ID_CARD_NO")
+ private String idCardNo;
+ /**
+ * 左眼虹膜编码
+ */
+ @TableField("LEFT_IRIS_CODE1")
+ private byte[] leftIrisCode1;
+ /**
+ * 左眼虹膜编码2
+ */
+ @TableField("LEFT_IRIS_CODE2")
+ private byte[] leftIrisCode2;
+ @TableField("LEFT_IRIS_CODE3")
+ private byte[] leftIrisCode3;
+ /**
+ * 右眼虹膜编码1
+ */
+ @TableField("RIGHT_IRIS_CODE1")
+ private byte[] rightIrisCode1;
+ /**
+ * 右眼虹膜编码2
+ */
+ @TableField("RIGHT_IRIS_CODE2")
+ private byte[] rightIrisCode2;
+ /**
+ * 右眼虹膜编码3
+ */
+ @TableField("RIGHT_IRIS_CODE3")
+ private byte[] rightIrisCode3;
+
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+ @Override
+ public String toString() {
+ return "IrisData{" +
+ "id=" + id +
+ ", personId=" + personId +
+ ", idCardNo=" + idCardNo +
+ ", leftIrisCode1=" + leftIrisCode1 +
+ ", leftIrisCode2=" + leftIrisCode2 +
+ ", leftIrisCode3=" + leftIrisCode3 +
+ ", rightIrisCode1=" + rightIrisCode1 +
+ ", rightIrisCode2=" + rightIrisCode2 +
+ ", rightIrisCode3=" + rightIrisCode3 +
+ "}";
+ }
+}
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
new file mode 100644
index 0000000..dbfa826
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.service;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IIrisDataService extends IService {
+
+}
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
new file mode 100644
index 0000000..f691055
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.register.service.impl;
+
+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 org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Service
+public class IrisDataServiceImpl extends ServiceImpl implements IIrisDataService {
+
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
index 64e5eae..9dbe1fb 100644
--- a/casic-web/pom.xml
+++ b/casic-web/pom.xml
@@ -198,6 +198,7 @@
groovy-all
true
+
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
new file mode 100644
index 0000000..9e75c7e
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.dao;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IrisDataMapper extends BaseMapper {
+
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
new file mode 100644
index 0000000..2b58905
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID AS id, PERSON_ID AS personId, ID_CARD_NO AS idCardNo, LEFT_IRIS_CODE1 AS leftIrisCode1, LEFT_IRIS_CODE2 AS leftIrisCode2, LEFT_IRIS_CODE3 AS leftIrisCode3, RIGHT_IRIS_CODE1 AS rightIrisCode1, RIGHT_IRIS_CODE2 AS rightIrisCode2, RIGHT_IRIS_CODE3 AS rightIrisCode3
+
+
+
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
new file mode 100644
index 0000000..9017b60
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
@@ -0,0 +1,92 @@
+package com.casic.missiles.modular.register.model;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ *
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Data
+@TableName("iris_data")
+public class IrisData extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "ID",type= IdType.ID_WORKER)
+ private Long id;
+ /**
+ * 对应person表的主键
+ */
+ @TableField("PERSON_ID")
+ private Long personId;
+ /**
+ * 身份证号
+ */
+ @TableField("ID_CARD_NO")
+ private String idCardNo;
+ /**
+ * 左眼虹膜编码
+ */
+ @TableField("LEFT_IRIS_CODE1")
+ private byte[] leftIrisCode1;
+ /**
+ * 左眼虹膜编码2
+ */
+ @TableField("LEFT_IRIS_CODE2")
+ private byte[] leftIrisCode2;
+ @TableField("LEFT_IRIS_CODE3")
+ private byte[] leftIrisCode3;
+ /**
+ * 右眼虹膜编码1
+ */
+ @TableField("RIGHT_IRIS_CODE1")
+ private byte[] rightIrisCode1;
+ /**
+ * 右眼虹膜编码2
+ */
+ @TableField("RIGHT_IRIS_CODE2")
+ private byte[] rightIrisCode2;
+ /**
+ * 右眼虹膜编码3
+ */
+ @TableField("RIGHT_IRIS_CODE3")
+ private byte[] rightIrisCode3;
+
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+ @Override
+ public String toString() {
+ return "IrisData{" +
+ "id=" + id +
+ ", personId=" + personId +
+ ", idCardNo=" + idCardNo +
+ ", leftIrisCode1=" + leftIrisCode1 +
+ ", leftIrisCode2=" + leftIrisCode2 +
+ ", leftIrisCode3=" + leftIrisCode3 +
+ ", rightIrisCode1=" + rightIrisCode1 +
+ ", rightIrisCode2=" + rightIrisCode2 +
+ ", rightIrisCode3=" + rightIrisCode3 +
+ "}";
+ }
+}
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
new file mode 100644
index 0000000..dbfa826
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.service;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IIrisDataService extends IService {
+
+}
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
new file mode 100644
index 0000000..f691055
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.register.service.impl;
+
+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 org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Service
+public class IrisDataServiceImpl extends ServiceImpl implements IIrisDataService {
+
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
index 64e5eae..9dbe1fb 100644
--- a/casic-web/pom.xml
+++ b/casic-web/pom.xml
@@ -198,6 +198,7 @@
groovy-all
true
+
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
index e30a03e..8a66b1d 100644
--- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -6,6 +6,7 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
+
import java.io.FileNotFoundException;
/**
diff --git a/casic-iris-register/pom.xml b/casic-iris-register/pom.xml
new file mode 100644
index 0000000..7b6dbad
--- /dev/null
+++ b/casic-iris-register/pom.xml
@@ -0,0 +1,79 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-iris-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ casic-iris-register
+ ${pro.version}
+ jar
+ casic-iris-register
+ 虹膜注册
+
+
+
+
+
+ com.casic
+ casic-core
+ ${casic.version}
+
+
+
+ com.casic
+ casic-iris-support
+ ${casic.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ commons-io
+ commons-io
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+
+
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
new file mode 100644
index 0000000..e2b5637
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/controller/IrisDataController.java
@@ -0,0 +1,191 @@
+package com.casic.missiles.modular.register.controller;
+
+
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.base.response.ResponseData;
+import com.casic.missiles.core.common.constant.factory.PageFactory;
+import com.casic.missiles.modular.register.model.IrisData;
+import com.casic.missiles.modular.register.service.IIrisDataService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+
+import java.io.*;
+import java.net.Socket;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 控制器
+ *
+ * @author dev
+ * @Date 2019-11-29 17:41:20
+ */
+@Controller
+@RequestMapping("/irisData")
+public class IrisDataController extends BaseController {
+
+
+ @Autowired
+ private IIrisDataService irisDataService;
+
+
+ /**
+ * 获取列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public Object list(String condition) {
+ return irisDataService.selectList(null);
+ }
+
+ /**
+ * 获取分页列表
+ */
+ @RequestMapping(value = "/listPage")
+ @ResponseBody
+ public Object listPage(String condition) {
+ Page page = new PageFactory().defaultPage();
+ EntityWrapper query = new EntityWrapper<>();
+ page = irisDataService.selectPage(page,query);
+ return super.packForBT(page);
+ }
+ /**
+ * 新增
+ */
+// @RequestMapping(value = "/add")
+// @ResponseBody
+// public Object add(IrisData irisData) {
+// irisDataService.insert(irisData);
+// return ResponseData.success();
+// }
+
+ @RequestMapping(value = "/add")
+ //@ResponseBody
+ public Object imageUpload(@RequestParam("file") List file,String personId,String idCardNo) throws IOException {
+ if(file.size()!=4){
+ return ResponseData.error("虹膜图像必须为左眼2副,右眼2副,共4副");
+ }
+
+ IrisData irisData = new IrisData();
+
+ int i = 0;
+ for (MultipartFile image : file) {
+ if (!image.isEmpty()) {
+ InputStream fis = image.getInputStream();
+ byte[] result = getIrisCode(fis);
+ if(returnActualLength(result)==1024){
+ if(i==0)irisData.setLeftIrisCode1(result);
+ else if(i==1)irisData.setLeftIrisCode2(result);
+ else if(i==2)irisData.setRightIrisCode1(result);
+ else if(i==3)irisData.setRightIrisCode2(result);
+ i++;
+ }
+ } else {
+ return ResponseData.error("图像为空");
+ }
+ }
+
+ irisData.setIdCardNo(idCardNo);
+ irisData.setPersonId(Long.valueOf(personId));
+ irisDataService.insert(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 删除
+ */
+ @RequestMapping(value = "/delete")
+ @ResponseBody
+ public Object delete(@RequestParam String irisDataId) {
+ irisDataService.deleteById(irisDataId);
+ return ResponseData.success();
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequestMapping(value = "/batchDelete")
+ @ResponseBody
+ public Object delete(@RequestParam("irisDataIds") List irisDataIds) {
+ irisDataService.deleteBatchIds(irisDataIds);
+ return ResponseData.success();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping(value = "/update")
+ @ResponseBody
+ public Object update(IrisData irisData) {
+ irisDataService.updateById(irisData);
+ return ResponseData.success();
+ }
+
+ /**
+ * 详情
+ */
+ @RequestMapping(value = "/detail/{irisDataId}")
+ @ResponseBody
+ public Object detail(@PathVariable("irisDataId") String irisDataId) {
+// ResultData resultData = new ResultData();
+// resultData.setCode(200);
+// resultData.setMessage("查询详情成功");
+// resultData.setData(irisDataService.selectById(irisDataId));
+// return resultData;
+ return ResponseData.success();
+ }
+
+
+ private byte[] getIrisCode(InputStream fis) throws IOException {
+ byte[] irisCode = new byte[1024];
+
+ //1.创建客户端Socket,指定服务器地址和端口
+ Socket socket=new Socket("localhost", 8888);
+
+ //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;
+ while ((num = is.read(bufIn))>0){
+ System.arraycopy(bufIn,0,irisCode,returnActualLength(irisCode),num);
+ }
+
+ irisCode = bufIn;
+
+
+ //4.关闭资源
+ is.close();
+ os.close();
+ socket.close();
+
+ return irisCode;
+ }
+
+ public int returnActualLength(byte[] data) {
+ int i = 0;
+ for (; i < data.length; i++) {
+ if (data[i] == '\0')
+ break;
+ }
+ return i;
+ }
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
new file mode 100644
index 0000000..9e75c7e
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/IrisDataMapper.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.dao;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IrisDataMapper extends BaseMapper {
+
+}
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
new file mode 100644
index 0000000..2b58905
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/dao/mapping/IrisDataMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID AS id, PERSON_ID AS personId, ID_CARD_NO AS idCardNo, LEFT_IRIS_CODE1 AS leftIrisCode1, LEFT_IRIS_CODE2 AS leftIrisCode2, LEFT_IRIS_CODE3 AS leftIrisCode3, RIGHT_IRIS_CODE1 AS rightIrisCode1, RIGHT_IRIS_CODE2 AS rightIrisCode2, RIGHT_IRIS_CODE3 AS rightIrisCode3
+
+
+
diff --git a/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
new file mode 100644
index 0000000..9017b60
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/model/IrisData.java
@@ -0,0 +1,92 @@
+package com.casic.missiles.modular.register.model;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ *
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Data
+@TableName("iris_data")
+public class IrisData extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "ID",type= IdType.ID_WORKER)
+ private Long id;
+ /**
+ * 对应person表的主键
+ */
+ @TableField("PERSON_ID")
+ private Long personId;
+ /**
+ * 身份证号
+ */
+ @TableField("ID_CARD_NO")
+ private String idCardNo;
+ /**
+ * 左眼虹膜编码
+ */
+ @TableField("LEFT_IRIS_CODE1")
+ private byte[] leftIrisCode1;
+ /**
+ * 左眼虹膜编码2
+ */
+ @TableField("LEFT_IRIS_CODE2")
+ private byte[] leftIrisCode2;
+ @TableField("LEFT_IRIS_CODE3")
+ private byte[] leftIrisCode3;
+ /**
+ * 右眼虹膜编码1
+ */
+ @TableField("RIGHT_IRIS_CODE1")
+ private byte[] rightIrisCode1;
+ /**
+ * 右眼虹膜编码2
+ */
+ @TableField("RIGHT_IRIS_CODE2")
+ private byte[] rightIrisCode2;
+ /**
+ * 右眼虹膜编码3
+ */
+ @TableField("RIGHT_IRIS_CODE3")
+ private byte[] rightIrisCode3;
+
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+ @Override
+ public String toString() {
+ return "IrisData{" +
+ "id=" + id +
+ ", personId=" + personId +
+ ", idCardNo=" + idCardNo +
+ ", leftIrisCode1=" + leftIrisCode1 +
+ ", leftIrisCode2=" + leftIrisCode2 +
+ ", leftIrisCode3=" + leftIrisCode3 +
+ ", rightIrisCode1=" + rightIrisCode1 +
+ ", rightIrisCode2=" + rightIrisCode2 +
+ ", rightIrisCode3=" + rightIrisCode3 +
+ "}";
+ }
+}
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
new file mode 100644
index 0000000..dbfa826
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/IIrisDataService.java
@@ -0,0 +1,16 @@
+package com.casic.missiles.modular.register.service;
+
+import com.casic.missiles.modular.register.model.IrisData;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+public interface IIrisDataService extends IService {
+
+}
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
new file mode 100644
index 0000000..f691055
--- /dev/null
+++ b/casic-iris-register/src/main/java/com/casic/missiles/modular/register/service/impl/IrisDataServiceImpl.java
@@ -0,0 +1,20 @@
+package com.casic.missiles.modular.register.service.impl;
+
+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 org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author stylefeng123
+ * @since 2019-11-29
+ */
+@Service
+public class IrisDataServiceImpl extends ServiceImpl implements IIrisDataService {
+
+}
diff --git a/casic-web/pom.xml b/casic-web/pom.xml
index 64e5eae..9dbe1fb 100644
--- a/casic-web/pom.xml
+++ b/casic-web/pom.xml
@@ -198,6 +198,7 @@
groovy-all
true
+
diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
index e30a03e..8a66b1d 100644
--- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
+++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java
@@ -6,6 +6,7 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
+
import java.io.FileNotFoundException;
/**
diff --git a/pom.xml b/pom.xml
index b74d442..7e39171 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,6 +11,7 @@
casic-iris-acs
casic-iris-device
casic-iris-support
+ casic-iris-register
@@ -85,6 +86,11 @@
casic-iris-support
${casic.version}
+
+ com.casic
+ casic-iris-register
+ ${casic.version}
+