|
|
@@ -165,19 +165,18 @@ public class OneMachineService implements ValidationSignInPerInfo {
|
|
|
labWhitelistVO.setUserId(signInfoVO.getSingInUser().getUserId());
|
|
|
labWhitelistVO.setSubId(signInfoVO.getSubId());
|
|
|
List<LabWhitelist> list = iLabWhitelistService.selectLabWhiteJoinSubList(labWhitelistVO);
|
|
|
- if(list.size()==0){
|
|
|
+ if(list.isEmpty() && !subject.getAdminId().equals(signInfoVO.getSingInUser().getUserId())){
|
|
|
//是否改实验室负责人
|
|
|
- if(!subject.getAdminId().equals(signInfoVO.getSingInUser().getUserId())){
|
|
|
- //1 获取验证安全准入凭证
|
|
|
- LabSecurityApplyVO labSecurityApply = new LabSecurityApplyVO();
|
|
|
- labSecurityApply.setSubjectId(signInfoVO.getSubId());
|
|
|
- labSecurityApply.setUserId(signInfoVO.getSingInUser().getUserId());
|
|
|
- labSecurityApply.setAuditStatus(2);
|
|
|
- List<LabSecurityApplyVO> listapply= iLabSecurityApplyService.selectLabSecurityApplyList(labSecurityApply);
|
|
|
- if (listapply.size()==0) {
|
|
|
- messages.add("您未获取准入凭证!您需要通过小程序申请实验室准入资格后才能签到。");
|
|
|
- }
|
|
|
+ //1 获取验证安全准入凭证
|
|
|
+ LabSecurityApplyVO labSecurityApply = new LabSecurityApplyVO();
|
|
|
+ labSecurityApply.setSubjectId(signInfoVO.getSubId());
|
|
|
+ labSecurityApply.setUserId(signInfoVO.getSingInUser().getUserId());
|
|
|
+ labSecurityApply.setAuditStatus(2);
|
|
|
+ List<LabSecurityApplyVO> listapply= iLabSecurityApplyService.selectLabSecurityApplyList(labSecurityApply);
|
|
|
+ if (listapply.isEmpty()) {
|
|
|
+ messages.add("您未获取准入凭证!您需要通过小程序申请实验室准入资格后才能签到。");
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -319,79 +318,32 @@ public class OneMachineService implements ValidationSignInPerInfo {
|
|
|
if (user == null || user.getUserId() == null) {
|
|
|
return ResultData.fail(600, "签到&签出人脸已超时,请重新刷卡重试!");
|
|
|
}
|
|
|
- if (user != null) {
|
|
|
- String s = StrUtil.subAfter(code, "_", true);
|
|
|
- if (signEnum.equals(SignEnum.SIGN_IN)) {
|
|
|
- logger.info("1111111签到调用人脸服务");
|
|
|
- //调用人脸验证
|
|
|
- R r;
|
|
|
- if(null!=face){
|
|
|
- r = faceCompare(user.getUserId(), face);
|
|
|
- //验证失败刷新验证码时间
|
|
|
- logger.info("r.getCode():"+r.getCode());
|
|
|
- if (r.getCode() != 200) {
|
|
|
- return ResultData.fail(r.getMsg());
|
|
|
- }
|
|
|
- logger.info("2222222人脸服务调用完成!");
|
|
|
- }
|
|
|
- //插入进入实验室记录
|
|
|
- LabSubjectAccessRecordVo subjectAccessRecord = new LabSubjectAccessRecordVo();
|
|
|
- subjectAccessRecord.setDeptId(user.getDeptId());
|
|
|
- subjectAccessRecord.setSubjectId(Long.parseLong(s));
|
|
|
- subjectAccessRecord.setJoinUserId(user.getUserId());
|
|
|
-
|
|
|
- long l = subjectAccessRecordService.leaveAgainSign(subjectAccessRecord);
|
|
|
- //
|
|
|
- if (l > 0) {
|
|
|
- redisService.deleteObject(verifyKey);
|
|
|
- //增加一个key 用记录ID作为key,值是实验室ID 有效期两分钟
|
|
|
- redisService.setCacheObject(BaseConstants.SINGIN_id_KEY + subjectAccessRecord.getId(), Long.parseLong(s), 2L, TimeUnit.MINUTES);
|
|
|
- // 这里通过实验室id查询楼层id
|
|
|
- LabBuildFloorLayout labBuildFloorLayout = new LabBuildFloorLayout();
|
|
|
- labBuildFloorLayout.setSubId(Long.parseLong(s));
|
|
|
- List <LabBuildFloorLayoutVo> floorLayoutVoList = labBuildFloorLayoutService.selectLabBuildFloorLayoutList(labBuildFloorLayout);
|
|
|
- if(floorLayoutVoList.size()>0){
|
|
|
- LabBuildFloorLayoutVo floorVo = floorLayoutVoList.get(0);
|
|
|
- // 这里需要给管控页面推送一个消息
|
|
|
- messageSendService.subUserByChange(floorVo.getFloorId(),Long.parseLong(s));
|
|
|
- // 这里需要给管控页面推送一个消息
|
|
|
- messageSendService.builUserByChange(floorVo.getBuildId());
|
|
|
- }
|
|
|
- }else{
|
|
|
- return ResultData.fail("当前用户已经签到成功,不能重复签到!");
|
|
|
- }
|
|
|
-
|
|
|
- //学生登陆时 给奖励分
|
|
|
- if(UserConstants.USER_TYPE_STUDENT.equals(user.getType())){
|
|
|
- Map map = new HashMap();
|
|
|
- map.put("userId", user.getUserId());
|
|
|
- map.put("status", "0");
|
|
|
- r = remoteExamService.addLoginfo(map);
|
|
|
- if (r.getCode() != 200) {
|
|
|
- logger.info("打卡签到奖励分记录保存失败!");
|
|
|
- }
|
|
|
+ String s = StrUtil.subAfter(code, "_", true);
|
|
|
+ if (signEnum.equals(SignEnum.SIGN_IN)) {
|
|
|
+ logger.info("1111111签到调用人脸服务");
|
|
|
+ //调用人脸验证
|
|
|
+ R r;
|
|
|
+ if(null!=face){
|
|
|
+ r = faceCompare(user.getUserId(), face);
|
|
|
+ //验证失败刷新验证码时间
|
|
|
+ logger.info("r.getCode():"+r.getCode());
|
|
|
+ if (r.getCode() != 200) {
|
|
|
+ return ResultData.fail(r.getMsg());
|
|
|
}
|
|
|
-
|
|
|
- // 用户签到成功检测有无管控工作,有则发起通知
|
|
|
- labGradeManageRecordService.sendManageMsgBySiginUser(user.getUserId(), Long.parseLong(s));
|
|
|
-
|
|
|
- logger.info("333333用户签到完成!");
|
|
|
- return ResultData.result(subjectAccessRecord.getId());
|
|
|
- } else if (signEnum.equals(SignEnum.SIGN_OUT)) {
|
|
|
+ logger.info("2222222人脸服务调用完成!");
|
|
|
+ }
|
|
|
+ //插入进入实验室记录
|
|
|
+ LabSubjectAccessRecordVo subjectAccessRecord = new LabSubjectAccessRecordVo();
|
|
|
+ subjectAccessRecord.setDeptId(user.getDeptId());
|
|
|
+ subjectAccessRecord.setSubjectId(Long.parseLong(s));
|
|
|
+ subjectAccessRecord.setJoinUserId(user.getUserId());
|
|
|
+
|
|
|
+ long l = subjectAccessRecordService.leaveAgainSign(subjectAccessRecord);
|
|
|
+ //
|
|
|
+ if (l > 0) {
|
|
|
redisService.deleteObject(verifyKey);
|
|
|
- subjectAccessRecordService.out(Long.parseLong(s), user.getUserId());
|
|
|
-
|
|
|
- //学生登陆时 给奖励分
|
|
|
- if(UserConstants.USER_TYPE_STUDENT.equals(user.getType())){
|
|
|
- Map map = new HashMap();
|
|
|
- map.put("userId", user.getUserId());
|
|
|
- map.put("status", "1");
|
|
|
- R r = remoteExamService.addLoginfo(map);
|
|
|
- if (r.getCode() != 200) {
|
|
|
- logger.info("打卡签出奖励分记录保存失败!");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ //增加一个key 用记录ID作为key,值是实验室ID 有效期两分钟
|
|
|
+ redisService.setCacheObject(BaseConstants.SINGIN_id_KEY + subjectAccessRecord.getId(), Long.parseLong(s), 2L, TimeUnit.MINUTES);
|
|
|
// 这里通过实验室id查询楼层id
|
|
|
LabBuildFloorLayout labBuildFloorLayout = new LabBuildFloorLayout();
|
|
|
labBuildFloorLayout.setSubId(Long.parseLong(s));
|
|
|
@@ -403,8 +355,53 @@ public class OneMachineService implements ValidationSignInPerInfo {
|
|
|
// 这里需要给管控页面推送一个消息
|
|
|
messageSendService.builUserByChange(floorVo.getBuildId());
|
|
|
}
|
|
|
- return ResultData.result(true);
|
|
|
+ }else{
|
|
|
+ return ResultData.fail("当前用户已经签到成功,不能重复签到!");
|
|
|
}
|
|
|
+
|
|
|
+ //学生登陆时 给奖励分
|
|
|
+ if(UserConstants.USER_TYPE_STUDENT.equals(user.getType())){
|
|
|
+ Map map = new HashMap();
|
|
|
+ map.put("userId", user.getUserId());
|
|
|
+ map.put("status", "0");
|
|
|
+ r = remoteExamService.addLoginfo(map);
|
|
|
+ if (r.getCode() != 200) {
|
|
|
+ logger.info("打卡签到奖励分记录保存失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 用户签到成功检测有无管控工作,有则发起通知
|
|
|
+ labGradeManageRecordService.sendManageMsgBySiginUser(user.getUserId(), Long.parseLong(s));
|
|
|
+
|
|
|
+ logger.info("333333用户签到完成!");
|
|
|
+ return ResultData.result(subjectAccessRecord.getId());
|
|
|
+ } else if (signEnum.equals(SignEnum.SIGN_OUT)) {
|
|
|
+ redisService.deleteObject(verifyKey);
|
|
|
+ subjectAccessRecordService.out(Long.parseLong(s), user.getUserId());
|
|
|
+
|
|
|
+ //学生登陆时 给奖励分
|
|
|
+ if(UserConstants.USER_TYPE_STUDENT.equals(user.getType())){
|
|
|
+ Map map = new HashMap();
|
|
|
+ map.put("userId", user.getUserId());
|
|
|
+ map.put("status", "1");
|
|
|
+ R r = remoteExamService.addLoginfo(map);
|
|
|
+ if (r.getCode() != 200) {
|
|
|
+ logger.info("打卡签出奖励分记录保存失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 这里通过实验室id查询楼层id
|
|
|
+ LabBuildFloorLayout labBuildFloorLayout = new LabBuildFloorLayout();
|
|
|
+ labBuildFloorLayout.setSubId(Long.parseLong(s));
|
|
|
+ List <LabBuildFloorLayoutVo> floorLayoutVoList = labBuildFloorLayoutService.selectLabBuildFloorLayoutList(labBuildFloorLayout);
|
|
|
+ if(floorLayoutVoList.size()>0){
|
|
|
+ LabBuildFloorLayoutVo floorVo = floorLayoutVoList.get(0);
|
|
|
+ // 这里需要给管控页面推送一个消息
|
|
|
+ messageSendService.subUserByChange(floorVo.getFloorId(),Long.parseLong(s));
|
|
|
+ // 这里需要给管控页面推送一个消息
|
|
|
+ messageSendService.builUserByChange(floorVo.getBuildId());
|
|
|
+ }
|
|
|
+ return ResultData.result(true);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.getStackTrace();
|
|
|
@@ -569,11 +566,9 @@ public class OneMachineService implements ValidationSignInPerInfo {
|
|
|
if("1".equals(lo)){
|
|
|
// 实验室负责人
|
|
|
LabSubject labSubject = labSubjectMapper.selectLabSubjectById(subId);
|
|
|
- if(StringUtils.isNotNull(labSubject)){
|
|
|
- if(userId.longValue() == labSubject.getAdminId().longValue()){
|
|
|
- checkFlag = true;
|
|
|
- break;
|
|
|
- }
|
|
|
+ if(StringUtils.isNotNull(labSubject) && userId.longValue() == labSubject.getAdminId().longValue()){
|
|
|
+ checkFlag = true;
|
|
|
+ break;
|
|
|
}
|
|
|
}else if("2".equals(lo)){
|
|
|
// 实验室负责人
|