Commit 51816693c9457c42de6e3d75224cee9b8a47114c
1 parent
79abf011
Exists in
master
返回错误编码
Showing
1 changed file
with
66 additions
and
51 deletions
Show diff stats
cloud/lapi/src/main/java/com/sincere/lapi/controller/LapiController.java
| @@ -16,6 +16,8 @@ | @@ -16,6 +16,8 @@ | ||
| 16 | */ | 16 | */ |
| 17 | package com.sincere.lapi.controller; | 17 | package com.sincere.lapi.controller; |
| 18 | 18 | ||
| 19 | +import com.alibaba.fastjson.JSONArray; | ||
| 20 | +import com.alibaba.fastjson.JSONObject; | ||
| 19 | import com.sincere.common.dto.smartCampus.SzVSchoolStudent; | 21 | import com.sincere.common.dto.smartCampus.SzVSchoolStudent; |
| 20 | import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; | 22 | import com.sincere.common.dto.smartCampus.SzVSchoolTeacher; |
| 21 | import com.sincere.common.dto.xiaoan.FaceSendfail; | 23 | import com.sincere.common.dto.xiaoan.FaceSendfail; |
| @@ -24,7 +26,6 @@ import com.sincere.lapi.Utils.FileUtils; | @@ -24,7 +26,6 @@ import com.sincere.lapi.Utils.FileUtils; | ||
| 24 | import com.sincere.lapi.feign.ScFeign; | 26 | import com.sincere.lapi.feign.ScFeign; |
| 25 | import com.sincere.lapi.feign.XaFeign; | 27 | import com.sincere.lapi.feign.XaFeign; |
| 26 | import com.sincere.lapi.pojo.*; | 28 | import com.sincere.lapi.pojo.*; |
| 27 | -import com.sincere.lapi.server.UrlParam; | ||
| 28 | import com.sincere.lapi.service.request.TerminalHttpCall; | 29 | import com.sincere.lapi.service.request.TerminalHttpCall; |
| 29 | import io.swagger.annotations.ApiOperation; | 30 | import io.swagger.annotations.ApiOperation; |
| 30 | import org.apache.commons.lang3.StringUtils; | 31 | import org.apache.commons.lang3.StringUtils; |
| @@ -35,10 +36,7 @@ import org.springframework.web.bind.annotation.RequestParam; | @@ -35,10 +36,7 @@ import org.springframework.web.bind.annotation.RequestParam; | ||
| 35 | import org.springframework.web.bind.annotation.RestController; | 36 | import org.springframework.web.bind.annotation.RestController; |
| 36 | import sun.misc.BASE64Encoder; | 37 | import sun.misc.BASE64Encoder; |
| 37 | 38 | ||
| 38 | -import java.util.ArrayList; | ||
| 39 | -import java.util.HashMap; | ||
| 40 | -import java.util.List; | ||
| 41 | -import java.util.Map; | 39 | +import java.util.*; |
| 42 | 40 | ||
| 43 | /** | 41 | /** |
| 44 | * description | 42 | * description |
| @@ -57,6 +55,21 @@ public class LapiController { | @@ -57,6 +55,21 @@ public class LapiController { | ||
| 57 | @Autowired | 55 | @Autowired |
| 58 | TerminalHttpCall terminalHttpCall = new TerminalHttpCall(); | 56 | TerminalHttpCall terminalHttpCall = new TerminalHttpCall(); |
| 59 | 57 | ||
| 58 | + | ||
| 59 | + private static Map<Integer,String> resultCodeMap = new HashMap<>(); | ||
| 60 | + | ||
| 61 | + static { | ||
| 62 | + resultCodeMap.put(1,"通用执行失败"); | ||
| 63 | + resultCodeMap.put(2,"初始化检测失败"); | ||
| 64 | + resultCodeMap.put(3,"人脸检测失败"); | ||
| 65 | + resultCodeMap.put(4,"图片未检测到人脸"); | ||
| 66 | + resultCodeMap.put(5,"jpeg 照片解码失败"); | ||
| 67 | + resultCodeMap.put(6,"人脸图片质量分数不满足"); | ||
| 68 | + resultCodeMap.put(7,"图片缩放失败"); | ||
| 69 | + resultCodeMap.put(8,"未启用智能"); | ||
| 70 | + resultCodeMap.put(9,"图片不存在或过大/过小"); | ||
| 71 | + } | ||
| 72 | + | ||
| 60 | /** | 73 | /** |
| 61 | * 下发整个学校 | 74 | * 下发整个学校 |
| 62 | * @param deviceIds 多个设备用,隔开 | 75 | * @param deviceIds 多个设备用,隔开 |
| @@ -69,6 +82,7 @@ public class LapiController { | @@ -69,6 +82,7 @@ public class LapiController { | ||
| 69 | String[] deviceList = deviceIds.split(","); | 82 | String[] deviceList = deviceIds.split(","); |
| 70 | if(userType.equals("1")){ | 83 | if(userType.equals("1")){ |
| 71 | List<SzVSchoolTeacher> list = scFeign.selectTeacherBySchoolId(schoolId) ; | 84 | List<SzVSchoolTeacher> list = scFeign.selectTeacherBySchoolId(schoolId) ; |
| 85 | + list = removeDuplicateCase(list); | ||
| 72 | for(String deviceId :deviceList){ | 86 | for(String deviceId :deviceList){ |
| 73 | sendTeacherBatch(list,deviceId); | 87 | sendTeacherBatch(list,deviceId); |
| 74 | } | 88 | } |
| @@ -80,6 +94,17 @@ public class LapiController { | @@ -80,6 +94,17 @@ public class LapiController { | ||
| 80 | } | 94 | } |
| 81 | } | 95 | } |
| 82 | 96 | ||
| 97 | + private List<SzVSchoolTeacher> removeDuplicateCase(List<SzVSchoolTeacher> cases) { | ||
| 98 | + Set<SzVSchoolTeacher> set = new TreeSet<>(new Comparator<SzVSchoolTeacher>() { | ||
| 99 | + @Override | ||
| 100 | + public int compare(SzVSchoolTeacher o1, SzVSchoolTeacher o2) { | ||
| 101 | + return o1.getTeacherId().compareTo(o2.getTeacherId()); | ||
| 102 | + } | ||
| 103 | + }); | ||
| 104 | + set.addAll(cases); | ||
| 105 | + return new ArrayList<>(set); | ||
| 106 | + } | ||
| 107 | + | ||
| 83 | 108 | ||
| 84 | 109 | ||
| 85 | //下发单张人脸到设备 | 110 | //下发单张人脸到设备 |
| @@ -107,12 +132,20 @@ public class LapiController { | @@ -107,12 +132,20 @@ public class LapiController { | ||
| 107 | private void sendStudent(SzVSchoolStudent student , String deviceId){ | 132 | private void sendStudent(SzVSchoolStudent student , String deviceId){ |
| 108 | try{ | 133 | try{ |
| 109 | LAPIResponse response = sendImg(Long.valueOf(student.getStudentId()),student.getName(),student.getStudentNum(),student.getPhoto(),deviceId); | 134 | LAPIResponse response = sendImg(Long.valueOf(student.getStudentId()),student.getName(),student.getStudentNum(),student.getPhoto(),deviceId); |
| 110 | - System.out.println("接收到的json-------"+response.toString()); | ||
| 111 | terminalHttpCall.removeKey(deviceId); | 135 | terminalHttpCall.removeKey(deviceId); |
| 112 | if(response.getStatusString().equals("Succeed")){ | 136 | if(response.getStatusString().equals("Succeed")){ |
| 113 | - insertSuccess(deviceId,student.getStudentId(),student.getStudentNum(),student.getName(),student.getPhoto(),student.getSchoolId(),2); | 137 | + JSONObject data = JSONObject.parseObject(response.getData()); |
| 138 | + JSONArray personList = (JSONArray)data.get("PersonList") ; | ||
| 139 | + JSONArray faceList = (JSONArray) ((JSONObject)personList.get(0)).get("FaceList"); | ||
| 140 | + JSONObject face = (JSONObject) faceList.get(0); | ||
| 141 | + if((Integer) face.get("ResultCode") == 0){ | ||
| 142 | + insertSuccess(deviceId,student.getStudentId(),student.getStudentNum(),student.getName(),student.getPhoto(),student.getSchoolId(),2); | ||
| 143 | + }else { | ||
| 144 | + Integer code = (Integer) face.get("ResultCode") ; | ||
| 145 | + insertFail(deviceId,student.getStudentId(),student.getStudentNum(),student.getName(),student.getPhoto(),student.getSchoolId(),2,code,resultCodeMap.get(code)); | ||
| 146 | + } | ||
| 114 | }else { | 147 | }else { |
| 115 | - insertFail(deviceId,student.getStudentId(),student.getStudentNum(),student.getName(),student.getPhoto(),student.getSchoolId(),2,response.getStatusCode()); | 148 | + insertFail(deviceId,student.getStudentId(),student.getStudentNum(),student.getName(),student.getPhoto(),student.getSchoolId(),2,response.getStatusCode(),response.getStatusString()); |
| 116 | } | 149 | } |
| 117 | }catch (Exception e){ | 150 | }catch (Exception e){ |
| 118 | e.printStackTrace(); | 151 | e.printStackTrace(); |
| @@ -133,9 +166,18 @@ public class LapiController { | @@ -133,9 +166,18 @@ public class LapiController { | ||
| 133 | LAPIResponse response = sendImg(Long.valueOf(teacher.getTeacherId()),teacher.getName(),teacher.getTeacherNum(),teacher.getFace(),deviceId); | 166 | LAPIResponse response = sendImg(Long.valueOf(teacher.getTeacherId()),teacher.getName(),teacher.getTeacherNum(),teacher.getFace(),deviceId); |
| 134 | terminalHttpCall.removeKey(deviceId); | 167 | terminalHttpCall.removeKey(deviceId); |
| 135 | if(response.getStatusString().equals("Succeed")){ | 168 | if(response.getStatusString().equals("Succeed")){ |
| 136 | - insertSuccess(deviceId,teacher.getTeacherId(),teacher.getTeacherNum(),teacher.getName(),teacher.getFace(),teacher.getSchoolId(),1); | 169 | + JSONObject data = JSONObject.parseObject(response.getData()); |
| 170 | + JSONArray personList = (JSONArray)data.get("PersonList") ; | ||
| 171 | + JSONArray faceList = (JSONArray) ((JSONObject)personList.get(0)).get("FaceList"); | ||
| 172 | + JSONObject face = (JSONObject) faceList.get(0); | ||
| 173 | + if((Integer) face.get("ResultCode") == 0){ | ||
| 174 | + insertSuccess(deviceId,teacher.getTeacherId(),teacher.getTeacherNum(),teacher.getName(),teacher.getFace(),teacher.getSchoolId(),1); | ||
| 175 | + }else { | ||
| 176 | + Integer code = (Integer) face.get("ResultCode") ; | ||
| 177 | + insertFail(deviceId,teacher.getTeacherId(),teacher.getTeacherNum(),teacher.getName(),teacher.getFace(),teacher.getSchoolId(),1,code,resultCodeMap.get(code)); | ||
| 178 | + } | ||
| 137 | }else { | 179 | }else { |
| 138 | - insertFail(deviceId,teacher.getTeacherId(),teacher.getTeacherNum(),teacher.getName(),teacher.getFace(),teacher.getSchoolId(),1,response.getStatusCode()); | 180 | + insertFail(deviceId,teacher.getTeacherId(),teacher.getTeacherNum(),teacher.getName(),teacher.getFace(),teacher.getSchoolId(),1,response.getStatusCode(),response.getStatusString()); |
| 139 | } | 181 | } |
| 140 | }catch (Exception e){ | 182 | }catch (Exception e){ |
| 141 | e.printStackTrace(); | 183 | e.printStackTrace(); |
| @@ -202,18 +244,19 @@ public class LapiController { | @@ -202,18 +244,19 @@ public class LapiController { | ||
| 202 | 244 | ||
| 203 | 245 | ||
| 204 | private String getCard(String card) { | 246 | private String getCard(String card) { |
| 205 | - | ||
| 206 | - if (card.length() == 8) { | ||
| 207 | - int length = card.length(); | ||
| 208 | - String result = card.substring(length - 2, length) + card.substring(length - 4, length - 2) + card.substring(length - 6, length - 4) | ||
| 209 | - + card.substring(length - 8, length - 6); | ||
| 210 | - return result; | ||
| 211 | - | ||
| 212 | - } else { | ||
| 213 | - System.out.println("卡号位数不对:" + card); | ||
| 214 | - return ""; | 247 | + if(StringUtils.isBlank(card)){ |
| 248 | + return "0" ; | ||
| 249 | + }else { | ||
| 250 | + if (card.length() == 8) { | ||
| 251 | + int length = card.length(); | ||
| 252 | + String result = card.substring(length - 2, length) + card.substring(length - 4, length - 2) + card.substring(length - 6, length - 4) | ||
| 253 | + + card.substring(length - 8, length - 6); | ||
| 254 | + return result; | ||
| 255 | + | ||
| 256 | + } else { | ||
| 257 | + return "0"; | ||
| 258 | + } | ||
| 215 | } | 259 | } |
| 216 | - | ||
| 217 | } | 260 | } |
| 218 | 261 | ||
| 219 | private void insertSuccess(String deviceId , int customerId , String num , String name , String imgPath , int schoolId ,int userType){ | 262 | private void insertSuccess(String deviceId , int customerId , String num , String name , String imgPath , int schoolId ,int userType){ |
| @@ -229,7 +272,7 @@ public class LapiController { | @@ -229,7 +272,7 @@ public class LapiController { | ||
| 229 | xaFeign.insertFaceSuccess(send); | 272 | xaFeign.insertFaceSuccess(send); |
| 230 | } | 273 | } |
| 231 | 274 | ||
| 232 | - private void insertFail(String deviceId , int customerId , String num , String name , String imgPath , int schoolId ,int userType , int failType ){ | 275 | + private void insertFail(String deviceId , int customerId , String num , String name , String imgPath , int schoolId ,int userType , int failType ,String failContent){ |
| 233 | FaceSendfail send = new FaceSendfail(); | 276 | FaceSendfail send = new FaceSendfail(); |
| 234 | send.setDeviceid(deviceId); | 277 | send.setDeviceid(deviceId); |
| 235 | send.setCustomerid(customerId+""); | 278 | send.setCustomerid(customerId+""); |
| @@ -240,35 +283,7 @@ public class LapiController { | @@ -240,35 +283,7 @@ public class LapiController { | ||
| 240 | send.setName(name); | 283 | send.setName(name); |
| 241 | send.setNum(num); | 284 | send.setNum(num); |
| 242 | send.setFailtype(failType); | 285 | send.setFailtype(failType); |
| 243 | - send.setFailcontent(failMap.get(failType+"")); | 286 | + send.setFailcontent(failContent); |
| 244 | xaFeign.insertFaceFail(send); | 287 | xaFeign.insertFaceFail(send); |
| 245 | } | 288 | } |
| 246 | - | ||
| 247 | - | ||
| 248 | - public static Map<String,String> failMap = new HashMap<>(); | ||
| 249 | - | ||
| 250 | - static { | ||
| 251 | - failMap.put("1000","算法初始化失败"); | ||
| 252 | - failMap.put("1001","人脸检测失败"); | ||
| 253 | - failMap.put("1002","图片未检测到人脸"); | ||
| 254 | - failMap.put("1003","jpeg照片解码失败"); | ||
| 255 | - failMap.put("1004","图片质量分数不满足"); | ||
| 256 | - failMap.put("1005","图片缩放失败"); | ||
| 257 | - failMap.put("1006","未启用智能"); | ||
| 258 | - failMap.put("1007","导入图片过小"); | ||
| 259 | - failMap.put("1008","导入图片过大"); | ||
| 260 | - failMap.put("1009","导入图片分辨率超过1920*1080"); | ||
| 261 | - failMap.put("1010","导入图片不存在"); | ||
| 262 | - failMap.put("1011","人脸元素个数已达到上限"); | ||
| 263 | - failMap.put("1012",":智能棒算法模型不匹配"); | ||
| 264 | - failMap.put("1013","人脸导入库成员证件号非法"); | ||
| 265 | - failMap.put("1014","人脸导入库成员图片格式错误"); | ||
| 266 | - failMap.put("1015","通道布控已达设备能力上限"); | ||
| 267 | - failMap.put("1016","其它客户端正在进行操作人脸库"); | ||
| 268 | - failMap.put("1017","人脸库文件正在更新中"); | ||
| 269 | - failMap.put("1018","Json反序列化失败"); | ||
| 270 | - failMap.put("1019","Base64解码失败"); | ||
| 271 | - failMap.put("1020","人脸照片,编码后的大小和实际接收到的长度不一致"); | ||
| 272 | - | ||
| 273 | - } | ||
| 274 | } | 289 | } |