Commit 84e52044ac349d95b21f298d6df8b591e93403ab
1 parent
0a43b0af
Exists in
master
下发权限修改
Showing
11 changed files
with
185 additions
and
48 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/async/SendUserInfoTask.java
| ... | ... | @@ -4,10 +4,7 @@ package com.example.dahua.async; |
| 4 | 4 | |
| 5 | 5 | import com.alibaba.fastjson.JSON; |
| 6 | 6 | import com.example.dahua.MyTask; |
| 7 | -import com.example.dahua.bean.AttendanceBean; | |
| 8 | -import com.example.dahua.bean.SendRecordBean; | |
| 9 | -import com.example.dahua.bean.TeacherBean; | |
| 10 | -import com.example.dahua.bean.UserInfoBean; | |
| 7 | +import com.example.dahua.bean.*; | |
| 11 | 8 | import com.example.dahua.common.Res; |
| 12 | 9 | import com.example.dahua.dao.UserDao; |
| 13 | 10 | import com.example.dahua.enums.*; |
| ... | ... | @@ -16,10 +13,13 @@ import com.example.dahua.lib.FilePath; |
| 16 | 13 | import com.example.dahua.lib.NetSDKLib; |
| 17 | 14 | import com.example.dahua.lib.ToolKits; |
| 18 | 15 | import com.example.dahua.module.GateModule; |
| 16 | +import com.example.dahua.service.PermissFaceService; | |
| 19 | 17 | import com.example.dahua.utils.FileUtils; |
| 20 | 18 | import com.example.dahua.utils.HttpUtils; |
| 19 | +import com.example.dahua.utils.JsonUtils; | |
| 21 | 20 | import com.example.dahua.xiananDao.SendRecordDao; |
| 22 | 21 | import com.sun.jna.Memory; |
| 22 | +import io.swagger.models.auth.In; | |
| 23 | 23 | import lombok.extern.slf4j.Slf4j; |
| 24 | 24 | import org.springframework.beans.factory.annotation.Autowired; |
| 25 | 25 | import org.springframework.http.ResponseEntity; |
| ... | ... | @@ -44,6 +44,8 @@ public class SendUserInfoTask { |
| 44 | 44 | |
| 45 | 45 | @Autowired |
| 46 | 46 | SendRecordDao sendRecordDao; |
| 47 | + @Autowired | |
| 48 | + PermissFaceService permissFaceService; | |
| 47 | 49 | |
| 48 | 50 | /** |
| 49 | 51 | * 下发单个用户人脸任务 |
| ... | ... | @@ -301,6 +303,7 @@ public class SendUserInfoTask { |
| 301 | 303 | } |
| 302 | 304 | } |
| 303 | 305 | |
| 306 | + | |
| 304 | 307 | /** |
| 305 | 308 | * 下发人脸/卡信息 |
| 306 | 309 | * @param attendanceBean |
| ... | ... | @@ -323,6 +326,10 @@ public class SendUserInfoTask { |
| 323 | 326 | calendar.add(Calendar.YEAR, 4); |
| 324 | 327 | String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()); |
| 325 | 328 | |
| 329 | + String studentType = userDao.getStudentType(attendanceBean.getSchool_id(),sendRecordBean.getCustomerid()); | |
| 330 | + //通道号 | |
| 331 | + int channel = analysisPermission(Integer.parseInt(attendanceBean.getSchool_id()),studentType); | |
| 332 | + | |
| 326 | 333 | /** |
| 327 | 334 | * 注:用户下发逻辑 |
| 328 | 335 | * 下发时,先从下发记录表:SZ_Student_RecoderNo 获取当前用户下发记录集编号,存在于设备的,新增卡号时返回, |
| ... | ... | @@ -371,7 +378,7 @@ public class SendUserInfoTask { |
| 371 | 378 | if (bCardFlags) { |
| 372 | 379 | //修改设备卡信息 |
| 373 | 380 | boolean isEditCard = GateModule.modifyCard(Integer.parseInt(recordNo),cardNum, user_id, name, "123456", Res.string().getCardStatusInt(1), |
| 374 | - Res.string().getCardTypeInt(1), 0, 0, 1, startTime, endTime, loginHandleLong, userType,cardErrNum); | |
| 381 | + Res.string().getCardTypeInt(1), 0, 0, 1, startTime, endTime, loginHandleLong, userType,cardErrNum,channel); | |
| 375 | 382 | |
| 376 | 383 | if (isEditCard) { |
| 377 | 384 | //修改卡成功, 更新下发记录集编号表 |
| ... | ... | @@ -387,7 +394,7 @@ public class SendUserInfoTask { |
| 387 | 394 | userDao.deleteRecordNo(user_id, Integer.parseInt(recordNo)); |
| 388 | 395 | //重新下发卡号至设备 |
| 389 | 396 | newRecordNo = GateModule.insertCard(cardNum, user_id, name, "123456", Res.string().getCardStatusInt(1), |
| 390 | - Res.string().getCardTypeInt(1), 0, 1, 1, startTime, endTime, loginHandleLong,userType,cardErrNum); | |
| 397 | + Res.string().getCardTypeInt(1), 0, 1, 1, startTime, endTime, loginHandleLong,userType,cardErrNum,channel); | |
| 391 | 398 | |
| 392 | 399 | //下发卡至设备,返回值不为-1为下发成功,保存下发记录集编号表 |
| 393 | 400 | if (newRecordNo != -1) { |
| ... | ... | @@ -401,7 +408,7 @@ public class SendUserInfoTask { |
| 401 | 408 | //新增卡信息, 新增人脸信息至设备 |
| 402 | 409 | newRecordNo = GateModule.insertCard(cardNum, user_id, name, "123456" |
| 403 | 410 | , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 1 |
| 404 | - , 1, startTime, endTime, loginHandleLong,userType,cardErrNum); | |
| 411 | + , 1, startTime, endTime, loginHandleLong,userType,cardErrNum,channel); | |
| 405 | 412 | |
| 406 | 413 | //下发卡至设备,返回值不为-1为下发成功,保存下发记录集编号表 |
| 407 | 414 | if (newRecordNo != -1) { |
| ... | ... | @@ -419,7 +426,7 @@ public class SendUserInfoTask { |
| 419 | 426 | log.info("下发人脸和卡号成功, sendRecordBean: "+ JSON.toJSONString(sendRecordBean)); |
| 420 | 427 | |
| 421 | 428 | //人脸下发成功记录, 先判断是否已经存在了 |
| 422 | - List<SendRecordBean> sendRecordBeanList = sendRecordDao.getFaceSucceIsexit(sendRecordBean.getDeviceID(), String.valueOf(sendRecordBean.getSchoolId()), sendRecordBean.getCustomerid()); | |
| 429 | + List<SendRecordBean> sendRecordBeanList = sendRecordDao.getFaceSucceIsexit(sendRecordBean.getDeviceID(), String.valueOf(sendRecordBean.getSchoolId()), sendRecordBean.getNum()); | |
| 423 | 430 | if (sendRecordBeanList.size() > 0) { |
| 424 | 431 | //删除重复数据 |
| 425 | 432 | for (int i = 0; i < sendRecordBeanList.size(); i++) { |
| ... | ... | @@ -475,6 +482,41 @@ public class SendUserInfoTask { |
| 475 | 482 | } |
| 476 | 483 | } |
| 477 | 484 | |
| 485 | + private static JsonUtils objectMapper = JsonUtils.nonEmptyMapper(); | |
| 486 | + | |
| 487 | + /** | |
| 488 | + * 解析权限模板、获取下发通道号 | |
| 489 | + * @param schoolId | |
| 490 | + * @param studentType | |
| 491 | + * @return | |
| 492 | + */ | |
| 493 | + private int analysisPermission(int schoolId, String studentType){ | |
| 494 | + List<PermissionFaceBean> permissionFaceBeans = permissFaceService.getPermissionList(schoolId); | |
| 495 | + String channel =""; | |
| 496 | + if(permissionFaceBeans.size()>0){ | |
| 497 | + for(PermissionFaceBean permissionFaceBean : permissionFaceBeans){ | |
| 498 | + String json = permissionFaceBean.getPermissionJson(); | |
| 499 | + PermissionBean permissionBean = objectMapper.fromJson(json,PermissionBean.class); | |
| 500 | + //学生考勤类型 1:通校生,2:住校生,3:全部 | |
| 501 | + String studentTypeStr = permissionBean.getStudentType(); | |
| 502 | + if(studentTypeStr.indexOf(studentType)!=-1){ | |
| 503 | + channel= permissionFaceBean.getChannel(); | |
| 504 | + } | |
| 505 | + } | |
| 506 | + } | |
| 507 | + return Integer.parseInt(channel); | |
| 508 | + } | |
| 509 | + | |
| 510 | + | |
| 511 | + public static void main(String[] args) { | |
| 512 | + String json ="{\"studentType\":\"1,2\",\"deviceIds\":[\"aaa\"],\"weekDays\":[{\"weekTimes\":[{\"startTime\":\"12:00\",\"endTime\":\"06:00\"}],\"sex\":\"1,2\",\"weekDay\":\"0,1,2\"}]}"; | |
| 513 | + PermissionBean permissionBean = objectMapper.fromJson(json,PermissionBean.class); | |
| 514 | + String studentType = permissionBean.getStudentType(); | |
| 515 | + if(studentType.indexOf("1")!=-1){ | |
| 516 | + System.out.println(true); | |
| 517 | + } | |
| 518 | + } | |
| 519 | + | |
| 478 | 520 | /** |
| 479 | 521 | * 解析下发异常信息 |
| 480 | 522 | * @param cardErrNum |
| ... | ... | @@ -506,9 +548,6 @@ public class SendUserInfoTask { |
| 506 | 548 | return sb.toString(); |
| 507 | 549 | } |
| 508 | 550 | |
| 509 | - public static void main(String[] args) { | |
| 510 | - System.out.println(new SendUserInfoTask().analysisErrorMsg("","")); | |
| 511 | - } | |
| 512 | 551 | |
| 513 | 552 | /** |
| 514 | 553 | * 添加人脸下发失败记录 | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/bean/PermissionBean.java
| ... | ... | @@ -15,6 +15,12 @@ public class PermissionBean implements Serializable { |
| 15 | 15 | @ApiModelProperty("用逗号隔开,1:通校生,2:住校生,3:全部") |
| 16 | 16 | private String studentType; |
| 17 | 17 | |
| 18 | + @ApiModelProperty("权限通道号") | |
| 19 | + private String channel; | |
| 20 | + | |
| 21 | + @ApiModelProperty("权限自定义名成") | |
| 22 | + private String customName; | |
| 23 | + | |
| 18 | 24 | public String getStudentType() { |
| 19 | 25 | return studentType; |
| 20 | 26 | } |
| ... | ... | @@ -38,4 +44,20 @@ public class PermissionBean implements Serializable { |
| 38 | 44 | public void setWeekDays(List<WeekDay> weekDays) { |
| 39 | 45 | this.weekDays = weekDays; |
| 40 | 46 | } |
| 47 | + | |
| 48 | + public String getChannel() { | |
| 49 | + return channel; | |
| 50 | + } | |
| 51 | + | |
| 52 | + public void setChannel(String channel) { | |
| 53 | + this.channel = channel; | |
| 54 | + } | |
| 55 | + | |
| 56 | + public String getCustomName() { | |
| 57 | + return customName; | |
| 58 | + } | |
| 59 | + | |
| 60 | + public void setCustomName(String customName) { | |
| 61 | + this.customName = customName; | |
| 62 | + } | |
| 41 | 63 | } | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/bean/PermissionFaceBean.java
| ... | ... | @@ -42,6 +42,11 @@ public class PermissionFaceBean implements Serializable { |
| 42 | 42 | @ApiModelProperty(value = "0-新增;1-编辑;2-删除",required = true) |
| 43 | 43 | private int type; |
| 44 | 44 | |
| 45 | + @ApiModelProperty("权限通道号") | |
| 46 | + private String channel; | |
| 47 | + @ApiModelProperty("权限自定义名成") | |
| 48 | + private String customName; | |
| 49 | + | |
| 45 | 50 | public int getType() { |
| 46 | 51 | return type; |
| 47 | 52 | } |
| ... | ... | @@ -105,4 +110,20 @@ public class PermissionFaceBean implements Serializable { |
| 105 | 110 | public void setPermissionJson(String permissionJson) { |
| 106 | 111 | this.permissionJson = permissionJson; |
| 107 | 112 | } |
| 113 | + | |
| 114 | + public String getChannel() { | |
| 115 | + return channel; | |
| 116 | + } | |
| 117 | + | |
| 118 | + public void setChannel(String channel) { | |
| 119 | + this.channel = channel; | |
| 120 | + } | |
| 121 | + | |
| 122 | + public String getCustomName() { | |
| 123 | + return customName; | |
| 124 | + } | |
| 125 | + | |
| 126 | + public void setCustomName(String customName) { | |
| 127 | + this.customName = customName; | |
| 128 | + } | |
| 108 | 129 | } | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/dao/UserDao.java
| ... | ... | @@ -44,6 +44,15 @@ public interface UserDao { |
| 44 | 44 | @Select("select top 1 recordNo from SZ_Student_RecoderNo where user_id = #{user_id} and deviceId = #{deviceId}") |
| 45 | 45 | String getRecordNo(@Param("user_id") String user_id, @Param("deviceId") String deviceId); |
| 46 | 46 | |
| 47 | + /** | |
| 48 | + * 获取学生考勤类型 | |
| 49 | + * @param school_id | |
| 50 | + * @param customerid | |
| 51 | + * @return | |
| 52 | + */ | |
| 53 | + @Select(" select Top(1)* student_type from SZ_V_School_Student where school_id = #{school_id} and student_id = #{customerid}") | |
| 54 | + String getStudentType(@Param("school_id") String school_id, @Param("customerid") String customerid); | |
| 55 | + | |
| 47 | 56 | @Insert("insert into SZ_Student_RecoderNo values(#{user_id},#{recordNo},#{student_name},#{deviceId})") |
| 48 | 57 | int saveRecordNo(@Param("user_id") String user_id, @Param("recordNo") int recordNo, @Param("student_name") String student_name, @Param("deviceId") String deviceId); |
| 49 | 58 | |
| ... | ... | @@ -104,7 +113,7 @@ public interface UserDao { |
| 104 | 113 | @Select("select StudentId from SS_RoomNumber where Pid in (select id from SS_Room where SchoolId = 479)") |
| 105 | 114 | List<String> getStudentIds(); |
| 106 | 115 | |
| 107 | - @Select("select * from SZ_V_Card where num=#{num}") | |
| 116 | + @Select("select Top(1) * from SZ_V_Card where num=#{num}") | |
| 108 | 117 | CardBean getCards(@Param("num") String num); |
| 109 | 118 | |
| 110 | 119 | @Select("select clint_id from SZ_Attendance where school_id = #{schoolId} and (clint_type = 8 or clint_type = 9 or clint_type = 10)") | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/enums/EnumSzBusinessType.java
| ... | ... | @@ -29,21 +29,22 @@ public interface EnumSzBusinessType { |
| 29 | 29 | } |
| 30 | 30 | } |
| 31 | 31 | |
| 32 | -// public enum EnumCardType { | |
| 33 | -// | |
| 34 | -// STUDENT(1, "student","学生"), | |
| 35 | -// TEACHER(2, "teacher","老师"); | |
| 36 | -//// PARENT(3, "parent","家长"); | |
| 37 | -// | |
| 38 | -// public final int code; | |
| 39 | -// public final String enName; | |
| 40 | -// public final String cnName; | |
| 41 | -// | |
| 42 | -// EnumUserType(int code, String enName,String cnName) { | |
| 43 | -// this.code = code; | |
| 44 | -// this.enName = enName; | |
| 45 | -// this.cnName = cnName; | |
| 46 | -// } | |
| 47 | -// } | |
| 32 | + /** | |
| 33 | + * 学生出入类型 | |
| 34 | + */ | |
| 35 | + public enum EnumStudentType { | |
| 36 | + | |
| 37 | + GO_OUT(1, "通校"), | |
| 38 | + LIVING(2, "住校"), | |
| 39 | + ALL(3, "全部"); | |
| 40 | + | |
| 41 | + public final int code; | |
| 42 | + public final String name; | |
| 43 | + | |
| 44 | + EnumStudentType(int code, String name) { | |
| 45 | + this.code = code; | |
| 46 | + this.name = name; | |
| 47 | + } | |
| 48 | + } | |
| 48 | 49 | |
| 49 | 50 | } | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/module/GateModule.java
| ... | ... | @@ -5,6 +5,7 @@ import com.example.dahua.bean.WeekDay; |
| 5 | 5 | import com.example.dahua.bean.WeekTime; |
| 6 | 6 | import com.example.dahua.enums.EnumSendCardErrorType; |
| 7 | 7 | import com.example.dahua.enums.EnumSendFaceErrorType; |
| 8 | +import com.example.dahua.enums.EnumSzBusinessType; | |
| 8 | 9 | import com.example.dahua.lib.NetSDKLib; |
| 9 | 10 | import com.example.dahua.lib.NetSDKLib.*; |
| 10 | 11 | import com.example.dahua.lib.ToolKits; |
| ... | ... | @@ -203,7 +204,7 @@ public class GateModule { |
| 203 | 204 | public static synchronized int insertCard(String cardNo, String userId, String cardName, String cardPwd, |
| 204 | 205 | int cardStatus, int cardType, int useTimes, int isFirstEnter, |
| 205 | 206 | int isValid, String startValidTime, String endValidTime, LLong lLong, |
| 206 | - String userType,String cardErrNum) { | |
| 207 | + String userType,String cardErrNum,int channel) { | |
| 207 | 208 | /** |
| 208 | 209 | * 门禁卡记录集信息 |
| 209 | 210 | */ |
| ... | ... | @@ -230,13 +231,13 @@ public class GateModule { |
| 230 | 231 | accessCardInfo.sznDoors[0] = 0; |
| 231 | 232 | accessCardInfo.sznDoors[1] = 1; |
| 232 | 233 | accessCardInfo.nTimeSectionNum = 2; // 与门数对应 |
| 233 | -// if (userType.equals("1")){ | |
| 234 | + if (userType.equals("1")){ | |
| 234 | 235 | accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 |
| 235 | 236 | accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 |
| 236 | -// }else { | |
| 237 | -// accessCardInfo.sznTimeSectionNo[0] = 120; // 表示第一个门全天有效 | |
| 238 | -// accessCardInfo.sznTimeSectionNo[1] = 120; // 表示第二个门全天有效 | |
| 239 | -// } | |
| 237 | + }else { | |
| 238 | + accessCardInfo.sznTimeSectionNo[0] = channel; // 表示第一个门全天有效 | |
| 239 | + accessCardInfo.sznTimeSectionNo[1] = channel; // 表示第二个门全天有效 | |
| 240 | + } | |
| 240 | 241 | |
| 241 | 242 | // 卡状态 |
| 242 | 243 | accessCardInfo.emStatus = cardStatus; |
| ... | ... | @@ -291,14 +292,13 @@ public class GateModule { |
| 291 | 292 | log.info("添加卡信息失败,错误信息:{} ,错误码:{} ",ret,number); |
| 292 | 293 | cardErrNum = number; |
| 293 | 294 | //146用户已存在,21对返回数据的校验出错,1162未知错误 |
| 294 | - if(number.equals(EnumSendCardErrorType.CHECK_DATA_ERR_21.code)|| number.equals(EnumSendCardErrorType.EXIST_USER_146.code)|| | |
| 295 | - number.equals(EnumSendCardErrorType.UNKNOWN_1162.code)) { | |
| 295 | + if(number.equals(EnumSendCardErrorType.CHECK_DATA_ERR_21.code)||number.equals(EnumSendCardErrorType.EXIST_USER_146.code)) { | |
| 296 | 296 | //用户已存在/返回数据校验出错时,执行删除用户 |
| 297 | 297 | deleteUser( userId, lLong); |
| 298 | 298 | //重新下发卡至设备 |
| 299 | 299 | cardErrNum = ""; |
| 300 | 300 | return insertCard(cardNo, userId, cardName, cardPwd, cardStatus, cardType, useTimes, isFirstEnter, |
| 301 | - isValid, startValidTime, endValidTime, lLong, userType,cardErrNum); | |
| 301 | + isValid, startValidTime, endValidTime, lLong, userType,cardErrNum,channel); | |
| 302 | 302 | } |
| 303 | 303 | //新增卡失败,错误码,返回-1 |
| 304 | 304 | return -1; |
| ... | ... | @@ -414,10 +414,12 @@ public class GateModule { |
| 414 | 414 | CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO(); |
| 415 | 415 | String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE; |
| 416 | 416 | // 通道号 |
| 417 | - int nChannel = 120; | |
| 417 | + int nChannel = Integer.parseInt(permissionBean.getChannel()); | |
| 418 | 418 | // msg.stuTimeWeekDay[0].stuTimeSection[0].dwRecordMask |
| 419 | - String name = "3"; | |
| 419 | + //自定义名称 | |
| 420 | + String name = permissionBean.getCustomName(); | |
| 420 | 421 | System.arraycopy(name.getBytes(), 0, msg.szName, 0, name.getBytes().length); |
| 422 | + //时间段使能开关, 1-true; 0-false | |
| 421 | 423 | msg.bEnable = 1; |
| 422 | 424 | |
| 423 | 425 | List<WeekDay> weekDays = permissionBean.getWeekDays(); |
| ... | ... | @@ -525,10 +527,11 @@ public class GateModule { |
| 525 | 527 | |
| 526 | 528 | } |
| 527 | 529 | |
| 528 | - public static void getAccessTimeSchedule1(LLong lLong) { | |
| 530 | + public static void getAccessTimeSchedule1(LLong lLong,String channel) { | |
| 529 | 531 | CFG_ACCESS_TIMESCHEDULE_INFO msg = new CFG_ACCESS_TIMESCHEDULE_INFO(); |
| 530 | 532 | String strCmd = NetSDKLib.CFG_CMD_ACCESSTIMESCHEDULE; |
| 531 | - int nChannel = 120; // 通道号 | |
| 533 | + // 通道号 | |
| 534 | + int nChannel = Integer.parseInt(channel); | |
| 532 | 535 | |
| 533 | 536 | // 获取 |
| 534 | 537 | if (ToolKits.GetDevConfig(lLong, nChannel, strCmd, msg)) { |
| ... | ... | @@ -687,7 +690,7 @@ public class GateModule { |
| 687 | 690 | public static boolean modifyCard(int recordNo, String cardNo, String userId, String cardName, String cardPwd, |
| 688 | 691 | int cardStatus, int cardType, int useTimes, int isFirstEnter, |
| 689 | 692 | int isValid, String startValidTime, String endValidTime, LLong lLong, |
| 690 | - String userType,String cardErrNum) { | |
| 693 | + String userType,String cardErrNum,int channel) { | |
| 691 | 694 | /** |
| 692 | 695 | * 门禁卡记录集信息 |
| 693 | 696 | */ |
| ... | ... | @@ -715,13 +718,14 @@ public class GateModule { |
| 715 | 718 | accessCardInfo.nDoorNum = 2; |
| 716 | 719 | accessCardInfo.sznDoors[0] = 0; |
| 717 | 720 | accessCardInfo.sznDoors[1] = 1; |
| 718 | - accessCardInfo.nTimeSectionNum = 2; // 与门数对应 | |
| 719 | - if (userType.equals("1")){ | |
| 721 | + // 有效的的开门时间段数目 ,与设备门数保持一至 | |
| 722 | + accessCardInfo.nTimeSectionNum = 2; | |
| 723 | + if (userType.equals(EnumSzBusinessType.EnumUserType.TEACHER.code)){ | |
| 720 | 724 | accessCardInfo.sznTimeSectionNo[0] = 255; // 表示第一个门全天有效 |
| 721 | 725 | accessCardInfo.sznTimeSectionNo[1] = 255; // 表示第二个门全天有效 |
| 722 | 726 | }else { |
| 723 | - accessCardInfo.sznTimeSectionNo[0] = 120; // 表示第一个门全天有效 | |
| 724 | - accessCardInfo.sznTimeSectionNo[1] = 120; // 表示第二个门全天有效 | |
| 727 | + accessCardInfo.sznTimeSectionNo[0] = channel; // 表示第一个门全天有效 | |
| 728 | + accessCardInfo.sznTimeSectionNo[1] = channel; // 表示第二个门全天有效 | |
| 725 | 729 | } |
| 726 | 730 | |
| 727 | 731 | // 卡状态 | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/service/PermissFaceService.java
cloud/dahua/src/main/java/com/example/dahua/service/imp/PermissFaceServiceImp.java
| ... | ... | @@ -41,7 +41,14 @@ public class PermissFaceServiceImp implements PermissFaceService { |
| 41 | 41 | |
| 42 | 42 | int schoolId = permissionFaceBean.getSchoolId(); |
| 43 | 43 | |
| 44 | + //编辑设置 | |
| 44 | 45 | PermissionBean permissionBean = permissionFaceBean.getPermissionBean(); |
| 46 | + if(!StringUtils.isEmpty(permissionFaceBean.getChannel())){ | |
| 47 | + permissionBean.setChannel(permissionFaceBean.getChannel()); | |
| 48 | + } | |
| 49 | + if(!StringUtils.isEmpty(permissionFaceBean.getCustomName())){ | |
| 50 | + permissionBean.setChannel(permissionFaceBean.getCustomName()); | |
| 51 | + } | |
| 45 | 52 | |
| 46 | 53 | int type = permissionFaceBean.getType(); |
| 47 | 54 | if (null != permissionBean) |
| ... | ... | @@ -56,9 +63,19 @@ public class PermissFaceServiceImp implements PermissFaceService { |
| 56 | 63 | } |
| 57 | 64 | switch (type) { |
| 58 | 65 | case 0://新增 |
| 66 | + /**通道号**/ | |
| 67 | + String channel = Rand(); | |
| 68 | + /**通道自定义名称**/ | |
| 69 | + String customName = Rand(); | |
| 70 | + permissionBean.setChannel(channel); | |
| 71 | + permissionBean.setCustomName(customName); | |
| 72 | + permissionFaceBean.setChannel(channel); | |
| 73 | + permissionFaceBean.setCustomName(customName); | |
| 74 | + | |
| 59 | 75 | permissionFaceDao.addPermissionFace(permissionFaceBean); |
| 60 | 76 | responseBean.setMessage("添加权限模板成功"); |
| 61 | 77 | responseBean.setData(null); |
| 78 | + //下发权限 | |
| 62 | 79 | sendPermiss2Dev(permissionFaceBean); |
| 63 | 80 | responseBean.setStatus(1); |
| 64 | 81 | break; |
| ... | ... | @@ -94,6 +111,16 @@ public class PermissFaceServiceImp implements PermissFaceService { |
| 94 | 111 | } |
| 95 | 112 | |
| 96 | 113 | /** |
| 114 | + * 取100以内随机数 | |
| 115 | + * @return | |
| 116 | + */ | |
| 117 | + public static String Rand() { | |
| 118 | + int rand = (int) (Math.random() * 100000) % 100; | |
| 119 | + return String.valueOf(rand); | |
| 120 | + } | |
| 121 | + | |
| 122 | + | |
| 123 | + /** | |
| 97 | 124 | * 下发权限到设备 |
| 98 | 125 | * |
| 99 | 126 | * @param permissionFaceBean |
| ... | ... | @@ -140,6 +167,12 @@ public class PermissFaceServiceImp implements PermissFaceService { |
| 140 | 167 | } |
| 141 | 168 | |
| 142 | 169 | @Override |
| 170 | + public List<PermissionFaceBean> getPermissionList(int schoolId) { | |
| 171 | + List<PermissionFaceBean> permissionFaceBeans = permissionFaceDao.getPermissFaces(schoolId); | |
| 172 | + return permissionFaceBeans; | |
| 173 | + } | |
| 174 | + | |
| 175 | + @Override | |
| 143 | 176 | public ResponseBeanList<PermissionFaceBean> getPermissionDetail(int permissionId) { |
| 144 | 177 | ResponseBeanList responseBeanList = new ResponseBeanList(); |
| 145 | 178 | try { | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/service/imp/UserServiceImp.java
| ... | ... | @@ -129,7 +129,7 @@ public class UserServiceImp implements UserService { |
| 129 | 129 | NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(deviceId); |
| 130 | 130 | //下发权限 |
| 131 | 131 | GateModule.setAccessTimeSchedule(loginHandleLong, permissionBean); |
| 132 | - GateModule.getAccessTimeSchedule1(loginHandleLong); | |
| 132 | + GateModule.getAccessTimeSchedule1(loginHandleLong,permissionBean.getChannel()); | |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | 135 | ... | ... |
cloud/dahua/src/main/resources/mapper/PermissionFaceMapper.xml
| ... | ... | @@ -23,7 +23,7 @@ |
| 23 | 23 | |
| 24 | 24 | <insert id="addPermissionFace" parameterType="com.example.dahua.bean.PermissionFaceBean"> |
| 25 | 25 | |
| 26 | - insert into PermissionFace values (#{permissionJson},#{schoolId},#{perrmissName},#{createTime},#{updateTime}) | |
| 26 | + insert into PermissionFace values (#{permissionJson},#{schoolId},#{perrmissName},#{createTime},#{updateTime},#{channel},#{customName}) | |
| 27 | 27 | |
| 28 | 28 | </insert> |
| 29 | 29 | ... | ... |
cloud/dahua/src/test/java/com/example/dahua/mapper/SearchMapperTest.java
| ... | ... | @@ -5,6 +5,7 @@ import com.example.dahua.Tester; |
| 5 | 5 | import com.example.dahua.bean.CheckIn; |
| 6 | 6 | import com.example.dahua.bean.ShortMsg; |
| 7 | 7 | import com.example.dahua.dao.UserDao; |
| 8 | +import com.example.dahua.service.UserService; | |
| 8 | 9 | import com.example.dahua.utils.DateUtils; |
| 9 | 10 | import com.example.dahua.xiananDao.SearchMapper; |
| 10 | 11 | import org.junit.Test; |
| ... | ... | @@ -27,6 +28,9 @@ public class SearchMapperTest extends Tester { |
| 27 | 28 | @Autowired |
| 28 | 29 | private UserDao userDao; |
| 29 | 30 | |
| 31 | + @Autowired | |
| 32 | + private UserService userService; | |
| 33 | + | |
| 30 | 34 | @Test |
| 31 | 35 | public void test(){ |
| 32 | 36 | //有效刷卡调考勤存储过程 |
| ... | ... | @@ -61,4 +65,6 @@ public class SearchMapperTest extends Tester { |
| 61 | 65 | // System.out.println(JSON.toJSON(userDao.checkLeave("234232"))); |
| 62 | 66 | |
| 63 | 67 | } |
| 68 | + | |
| 69 | +// boolean uploadImgAndUserInfo(String file, String schoolId, String studentCode, String clint_type, int userType, String devid); | |
| 64 | 70 | } | ... | ... |