소스 검색

fix 报考数据

he2802 3 년 전
부모
커밋
0634940976
29개의 변경된 파일479개의 추가작업 그리고 18개의 파일을 삭제
  1. 12 4
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java
  2. 20 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserSubscribeController.java
  3. 1 0
      zhongzheng-admin/src/main/resources/application.yml
  4. 1 0
      zhongzheng-api/src/main/resources/application.yml
  5. 13 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/UserProfileServiceImpl.java
  6. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyAddBo.java
  7. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyEditBo.java
  8. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApply.java
  9. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplyVo.java
  10. 7 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java
  11. 100 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java
  12. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserAddBo.java
  13. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserEditBo.java
  14. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSubscribeAddBo.java
  15. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSubscribeEditBo.java
  16. 21 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSubscribeQueryBo.java
  17. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/User.java
  18. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserSubscribe.java
  19. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserSubscribeMapper.java
  20. 7 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserSubscribeService.java
  21. 38 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java
  22. 42 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeSignExportVo.java
  23. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeStudentExportVo.java
  24. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java
  25. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/wisdom/service/IWisdomService.java
  26. 39 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/wisdom/service/impl/WisdomServiceImpl.java
  27. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml
  28. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml
  29. 82 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

+ 12 - 4
zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -4,6 +4,7 @@ import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.framework.web.service.AsyncService;
 import com.zhongzheng.framework.web.service.WxLoginService;
+import com.zhongzheng.modules.exam.bo.ExamApplyQueryBo;
 import com.zhongzheng.modules.polyv.bo.PolyvLiveQueryBo;
 import com.zhongzheng.modules.polyv.service.IPolyvLiveService;
 import com.zhongzheng.modules.schedule.service.IScheduleService;
@@ -19,6 +20,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.text.ParseException;
+import java.util.Map;
 
 /**
  * 定时任务
@@ -296,15 +298,21 @@ public class ScheduleController extends BaseController {
 
     @ApiOperation("批量同步考试计划用户")
     @GetMapping("/syncApplyUserInfo")
-    public AjaxResult wisdomSyncApplyUserInfo(UserQueryBo bo){
-        iScheduleService.wisdomSyncApplyUserInfo(bo);
-        return AjaxResult.success();
+    public AjaxResult<Map<String,Object>> wisdomSyncApplyUserInfo(ExamApplyQueryBo bo){
+        return AjaxResult.success(iScheduleService.wisdomSyncApplyUserInfo(bo));
     }
 
     @ApiOperation("同步考生考试状态信息")
     @GetMapping("/wisdomSyncExamStatus")
-    public AjaxResult wisdomSyncExamStatus(UserQueryBo bo){
+    public AjaxResult wisdomSyncExamStatus(ExamApplyQueryBo bo){
         iScheduleService.wisdomSyncExamStatus(bo);
         return AjaxResult.success();
     }
+
+    @ApiOperation("同步考试视频信息")
+    @GetMapping("/wisdomSyncExamVideo")
+    public AjaxResult wisdomSyncExamVideo(ExamApplyQueryBo bo){
+        iScheduleService.wisdomSyncExamVideo(bo);
+        return AjaxResult.success();
+    }
 }

+ 20 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserSubscribeController.java

@@ -3,6 +3,7 @@ package com.zhongzheng.controller.user;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import cn.hutool.core.bean.BeanUtil;
@@ -20,6 +21,7 @@ import com.zhongzheng.modules.exam.vo.ExamApplyGoodsVo;
 import com.zhongzheng.modules.exam.vo.ExamApplyVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.vo.ClassPeriodStudentExportVo;
+import com.zhongzheng.modules.grade.vo.ClassStudentExportVo;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.domain.UserBankRecord;
 import com.zhongzheng.modules.user.service.IUserExamGoodsService;
@@ -359,4 +361,22 @@ public class UserSubscribeController extends BaseController {
         return AjaxResult.success(iUserSubscribeService.checkIdsDataFilter(bo));
     }
 
+    @ApiOperation("导出学员信息表")
+    @PreAuthorize("@ss.hasPermi('system:subscribe:list')")
+    @GetMapping("/listUserExport")
+    public AjaxResult listUserExport(UserSubscribeQueryBo bo) {
+        List<UserSubscribeStudentExportVo> list = iUserSubscribeService.listUserExport(bo);
+        ExcelUtil<UserSubscribeStudentExportVo> util = new ExcelUtil<UserSubscribeStudentExportVo>(UserSubscribeStudentExportVo.class);
+        return util.exportExcel(list, "学员信息表");
+    }
+
+    @ApiOperation("导出学员签到表")
+    @PreAuthorize("@ss.hasPermi('system:subscribe:list')")
+    @GetMapping("/listSignExport")
+    public AjaxResult listSignExport(UserSubscribeQueryBo bo) {
+        List<UserSubscribeSignExportVo> list = iUserSubscribeService.listSignExport(bo);
+        ExcelUtil<UserSubscribeSignExportVo> util = new ExcelUtil<UserSubscribeSignExportVo>(UserSubscribeSignExportVo.class);
+        return util.exportExcel(list, "学员签到表");
+    }
+
 }

+ 1 - 0
zhongzheng-admin/src/main/resources/application.yml

@@ -298,3 +298,4 @@ aliyun:
     buyNotStudyTeacherRemind : SMS_247935257  #学生购买未学习老师
     longNotStudyStudentRemind: SMS_247910221  #学生长时间未学习
     longNotStudyTeacherRemind: SMS_247765294  #学生长时间未学习老师
+    signCommitmentRemind: SMS_250390195  #签署承诺书提醒

+ 1 - 0
zhongzheng-api/src/main/resources/application.yml

@@ -293,3 +293,4 @@ aliyun:
     buyNotStudyTeacherRemind: SMS_247935257  #学生购买未学习老师
     longNotStudyStudentRemind: SMS_247910221  #学生长时间未学习
     longNotStudyTeacherRemind: SMS_247765294  #学生长时间未学习老师
+    signCommitmentRemind: SMS_250390195  #签署承诺书提醒

+ 13 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/UserProfileServiceImpl.java

@@ -491,7 +491,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
         String keyValue = bo.getKeyValue();
         if (Validator.isNotEmpty(keyValue)) {
             Map<String, String> maps = JSONObject.parseObject(keyValue, Map.class);
-            String recent_photos, idcard_face_photo, idcard_national_photo,work_unit,idcard,name;
+            String recent_photos, idcard_face_photo, idcard_national_photo,work_unit,idcard,name,education,apply_post;
             LambdaUpdateWrapper<User> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
             objectLambdaUpdateWrapper.eq(User::getUserId, bo.getUserId());
             if (maps.containsKey("idcard")) {
@@ -538,6 +538,18 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                     objectLambdaUpdateWrapper.set(User::getCompanyName, work_unit);
                 }
             }
+            if (maps.containsKey("education")) {
+                education = JSONObject.parseObject(String.valueOf(maps.get("education")), UserProfileFit.class).getValue();
+                if(Validator.isNotEmpty(education)){
+                    objectLambdaUpdateWrapper.set(User::getEduLevel, education);
+                }
+            }
+            if (maps.containsKey("apply_post")) {
+                apply_post = JSONObject.parseObject(String.valueOf(maps.get("apply_post")), UserProfileFit.class).getValue();
+                if(Validator.isNotEmpty(apply_post)){
+                    objectLambdaUpdateWrapper.set(User::getJob, apply_post);
+                }
+            }
             objectLambdaUpdateWrapper.set(User::getUpdateTime, DateUtils.getNowTime());
             iUserService.update(null, objectLambdaUpdateWrapper);
         }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyAddBo.java

@@ -63,5 +63,6 @@ public class ExamApplyAddBo {
     /** 编码 */
     @ApiModelProperty("编码")
     private String code;
-
+    @ApiModelProperty("是否需要签署承诺书 1是,0否")
+    private Integer reportStatus;
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/bo/ExamApplyEditBo.java

@@ -69,5 +69,6 @@ public class ExamApplyEditBo {
     /** 项目ID */
     @ApiModelProperty("项目ID")
     private Long projectId;
-
+    @ApiModelProperty("是否需要签署承诺书 1是,0否")
+    private Integer reportStatus;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamApply.java

@@ -62,4 +62,6 @@ private static final long serialVersionUID=1L;
 
     /** 编码 */
     private String code;
+
+    private Integer reportStatus;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamApplyVo.java

@@ -98,4 +98,6 @@ public class ExamApplyVo {
 
 	@ApiModelProperty("商品Id")
 	private Long[] goodsId;
+	@ApiModelProperty("是否需要签署承诺书 1是,0否")
+	private Integer reportStatus;
 }

+ 7 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.schedule.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.exam.bo.ExamApplyQueryBo;
 import com.zhongzheng.modules.polyv.bo.PolyvVideoAddBo;
 import com.zhongzheng.modules.polyv.bo.PolyvVideoEditBo;
 import com.zhongzheng.modules.polyv.bo.PolyvVideoQueryBo;
@@ -73,7 +74,11 @@ public interface IScheduleService extends IService<PolyvVideo> {
 
     void wisdomExamSite(UserQueryBo bo);
 
-    void wisdomSyncApplyUserInfo(UserQueryBo bo);
+    Map<String,Object> wisdomSyncApplyUserInfo(ExamApplyQueryBo bo);
 
-    void wisdomSyncExamStatus(UserQueryBo bo);
+    void wisdomSyncExamStatus(ExamApplyQueryBo bo);
+
+    void wisdomSyncExamVideo(ExamApplyQueryBo bo);
+
+    void signTimeSend(UserQueryBo bo);
 }

+ 100 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -307,6 +307,9 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     @Value("${aliyun.sms.longNotStudyTeacherRemind}")
     private String longNotStudyTeacherRemind;
 
+    @Value("${aliyun.sms.signCommitmentRemind}")
+    private String signCommitmentRemind;
+
     @Override
     public String updateGoodsSend(UserQueryBo bo) {
         InformRemindVo informRemindVo = informRemindService.queryById(1L);
@@ -637,6 +640,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("考试提醒");
                 informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
+                informUserAddBo.setOrderGoodsId(subscribeVo.getOrderGoodsId());
                 GoodsVo goodsVo1 = iGoodsService.queryById(subscribeVo.getGoodsId());
                 informUserAddBo.setText("尊敬的用户:您预约的施工现场专业人员" + goodsVo1.getGoodsName() + "考试将在" + res + "(" + startTime + "-" + endTime + ")进行," +
                         "考试地点:" + subscribeVo.getApplySiteAddress() + seatTxt);
@@ -653,6 +657,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("考试提醒");
                 informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
+                informUserAddBo.setOrderGoodsId(subscribeVo.getOrderGoodsId());
                 GoodsVo goodsVo1 = iGoodsService.queryById(subscribeVo.getGoodsId());
                 informUserAddBo.setText("尊敬的用户:您预约的施工现场专业人员" + goodsVo1.getGoodsName() + "考试将在" + res + "(" + startTime + "-" + endTime + ")进行," +
                         "考试地点:" + subscribeVo.getApplySiteAddress() + seatTxt);
@@ -676,6 +681,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSystemStatus(4);
                 informUserAddBo.setRemind("考试提醒");
                 informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
+                informUserAddBo.setOrderGoodsId(subscribeVo.getOrderGoodsId());
                 GoodsVo goodsVo1 = iGoodsService.queryById(subscribeVo.getGoodsId());
                 informUserAddBo.setText("尊敬的用户:您预约的施工现场专业人员" + goodsVo1.getGoodsName() + "考试将在" + res + "(" + startTime + "-" + endTime + ")进行," +
                         "考试地点:" + subscribeVo.getApplySiteAddress() + seatTxt);
@@ -699,6 +705,89 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         }
     }
 
+    @Override
+    public void signTimeSend(UserQueryBo bo) {
+        //提醒签署承诺书
+        List<UserSubscribeVo> userSubscribeVo = iUserSubscribeService.signTimeSend();
+        InformRemindVo informRemindVo = informRemindService.queryById(34L);
+        for (UserSubscribeVo subscribeVo : userSubscribeVo) {
+           String dateStartStr = DateUtils.timestampToDate(subscribeVo.getApplySiteExamTime())+" "+subscribeVo.getApplySiteStartTime();
+           Long startTime = DateUtils.dateTimeSec(dateStartStr,DateUtils.YYYY_MM_DD_HH_MM_SS);
+           Long nowTime = DateUtils.getNowTime();
+           if((nowTime+7200L)<=startTime&&(nowTime+7380L)>=startTime){ //开考前2小时通知
+               if (informRemindVo.getWayStatus().equals(1)) {
+                   InformUserAddBo informUserAddBo = new InformUserAddBo();
+                   informUserAddBo.setUserId(subscribeVo.getUserId());
+                   informUserAddBo.setSendStatus(1);
+                   informUserAddBo.setSendTime(DateUtils.getNowTime());
+                   informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                   informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                   informUserAddBo.setRemindId(34L);
+                   informUserAddBo.setSystemStatus(1);
+                   informUserAddBo.setRemind("签署承诺书提醒");
+                   informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
+                   informUserAddBo.setOrderGoodsId(subscribeVo.getOrderGoodsId());
+                   informUserAddBo.setText("尊敬的用户:您参加的"+subscribeVo.getApplyName()+"考试即将开始,您还没有签署疫情防控承诺书。请及时签署承诺书!\n" +
+                           "\n" +
+                           "\n" +
+                           "\n" +
+                           "点击消息:打开签署承诺书页面");
+                   iInformUserService.insertByAddBo(informUserAddBo);
+               }
+               if (informRemindVo.getNoteStatus().equals(1)) {
+                   InformUserAddBo informUserAddBo = new InformUserAddBo();
+                   informUserAddBo.setUserId(subscribeVo.getUserId());
+                   informUserAddBo.setSendTime(DateUtils.getNowTime());
+                   informUserAddBo.setSendStatus(1);
+                   informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                   informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                   informUserAddBo.setRemindId(34L);
+                   informUserAddBo.setSystemStatus(3);
+                   informUserAddBo.setRemind("签署承诺书提醒");
+                   informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
+                   informUserAddBo.setOrderGoodsId(subscribeVo.getOrderGoodsId());
+                   informUserAddBo.setText("尊敬的用户:您参加的"+subscribeVo.getApplyName()+"考试即将开始,您还没有在线上签署疫情防控承诺书。立即打开小程序签署承诺书!");
+                   UserVo userVo = iUserService.queryById(subscribeVo.getUserId());
+                   Map<String, Object> param = new HashMap<>();
+                   param.put("name", subscribeVo.getApplyName());
+                   if (Validator.isNotEmpty(IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), signCommitmentRemind))) {
+                       iInformUserService.insertByAddBo(informUserAddBo);
+                   }
+               }
+               if (informRemindVo.getGzhTpStatus().equals(1)) {
+                   InformUserAddBo informUserAddBo = new InformUserAddBo();
+                   informUserAddBo.setUserId(subscribeVo.getUserId());
+                   informUserAddBo.setSendTime(DateUtils.getNowTime());
+                   informUserAddBo.setSendStatus(1);
+                   informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                   informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                   informUserAddBo.setRemindId(34L);
+                   informUserAddBo.setSystemStatus(4);
+                   informUserAddBo.setRemind("考试提醒");
+                   informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
+                   informUserAddBo.setOrderGoodsId(subscribeVo.getOrderGoodsId());
+                   informUserAddBo.setText("尊敬的用户:您参加的"+subscribeVo.getApplyName()+"考试即将开始,您还没有在线上签署疫情防控承诺书。立即打开小程序签署承诺书!");
+                   UserVo userVo = iUserService.queryById(subscribeVo.getUserId());
+                   iInformUserService.insertByAddBo(informUserAddBo);
+                   if(Validator.isNotEmpty(userVo.getOpenId())){
+                       Map<String,String> paramMap = new HashMap<>();
+                       paramMap.put("first","您参加的"+subscribeVo.getApplyName()+"考试即将开始,您还没有签署疫情防控承诺书");
+                       paramMap.put("keyword1",subscribeVo.getApplySiteAddress());
+                       paramMap.put("keyword2", dateStartStr);
+                       paramMap.put("remark","↓请点击立即疫情防控签署承诺书。");
+                       paramMap.put("pagepath","pages2/exam/exam_appointment?current=0");
+                       iWxLoginService.sendSignatureTpMsg(userVo.getOpenId(),paramMap);
+                   }
+               }
+               LambdaUpdateWrapper<UserSubscribe> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+               objectLambdaUpdateWrapper.eq(UserSubscribe::getSubscribeId, subscribeVo.getSubscribeId());
+               objectLambdaUpdateWrapper.set(UserSubscribe::getSignaturePushTime,DateUtils.getNowTime());
+               objectLambdaUpdateWrapper.set(UserSubscribe::getUpdateTime,DateUtils.getNowTime());
+               iUserSubscribeService.update(null, objectLambdaUpdateWrapper);
+           }
+        }
+    }
+
     @Override
     public void closeTimeOutOrder() {
         OrderQueryBo bo = new OrderQueryBo();
@@ -2115,15 +2204,22 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     }
 
     @Override
-    public void wisdomSyncApplyUserInfo(UserQueryBo bo) {
-        iWisdomService.syncApplyUserInfo(192L);
+    public Map<String,Object> wisdomSyncApplyUserInfo(ExamApplyQueryBo bo) {
+        return iWisdomService.syncApplyUserInfo(bo.getApplyId());
     }
 
     @Override
-    public void wisdomSyncExamStatus(UserQueryBo bo) {
-        iWisdomService.syncExamStatus(192L,1);
+    public void wisdomSyncExamStatus(ExamApplyQueryBo bo) {
+        iWisdomService.syncExamStatus(bo.getApplyId(),1);
     }
 
+    @Override
+    public void wisdomSyncExamVideo(ExamApplyQueryBo bo) {
+        iWisdomService.syncExamVideo(bo.getApplyId(),102L);
+    }
+
+
+
     private Long formatTime(Long startTime, String addTime) throws ParseException{
         Long times = startTime*1000;//时间戳
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserAddBo.java

@@ -147,4 +147,8 @@ public class UserAddBo {
     /** 导入编号 */
     @ApiModelProperty("导入编号")
     private String importNo;
+
+    /** 工作岗位 */
+    @ApiModelProperty("工作岗位")
+    private String job;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserEditBo.java

@@ -188,4 +188,7 @@ public class UserEditBo {
     @ApiModelProperty("导入编号")
     private String importNo;
 
+    /** 工作岗位 */
+    @ApiModelProperty("工作岗位")
+    private String job;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSubscribeAddBo.java

@@ -150,4 +150,8 @@ public class UserSubscribeAddBo {
     /** 承诺书签名推送时间 */
     @ApiModelProperty("承诺书签名推送时间")
     private Long signaturePushTime;
+
+    /** 签署承诺书时间 */
+    @ApiModelProperty("签署承诺书时间")
+    private Long reportFileTime;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSubscribeEditBo.java

@@ -175,4 +175,7 @@ public class UserSubscribeEditBo {
     /** 承诺书签名推送时间 */
     @ApiModelProperty("承诺书签名推送时间")
     private Long signaturePushTime;
+    /** 签署承诺书时间 */
+    @ApiModelProperty("签署承诺书时间")
+    private Long reportFileTime;
 }

+ 21 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSubscribeQueryBo.java

@@ -145,4 +145,25 @@ public class UserSubscribeQueryBo extends BaseEntity {
 	/** 承诺书签名推送时间 */
 	@ApiModelProperty("承诺书签名推送时间")
 	private Long signaturePushTime;
+	/** 准考证书 */
+	@ApiModelProperty("准考证书")
+	private String examineeCode;
+	/** 0 未签署 1已签署 */
+	@ApiModelProperty("0 未签署 1已签署")
+	private Integer reportStatus;
+	/** 座位号 */
+	@ApiModelProperty("座位号")
+	private String seatNumber;
+	/** 考试开始时间段 */
+	@ApiModelProperty("考试开始时间段")
+	private String applySiteStartTime;
+
+	/** 考试结束时间段 */
+	@ApiModelProperty("考试结束时间段")
+	private String applySiteEndTime;
+
+	/** 考试日期 */
+	@ApiModelProperty("考试日期")
+	private Long applySiteExamTime;
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/User.java

@@ -209,4 +209,6 @@ private static final long serialVersionUID=1L;
     private Integer studyFromPlat;
     @TableField(exist = false)
     private Long lastStudyTime;
+    /** 工作岗位 */
+    private String job;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserSubscribe.java

@@ -113,4 +113,7 @@ private static final long serialVersionUID=1L;
     private String syncExamResult;
     /** 承诺书签名推送时间 */
     private Long signaturePushTime;
+    /** 签署承诺书时间 */
+    private Long reportFileTime;
+    
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserSubscribeMapper.java

@@ -5,6 +5,7 @@ import com.zhongzheng.modules.user.bo.UserSubscribeQueryBo;
 import com.zhongzheng.modules.user.domain.UserSubscribe;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.user.vo.UserSubscribeVo;
+import com.zhongzheng.modules.user.vo.UserVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -50,4 +51,10 @@ public interface UserSubscribeMapper extends BaseMapper<UserSubscribe> {
     Integer getConsoleTestSubscribeNum(ConsoleQueryBo bo);
 
     List<UserSubscribeVo> selectApplyUserList(@Param("applyId") Long applyId);
+
+    List<UserSubscribeVo> signTimeSend();
+
+    List<UserVo> listUserExport(UserSubscribeQueryBo bo);
+
+    List<UserSubscribeVo> listSignExport(UserSubscribeQueryBo bo);
 }

+ 7 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserSubscribeService.java

@@ -3,10 +3,7 @@ package com.zhongzheng.modules.user.service;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.domain.UserSubscribe;
-import com.zhongzheng.modules.user.vo.UserSubscribeIdsImport;
-import com.zhongzheng.modules.user.vo.UserSubscribeIdsImportCheck;
-import com.zhongzheng.modules.user.vo.UserSubscribeImport;
-import com.zhongzheng.modules.user.vo.UserSubscribeVo;
+import com.zhongzheng.modules.user.vo.*;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.web.multipart.MultipartFile;
@@ -94,4 +91,10 @@ public interface IUserSubscribeService extends IService<UserSubscribe> {
      * @return java.lang.Boolean
      */
 	Boolean signReport(MultipartFile image, UserSubscribeSignReportBo bo);
+
+	List<UserSubscribeVo> signTimeSend();
+
+	List<UserSubscribeStudentExportVo> listUserExport(UserSubscribeQueryBo bo);
+
+	List<UserSubscribeSignExportVo> listSignExport(UserSubscribeQueryBo bo);
 }

+ 38 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -1763,6 +1763,44 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
         return true;
     }
 
+    @Override
+    public List<UserSubscribeVo> signTimeSend() {
+        return baseMapper.signTimeSend();
+    }
+
+    @Override
+    public List<UserSubscribeStudentExportVo> listUserExport(UserSubscribeQueryBo bo) {
+        List<UserVo> list = baseMapper.listUserExport(bo);
+        List<UserSubscribeStudentExportVo> list1 = new ArrayList<>();
+        for(UserVo vo : list){
+            UserSubscribeStudentExportVo item = BeanUtil.toBean(vo, UserSubscribeStudentExportVo.class);
+            if(Validator.isNotEmpty(vo.getSex())){
+               if(vo.getSex()==1){
+                   item.setSex("男");
+               }
+                if(vo.getSex()==2){
+                    item.setSex("女");
+                }
+            }
+            list1.add(item);
+        }
+        return list1;
+    }
+
+    @Override
+    public List<UserSubscribeSignExportVo> listSignExport(UserSubscribeQueryBo bo) {
+        List<UserSubscribeVo> list = baseMapper.listSignExport(bo);
+        List<UserSubscribeSignExportVo> list1 = new ArrayList<>();
+        for(UserSubscribeVo vo : list){
+            UserSubscribeSignExportVo item = BeanUtil.toBean(vo, UserSubscribeSignExportVo.class);
+            if(Validator.isNotEmpty(vo.getWisdomReportTime())){
+                item.setWisdomReportTime(DateUtils.timestampToDateFormat(vo.getWisdomReportTime(),DateUtils.YYYY_MM_DD_HH_MM_SS));
+            }
+            list1.add(item);
+        }
+        return list1;
+    }
+
     private String drawReport(MultipartFile image, UserSubscribeSignReportBo bo){
         Font font = new Font("宋体", Font.BOLD, 48);// 添加字体的属性设置 微软雅黑
         String imgName = null;

+ 42 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeSignExportVo.java

@@ -0,0 +1,42 @@
+package com.zhongzheng.modules.user.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 用户预约考试视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("用户预约考试视图对象")
+public class UserSubscribeSignExportVo {
+	private static final long serialVersionUID = 1L;
+
+
+	@Excel(name = "学员姓名")
+	@ApiModelProperty("真实姓名")
+	private String realname;
+
+
+	@Excel(name = "身份证号")
+	@ApiModelProperty("身份证号")
+	private String idCard;
+
+	@Excel(name = "体温")
+	@ApiModelProperty("体温")
+	private String wisdomTemperature;
+
+
+	@Excel(name = "签到时间")
+	@ApiModelProperty("签到时间")
+	private String wisdomReportTime;
+
+
+
+
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeStudentExportVo.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.user.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 用户预约考试视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-12-07
+ */
+@Data
+@ApiModel("用户预约考试视图对象")
+public class UserSubscribeStudentExportVo {
+	private static final long serialVersionUID = 1L;
+
+
+	@Excel(name = "学员姓名")
+	@ApiModelProperty("真实姓名")
+	private String realname;
+
+	@Excel(name = "性别")
+	@ApiModelProperty("性别")
+	private String sex;
+
+	@Excel(name = "身份证号")
+	@ApiModelProperty("身份证号")
+	private String idCard;
+
+	@Excel(name = "手机号")
+	@ApiModelProperty("手机号")
+	private String tel;
+
+
+	@Excel(name = "学历")
+	@ApiModelProperty("学历")
+	private String eduLevel;
+
+	@Excel(name = "工作单位")
+	@ApiModelProperty("工作单位")
+	private String companyName;
+
+
+	@Excel(name = "岗位")
+	@ApiModelProperty("岗位")
+	private String job;
+
+
+}

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java

@@ -268,6 +268,11 @@ public class UserVo {
 	@ApiModelProperty("班級")
 	private List<ClassGradeUserGoodsVo> classGradeUserGoodsVoList;
 
+	/** 工作岗位 */
+	@Excel(name = "工作岗位")
+	@ApiModelProperty("工作岗位")
+	private String job;
+
 	public void setNull(){
 		this.setOpenId(null);
 		this.setIdCardImg1(null);

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wisdom/service/IWisdomService.java

@@ -16,4 +16,6 @@ public interface IWisdomService {
     Map<String,Object> syncApplyUserInfo(Long applyId);
 
     void syncExamStatus(Long applyId,Integer pageNo);
+
+    void syncExamVideo(Long applyId,Long roomId);
 }

+ 39 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/wisdom/service/impl/WisdomServiceImpl.java

@@ -147,6 +147,8 @@ public class WisdomServiceImpl  implements IWisdomService {
 
     private String examStatusUrl = "/exam/api/status";
 
+    private String examVideoUrl = "/exam/api/rooms/videos";
+
     @Autowired
     private RedisCache redisCache;
 
@@ -218,6 +220,8 @@ public class WisdomServiceImpl  implements IWisdomService {
                 if(page>pageNo){
                     SiteList(pageNo++);
                 }
+            }else{
+                throw new CustomException("获取智慧考场考场列表失败");
             }
         }catch (Exception e){
             throw new CustomException("获取智慧考场考场列表失败");
@@ -228,6 +232,9 @@ public class WisdomServiceImpl  implements IWisdomService {
     public Map<String,Object> syncApplyUserInfo(Long applyId) {
         Map<String,Object> mapResult = new HashMap<>();
         List<UserSubscribeVo> list = iUserSubscribeService.selectApplyUserList(applyId);
+        if(list.size()==0){
+            throw new CustomException("没有学员推送");
+        }
         Map<String,CenterVo> cMap = new HashMap<>();
         List<CenterVo> cList = new ArrayList<>();
         for(UserSubscribeVo vo : list){
@@ -363,6 +370,8 @@ public class WisdomServiceImpl  implements IWisdomService {
                 mapResult.put("total",total);
                 mapResult.put("success",success);
                 mapResult.put("fail",fail);
+            }else{
+                throw new CustomException("同步错误");
             }
         }catch (Exception e){
             throw new CustomException("同步错误");
@@ -390,7 +399,6 @@ public class WisdomServiceImpl  implements IWisdomService {
             hearders.put("appid", appid);
             hearders.put("sign", signature);
             String result = HttpUtils.sendPostHeader(url,obj,hearders);
-            System.out.println(result);
             JSONObject userInfoJSON = null;
             userInfoJSON = JSON.parseObject(result);
             if (userInfoJSON.containsKey("code")&&"200".equals(String.valueOf(userInfoJSON.get("code")))) {
@@ -416,9 +424,39 @@ public class WisdomServiceImpl  implements IWisdomService {
                 if(page>pageNo){
                     syncExamStatus(applyId,pageNo++);
                 }
+            }else{
+                throw new CustomException("获取考生考试状态信息失败");
             }
         }catch (Exception e){
             throw new CustomException("获取考生考试状态信息失败");
         }
     }
+
+    @Override
+    public void syncExamVideo(Long applyId, Long roomId) {
+        System.out.println(applyId);
+        ExamApplyVo applyVo = iExamApplyService.queryById(applyId);
+        String auth_code = authorization();
+        Map<String, Object> paramMap = new HashMap<>();
+        System.out.println(applyVo.getCode());
+        paramMap.put("examCode",applyVo.getCode());
+        try{
+            String url = host + examVideoUrl;
+            String signature = SignatureUtil.createSignature(paramMap, appid);
+            JSONObject obj = new JSONObject();
+            obj.put("examCode",applyVo.getCode());
+            Map<String, String> hearders = new HashMap<>();
+            hearders.put("auth_code", auth_code);
+            hearders.put("appid", appid);
+            hearders.put("sign", signature);
+            String result = HttpUtils.sendPostHeader(url,obj,hearders);
+            JSONObject userInfoJSON = null;
+            userInfoJSON = JSON.parseObject(result);
+            if (userInfoJSON.containsKey("code")&&"200".equals(String.valueOf(userInfoJSON.get("code")))) {
+
+            }
+        }catch (Exception e){
+            throw new CustomException("获取考试视频信息失败");
+        }
+    }
 }

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml

@@ -15,6 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime" column="create_time"/>
         <result property="updateTime" column="update_time"/>
         <result property="status" column="status"/>
+        <result property="reportStatus" column="report_status"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.exam.vo.ExamApplyVo" id="ExamApplyVo">
@@ -31,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="businessName" column="business_name"/>
         <result property="cancelPeople" column="cancel_people"/>
         <result property="people" column="people"/>
+        <result property="reportStatus" column="report_status"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.exam.vo.ExamUserApplyVo" id="ExamUserApplyVo">

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -57,6 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="visitFromPlat" column="visit_from_plat"/>
         <result property="studyFromPlat" column="study_from_plat"/>
         <result property="lastStudyTime" column="last_study_time"/>
+        <result property="job" column="job"/>
     </resultMap>
 
 

+ 82 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

@@ -38,6 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="wisdomTemperature" column="wisdom_temperature"/>
         <result property="syncExamResult" column="sync_exam_result"/>
         <result property="signaturePushTime" column="signature_push_time"/>
+        <result property="reportFileTime" column="report_file_time"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.user.vo.UserSubscribeVo" id="UserSubscribeVo">
@@ -101,6 +102,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="wisdomTemperature" column="wisdom_temperature"/>
         <result property="syncExamResult" column="sync_exam_result"/>
         <result property="signaturePushTime" column="signature_push_time"/>
+        <result property="reportFileTime" column="report_file_time"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.user.vo.UserVo" id="UserVoResult">
+        <result property="telphone" column="telphone"/>
+        <result property="realname" column="realname"/>
+        <result property="job" column="job"/>
+        <result property="sex" column="sex"/>
+        <result property="telphone" column="telphone"/>
+        <result property="idCard" column="id_card"/>
+        <result property="eduLevel" column="edu_level"/>
     </resultMap>
 
     <select id="listSubscribe" parameterType="com.zhongzheng.modules.user.bo.UserSubscribeQueryBo" resultMap="UserSubscribeVo">
@@ -222,6 +234,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="realname != null and realname != '' ">
             and (SELECT u.realname FROM `user` u where us.user_id = u.user_id) like concat('%', #{realname}, '%')
         </if>
+        <if test="syncStatus != null ">
+            and us.sync_status = #{syncStatus}
+        </if>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
         order by us.create_time desc
@@ -319,6 +334,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         and (SELECT COUNT(1) FROM inform_remind ir LEFT JOIN inform_remind_business irb on ir.id = irb.remind_id where ir.id=16 and (SELECT g.business_id FROM goods g where g.goods_id = us.goods_id) = irb.business_id) > 0
     </select>
 
+    <select id="signTimeSend"  resultMap="UserSubscribeVo">
+        SELECT
+        us.*,
+        ea.apply_name
+        FROM
+        user_subscribe us
+        LEFT JOIN exam_apply ea on us.apply_id = ea.apply_id
+        WHERE us.subscribe_status = 1
+        and ea.report_status = 1
+        and us.report_status = 0
+        and us.signature_push_time is NULL
+        and unix_timestamp(now())+86400 > us.apply_site_exam_time
+        and unix_timestamp(now()) &lt; us.apply_site_exam_time
+        and (SELECT COUNT(1) FROM inform_remind ir LEFT JOIN inform_remind_business irb on ir.id = irb.remind_id where ir.id=34 and (SELECT g.business_id FROM goods g where g.goods_id = us.goods_id) = irb.business_id) > 0
+    </select>
+
     <select id="sendExamSucceed" parameterType="map"  resultType="Long">
         SELECT
             COUNT( 1 )
@@ -405,4 +436,55 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           and us.apply_id = #{applyId}
           and es.from_plat = 2
     </select>
+
+    <select id="listUserExport" parameterType="com.zhongzheng.modules.user.bo.UserSubscribeQueryBo" resultMap="UserVoResult">
+        SELECT
+            us.*,u.company_name,u.job,u.edu_level,u.realname,u.telphone,u.id_card,u.sex
+        FROM
+            user_subscribe us
+        LEFT JOIN `user` u on u.user_id =us.user_id
+        WHERE
+        us.subscribe_status = 1
+        <if test="applyId != null and applyId != '' ">
+            and us.apply_id = #{applyId}
+        </if>
+        <if test="applySiteExamTime != null and applySiteExamTime != '' ">
+            and us.apply_site_exam_time = #{applySiteExamTime}
+        </if>
+        <if test="applySiteStartTime != null and applySiteStartTime != '' ">
+            and us.apply_site_start_time = #{applySiteStartTime}
+        </if>
+        <if test="applySiteEndTime != null and applySiteEndTime != '' ">
+            and us.apply_site_end_time = #{applySiteEndTime}
+        </if>
+        <if test="siteId != null and siteId != '' ">
+            and us.site_id = #{siteId}
+        </if>
+    </select>
+
+    <select id="listSignExport" parameterType="com.zhongzheng.modules.user.bo.UserSubscribeQueryBo" resultMap="UserSubscribeVo">
+        SELECT
+        us.*,u.realname,u.id_card
+        FROM
+        user_subscribe us
+        LEFT JOIN `user` u on u.user_id =us.user_id
+        WHERE
+        us.subscribe_status = 1
+        <if test="applyId != null and applyId != '' ">
+            and us.apply_id = #{applyId}
+        </if>
+        <if test="applySiteExamTime != null and applySiteExamTime != '' ">
+            and us.apply_site_exam_time = #{applySiteExamTime}
+        </if>
+        <if test="applySiteStartTime != null and applySiteStartTime != '' ">
+            and us.apply_site_start_time = #{applySiteStartTime}
+        </if>
+        <if test="applySiteEndTime != null and applySiteEndTime != '' ">
+            and us.apply_site_end_time = #{applySiteEndTime}
+        </if>
+        <if test="siteId != null and siteId != '' ">
+            and us.site_id = #{siteId}
+        </if>
+    </select>
+
 </mapper>