Selaa lähdekoodia

提交:模考安排

yangdamao 3 vuotta sitten
vanhempi
commit
759b42df51
20 muutettua tiedostoa jossa 225 lisäystä ja 27 poistoa
  1. 4 4
      zhongzheng-api/src/main/java/com/zhongzheng/controller/exam/ExamApplyController.java
  2. 15 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/mock/MockApplyController.java
  3. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamUserApplyVo.java
  4. 29 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockTimeAddBo.java
  5. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/mapper/MockApplyMapper.java
  6. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/IMockApplyService.java
  7. 55 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/impl/MockApplyServiceImpl.java
  8. 29 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/vo/MockTimeVo.java
  9. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSubscribeAddBo.java
  10. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserSubscribeSignReportBo.java
  11. 2 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserSubscribeService.java
  12. 11 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java
  13. 8 8
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java
  14. 10 6
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java
  15. 12 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserMockSubscribeVo.java
  16. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeVo.java
  17. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/exam/ExamApplyMapper.xml
  18. 7 0
      zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml
  19. 11 2
      zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml
  20. 5 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

+ 4 - 4
zhongzheng-api/src/main/java/com/zhongzheng/controller/exam/ExamApplyController.java

@@ -119,10 +119,10 @@ public class ExamApplyController extends BaseController {
     @ApiOperation("新增用户预约考试")
     @Log(title = "用户预约考试", businessType = BusinessType.INSERT)
     @PostMapping("save")
-    public AjaxResult<Long> add(MultipartFile image, UserSubscribeAddBo bo) throws ParseException {
+    public AjaxResult<Long> saveApply(UserSubscribeAddBo bo) throws ParseException {
         ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
         bo.setUserId(loginUser.getUser().getUserId());
-        return AjaxResult.success(iUserSubscribeService.saveByAddBo(bo,image));
+        return AjaxResult.success(iUserSubscribeService.saveByAddBo(bo));
     }
 
 
@@ -144,12 +144,12 @@ public class ExamApplyController extends BaseController {
      */
     @ApiOperation("签署疫情防控承诺书")
     @PostMapping("/signReport")
-    public  AjaxResult<Void> signReport(MultipartFile image,UserSubscribeSignReportBo bo) {
+    public  AjaxResult<Void> signReport(UserSubscribeSignReportBo bo) {
         ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
         bo.setUserId(loginUser.getUser().getUserId());
         bo.setPhone(loginUser.getUser().getTelphone());
         bo.setIdCard(loginUser.getUser().getIdCard());
-        return toAjax(iUserSubscribeService.signReport(image,bo)?1:0);
+        return toAjax(iUserSubscribeService.signReport(bo)?1:0);
     }
 
 

+ 15 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/mock/MockApplyController.java

@@ -13,11 +13,14 @@ import com.zhongzheng.modules.course.bo.CourseSectionQueryBo;
 import com.zhongzheng.modules.mock.bo.MockApplyAddBo;
 import com.zhongzheng.modules.mock.bo.MockApplyEditBo;
 import com.zhongzheng.modules.mock.bo.MockApplyQueryBo;
+import com.zhongzheng.modules.mock.bo.MockTimeAddBo;
 import com.zhongzheng.modules.mock.domain.MockMajorSubject;
 import com.zhongzheng.modules.mock.service.IMockApplyService;
 import com.zhongzheng.modules.mock.vo.MockApplyVo;
 import com.zhongzheng.modules.mock.vo.MockMajorSubjectVo;
+import com.zhongzheng.modules.mock.vo.MockTimeVo;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
+import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -188,4 +191,16 @@ public class MockApplyController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 补充模考时间
+     */
+    @ApiOperation("补充模考时间")
+    @PostMapping("/addMockTime")
+    public AjaxResult<MockTimeVo> addMockTime(@RequestBody MockTimeAddBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        MockTimeVo vo = iMockApplyService.addMockTime(bo);
+        return AjaxResult.success(vo);
+    }
+
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamUserApplyVo.java

@@ -79,4 +79,7 @@ public class ExamUserApplyVo {
 	@ApiModelProperty("订单商品")
 	private Long orderGoodsId;
 
+	@ApiModelProperty("是否需要签署承诺书 1是,0否")
+	private Integer reportStatus;
+
 }

+ 29 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockTimeAddBo.java

@@ -0,0 +1,29 @@
+package com.zhongzheng.modules.mock.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author yangdamao
+ * @date 2022年09月05日 15:46
+ */
+@Data
+@ApiModel("补充考试时间BO")
+public class MockTimeAddBo {
+
+    @ApiModelProperty("模考Id")
+    private Long applyId;
+
+    @ApiModelProperty("专业ID")
+    private Long majorId;
+
+    @ApiModelProperty("科目ID")
+    private Long subjectId;
+
+    @ApiModelProperty("用户ID")
+    private Long userId;
+
+    @ApiModelProperty("时长")
+    private Integer duration;
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/mapper/MockApplyMapper.java

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.mock.mapper;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.modules.course.bo.CourseSectionQueryBo;
 import com.zhongzheng.modules.mock.bo.MockApplyQueryBo;
+import com.zhongzheng.modules.mock.bo.MockTimeAddBo;
 import com.zhongzheng.modules.mock.domain.MockApply;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.mock.vo.MockApplyVo;
@@ -34,4 +35,6 @@ public interface MockApplyMapper extends BaseMapper<MockApply> {
     CourseSectionQueryBo mockLiving(Long userId);
 
     List<MockMajorSubjectVo> listApplyName(MockApplyQueryBo bo);
+
+    Long getMockMajorSubjectId(MockTimeAddBo bo);
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/IMockApplyService.java

@@ -2,6 +2,7 @@ package com.zhongzheng.modules.mock.service;
 
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.modules.course.bo.CourseSectionQueryBo;
+import com.zhongzheng.modules.mock.bo.MockTimeAddBo;
 import com.zhongzheng.modules.mock.domain.MockApply;
 import com.zhongzheng.modules.mock.domain.MockMajorSubject;
 import com.zhongzheng.modules.mock.vo.MockApplyVo;
@@ -10,6 +11,8 @@ import com.zhongzheng.modules.mock.bo.MockApplyAddBo;
 import com.zhongzheng.modules.mock.bo.MockApplyEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.mock.vo.MockMajorSubjectVo;
+import com.zhongzheng.modules.mock.vo.MockTimeVo;
+import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
 
 import java.text.ParseException;
 import java.util.Collection;
@@ -72,4 +75,7 @@ public interface IMockApplyService extends IService<MockApply> {
 	CourseSectionQueryBo mockLiving(Long userId);
 
     List<MockMajorSubjectVo> listApplyName(MockApplyQueryBo bo);
+
+	MockTimeVo addMockTime(MockTimeAddBo bo);
+
 }

+ 55 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/impl/MockApplyServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
@@ -27,6 +28,7 @@ import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.user.domain.UserMockSubscribe;
 import com.zhongzheng.modules.user.service.IUserMockSubscribeService;
 import com.zhongzheng.modules.user.service.IUserSubscribeService;
+import com.zhongzheng.modules.user.vo.UserMockSubscribeVo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -575,4 +577,57 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
     public List<MockMajorSubjectVo> listApplyName(MockApplyQueryBo bo) {
         return baseMapper.listApplyName(bo);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public MockTimeVo addMockTime(MockTimeAddBo bo) {
+        MockApply apply = getById(bo.getApplyId());
+        if (ObjectUtils.isNull(apply)){
+            throw new CustomException("模考信息获取失败");
+        }
+        //获取科目记录ID
+        Long id = baseMapper.getMockMajorSubjectId(bo);
+        if (ObjectUtils.isNull(id)){
+            throw new CustomException("模考专业科目ID获取失败");
+        }
+        //换算时间
+        Long nowTime = DateUtils.getNowTime();//开始时间
+        Integer duration =  bo.getDuration() * 60;
+        Long  endTime = nowTime + Long.valueOf(duration);//结束时间
+        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+        String nowTimeStr = sdf.format(nowTime*1000);
+        String endTimeStr = sdf.format(endTime*1000);
+
+        apply.setApplyStartTime(nowTime);
+        apply.setApplyEndTime(endTime);
+        updateById(apply);
+
+        MockMajorSubjectTime time = new MockMajorSubjectTime();
+        time.setMockMajorSubjectId(id);
+        time.setStartTime(nowTimeStr);
+        time.setEndTime(endTimeStr);
+        time.setExamTime(nowTime);
+        time.setCreateTime(nowTime);
+        time.setUpdateTime(nowTime);
+        iMockMajorSubjectTimeService.save(time);
+
+        UserMockSubscribe userMockSubscribe = iUserMockSubscribeService.getOne(new LambdaQueryWrapper<UserMockSubscribe>()
+                .eq(UserMockSubscribe::getUserId, bo.getUserId())
+                .eq(UserMockSubscribe::getApplyId, bo.getApplyId()));
+        if (ObjectUtils.isNull(userMockSubscribe)){
+            throw new CustomException("我的模考信息获取失败");
+        }
+        userMockSubscribe.setEachExamId(time.getId());
+        userMockSubscribe.setApplySiteStartTime(nowTimeStr);
+        userMockSubscribe.setApplySiteExamTime(nowTime);
+        iUserMockSubscribeService.updateById(userMockSubscribe);
+
+        MockTimeVo mockTimeVo = new MockTimeVo();
+        mockTimeVo.setEachExamId(time.getId());
+        mockTimeVo.setStartTime(nowTimeStr);
+        mockTimeVo.setEndTime(endTimeStr);
+        mockTimeVo.setApplyId(bo.getApplyId());
+        mockTimeVo.setExamTime(nowTime);
+        return mockTimeVo;
+    }
 }

+ 29 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/vo/MockTimeVo.java

@@ -0,0 +1,29 @@
+package com.zhongzheng.modules.mock.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author yangdamao
+ * @date 2022年09月05日 15:46
+ */
+@Data
+@ApiModel("模考VO")
+public class MockTimeVo {
+
+    @ApiModelProperty("模考Id")
+    private Long applyId;
+
+    @ApiModelProperty("每场考试ID")
+    private Long eachExamId;
+
+    @ApiModelProperty("考试日期")
+    private Long examTime;
+
+    @ApiModelProperty("开始时间")
+    private String startTime;
+
+    @ApiModelProperty("结束时间")
+    private String endTime;
+}

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

@@ -155,5 +155,9 @@ public class UserSubscribeAddBo {
     @ApiModelProperty("签署承诺书时间")
     private Long reportFileTime;
 
+    /** 签名照片Base64码 */
+    @ApiModelProperty("签名照片Base64码")
+    private String signImageStr;
+
 
 }

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

@@ -32,4 +32,7 @@ public class UserSubscribeSignReportBo implements Serializable {
     @ApiModelProperty("专业")
     private String major;
 
+    @ApiModelProperty("签名图片Base64码")
+    private String signImageStr;
+
 }

+ 2 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserSubscribeService.java

@@ -86,11 +86,10 @@ public interface IUserSubscribeService extends IService<UserSubscribe> {
      * 签署疫情防控承诺书
      * @author change
      * @date 2022/8/25 10:29
-     * @param image
      * @param bo
      * @return java.lang.Boolean
      */
-	Boolean signReport(MultipartFile image, UserSubscribeSignReportBo bo);
+	Boolean signReport(UserSubscribeSignReportBo bo);
 
 
 	List<UserSubscribeVo> signTimeSend();
@@ -99,6 +98,6 @@ public interface IUserSubscribeService extends IService<UserSubscribe> {
 
 	List<UserSubscribeSignExportVo> listSignExport(UserSubscribeQueryBo bo);
 
-	Long saveByAddBo(UserSubscribeAddBo bo, MultipartFile image) throws ParseException;
+	Long saveByAddBo(UserSubscribeAddBo bo) throws ParseException;
 
 }

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

@@ -195,6 +195,8 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
             update.setFirstHandTime(DateUtils.getNowTime());
         }
         update.setUpdateTime(DateUtils.getNowTime());
+        SimpleDateFormat slf = new SimpleDateFormat("HH:mm:ss");
+        update.setApplySiteEndTime(slf.format(new Date()));
         return this.updateById(update);
     }
 
@@ -316,9 +318,14 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
                                     userMockSubscribeVo.setReSubscribe(1);
                                 }
                             }
-                            if (System.currentTimeMillis()/1000 < formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getEndTime())) {
-                                userMockSubscribeVo.setCanDo(0);
-                            }
+                        }
+                        if (System.currentTimeMillis()/1000 < formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getEndTime())) {
+                            userMockSubscribeVo.setCanDo(0);
+                        }
+                        if (Validator.isNotEmpty(userMockSubscribe.getHandStatus()) &&
+                            Arrays.asList(1,2).contains(userMockSubscribe.getHandStatus()) &&
+                                userMockSubscribe.getMockActivity() == 1){
+                            userMockSubscribeVo.setCanDo(0);
                         }
                     } catch (ParseException e) {
                         e.printStackTrace();
@@ -380,7 +387,7 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
 //            }
 //        });
 
-        return userMockSubscribeVos.stream().sorted(Comparator.comparing(UserMockSubscribeVo::getApplySiteExamTime, Comparator.nullsFirst(Long::compareTo))).collect(Collectors.toList());
+        return userMockSubscribeVos.stream().sorted(Comparator.comparing(UserMockSubscribeVo::getApplySiteExamTime, Comparator.nullsFirst(Long::compareTo)).reversed()).collect(Collectors.toList());
     }
 
     @Override

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

@@ -182,14 +182,14 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
     @Override
     public UserStudyRecordVo queryLiveLast(UserStudyRecordQueryBo bo) {
         LambdaQueryWrapper<UserStudyRecord> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getUserId() != null, UserStudyRecord::getUserId, bo.getUserId());
-        lqw.eq(bo.getCourseId() != null, UserStudyRecord::getCourseId, bo.getCourseId());
-        lqw.eq(bo.getSectionId() != null, UserStudyRecord::getSectionId, bo.getSectionId());
-        lqw.eq(bo.getGoodsId() != null, UserStudyRecord::getGoodsId, bo.getGoodsId());
-        lqw.eq(bo.getModuleId() != null, UserStudyRecord::getModuleId, bo.getModuleId());
-        lqw.eq(bo.getChapterId() != null, UserStudyRecord::getChapterId, bo.getChapterId());
-        lqw.eq(bo.getGradeId() != null, UserStudyRecord::getGradeId, bo.getGradeId());
-        lqw.eq(bo.getOrderGoodsId() != null, UserStudyRecord::getOrderGoodsId, bo.getOrderGoodsId());
+        lqw.eq(ObjectUtils.isNotNull(bo.getUserId()), UserStudyRecord::getUserId, bo.getUserId());
+        lqw.eq(ObjectUtils.isNotNull(bo.getCourseId()) , UserStudyRecord::getCourseId, bo.getCourseId());
+        lqw.eq(ObjectUtils.isNotNull(bo.getSectionId()), UserStudyRecord::getSectionId, bo.getSectionId());
+        lqw.eq(ObjectUtils.isNotNull(bo.getGoodsId()), UserStudyRecord::getGoodsId, bo.getGoodsId());
+        lqw.eq(ObjectUtils.isNotNull(bo.getModuleId()), UserStudyRecord::getModuleId, bo.getModuleId());
+        lqw.eq(ObjectUtils.isNotNull(bo.getChapterId()), UserStudyRecord::getChapterId, bo.getChapterId());
+        lqw.eq(ObjectUtils.isNotNull(bo.getGradeId()), UserStudyRecord::getGradeId, bo.getGradeId());
+        lqw.eq(ObjectUtils.isNotNull(bo.getOrderGoodsId()), UserStudyRecord::getOrderGoodsId, bo.getOrderGoodsId());
         lqw.eq( UserStudyRecord::getCurrentStatus, 1);
         lqw.orderByDesc(UserStudyRecord::getUpdateTime);
         UserStudyRecord last = this.getOne(lqw.last("limit 1"));

+ 10 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -70,6 +70,7 @@ import org.springframework.web.multipart.MultipartFile;
 import org.thymeleaf.util.StringUtils;
 
 import javax.imageio.ImageIO;
+import javax.xml.bind.DatatypeConverter;
 import java.awt.*;
 import java.awt.image.BufferedImage;
 import java.io.*;
@@ -1749,7 +1750,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
     }
 
     @Override
-    public Boolean signReport(MultipartFile image, UserSubscribeSignReportBo bo) {
+    public Boolean signReport(UserSubscribeSignReportBo bo) {
         //获取考试预约信息
         UserSubscribe userSubscribe = getById(bo.getSubscribeId());
         if (ObjectUtils.isNull(userSubscribe)){
@@ -1762,7 +1763,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
         String applyDate = DateUtils.timestampToDateFormat(Long.valueOf(userSubscribe.getApplySiteExamTime()), "yyyy-MM-dd");
         bo.setApplySiteStartTime(String.format("%s %s",applyDate,userSubscribe.getApplySiteStartTime()));
         //获取承诺书模板
-        String reportUrl = drawReport(image, bo);
+        String reportUrl = drawReport(bo.getSignImageStr(),bo);
         userSubscribe.setReportStatus(1);//已签署
         userSubscribe.setReportFile(reportUrl);
         updateById(userSubscribe);
@@ -1859,7 +1860,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
     }
 
     @Override
-    public Long saveByAddBo(UserSubscribeAddBo bo, MultipartFile image) throws ParseException{
+    public Long saveByAddBo(UserSubscribeAddBo bo) throws ParseException{
         UserSubscribe add = BeanUtil.toBean(bo, UserSubscribe.class);
         if(Validator.isEmpty(add.getOrderGoodsId())){
             throw new CustomException("缺失订单商品ID");
@@ -1909,13 +1910,14 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
         reportBo.setUserId(bo.getUserId());
         reportBo.setPhone(user.getTelphone());
         reportBo.setIdCard(user.getIdCard());
-        this.signReport(image,reportBo);
+        reportBo.setSignImageStr(bo.getSignImageStr());
+        this.signReport(reportBo);
         //发送预约考试消息
         sendExamSucceed(bo);
         return add.getSubscribeId();
     }
 
-    private String drawReport(MultipartFile image, UserSubscribeSignReportBo bo){
+    private String drawReport(String imageStr, UserSubscribeSignReportBo bo){
         Font font = new Font("宋体", Font.BOLD, 48);// 添加字体的属性设置 微软雅黑
         String imgName = null;
         try {
@@ -1937,7 +1939,9 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
             g.drawString(DateUtils.getDate(), 673, 3860);
 
             //用户签名
-            ByteArrayInputStream inputStream = new ByteArrayInputStream(image.getBytes());
+            String replace = imageStr.replace("data:image/jpeg;base64,", "");
+            byte[] imageBytes = DatatypeConverter.parseBase64Binary(replace);
+            ByteArrayInputStream inputStream = new ByteArrayInputStream(imageBytes);
             BufferedImage qrImage = ImageIO.read(inputStream);
             Image scaledInstance = qrImage.getScaledInstance(304, 251, Image.SCALE_AREA_AVERAGING);
 //

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserMockSubscribeVo.java

@@ -228,4 +228,16 @@ public class UserMockSubscribeVo {
 	@Excel(name = "节名称")
 	@ApiModelProperty("节名称")
 	private String name;
+
+	@ApiModelProperty("是否活动模考 0否 1是")
+	private Integer mockActivity;
+
+	@ApiModelProperty("活动开始时间")
+	private Long activityStartTime;
+
+	@ApiModelProperty("活动结束时间")
+	private Long activityEndTime;
+
+	@ApiModelProperty("考试时长(分钟)")
+	private Integer duration;
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserSubscribeVo.java

@@ -287,4 +287,10 @@ public class UserSubscribeVo {
 	@Excel(name = "承诺书签名推送时间")
 	@ApiModelProperty("承诺书签名推送时间")
 	private Long signaturePushTime;
+
+	@ApiModelProperty("是否需要签署承诺书 1是,0否")
+	private Integer applyReportStatus;
+
+	@ApiModelProperty("1云学堂 2智慧考场")
+	private Integer fromPlat;
 }

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

@@ -45,6 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="major" column="major"/>
         <result property="realname" column="realname"/>
         <result property="idCard" column="id_card"/>
+        <result property="reportStatus" column="report_status"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo" id="ExamNumberGoodsVoResult">
@@ -287,6 +288,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             ea.apply_start_time,
             ea.apply_end_time,
             ea.apply_status,
+            ea.report_status,
             (SELECT m.category_name FROM major m where m.id = g.major_id) as major,
             (SELECT u.realname FROM `user` u where u.user_id = #{userId}) as realname,
 (SELECT u.id_card FROM `user` u where u.user_id = #{userId}) as id_card

+ 7 - 0
zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml

@@ -289,6 +289,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             and apply_end_time &lt; #{endTime}
         </if>
     </select>
+    <select id="getMockMajorSubjectId" parameterType="com.zhongzheng.modules.mock.bo.MockTimeAddBo" resultType="java.lang.Long">
+        SELECT
+            mms.mock_major_subject_id
+        FROM mock_major mm
+                 LEFT JOIN mock_major_subject mms ON mm.mock_major_id = mms.mock_major_id
+        WHERE mm.apply_id = #{applyId} AND mm.major_id = #{majorId} AND mms.subject_id = #{subjectId}
+    </select>
 
 
 </mapper>

+ 11 - 2
zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml

@@ -69,6 +69,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="hasMockRemind" column="has_mock_remind"/>
         <result property="hasLiveSubscribe" column="has_live_subscribe"/>
         <result property="name" column="name"/>
+        <result property="mockActivity" column="mock_activity"/>
+        <result property="activityStartTime" column="activity_start_time"/>
+        <result property="activityEndTime" column="activity_end_time"/>
+        <result property="duration" column="duration"/>
     </resultMap>
     <select id="getInfo" parameterType="java.lang.Long" resultMap="UserMockSubscribeVoResult">
         SELECT 	ums.*,
@@ -127,7 +131,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 cb.business_name,
                 ma.project_id,
                 cpt.project_name,
-                ma.time_limit
+                ma.time_limit,
+                ma.mock_activity,
+                ma.activity_start_time,
+                ma.activity_end_time,
+                mms.duration
         FROM user_mock_subscribe ums
         LEFT JOIN `user` u ON ums.user_id = u.user_id
         LEFT JOIN mock_major_subject mms ON ums.mock_major_subject_id = mms.mock_major_subject_id
@@ -171,7 +179,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
     <select id="listBySubject" parameterType="com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo" resultMap="UserMockSubscribeVoResult">
         SELECT
-        ums.*
+        ums.*,
+        ma.mock_activity
         FROM
             user_mock_subscribe ums
         LEFT JOIN mock_apply ma ON ums.apply_id = ma.apply_id

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

@@ -103,6 +103,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="syncExamResult" column="sync_exam_result"/>
         <result property="signaturePushTime" column="signature_push_time"/>
         <result property="reportFileTime" column="report_file_time"/>
+        <result property="applyReportStatus" column="report_status"/>
+        <result property="fromPlat" column="from_plat"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.user.vo.UserVo" id="UserVoResult">
@@ -132,10 +134,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             (SELECT ea.apply_start_time FROM exam_apply ea where ea.apply_id = us.apply_id) as apply_start_time,
             (SELECT ea.apply_end_time FROM exam_apply ea where ea.apply_id = us.apply_id) as apply_end_time,
             (SELECT eb.before_name FROM exam_before eb where eb.before_id = us.before_id) as before_name,
+            (SELECT ea.report_status FROM exam_apply ea where ea.apply_id = us.apply_id) as report_status,
             (SELECT ueg.do_number-ueg.expend_before FROM user_exam_goods ueg where ueg.goods_id = us.goods_id and ueg.user_id = us.user_id ORDER BY user_exam_goods_id DESC limit 1) as before_count,
             ueg.exam_number,
             ueg.do_number,
             ueg.expend_number,
+            es.from_plat,
             ueg.expend_before
         FROM
             user_subscribe us
@@ -144,6 +148,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN goods g ON  us.goods_id = g.goods_id
         LEFT JOIN course_business cb on g.business_id = cb.id
         LEFT JOIN user_exam_goods ueg ON ueg.order_goods_id = us.order_goods_id
+        LEFT JOIN exam_site es ON us.site_id = es.site_id
         WHERE
             1 =1
         <if test="applySiteAddress != null and applySiteAddress != '' ">