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 | 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 | } | ... | ... |