Pārlūkot izejas kodu

Merge branch 'dev' of http://120.79.166.78:19005/zhongzheng-edu/saas_entrepot into dev

he2802 3 gadi atpakaļ
vecāks
revīzija
e1b75a09a8
21 mainītis faili ar 313 papildinājumiem un 33 dzēšanām
  1. 7 7
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/mock/MockApplyController.java
  2. 1 2
      zhongzheng-api/src/main/java/com/zhongzheng/controller/mock/MockApplyController.java
  3. 1 1
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserMockSubscribeController.java
  4. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyAddBo.java
  5. 9 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyEditBo.java
  6. 13 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyQueryBo.java
  7. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockMajorEditBo.java
  8. 8 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockMajorSubjectEditBo.java
  9. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/domain/MockApply.java
  10. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/mapper/MockApplyMapper.java
  11. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/IMockApplyService.java
  12. 59 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/impl/MockApplyServiceImpl.java
  13. 32 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/vo/MockApplyVo.java
  14. 14 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserMockSubscribeAddBo.java
  15. 18 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserMockSubscribeEditBo.java
  16. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserMockSubscribeQueryBo.java
  17. 9 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserMockSubscribe.java
  18. 25 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java
  19. 27 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserMockSubscribeVo.java
  20. 48 4
      zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml
  21. 15 9
      zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml

+ 7 - 7
zhongzheng-admin/src/main/java/com/zhongzheng/controller/mock/MockApplyController.java

@@ -45,19 +45,19 @@ public class MockApplyController extends BaseController {
     /**
      * 查询模考安排列表
      */
-    @ApiOperation("查询模考安排列表")
+    /*@ApiOperation("查询模考安排列表")
     @PreAuthorize("@ss.hasPermi('system:apply:list')")
     @GetMapping("/list")
     public TableDataInfo<MockApplyVo> list(MockApplyQueryBo bo) {
         startPage();
         List<MockApplyVo> list = iMockApplyService.queryList(bo);
         return getDataTable(list);
-    }
+    }*/
 
     /**
      * 导出模考安排列表
      */
-    @ApiOperation("导出模考安排列表")
+    /*@ApiOperation("导出模考安排列表")
     @PreAuthorize("@ss.hasPermi('system:apply:export')")
     @Log(title = "模考安排", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
@@ -65,7 +65,7 @@ public class MockApplyController extends BaseController {
         List<MockApplyVo> list = iMockApplyService.queryList(bo);
         ExcelUtil<MockApplyVo> util = new ExcelUtil<MockApplyVo>(MockApplyVo.class);
         return util.exportExcel(list, "模考安排");
-    }
+    }*/
 
     /**
      * 获取模考安排详细信息
@@ -94,7 +94,7 @@ public class MockApplyController extends BaseController {
     @ApiOperation("修改模考安排")
     @PreAuthorize("@ss.hasPermi('system:apply:edit')")
     @Log(title = "模考安排", businessType = BusinessType.UPDATE)
-    @PutMapping()
+    @PostMapping("/edit")
     public AjaxResult<Void> edit(@RequestBody MockApplyEditBo bo) {
         return toAjax(iMockApplyService.updateByEditBo(bo) ? 1 : 0);
     }
@@ -102,13 +102,13 @@ public class MockApplyController extends BaseController {
     /**
      * 删除模考安排
      */
-    @ApiOperation("删除模考安排")
+    /*@ApiOperation("删除模考安排")
     @PreAuthorize("@ss.hasPermi('system:apply:remove')")
     @Log(title = "模考安排" , businessType = BusinessType.DELETE)
     @DeleteMapping("/{applyIds}")
     public AjaxResult<Void> remove(@PathVariable Long[] applyIds) {
         return toAjax(iMockApplyService.deleteWithValidByIds(Arrays.asList(applyIds), true) ? 1 : 0);
-    }
+    }*/
 
     /**
      * 查询模考安排列表

+ 1 - 2
zhongzheng-api/src/main/java/com/zhongzheng/controller/mock/MockApplyController.java

@@ -111,9 +111,8 @@ public class MockApplyController extends BaseController {
     @GetMapping("/listApply")
     public TableDataInfo<MockApplyVo> listApply(MockApplyQueryBo bo) {
         startPage();
-        List<MockApplyVo> list = iMockApplyService.listApply(bo);
+        List<MockApplyVo> list = iMockApplyService.queryApplyList(bo);
         return getDataTable(list);
     }
 
-
 }

+ 1 - 1
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserMockSubscribeController.java

@@ -104,7 +104,7 @@ public class UserMockSubscribeController extends BaseController {
     @ApiOperation("修改用户预约模考")
     @PreAuthorize("@ss.hasPermi('system:subscribe:edit')")
     @Log(title = "用户预约模考", businessType = BusinessType.UPDATE)
-    @PutMapping()
+    @PostMapping("/edit")
     public AjaxResult<Void> edit(@RequestBody UserMockSubscribeEditBo bo) {
         return toAjax(iUserMockSubscribeService.updateByEditBo(bo) ? 1 : 0);
     }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyAddBo.java

@@ -54,6 +54,9 @@ public class MockApplyAddBo {
     /** 编码 */
     @ApiModelProperty("编码")
     private String code;
+    /** 开考限制时间 */
+    @ApiModelProperty("开考限制时间")
+    private Long timeLimit;
 
     /** 关联专业列表 */
     @ApiModelProperty("关联专业列表")

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyEditBo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -66,4 +67,12 @@ public class MockApplyEditBo {
     @ApiModelProperty("编码")
     private String code;
 
+    /** 开考限制时间 */
+    @ApiModelProperty("开考限制时间")
+    private Long timeLimit;
+
+    /** 关联专业列表 */
+    @ApiModelProperty("关联专业列表")
+    private List<MockMajorEditBo> mockMajorEditBoList;
+
 }

+ 13 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyQueryBo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -51,9 +52,9 @@ public class MockApplyQueryBo extends BaseEntity {
 	/** 预约结束时间 */
 	@ApiModelProperty("预约结束时间")
 	private Long applyEndTime;
-	/** 1 启用 0未启用 -1删除 2已过期 */
-	@ApiModelProperty("1 启用 0未启用 -1删除 2已过期")
-	private Integer status;
+	/** 1已发布 0未发布 -1删除 */
+	@ApiModelProperty("1已发布 0未发布 -1删除")
+	private List<Integer> status;
 	/** 教育类型id */
 	@ApiModelProperty("教育类型id")
 	private Long educationTypeId;
@@ -66,4 +67,13 @@ public class MockApplyQueryBo extends BaseEntity {
 	/** 编码 */
 	@ApiModelProperty("编码")
 	private String code;
+	/** 专业ID */
+	@ApiModelProperty("专业ID")
+	private Long majorId;
+	/** 专业名称 */
+	@ApiModelProperty("专业名称")
+	private String majorName;
+	/** 开考限制时间 */
+	@ApiModelProperty("开考限制时间")
+	private Long timeLimit;
 }

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockMajorEditBo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -33,5 +34,7 @@ public class MockMajorEditBo {
     @ApiModelProperty("修改时间")
     private Long updateTime;
 
-
+    /** 关联科目列表 */
+    @ApiModelProperty("关联科目列表")
+    private List<MockMajorSubjectEditBo> mockMajorSubjectEditBoList;
 }

+ 8 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockMajorSubjectEditBo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -41,5 +42,12 @@ public class MockMajorSubjectEditBo {
     @ApiModelProperty("更新时间")
     private Long updateTime;
 
+    /** 关联商品列表 */
+    @ApiModelProperty("关联商品列表")
+    private List<MockMajorSubjectGoodsEditBo> mockMajorSubjectGoodsEditBoList;
+
+    /** 关联时间列表 */
+    @ApiModelProperty("关联时间列表")
+    private List<MockMajorSubjectTimeEditBo> mockMajorSubjectTimeEditBoList;
 
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/domain/MockApply.java

@@ -52,4 +52,6 @@ private static final long serialVersionUID=1L;
     private Long projectId;
     /** 编码 */
     private String code;
+    /** 开考限制时间 */
+    private String timeLimit;
 }

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

@@ -19,4 +19,6 @@ public interface MockApplyMapper extends BaseMapper<MockApply> {
     MockApplyVo getMockSubjectInfo(@Param(value = "mockMajorSubjectId")Long mockMajorSubjectId);
 
     List<MockApplyVo> listApply(MockApplyQueryBo bo);
+
+    List<MockApplyVo> queryApplyList(MockApplyQueryBo bo);
 }

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

@@ -53,4 +53,6 @@ public interface IMockApplyService extends IService<MockApply> {
 	MockApplyVo getMockSubjectInfo(Long mockMajorSubjectId);
 
 	List<MockApplyVo> listApply(MockApplyQueryBo bo);
+
+	List<MockApplyVo> queryApplyList(MockApplyQueryBo bo);
 }

+ 59 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/impl/MockApplyServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.modules.course.domain.Major;
 import com.zhongzheng.modules.course.service.IMajorService;
 import com.zhongzheng.modules.mock.bo.*;
@@ -22,7 +23,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
 import com.zhongzheng.modules.mock.mapper.MockApplyMapper;
 import com.zhongzheng.modules.mock.vo.MockApplyVo;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -73,6 +77,7 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
         lqw.eq(bo.getStatus() != null, MockApply::getStatus, bo.getStatus());
         lqw.eq(bo.getEducationTypeId() != null, MockApply::getEducationTypeId, bo.getEducationTypeId());
         lqw.eq(bo.getBusinessId() != null, MockApply::getBusinessId, bo.getBusinessId());
+        lqw.eq(bo.getTimeLimit() != null, MockApply::getTimeLimit, bo.getTimeLimit());
         lqw.eq(StrUtil.isNotBlank(bo.getCode()), MockApply::getCode, bo.getCode());
         return entity2Vo(this.list(lqw));
     }
@@ -101,6 +106,7 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
     public Boolean insertByAddBo(MockApplyAddBo bo) {
         MockApply add = BeanUtil.toBean(bo, MockApply.class);
         validEntityBeforeSave(add);
+        add.setCode(ServletUtils.getEncoded("KSAP"));
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         this.save(add);
@@ -144,7 +150,11 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
                     mockMajorSubjectAddBo.getMockMajorSubjectTimeAddBoList().stream().forEach(mockMajorSubjectTimeAddBo -> {
                         MockMajorSubjectTimeAddBo bo4 = new MockMajorSubjectTimeAddBo();
                         bo4.setMockMajorSubjectId(mockMajorSubjectAdd.getMockMajorSubjectId());
-                        bo4.setExamTime(mockMajorSubjectTimeAddBo.getExamTime());
+                        try {
+                            bo4.setExamTime(formatTime(mockMajorSubjectTimeAddBo.getExamTime(), mockMajorSubjectTimeAddBo.getStartTime()));
+                        } catch (ParseException e) {
+                            e.printStackTrace();
+                        }
                         bo4.setStartTime(mockMajorSubjectTimeAddBo.getStartTime());
                         bo4.setEndTime(mockMajorSubjectTimeAddBo.getEndTime());
                         MockMajorSubjectTime mockMajorSubjectTime = BeanUtil.toBean(bo4, MockMajorSubjectTime.class);
@@ -160,11 +170,51 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean updateByEditBo(MockApplyEditBo bo) {
         MockApply update = BeanUtil.toBean(bo, MockApply.class);
         validEntityBeforeSave(update);
         update.setUpdateTime(DateUtils.getNowTime());
-        return this.updateById(update);
+        this.updateById(update);
+        if (BeanUtil.isNotEmpty(bo.getMockMajorEditBoList())) {
+            bo.getMockMajorEditBoList().stream().forEach(mockMajorEditBo -> {
+                MockMajor mockMajor = BeanUtil.toBean(mockMajorEditBo, MockMajor.class);
+                mockMajor.setUpdateTime(DateUtils.getNowTime());
+                iMockMajorService.updateById(mockMajor);
+                if (BeanUtil.isNotEmpty(mockMajorEditBo.getMockMajorSubjectEditBoList())) {
+                    mockMajorEditBo.getMockMajorSubjectEditBoList().stream().forEach(mockMajorSubjectEditBo -> {
+                        MockMajorSubject mockMajorSubject = BeanUtil.toBean(mockMajorSubjectEditBo, MockMajorSubject.class);
+                        mockMajorSubject.setUpdateTime(DateUtils.getNowTime());
+                        iMockMajorSubjectService.updateById(mockMajorSubject);
+                        if (BeanUtil.isNotEmpty(mockMajorSubjectEditBo.getMockMajorSubjectTimeEditBoList())) {
+                            mockMajorSubjectEditBo.getMockMajorSubjectTimeEditBoList().stream().forEach(mockMajorSubjectTimeEditBo -> {
+                                MockMajorSubjectTime mockMajorSubjectTime = BeanUtil.toBean(mockMajorSubjectTimeEditBo, MockMajorSubjectTime.class);
+                                mockMajorSubjectTime.setUpdateTime(DateUtils.getNowTime());
+                                iMockMajorSubjectTimeService.updateById(mockMajorSubjectTime);
+                            });
+                        }
+                        if (BeanUtil.isNotEmpty(mockMajorSubjectEditBo.getMockMajorSubjectGoodsEditBoList())) {
+                            mockMajorSubjectEditBo.getMockMajorSubjectGoodsEditBoList().stream().forEach(mockMajorSubjectGoodsEditBo -> {
+                                MockMajorSubjectGoods mockMajorSubjectGoods = BeanUtil.toBean(mockMajorSubjectGoodsEditBo, MockMajorSubjectGoods.class);
+                                mockMajorSubjectGoods.setUpdateTime(DateUtils.getNowTime());
+                                iMockMajorSubjectGoodsService.updateById(mockMajorSubjectGoods);
+                            });
+                        }
+                    });
+                }
+            });
+        }
+        return true;
+    }
+
+    private Long formatTime(Long startTime, String addTime) throws ParseException {
+        Long times = startTime*1000;//时间戳
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+        String dateString = formatter.format(times);
+        String dateForma =null;
+        dateForma = dateString+" "+addTime.replace("-", ":");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        return sdf.parse(dateForma).getTime() / 1000;
     }
 
     /**
@@ -212,8 +262,8 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
             mockApplyVo.setSubscribeNum(userMockSubscribeList1.size());
 
             LambdaQueryWrapper<UserMockSubscribe> lqw4 = new LambdaQueryWrapper<>();
-            lqw3.eq(UserMockSubscribe::getApplyId, mockApplyVo.getApplyId());
-            lqw3.eq(UserMockSubscribe::getSubscribeStatus, "0");
+            lqw4.eq(UserMockSubscribe::getApplyId, mockApplyVo.getApplyId());
+            lqw4.eq(UserMockSubscribe::getSubscribeStatus, "0");
             List<UserMockSubscribe> userMockSubscribeList2 = iUserMockSubscribeService.list(lqw4);
             mockApplyVo.setSubscribeCancelNum(userMockSubscribeList2.size());
         });
@@ -221,4 +271,9 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
         return mockApplyVoList;
 
     }
+
+    @Override
+    public List<MockApplyVo> queryApplyList(MockApplyQueryBo bo) {
+        return baseMapper.queryApplyList(bo);
+    }
 }

+ 32 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/vo/MockApplyVo.java

@@ -71,7 +71,7 @@ public class MockApplyVo {
 	/** 项目名称 */
 	@Excel(name = "项目名称")
 	@ApiModelProperty("项目名称")
-	private Long projectName;
+	private String projectName;
 	/** 编码 */
 	@Excel(name = "编码")
 	@ApiModelProperty("编码")
@@ -92,6 +92,11 @@ public class MockApplyVo {
 	@ApiModelProperty("科目ID")
 	private Long subjectId;
 
+	/** 科目名称 */
+	@Excel(name = "科目名称")
+	@ApiModelProperty("科目名称")
+	private String subjectName;
+
 	/** 试卷ID */
 	@Excel(name = "试卷ID")
 	@ApiModelProperty("试卷ID")
@@ -116,4 +121,30 @@ public class MockApplyVo {
 	@Excel(name = "预约取消数量")
 	@ApiModelProperty("预约取消数量")
 	private Integer subscribeCancelNum;
+
+	/** 专业ID */
+	@Excel(name = "专业ID")
+	@ApiModelProperty("专业ID")
+	private Long majorId;
+
+	/** 专业名称 */
+	@Excel(name = "专业名称")
+	@ApiModelProperty("专业名称")
+	private String categoryName;
+
+	/** 考试日期 */
+	@Excel(name = "考试日期")
+	@ApiModelProperty("考试日期")
+	private Long examTime;
+	/** 开始时间 */
+	@Excel(name = "开始时间")
+	@ApiModelProperty("开始时间")
+	private String startTime;
+	/** 结束时间 */
+	@Excel(name = "结束时间")
+	@ApiModelProperty("结束时间")
+	private String endTime;/** 结束时间 */
+	@Excel(name = "开考限制时间")
+	@ApiModelProperty("开考限制时间")
+	private String timeLimit;
 }

+ 14 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserMockSubscribeAddBo.java

@@ -2,8 +2,9 @@ package com.zhongzheng.modules.user.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+
+import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -60,4 +61,16 @@ public class UserMockSubscribeAddBo {
     /** 考试日期 */
     @ApiModelProperty("考试日期")
     private Long applySiteExamTime;
+    /** 做题次数 */
+    @ApiModelProperty("做题次数")
+    private Long doNum;
+    /** 第一次做题得分 */
+    @ApiModelProperty("第一次做题得分")
+    private BigDecimal firstScore;
+    /** 第一次主观题待评分 0否 1是 */
+    @ApiModelProperty("第一次主观题待评分 0否 1是")
+    private Integer firstSubjectiveScore;
+    /** 第一次交卷时间 */
+    @ApiModelProperty("第一次交卷时间")
+    private Long firstHandTime;
 }

+ 18 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserMockSubscribeEditBo.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+
+import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -74,4 +76,20 @@ public class UserMockSubscribeEditBo {
     @ApiModelProperty("考试日期")
     private Long applySiteExamTime;
 
+    /** 做题次数 */
+    @ApiModelProperty("做题次数")
+    private Long doNum;
+
+    /** 第一次做题得分 */
+    @ApiModelProperty("第一次做题得分")
+    private BigDecimal firstScore;
+
+    /** 第一次主观题待评分 0否 1是 */
+    @ApiModelProperty("第一次主观题待评分 0否 1是")
+    private Integer firstSubjectiveScore;
+
+    /** 第一次交卷时间 */
+    @ApiModelProperty("第一次交卷时间")
+    private Long firstHandTime;
+
 }

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserMockSubscribeQueryBo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Map;
 import java.util.HashMap;
@@ -72,4 +73,17 @@ public class UserMockSubscribeQueryBo extends BaseEntity {
 	/** 考试日期 */
 	@ApiModelProperty("考试日期")
 	private Long applySiteExamTime;
+
+	/** 做题次数 */
+	@ApiModelProperty("做题次数")
+	private Long doNum;
+	/** 第一次做题得分 */
+	@ApiModelProperty("第一次做题得分")
+	private BigDecimal firstScore;
+	/** 第一次主观题待评分 0否 1是 */
+	@ApiModelProperty("第一次主观题待评分 0否 1是")
+	private Integer firstSubjectiveScore;
+	/** 第一次交卷时间 */
+	@ApiModelProperty("第一次交卷时间")
+	private Long firstHandTime;
 }

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserMockSubscribe.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.user.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -56,4 +57,12 @@ private static final long serialVersionUID=1L;
     private String applySiteEndTime;
     /** 考试日期 */
     private Long applySiteExamTime;
+    /** 做题次数 */
+    private Long doNum;
+    /** 第一次做题得分 */
+    private BigDecimal firstScore;
+    /** 第一次主观题待评分 0否 1是 */
+    private Integer firstSubjectiveScore;
+    /** 第一次交卷时间 */
+    private Long firstHandTime;
 }

+ 25 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.user.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
@@ -72,6 +73,10 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
         lqw.eq(StrUtil.isNotBlank(bo.getApplySiteStartTime()), UserMockSubscribe::getApplySiteStartTime, bo.getApplySiteStartTime());
         lqw.eq(StrUtil.isNotBlank(bo.getApplySiteEndTime()), UserMockSubscribe::getApplySiteEndTime, bo.getApplySiteEndTime());
         lqw.eq(bo.getApplySiteExamTime() != null, UserMockSubscribe::getApplySiteExamTime, bo.getApplySiteExamTime());
+        lqw.eq(bo.getDoNum() != null, UserMockSubscribe::getDoNum, bo.getDoNum());
+        lqw.eq(bo.getFirstScore() != null, UserMockSubscribe::getFirstScore, bo.getFirstScore());
+        lqw.eq(bo.getFirstSubjectiveScore() != null, UserMockSubscribe::getFirstSubjectiveScore, bo.getFirstSubjectiveScore());
+        lqw.eq(bo.getFirstHandTime() != null, UserMockSubscribe::getFirstHandTime, bo.getFirstHandTime());
         return entity2Vo(this.list(lqw));
     }
 
@@ -117,6 +122,11 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
                 throw new CustomException("已进行同类型模考,不能再预约了哦~");
             }
             //重复预约
+            //已预约模考还没开始
+            if (System.currentTimeMillis()/1000 < userMockSubscribe.getApplySiteExamTime()) {
+                throw new CustomException("已存在同类型模考预约,不能再预约了哦~");
+            }
+            //已预约模考还没结束,或已参加
             if (!(System.currentTimeMillis()/1000 > formatTime(userMockSubscribe.getApplySiteExamTime(), userMockSubscribe.getApplySiteEndTime()))
                     && userMockSubscribe.getHandStatus() == 0) {
                 throw new CustomException("已存在同类型模考预约,不能再预约了哦~");
@@ -164,6 +174,21 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
     public Boolean updateByEditBo(UserMockSubscribeEditBo bo) {
         UserMockSubscribe update = BeanUtil.toBean(bo, UserMockSubscribe.class);
         validEntityBeforeSave(update);
+        UserMockSubscribeVo userMockSubscribeVo = this.queryById(update.getSubscribeId());
+        if (BeanUtil.isNotEmpty(userMockSubscribeVo)) {
+            if (Validator.isNotEmpty(userMockSubscribeVo.getFirstScore())) {
+                update.setFirstScore(null);
+            }
+            if (Validator.isNotEmpty(userMockSubscribeVo.getFirstSubjectiveScore()) && userMockSubscribeVo.getFirstSubjectiveScore() == 1) {
+                update.setFirstSubjectiveScore(null);
+            }
+            if (Validator.isNotEmpty(userMockSubscribeVo.getFirstHandTime())) {
+                update.setFirstHandTime(null);
+            }
+            if (Validator.isNotEmpty(bo.getHandStatus()) && bo.getHandStatus() != 0) {
+                update.setDoNum(userMockSubscribeVo.getDoNum() + 1);
+            }
+        }
         update.setUpdateTime(DateUtils.getNowTime());
         return this.updateById(update);
     }

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

@@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -117,4 +119,29 @@ public class UserMockSubscribeVo {
 	@Excel(name = "科目名字")
 	@ApiModelProperty("科目名字")
 	private String subjectName;
+
+	/** 开考限制时间 */
+	@Excel(name = "开考限制时间")
+	@ApiModelProperty("开考限制时间")
+	private String timeLimit;
+
+	/** 做题次数 */
+	@Excel(name = "做题次数")
+	@ApiModelProperty("做题次数")
+	private Long doNum;
+
+	/** 第一次做题得分 */
+	@Excel(name = "第一次做题得分")
+	@ApiModelProperty("第一次做题得分")
+	private BigDecimal firstScore;
+
+	/** 第一次主观题待评分 0否 1是 */
+	@Excel(name = "第一次主观题待评分 0否 1是")
+	@ApiModelProperty("第一次主观题待评分 0否 1是")
+	private Integer firstSubjectiveScore;
+
+	/** 第一次交卷时间 */
+	@Excel(name = "第一次交卷时间")
+	@ApiModelProperty("第一次交卷时间")
+	private Long firstHandTime;
 }

+ 48 - 4
zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml

@@ -38,10 +38,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="mockMajorId" column="mock_major_id"/>
         <result property="mockMajorSubjectId" column="mock_major_subject_id"/>
         <result property="subjectId" column="subject_id"/>
+        <result property="subjectName" column="subject_name"/>
         <result property="examId" column="exam_id"/>
         <result property="handoutsId" column="handouts_id"/>
         <result property="subscribeNum" column="subscribe_num"/>
         <result property="subscribeCancelNum" column="subscribe_cancel_num"/>
+        <result property="majorId" column="major_id"/>
+        <result property="categoryName" column="category_name"/>
+        <result property="categoryName" column="category_name"/>
     </resultMap>
     <select id="getMockSubjectInfo" parameterType="java.lang.Long" resultMap="MockApplyVoResult">
         SELECT ma.*,
@@ -58,15 +62,55 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
         mms.mock_major_subject_id = #{mockMajorSubjectId}
     </select>
-    <select id="listApply" resultType="com.zhongzheng.modules.mock.vo.MockApplyVo">
+    <select id="listApply" parameterType="com.zhongzheng.modules.mock.bo.MockApplyQueryBo" resultMap="MockApplyVoResult">
         SELECT 	ma.*,
                 cet.education_name,
                 cb.business_name,
-
+                cpt.project_name
+        FROM mock_apply ma
+                LEFT JOIN course_education_type cet ON ma.education_type_id = cet.id
+                LEFT JOIN course_business cb ON ma.business_id = cb.id
+                LEFT JOIN course_project_type cpt ON ma.project_id = cpt.id
+        WHERE
+            1=1
+        <if test="status != null and status.size()!=0 ">
+            AND ma.status in
+            <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+    <select id="queryApplyList" parameterType="com.zhongzheng.modules.mock.bo.MockApplyQueryBo" resultMap="MockApplyVoResult">
+        SELECT	ma.business_id,
+                  cb.business_name,
+                  ma.project_id,
+                  cpt.project_name,
+                  mm.major_id,
+                  m.category_name,
+                  mms.subject_id,
+                  cs.subject_name,
+                  mms.exam_id,
+                  mms.handouts_id,
+                  mmst.exam_time,
+                  mmst.start_time,
+                  mmst.end_time
         FROM mock_apply ma
-                 LEFT JOIN course_education_type cet ON ma.education_type_id = cet.id
                  LEFT JOIN course_business cb ON ma.business_id = cb.id
-                LEFT
+                 LEFT JOIN course_project_type cpt ON ma.project_id = cpt.id
+                 LEFT JOIN mock_major mm ON ma.apply_id = mm.apply_id
+                 LEFT JOIN major m ON mm.major_id = m.id
+                 LEFT JOIN mock_major_subject mms ON mm.mock_major_id = mms.mock_major_id
+                 LEFT JOIN course_subject cs ON mms.subject_id = cs.id
+                 LEFT JOIN mock_major_subject_time mmst ON mms.mock_major_subject_id = mmst.mock_major_subject_id
+        WHERE
+            UNIX_TIMESTAMP(NOW()) &gt; mmst.exam_time
+        <if test="projectId != null and projectId != ''">
+            and ma.project_id = #{projectId}
+        </if>
+        <if test="majorId != null and majorId != ''">
+            and major_id = #{majorId}
+        </if>
+        ORDER BY mmst.exam_time
     </select>
 
 

+ 15 - 9
zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml

@@ -45,18 +45,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="categoryName" column="category_name"/>
         <result property="subjectId" column="subject_id"/>
         <result property="subjectName" column="subject_name"/>
+        <result property="timeLimit" column="time_limit"/>
+        <result property="doNum" column="do_num"/>
+        <result property="firstScore" column="first_score"/>
+        <result property="firstSubjectiveScore" column="first_subjective_score"/>
+        <result property="firstHandTime" column="first_hand_time"/>
     </resultMap>
     <select id="getInfo" parameterType="java.lang.Long" resultMap="UserMockSubscribeVoResult">
         SELECT 	ums.*,
-                  ma.apply_name,
-                  ma.education_type_id,
-                  cet.education_name,
-                  ma.business_id,
-                  cb.business_name,
-                  mm.major_id,
-                  m.category_name,
-                  mms.subject_id,
-                  cs.subject_name
+                ma.apply_name,
+                ma.education_type_id,
+                cet.education_name,
+                ma.business_id,
+                cb.business_name,
+                mm.major_id,
+                m.category_name,
+                mms.subject_id,
+                cs.subject_name,
+                ma.time_limit
         FROM user_mock_subscribe ums
                  LEFT JOIN mock_apply ma ON ums.apply_id = ma.apply_id
                  LEFT JOIN course_education_type cet ON ma.education_type_id = cet.id