Commit 51816693c9457c42de6e3d75224cee9b8a47114c

Authored by 陈杰
1 parent 79abf011
Exists in master

返回错误编码

cloud/lapi/src/main/java/com/sincere/lapi/controller/LapiController.java
... ... @@ -16,6 +16,8 @@
16 16 */
17 17 package com.sincere.lapi.controller;
18 18  
  19 +import com.alibaba.fastjson.JSONArray;
  20 +import com.alibaba.fastjson.JSONObject;
19 21 import com.sincere.common.dto.smartCampus.SzVSchoolStudent;
20 22 import com.sincere.common.dto.smartCampus.SzVSchoolTeacher;
21 23 import com.sincere.common.dto.xiaoan.FaceSendfail;
... ... @@ -24,7 +26,6 @@ import com.sincere.lapi.Utils.FileUtils;
24 26 import com.sincere.lapi.feign.ScFeign;
25 27 import com.sincere.lapi.feign.XaFeign;
26 28 import com.sincere.lapi.pojo.*;
27   -import com.sincere.lapi.server.UrlParam;
28 29 import com.sincere.lapi.service.request.TerminalHttpCall;
29 30 import io.swagger.annotations.ApiOperation;
30 31 import org.apache.commons.lang3.StringUtils;
... ... @@ -35,10 +36,7 @@ import org.springframework.web.bind.annotation.RequestParam;
35 36 import org.springframework.web.bind.annotation.RestController;
36 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 42 * description
... ... @@ -57,6 +55,21 @@ public class LapiController {
57 55 @Autowired
58 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 75 * @param deviceIds 多个设备用,隔开
... ... @@ -69,6 +82,7 @@ public class LapiController {
69 82 String[] deviceList = deviceIds.split(",");
70 83 if(userType.equals("1")){
71 84 List<SzVSchoolTeacher> list = scFeign.selectTeacherBySchoolId(schoolId) ;
  85 + list = removeDuplicateCase(list);
72 86 for(String deviceId :deviceList){
73 87 sendTeacherBatch(list,deviceId);
74 88 }
... ... @@ -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 132 private void sendStudent(SzVSchoolStudent student , String deviceId){
108 133 try{
109 134 LAPIResponse response = sendImg(Long.valueOf(student.getStudentId()),student.getName(),student.getStudentNum(),student.getPhoto(),deviceId);
110   - System.out.println("接收到的json-------"+response.toString());
111 135 terminalHttpCall.removeKey(deviceId);
112 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 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 150 }catch (Exception e){
118 151 e.printStackTrace();
... ... @@ -133,9 +166,18 @@ public class LapiController {
133 166 LAPIResponse response = sendImg(Long.valueOf(teacher.getTeacherId()),teacher.getName(),teacher.getTeacherNum(),teacher.getFace(),deviceId);
134 167 terminalHttpCall.removeKey(deviceId);
135 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 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 182 }catch (Exception e){
141 183 e.printStackTrace();
... ... @@ -202,18 +244,19 @@ public class LapiController {
202 244  
203 245  
204 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 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 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 276 FaceSendfail send = new FaceSendfail();
234 277 send.setDeviceid(deviceId);
235 278 send.setCustomerid(customerId+"");
... ... @@ -240,35 +283,7 @@ public class LapiController {
240 283 send.setName(name);
241 284 send.setNum(num);
242 285 send.setFailtype(failType);
243   - send.setFailcontent(failMap.get(failType+""));
  286 + send.setFailcontent(failContent);
244 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 }
... ...