Commit 533102565aaa8093fc7bec7f246cba165b20cf5d

Authored by 徐泉
1 parent 4fd85d85
Exists in master

大华项目代码提交

cloud/dahua/src/main/java/com/example/dahua/MyTask.java
@@ -443,12 +443,13 @@ public class MyTask implements ApplicationRunner { @@ -443,12 +443,13 @@ public class MyTask implements ApplicationRunner {
443 checkIn.setFlag(eventType == 2 ? 1 : 0); 443 checkIn.setFlag(eventType == 2 ? 1 : 0);
444 checkIn.setCheckTime(eventTime); 444 checkIn.setCheckTime(eventTime);
445 searchMapper.checkIn(checkIn); 445 searchMapper.checkIn(checkIn);
  446 +
446 if (checkIn.getIsSuccess() == 1) { 447 if (checkIn.getIsSuccess() == 1) {
447 //考勤成功 448 //考勤成功
448 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime; 449 String content = "考勤成功!,设备:" + deviceId + "卡号:" + cardNo + "方向:" + (eventType == 1 ? "进门" : "出门") + "______" + eventTime;
449 450
450 //开始推送看板 451 //开始推送看板
451 - sendMQMess(content,deviceId,eventType); 452 + sendMQMess(deviceId,cardNo,eventType);
452 453
453 //记录学生考勤签到记录 454 //记录学生考勤签到记录
454 FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess); 455 FileUtils.getInstance().writeLogs(content, FileUtils.qiandaoSuccess);
cloud/dahua/src/main/java/com/example/dahua/async/SendUserInfoTask.java
@@ -328,7 +328,7 @@ public class SendUserInfoTask { @@ -328,7 +328,7 @@ public class SendUserInfoTask {
328 328
329 String studentType = userDao.getStudentType(attendanceBean.getSchool_id(),sendRecordBean.getCustomerid()); 329 String studentType = userDao.getStudentType(attendanceBean.getSchool_id(),sendRecordBean.getCustomerid());
330 //通道号 330 //通道号
331 - int channel = analysisPermission(Integer.parseInt(attendanceBean.getSchool_id()),studentType); 331 + String channel = analysisPermission(Integer.parseInt(attendanceBean.getSchool_id()),studentType);
332 332
333 /** 333 /**
334 * 注:用户下发逻辑 334 * 注:用户下发逻辑
@@ -370,10 +370,12 @@ public class SendUserInfoTask { @@ -370,10 +370,12 @@ public class SendUserInfoTask {
370 log.info("=================开始执行下发人脸及卡号任务================="); 370 log.info("=================开始执行下发人脸及卡号任务=================");
371 //卡号取反 371 //卡号取反
372 String cardNum =""; 372 String cardNum ="";
373 - if(attendanceBean.getClint_id().startsWith("ytj")&&Integer.parseInt(attendanceBean.getSchool_id())!=126&&Integer.parseInt(attendanceBean.getSchool_id())!=393)  
374 - {cardNum = student_num;}  
375 - else  
376 - {cardNum = cardNo(student_num);} 373 + if(attendanceBean.getClint_id().startsWith("ytj")&&Integer.parseInt(attendanceBean.getSchool_id())!=126
  374 + &&Integer.parseInt(attendanceBean.getSchool_id())!=393) {
  375 + cardNum = student_num;
  376 + } else {
  377 + cardNum = cardNo(student_num);
  378 + }
377 //bCardFlags = true, 存在下发记录,则存在下发记录集编号,执行修改卡、人脸信息 379 //bCardFlags = true, 存在下发记录,则存在下发记录集编号,执行修改卡、人脸信息
378 if (bCardFlags ==1) { 380 if (bCardFlags ==1) {
379 //修改设备卡信息 381 //修改设备卡信息
@@ -510,7 +512,7 @@ public class SendUserInfoTask { @@ -510,7 +512,7 @@ public class SendUserInfoTask {
510 * @param studentType 512 * @param studentType
511 * @return 513 * @return
512 */ 514 */
513 - private int analysisPermission(int schoolId, String studentType){ 515 + private String analysisPermission(int schoolId, String studentType){
514 List<PermissionFaceBean> permissionFaceBeans = permissFaceService.getPermissionList(schoolId); 516 List<PermissionFaceBean> permissionFaceBeans = permissFaceService.getPermissionList(schoolId);
515 String channel =""; 517 String channel ="";
516 if(permissionFaceBeans.size()>0){ 518 if(permissionFaceBeans.size()>0){
@@ -523,22 +525,24 @@ public class SendUserInfoTask { @@ -523,22 +525,24 @@ public class SendUserInfoTask {
523 channel= permissionFaceBean.getChannel(); 525 channel= permissionFaceBean.getChannel();
524 } 526 }
525 } 527 }
  528 + if(StringUtils.isEmpty(channel)){
  529 + log.warn("未获取到学校权限通道号!");
  530 + return "";
  531 + }
  532 + return channel;
526 } 533 }
527 - if(StringUtils.isEmpty(channel)){  
528 - log.warn("未获取到学校权限通道号!");  
529 - return 0;  
530 - }  
531 - return Integer.parseInt(channel); 534 + return channel;
532 } 535 }
533 536
534 -  
535 public static void main(String[] args) { 537 public static void main(String[] args) {
536 - String json ="{\"studentType\":\"1,2\",\"deviceIds\":[\"aaa\"],\"weekDays\":[{\"weekTimes\":[{\"startTime\":\"12:00\",\"endTime\":\"06:00\"}],\"sex\":\"1,2\",\"weekDay\":\"0,1,2\"}]}";  
537 - PermissionBean permissionBean = objectMapper.fromJson(json,PermissionBean.class);  
538 - String studentType = permissionBean.getStudentType();  
539 - if(studentType.indexOf("1")!=-1){  
540 - System.out.println(true);  
541 - } 538 +// String json ="{\"studentType\":\"1,2\",\"deviceIds\":[\"aaa\"],\"weekDays\":[{\"weekTimes\":[{\"startTime\":\"12:00\",\"endTime\":\"06:00\"}],\"sex\":\"1,2\",\"weekDay\":\"0,1,2\"}]}";
  539 +// PermissionBean permissionBean = objectMapper.fromJson(json,PermissionBean.class);
  540 +// String studentType = permissionBean.getStudentType();
  541 +// if(studentType.indexOf("1")!=-1){
  542 +// System.out.println(true);
  543 +// }
  544 + String channel ="";
  545 + System.out.println(Integer.parseInt(channel));
542 } 546 }
543 547
544 /** 548 /**
cloud/dahua/src/main/java/com/example/dahua/enums/EnumSendFaceErrorType.java
@@ -9,6 +9,7 @@ import org.apache.commons.lang.StringUtils; @@ -9,6 +9,7 @@ import org.apache.commons.lang.StringUtils;
9 */ 9 */
10 public enum EnumSendFaceErrorType { 10 public enum EnumSendFaceErrorType {
11 11
  12 + CHECK_DATA_ERR_21("21", "对返回数据的校验出错"),
12 EXCEED_SIZE_1028("1028", "图片大小超限"), 13 EXCEED_SIZE_1028("1028", "图片大小超限"),
13 NOT_EXIST_USER_1029("1029", "用户ID不存在"), 14 NOT_EXIST_USER_1029("1029", "用户ID不存在"),
14 EXTRACT_ERROR_1030("1030", "照片特征值提取失败"), 15 EXTRACT_ERROR_1030("1030", "照片特征值提取失败"),
cloud/dahua/src/main/java/com/example/dahua/module/GateModule.java
@@ -13,6 +13,7 @@ import com.sun.jna.Memory; @@ -13,6 +13,7 @@ import com.sun.jna.Memory;
13 import com.sun.jna.Pointer; 13 import com.sun.jna.Pointer;
14 import com.sun.jna.ptr.IntByReference; 14 import com.sun.jna.ptr.IntByReference;
15 import lombok.extern.slf4j.Slf4j; 15 import lombok.extern.slf4j.Slf4j;
  16 +import org.springframework.util.StringUtils;
16 17
17 import javax.imageio.ImageIO; 18 import javax.imageio.ImageIO;
18 import java.awt.image.BufferedImage; 19 import java.awt.image.BufferedImage;
@@ -202,91 +203,97 @@ public class GateModule { @@ -202,91 +203,97 @@ public class GateModule {
202 // return true; 203 // return true;
203 } 204 }
204 205
  206 + /**
  207 + * 门禁卡记录集信息
  208 + */
  209 + private static final NET_RECORDSET_ACCESS_CTL_CARD insertCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD();
  210 + /**
  211 + * 记录集操作
  212 + */
  213 + private static final NET_CTRL_RECORDSET_INSERT_PARAM insert = new NET_CTRL_RECORDSET_INSERT_PARAM();
205 214
206 public static synchronized int insertCard(String cardNo, String userId, String cardName, String cardPwd, 215 public static synchronized int insertCard(String cardNo, String userId, String cardName, String cardPwd,
207 int cardStatus, int cardType, int useTimes, int isFirstEnter, 216 int cardStatus, int cardType, int useTimes, int isFirstEnter,
208 int isValid, String startValidTime, String endValidTime, LLong lLong, 217 int isValid, String startValidTime, String endValidTime, LLong lLong,
209 - String userType,int channel) {  
210 - /**  
211 - * 门禁卡记录集信息  
212 - */  
213 - NET_RECORDSET_ACCESS_CTL_CARD accessCardInfo = new NET_RECORDSET_ACCESS_CTL_CARD();  
214 - 218 + String userType,String channel) {
215 // 卡号 219 // 卡号
216 - System.arraycopy(cardNo.getBytes(), 0, accessCardInfo.szCardNo, 0, cardNo.getBytes().length); 220 + System.arraycopy(cardNo.getBytes(), 0, insertCardInfo.szCardNo, 0, cardNo.getBytes().length);
217 221
218 // 用户ID 222 // 用户ID
219 - System.arraycopy(userId.getBytes(), 0, accessCardInfo.szUserID, 0, userId.getBytes().length); 223 + System.arraycopy(userId.getBytes(), 0, insertCardInfo.szUserID, 0, userId.getBytes().length);
220 224
221 // 卡名(设备上显示的姓名) 225 // 卡名(设备上显示的姓名)
222 try { 226 try {
223 - System.arraycopy(cardName.getBytes("GBK"), 0, accessCardInfo.szCardName, 0, cardName.getBytes("GBK").length); 227 + System.arraycopy(cardName.getBytes("GBK"), 0, insertCardInfo.szCardName, 0, cardName.getBytes("GBK").length);
224 } catch (UnsupportedEncodingException e) { 228 } catch (UnsupportedEncodingException e) {
225 e.printStackTrace(); 229 e.printStackTrace();
226 } 230 }
227 231
228 // 卡密码 232 // 卡密码
229 - System.arraycopy(cardPwd.getBytes(), 0, accessCardInfo.szPsw, 0, cardPwd.getBytes().length); 233 + System.arraycopy(cardPwd.getBytes(), 0, insertCardInfo.szPsw, 0, cardPwd.getBytes().length);
230 234
231 //-- 设置开门权限 235 //-- 设置开门权限
232 - accessCardInfo.nDoorNum = 2;  
233 - accessCardInfo.sznDoors[0] = 0;  
234 - accessCardInfo.sznDoors[1] = 1;  
235 - accessCardInfo.nTimeSectionNum = 2; // 与门数对应 236 + insertCardInfo.nDoorNum = 2;
  237 + insertCardInfo.sznDoors[0] = 0;
  238 + insertCardInfo.sznDoors[1] = 1;
  239 + insertCardInfo.nTimeSectionNum = 2; // 与门数对应
236 if (userType.equals("1")){ 240 if (userType.equals("1")){
237 - accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效  
238 - accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 241 + insertCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效
  242 + insertCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效
239 }else { 243 }else {
240 - accessCardInfo.sznTimeSectionNo[0] = channel; // 表示第一个门全天有效  
241 - accessCardInfo.sznTimeSectionNo[1] = channel; // 表示第二个门全天有效 244 + //此学校不存在权限设置默认为全天有效
  245 + if(StringUtils.isEmpty(channel)){
  246 + accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效
  247 + accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效
  248 + }else{
  249 + accessCardInfo.sznTimeSectionNo[0] = Integer.parseInt(channel); // 表示第一个门全天有效
  250 + accessCardInfo.sznTimeSectionNo[1] = Integer.parseInt(channel); // 表示第二个门全天有效
  251 + }
242 } 252 }
243 253
244 // 卡状态 254 // 卡状态
245 - accessCardInfo.emStatus = cardStatus; 255 + insertCardInfo.emStatus = cardStatus;
246 256
247 // 卡类型 257 // 卡类型
248 - accessCardInfo.emType = cardType; 258 + insertCardInfo.emType = cardType;
249 259
250 // 使用次数 260 // 使用次数
251 - accessCardInfo.nUserTime = useTimes; 261 + insertCardInfo.nUserTime = useTimes;
252 262
253 // 是否首卡 263 // 是否首卡
254 - accessCardInfo.bFirstEnter = isFirstEnter; 264 + insertCardInfo.bFirstEnter = isFirstEnter;
255 265
256 // 是否有效 266 // 是否有效
257 - accessCardInfo.bIsValid = isValid; 267 + insertCardInfo.bIsValid = isValid;
258 268
259 // 有效开始时间 269 // 有效开始时间
260 String[] startTimes = startValidTime.split(" "); 270 String[] startTimes = startValidTime.split(" ");
261 - accessCardInfo.stuValidStartTime.dwYear = Integer.parseInt(startTimes[0].split("-")[0]);  
262 - accessCardInfo.stuValidStartTime.dwMonth = Integer.parseInt(startTimes[0].split("-")[1]);  
263 - accessCardInfo.stuValidStartTime.dwDay = Integer.parseInt(startTimes[0].split("-")[2]);  
264 - accessCardInfo.stuValidStartTime.dwHour = Integer.parseInt(startTimes[1].split(":")[0]);  
265 - accessCardInfo.stuValidStartTime.dwMinute = Integer.parseInt(startTimes[1].split(":")[1]);  
266 - accessCardInfo.stuValidStartTime.dwSecond = Integer.parseInt(startTimes[01].split(":")[2]); 271 + insertCardInfo.stuValidStartTime.dwYear = Integer.parseInt(startTimes[0].split("-")[0]);
  272 + insertCardInfo.stuValidStartTime.dwMonth = Integer.parseInt(startTimes[0].split("-")[1]);
  273 + insertCardInfo.stuValidStartTime.dwDay = Integer.parseInt(startTimes[0].split("-")[2]);
  274 + insertCardInfo.stuValidStartTime.dwHour = Integer.parseInt(startTimes[1].split(":")[0]);
  275 + insertCardInfo.stuValidStartTime.dwMinute = Integer.parseInt(startTimes[1].split(":")[1]);
  276 + insertCardInfo.stuValidStartTime.dwSecond = Integer.parseInt(startTimes[01].split(":")[2]);
267 277
268 // 有效结束时间 278 // 有效结束时间
269 String[] endTimes = endValidTime.split(" "); 279 String[] endTimes = endValidTime.split(" ");
270 - accessCardInfo.stuValidEndTime.dwYear = Integer.parseInt(endTimes[0].split("-")[0]);  
271 - accessCardInfo.stuValidEndTime.dwMonth = Integer.parseInt(endTimes[0].split("-")[1]);  
272 - accessCardInfo.stuValidEndTime.dwDay = Integer.parseInt(endTimes[0].split("-")[2]);  
273 - accessCardInfo.stuValidEndTime.dwHour = Integer.parseInt(endTimes[1].split(":")[0]);  
274 - accessCardInfo.stuValidEndTime.dwMinute = Integer.parseInt(endTimes[1].split(":")[1]);  
275 - accessCardInfo.stuValidEndTime.dwSecond = Integer.parseInt(endTimes[1].split(":")[2]); 280 + insertCardInfo.stuValidEndTime.dwYear = Integer.parseInt(endTimes[0].split("-")[0]);
  281 + insertCardInfo.stuValidEndTime.dwMonth = Integer.parseInt(endTimes[0].split("-")[1]);
  282 + insertCardInfo.stuValidEndTime.dwDay = Integer.parseInt(endTimes[0].split("-")[2]);
  283 + insertCardInfo.stuValidEndTime.dwHour = Integer.parseInt(endTimes[1].split(":")[0]);
  284 + insertCardInfo.stuValidEndTime.dwMinute = Integer.parseInt(endTimes[1].split(":")[1]);
  285 + insertCardInfo.stuValidEndTime.dwSecond = Integer.parseInt(endTimes[1].split(":")[2]);
  286 +
276 287
277 - /**  
278 - * 记录集操作  
279 - */  
280 - NET_CTRL_RECORDSET_INSERT_PARAM insert = new NET_CTRL_RECORDSET_INSERT_PARAM();  
281 insert.stuCtrlRecordSetInfo.emType = EM_NET_RECORD_TYPE.NET_RECORD_ACCESSCTLCARD; // 记录集类型 288 insert.stuCtrlRecordSetInfo.emType = EM_NET_RECORD_TYPE.NET_RECORD_ACCESSCTLCARD; // 记录集类型
282 - insert.stuCtrlRecordSetInfo.pBuf = accessCardInfo.getPointer(); 289 + insert.stuCtrlRecordSetInfo.pBuf = insertCardInfo.getPointer();
283 290
284 - accessCardInfo.write(); 291 + insertCardInfo.write();
285 insert.write(); 292 insert.write();
286 boolean bRet = LoginModule.netsdk.CLIENT_ControlDevice(lLong, 293 boolean bRet = LoginModule.netsdk.CLIENT_ControlDevice(lLong,
287 CtrlType.CTRLTYPE_CTRL_RECORDSET_INSERT, insert.getPointer(), 5000); 294 CtrlType.CTRLTYPE_CTRL_RECORDSET_INSERT, insert.getPointer(), 5000);
288 insert.read(); 295 insert.read();
289 - accessCardInfo.read(); 296 + insertCardInfo.read();
290 297
291 if(!bRet) { 298 if(!bRet) {
292 String ret=ToolKits.getErrorCodePrint(); 299 String ret=ToolKits.getErrorCodePrint();
@@ -307,8 +314,6 @@ public class GateModule { @@ -307,8 +314,6 @@ public class GateModule {
307 log.info("添加卡信息成功,卡信息记录集编号 : "+ insert.stuCtrlRecordSetResult.nRecNo); 314 log.info("添加卡信息成功,卡信息记录集编号 : "+ insert.stuCtrlRecordSetResult.nRecNo);
308 return insert.stuCtrlRecordSetResult.nRecNo; 315 return insert.stuCtrlRecordSetResult.nRecNo;
309 } 316 }
310 -  
311 -// return true;  
312 } 317 }
313 318
314 public static void main(String[] args) { 319 public static void main(String[] args) {
@@ -709,7 +714,7 @@ public class GateModule { @@ -709,7 +714,7 @@ public class GateModule {
709 public static int modifyCard(int recordNo, String cardNo, String userId, String cardName, String cardPwd, 714 public static int modifyCard(int recordNo, String cardNo, String userId, String cardName, String cardPwd,
710 int cardStatus, int cardType, int useTimes, int isFirstEnter, 715 int cardStatus, int cardType, int useTimes, int isFirstEnter,
711 int isValid, String startValidTime, String endValidTime, LLong lLong, 716 int isValid, String startValidTime, String endValidTime, LLong lLong,
712 - String userType,int channel) { 717 + String userType,String channel) {
713 /** 718 /**
714 * 门禁卡记录集信息 719 * 门禁卡记录集信息
715 */ 720 */
@@ -743,8 +748,14 @@ public class GateModule { @@ -743,8 +748,14 @@ public class GateModule {
743 accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 748 accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效
744 accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 749 accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效
745 }else { 750 }else {
746 - accessCardInfo.sznTimeSectionNo[0] = channel; // 表示第一个门全天有效  
747 - accessCardInfo.sznTimeSectionNo[1] = channel; // 表示第二个门全天有效 751 + //此学校不存在权限设置默认为全天有效
  752 + if(StringUtils.isEmpty(channel)){
  753 + accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效
  754 + accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效
  755 + }else{
  756 + accessCardInfo.sznTimeSectionNo[0] = Integer.parseInt(channel); // 表示第一个门全天有效
  757 + accessCardInfo.sznTimeSectionNo[1] = Integer.parseInt(channel); // 表示第二个门全天有效
  758 + }
748 } 759 }
749 760
750 // 卡状态 761 // 卡状态
@@ -1160,6 +1171,9 @@ public class GateModule { @@ -1160,6 +1171,9 @@ public class GateModule {
1160 return true; 1171 return true;
1161 } 1172 }
1162 1173
  1174 + private static final NET_IN_ADD_FACE_INFO stIn = new NET_IN_ADD_FACE_INFO();
  1175 + private static final NET_OUT_ADD_FACE_INFO stOut = new NET_OUT_ADD_FACE_INFO();
  1176 +
1163 public static synchronized int addFaceInfo(String userId, Memory memory, LLong lLong) { 1177 public static synchronized int addFaceInfo(String userId, Memory memory, LLong lLong) {
1164 int emType = EM_FACEINFO_OPREATE_TYPE.EM_FACEINFO_OPREATE_ADD; // 添加 1178 int emType = EM_FACEINFO_OPREATE_TYPE.EM_FACEINFO_OPREATE_ADD; // 添加
1165 1179
@@ -1195,7 +1209,7 @@ public class GateModule { @@ -1195,7 +1209,7 @@ public class GateModule {
1195 } else { 1209 } else {
1196 String ret=ToolKits.getErrorCodePrint(); 1210 String ret=ToolKits.getErrorCodePrint();
1197 String number = ret.substring(ret.indexOf("|") + 1, ret.indexOf(")")); 1211 String number = ret.substring(ret.indexOf("|") + 1, ret.indexOf(")"));
1198 - log.error("添加信息失败,错误信息:{} ,错误码:{} ",ret,number); 1212 + log.error("添加人脸失败,错误信息:{} ,错误码:{} ",ret,number);
1199 //照片已存在 1213 //照片已存在
1200 if(number.equals(EnumSendFaceErrorType.EXIST_IMG_1031.code)){ 1214 if(number.equals(EnumSendFaceErrorType.EXIST_IMG_1031.code)){
1201 return modifyFaceInfo(userId, memory, lLong); 1215 return modifyFaceInfo(userId, memory, lLong);
@@ -1259,6 +1273,8 @@ public class GateModule { @@ -1259,6 +1273,8 @@ public class GateModule {
1259 return true; 1273 return true;
1260 } 1274 }
1261 1275
  1276 + private static final NET_IN_UPDATE_FACE_INFO stInEdit = new NET_IN_UPDATE_FACE_INFO();
  1277 + private static final NET_OUT_UPDATE_FACE_INFO stOutEdit = new NET_OUT_UPDATE_FACE_INFO();
1262 1278
1263 public static int modifyFaceInfo(String userId, Memory memory, LLong lLong) { 1279 public static int modifyFaceInfo(String userId, Memory memory, LLong lLong) {
1264 int emType = EM_FACEINFO_OPREATE_TYPE.EM_FACEINFO_OPREATE_UPDATE; // 修改 1280 int emType = EM_FACEINFO_OPREATE_TYPE.EM_FACEINFO_OPREATE_UPDATE; // 修改
@@ -1266,30 +1282,30 @@ public class GateModule { @@ -1266,30 +1282,30 @@ public class GateModule {
1266 /** 1282 /**
1267 * 入参 1283 * 入参
1268 */ 1284 */
1269 - NET_IN_UPDATE_FACE_INFO stIn = new NET_IN_UPDATE_FACE_INFO(); 1285 +// NET_IN_UPDATE_FACE_INFO stInEdit = new NET_IN_UPDATE_FACE_INFO();
1270 1286
1271 // 用户ID 1287 // 用户ID
1272 - System.arraycopy(userId.getBytes(), 0, stIn.szUserID, 0, userId.getBytes().length); 1288 + System.arraycopy(userId.getBytes(), 0, stInEdit.szUserID, 0, userId.getBytes().length);
1273 1289
1274 // 人脸照片个数 1290 // 人脸照片个数
1275 - stIn.stuFaceInfo.nFacePhoto = 1; 1291 + stInEdit.stuFaceInfo.nFacePhoto = 1;
1276 1292
1277 // 每张图片的大小 1293 // 每张图片的大小
1278 - stIn.stuFaceInfo.nFacePhotoLen[0] = (int) memory.size(); 1294 + stInEdit.stuFaceInfo.nFacePhotoLen[0] = (int) memory.size();
1279 1295
1280 // 人脸照片数据,大小不超过100K, 图片格式为jpg 1296 // 人脸照片数据,大小不超过100K, 图片格式为jpg
1281 - stIn.stuFaceInfo.pszFacePhotoArr[0].pszFacePhoto = memory; 1297 + stInEdit.stuFaceInfo.pszFacePhotoArr[0].pszFacePhoto = memory;
1282 1298
1283 /** 1299 /**
1284 * 出参 1300 * 出参
1285 */ 1301 */
1286 - NET_OUT_UPDATE_FACE_INFO stOut = new NET_OUT_UPDATE_FACE_INFO(); 1302 +// NET_OUT_UPDATE_FACE_INFO stOut = new NET_OUT_UPDATE_FACE_INFO();
1287 1303
1288 - stIn.write();  
1289 - stOut.write();  
1290 - boolean bRet = LoginModule.netsdk.CLIENT_FaceInfoOpreate(lLong, emType, stIn.getPointer(), stOut.getPointer(), 5000);  
1291 - stIn.read();  
1292 - stOut.read(); 1304 + stInEdit.write();
  1305 + stOutEdit.write();
  1306 + boolean bRet = LoginModule.netsdk.CLIENT_FaceInfoOpreate(lLong, emType, stInEdit.getPointer(), stOutEdit.getPointer(), 5000);
  1307 + stInEdit.read();
  1308 + stOutEdit.read();
1293 Map<String,String> map = new HashMap(); 1309 Map<String,String> map = new HashMap();
1294 if (bRet) { 1310 if (bRet) {
1295 log.info("修改人脸成功!"); 1311 log.info("修改人脸成功!");