yangdamao 1 gadu atpakaļ
vecāks
revīzija
01f684fa1f

+ 2 - 2
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserStudyRecordController.java

@@ -209,10 +209,10 @@ public class UserStudyRecordController extends BaseController {
 
     @ApiOperation("查询当前视频节是否需要录像")
     @GetMapping("/check/video")
-    public AjaxResult<Void> checkUserVideo(CheckUserVideoBo bo){
+    public AjaxResult<Integer> checkUserVideo(CheckUserVideoBo bo){
         ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
         bo.setUserId(loginUser.getUser().getUserId());
-        return toAjax(iUserStudyRecordService.checkUserVideo(bo) ? 1 : 0);
+        return AjaxResult.success(iUserStudyRecordService.checkUserVideo(bo));
     }
 
     @ApiOperation("保存当前视频节录像")

+ 10 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -928,7 +928,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         params.put("bmrq", DateUtils.timestampToDate(bmrq));
         params.put("dw", userVo.getCompanyName());
         params.put("xl", userVo.getEduLevel());
-        params.put("xb", userVo.getSex()==1?"男":"女");
+        params.put("xb", getUserSex(userVo.getIdCard()));
         String dataTxt = params.get("zh") + params.get("bh") + params.get("year") + params.get("xm") + params.get("sfz") + params.get("dh") + params.get("dw") + params.get("xl") + params.get("xb") + params.get("bmrq");
         log.info("报名信息推送参数"+ dataTxt);
         try {
@@ -991,6 +991,15 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         }
     }
 
+    private String getUserSex(String idNumber){
+        if (idNumber == null || (idNumber.length() != 18 && idNumber.length() != 15)) {
+            throw new IllegalArgumentException("身份证号码长度不正确");
+        }
+        int index = idNumber.length() == 18 ? 17 : 15;
+        char genderCode = idNumber.charAt(index);
+        return  (genderCode % 2 == 0) ? "女" : "男";
+    }
+
     @Override
     public boolean resetQdyCheckInfo(){
         this.baseMapper.updateListUserNoTenant("培训周期时间未到");

+ 16 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/tencentcloud/service/impl/FaceOcrServiceImpl.java

@@ -134,20 +134,18 @@ public class FaceOcrServiceImpl implements IFaceOcrService {
             faceRequest.setMinFaceSize(40L);
             faceRequest.setMaxFaceNum(1L);
             FaceInfo[] face = response.getFaceInfos();
+            Long imageWidth = response.getImageWidth();
+            Long imageHeight = response.getImageHeight();
             if(face[0].getFaceQualityInfo().getBrightness().intValue()<25){
-                log.info("照片光照不达标"+face[0].getFaceQualityInfo().getBrightness().intValue());
-                throw new CustomException("照片光照不达标"+face[0].getFaceQualityInfo().getBrightness().intValue());
+                throw new CustomException("照片光照不合格,请重新拍照!");
             }
             if(face[0].getFaceQualityInfo().getBrightness().intValue()>95){
-                log.info("照片光照不达标"+face[0].getFaceQualityInfo().getBrightness().intValue());
-                throw new CustomException("照片光照曝光"+face[0].getFaceQualityInfo().getBrightness().intValue());
+                throw new CustomException("照片光照曝光,请重新拍照!");
             }
             if(face[0].getFaceQualityInfo().getScore().intValue()<30){
-                log.info("照片质量不达标"+face[0].getFaceQualityInfo().getScore().intValue());
-                throw new CustomException("照片质量不达标"+face[0].getFaceQualityInfo().getScore().intValue());
+                throw new CustomException("照片质量不合格,请重新拍照!");
             }
             if(Validator.isEmpty(face[0].getFaceQualityInfo().getCompleteness())){
-                log.info("照片五官不达标");
                 throw new CustomException("照片五官不达标");
             }
             FaceQualityCompleteness completeness = face[0].getFaceQualityInfo().getCompleteness();
@@ -169,6 +167,17 @@ public class FaceOcrServiceImpl implements IFaceOcrService {
             if (ObjectUtils.isNull(completeness.getChin()) || completeness.getChin() < 60){
                 throw new CustomException("请勿遮挡下巴");
             }
+            if (imageWidth * 0.55 < face[0].getWidth()){
+                throw new CustomException("人脸与摄像头距离太近,请把摄像头或手机离脸远一些再拍照!");
+            }
+            if (imageHeight * 0.85 < (face[0].getY()+face[0].getHeight())){
+                throw new CustomException("照片的人脸太下,请拍照时把两肩拍出来!");
+            }
+            if(face[0].getX()<0|| face[0].getY()<0
+                    || (face[0].getX() + face[0].getWidth()) > imageWidth)
+            {
+                throw new CustomException("请保证人脸全部在照片范围内!");
+            }
         }catch (TencentCloudSDKException e){
             log.info("人脸检测错误"+e.getMessage());
             throw new CustomException("人脸检测错误"+e.getMessage());

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserStudyRecordService.java

@@ -162,7 +162,7 @@ public interface IUserStudyRecordService extends IService<UserStudyRecord> {
 
     List<UserStudyRecord> getStudyRecordNoTenant(Long orderGoodsId);
 
-    boolean checkUserVideo(CheckUserVideoBo bo);
+    Integer checkUserVideo(CheckUserVideoBo bo);
 
 	boolean saveUserVideo(SaveUserVideoBo bo);
 }

+ 4 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -1668,7 +1668,7 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
     }
 
     @Override
-    public boolean checkUserVideo(CheckUserVideoBo bo) {
+    public Integer checkUserVideo(CheckUserVideoBo bo) {
         User user = iUserService.getById(bo.getUserId());
         if (ObjectUtils.isNull(user)){
             throw new CustomException("用户不存在,请检查!");
@@ -1677,7 +1677,7 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         if (ObjectUtils.isNull(orderGoods)){
             throw new CustomException("订单不存在,请检查!");
         }
-        int count = iUserStudyVideoService.count(new LambdaQueryWrapper<UserStudyVideo>()
+        return iUserStudyVideoService.count(new LambdaQueryWrapper<UserStudyVideo>()
                 .eq(UserStudyVideo::getUserId, bo.getUserId())
                 .eq(UserStudyVideo::getOrderGoodsId, bo.getOrderGoodsId())
                 .eq(UserStudyVideo::getGoodsId, bo.getGoodsId())
@@ -1686,8 +1686,8 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
                 .eq(UserStudyVideo::getChapterId, bo.getChapterId())
                 .eq(UserStudyVideo::getSectionId, bo.getSectionId())
                 .eq(UserStudyVideo::getCurrentStatus, 1)
+                .isNull(UserStudyVideo::getVideoUrl)
                 .eq(UserStudyVideo::getStatus, 1));
-        return count > 0;
     }
 
     @Override
@@ -1696,7 +1696,7 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         if (ObjectUtils.isNull(user)){
             throw new CustomException("用户不存在,请检查!");
         }
-        OrderGoods orderGoods = iOrderGoodsService.getById(bo.getGoodsId());
+        OrderGoods orderGoods = iOrderGoodsService.getById(bo.getOrderGoodsId());
         if (ObjectUtils.isNull(orderGoods)){
             throw new CustomException("订单不存在,请检查!");
         }