he2802 3 年 前
コミット
346a21fce9
16 ファイル変更247 行追加46 行削除
  1. 164 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserMockWrongRecordController.java
  2. 0 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ConsoleQueryBo.java
  3. 14 9
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ConsoleServiceImpl.java
  4. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyQueryBo.java
  5. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/service/impl/MockApplyServiceImpl.java
  6. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMockRecordMapper.java
  7. 0 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMockSubscribeMapper.java
  8. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockRecordService.java
  9. 0 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockSubscribeService.java
  10. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockWrongRecordService.java
  11. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockRecordServiceImpl.java
  12. 1 5
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java
  13. 24 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockWrongRecordServiceImpl.java
  14. 3 0
      zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml
  15. 15 1
      zhongzheng-system/src/main/resources/mapper/modules/user/UserMockRecordMapper.xml
  16. 1 22
      zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml

+ 164 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserMockWrongRecordController.java

@@ -0,0 +1,164 @@
+package com.zhongzheng.controller.user;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.WxTokenService;
+import com.zhongzheng.modules.user.bo.UserMockWrongRecordAddBo;
+import com.zhongzheng.modules.user.bo.UserMockWrongRecordEditBo;
+import com.zhongzheng.modules.user.bo.UserMockWrongRecordQueryBo;
+import com.zhongzheng.modules.user.entity.ClientLoginUser;
+import com.zhongzheng.modules.user.service.IUserMockWrongRecordService;
+import com.zhongzheng.modules.user.vo.UserMockWrongRecordVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 用户模考错题记录Controller
+ *
+ * @author tzh
+ * @date 2022-6-1
+ */
+@Api(value = "用户模考错题记录控制器", tags = {"用户模考错题记录管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/mock/wwrong/record")
+public class UserMockWrongRecordController extends BaseController {
+
+    private final IUserMockWrongRecordService iUserMockWrongRecordService;
+
+    private final WxTokenService wxTokenService;
+
+    /**
+     * 查询用户模考错题记录列表
+     */
+    @ApiOperation("查询用户模考错题记录列表-按试卷")
+    @GetMapping("/list")
+    public TableDataInfo<UserMockWrongRecordVo> list(UserMockWrongRecordQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        startPage();
+        List<UserMockWrongRecordVo> list = iUserMockWrongRecordService.selectList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("按类型获取收藏数量")
+    @GetMapping("/type_list")
+    public TableDataInfo<UserMockWrongRecordVo> type_list(UserMockWrongRecordQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        startPage();
+        List<UserMockWrongRecordVo> list = iUserMockWrongRecordService.selectTypeNum(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("试卷获取题目列表")
+    @GetMapping("/exam_question_list")
+    public TableDataInfo<UserMockWrongRecordVo> selectQuestionList(UserMockWrongRecordQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        startPage();
+        List<UserMockWrongRecordVo> list = iUserMockWrongRecordService.selectQuestionList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("类型获取题目列表")
+    @GetMapping("/type_question_list")
+    public TableDataInfo<UserMockWrongRecordVo> type_question_list(UserMockWrongRecordQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        startPage();
+        List<UserMockWrongRecordVo> list = iUserMockWrongRecordService.selectTypeQuestionList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     *
+     * 导出用户模考错题记录列表
+     */
+    /*@ApiOperation("导出用户模考错题记录列表")
+    @PreAuthorize("@ss.hasPermi('system:record:export')")
+    @Log(title = "用户模考错题记录", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<UserMockWrongRecordVo> export(UserMockWrongRecordQueryBo bo) {
+        List<UserMockWrongRecordVo> list = iUserMockWrongRecordService.queryList(bo);
+        ExcelUtil<UserMockWrongRecordVo> util = new ExcelUtil<UserMockWrongRecordVo>(UserMockWrongRecordVo.class);
+        return util.exportExcel(list, "用户模考错题记录");
+    }*/
+
+    /**
+     * 获取用户模考错题记录详细信息
+     */
+    @ApiOperation("获取用户模考错题记录详细信息")
+    @GetMapping("/{wrongId}")
+    public AjaxResult<UserMockWrongRecordVo> getInfo(@PathVariable("wrongId" ) Long wrongId) {
+        return AjaxResult.success(iUserMockWrongRecordService.queryById(wrongId));
+    }
+
+
+    @ApiOperation("获取用户报告错题数")
+    @GetMapping("/wrongNum/{recordId}")
+    public AjaxResult<Long> wrongNum(@PathVariable("recordId" ) Long recordId) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        UserMockWrongRecordQueryBo wBo = new UserMockWrongRecordQueryBo();
+        wBo.setRecordId(recordId);
+        wBo.setUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success(iUserMockWrongRecordService.recordNum(wBo));
+    }
+
+    /**
+     * 新增用户模考错题记录
+     */
+    @ApiOperation("新增用户模考错题记录")
+    @Log(title = "用户模考错题记录", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody UserMockWrongRecordAddBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return toAjax(iUserMockWrongRecordService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改用户模考错题记录
+     */
+    @ApiOperation("修改用户模考错题记录")
+    @Log(title = "用户模考错题记录", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody UserMockWrongRecordEditBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return toAjax(iUserMockWrongRecordService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除用户模考错题记录
+     */
+    @ApiOperation("删除用户模考错题记录")
+    @Log(title = "用户模考错题记录" , businessType = BusinessType.DELETE)
+    @PostMapping("/delete/{wrongIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] wrongIds) {
+        return toAjax(iUserMockWrongRecordService.deleteWithValidByIds(Arrays.asList(wrongIds), true) ? 1 : 0);
+    }
+
+    /**
+     * 删除用户模考错题记录
+     */
+    @ApiOperation("删除用户模考错题记录")
+    @Log(title = "用户模考错题记录" , businessType = BusinessType.DELETE)
+    @PostMapping("/delete/question")
+    public AjaxResult<Void> remove_question(@RequestBody UserMockWrongRecordQueryBo bo) {
+
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return toAjax(iUserMockWrongRecordService.remove_question(bo));
+    }
+}

+ 0 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ConsoleQueryBo.java

@@ -92,6 +92,4 @@ public class ConsoleQueryBo extends BaseEntity {
 	/** 考试登记状态 0 待登记 1正常 2缺考 3作弊 4替考 */
 	private Integer examStatus;
 
-	/** 主观题评分状态 0否 1是 */
-	private Integer subjectiveScore;
 }

+ 14 - 9
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ConsoleServiceImpl.java

@@ -2,6 +2,8 @@ package com.zhongzheng.modules.base.service.impl;
 
 
 import cn.hutool.core.lang.Validator;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.base.service.IConsoleService;
@@ -9,10 +11,9 @@ import com.zhongzheng.modules.grade.service.IClassGradeService;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderListVo;
-import com.zhongzheng.modules.user.service.IUserMockSubscribeService;
-import com.zhongzheng.modules.user.service.IUserService;
-import com.zhongzheng.modules.user.service.IUserSubscribeService;
-import com.zhongzheng.modules.user.service.IUserUpdateService;
+import com.zhongzheng.modules.user.domain.UserMockRecord;
+import com.zhongzheng.modules.user.domain.UserMockSubscribe;
+import com.zhongzheng.modules.user.service.*;
 import com.zhongzheng.modules.user.vo.UserUpdateVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,6 +39,9 @@ public class ConsoleServiceImpl implements IConsoleService {
     @Autowired
     private IUserMockSubscribeService iUserMockSubscribeService;
 
+    @Autowired
+    private IUserMockRecordService iUserMockRecordService;
+
     @Override
     public Map<String, Object> getStudentData(ConsoleQueryBo bo) {
         Integer allNum = iOrderService.getConsoleStudentNum(bo); //总人数
@@ -337,21 +341,22 @@ public class ConsoleServiceImpl implements IConsoleService {
         cal7.set(cal7.get(Calendar.YEAR), cal7.get(Calendar.MONTH), cal7.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
         Long sevenZero = cal7.getTimeInMillis() / 1000;   //7日内凌晨
         bo.setSubscribeStatus(1);
-        bo.setSubjectiveScore(0);
         Integer subscribeNum = iUserMockSubscribeService.getConsoleMockSubscribeNum(bo);
-        Integer toScoreNum = iUserMockSubscribeService.getConsoleMockToScoreNum(bo);
+        Integer toScoreNum = iUserMockRecordService.getConsoleMockToScore(bo).size();
         bo.setSubStartTime(todZero);
         bo.setEndTime(DateUtils.getNowTime());
         Integer subTodNum = iUserMockSubscribeService.getConsoleMockSubscribeNum(bo);
-        Integer toScoreTodNum = iUserMockSubscribeService.getConsoleMockToScoreNum(bo);
+        Integer toScoreTodNum = iUserMockRecordService.getConsoleMockToScore(bo).size();
         bo.setSubStartTime(ytdZero);
         bo.setSubEndTime(todZero);
         Integer subYtdNum = iUserMockSubscribeService.getConsoleMockSubscribeNum(bo);
-        Integer toScoreYtdNum = iUserMockSubscribeService.getConsoleMockToScoreNum(bo);
+        Integer toScoreYtdNum = iUserMockRecordService.getConsoleMockToScore(bo).size();
         bo.setSubStartTime(sevenZero);
         bo.setSubEndTime(DateUtils.getNowTime());
         Integer subSevNum = iUserMockSubscribeService.getConsoleMockSubscribeNum(bo);
-        Integer toScoreSevNum = iUserMockSubscribeService.getConsoleMockToScoreNum(bo);
+        Integer toScoreSevNum = iUserMockRecordService.getConsoleMockToScore(bo).size();
+
+
 
         map.put("subscribeNum", subscribeNum);
         map.put("toScoreNum", toScoreNum);

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyQueryBo.java

@@ -91,4 +91,8 @@ public class MockApplyQueryBo extends BaseEntity {
 	/** 学员ID */
 	@ApiModelProperty("学员ID")
 	private Long userId;
+
+	/** 开考限制时间(毫秒) */
+	@ApiModelProperty("开考限制时间(毫秒)")
+	private Long timeLimitMillisecond ;
 }

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

@@ -368,6 +368,9 @@ public class MockApplyServiceImpl extends ServiceImpl<MockApplyMapper, MockApply
 
     @Override
     public List<MockApplyVo> queryApplyList(MockApplyQueryBo bo){
+        if (Validator.isNotEmpty(bo.getTimeLimit())) {
+            bo.setTimeLimitMillisecond(bo.getTimeLimit() * 60000);
+        }
         List<MockApplyVo> mockApplyVoList = baseMapper.queryApplyList(bo);
         if (BeanUtil.isNotEmpty(mockApplyVoList)) {
             mockApplyVoList.stream().forEach(mockApplyVo -> {

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMockRecordMapper.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.user.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.user.bo.UserMockRecordQueryBo;
 import com.zhongzheng.modules.user.domain.UserMockRecord;
 import com.zhongzheng.modules.user.vo.UserMockRecordVo;
@@ -25,4 +26,6 @@ public interface UserMockRecordMapper extends BaseMapper<UserMockRecord> {
     List<UserMockWrongRecordVo> getMockRecordWrongList(UserMockRecordQueryBo bo);
     Long getUserDoQuestionNum(UserMockRecordQueryBo bo);
     List<UserMockRecordVo> selectGroupList(UserMockRecordQueryBo bo);
+
+    List<UserMockRecord> getConsoleMockToScore(ConsoleQueryBo bo);
 }

+ 0 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMockSubscribeMapper.java

@@ -21,7 +21,5 @@ public interface UserMockSubscribeMapper extends BaseMapper<UserMockSubscribe> {
 
     Integer getConsoleMockSubscribeNum(ConsoleQueryBo bo);
 
-    Integer getConsoleMockToScoreNum(ConsoleQueryBo bo);
-
     List<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockRecordService.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.user.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.domain.UserMockRecord;
 import com.zhongzheng.modules.user.domain.UserMockRecord;
@@ -72,4 +73,5 @@ public interface IUserMockRecordService extends IService<UserMockRecord> {
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 	List<UserMockRecordVo> selectGroupList(UserMockRecordQueryBo bo);
 
+    List<UserMockRecord> getConsoleMockToScore(ConsoleQueryBo bo);
 }

+ 0 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockSubscribeService.java

@@ -56,7 +56,5 @@ public interface IUserMockSubscribeService extends IService<UserMockSubscribe> {
 
     Integer getConsoleMockSubscribeNum(ConsoleQueryBo bo);
 
-	Integer getConsoleMockToScoreNum(ConsoleQueryBo bo);
-
     List<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo);
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockWrongRecordService.java

@@ -1,10 +1,12 @@
 package com.zhongzheng.modules.user.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.user.bo.UserExamWrongRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserMockWrongRecordAddBo;
 import com.zhongzheng.modules.user.bo.UserMockWrongRecordEditBo;
 import com.zhongzheng.modules.user.bo.UserMockWrongRecordQueryBo;
 import com.zhongzheng.modules.user.domain.UserMockWrongRecord;
+import com.zhongzheng.modules.user.vo.UserExamWrongRecordVo;
 import com.zhongzheng.modules.user.vo.UserMockWrongRecordVo;
 
 import java.util.Collection;
@@ -32,8 +34,12 @@ public interface IUserMockWrongRecordService extends IService<UserMockWrongRecor
 
 	List<UserMockWrongRecordVo> selectList(UserMockWrongRecordQueryBo bo);
 
+	List<UserMockWrongRecordVo> selectQuestionList(UserMockWrongRecordQueryBo bo);
+
 	List<UserMockWrongRecordVo> selectTypeNum(UserMockWrongRecordQueryBo bo);
 
+	List<UserMockWrongRecordVo> selectTypeQuestionList(UserMockWrongRecordQueryBo bo);
+
 	/**
 	 * 根据新增业务对象插入用户我的题库错题记录
 	 * @param bo 用户我的题库错题记录新增业务对象
@@ -56,4 +62,5 @@ public interface IUserMockWrongRecordService extends IService<UserMockWrongRecor
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
+	Boolean remove_question(UserMockWrongRecordQueryBo bo);
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockRecordServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.collect.domain.CollectQuestion;
 import com.zhongzheng.modules.collect.service.ICollectQuestionService;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
@@ -197,4 +198,9 @@ public class UserMockRecordServiceImpl extends ServiceImpl<UserMockRecordMapper,
     public List<UserMockRecordVo> selectGroupList(UserMockRecordQueryBo bo) {
         return this.baseMapper.selectGroupList(bo);
     }
+
+    @Override
+    public List<UserMockRecord> getConsoleMockToScore(ConsoleQueryBo bo) {
+        return baseMapper.getConsoleMockToScore(bo);
+    }
 }

+ 1 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java

@@ -217,11 +217,6 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
         return baseMapper.getConsoleMockSubscribeNum(bo);
     }
 
-    @Override
-    public Integer getConsoleMockToScoreNum(ConsoleQueryBo bo) {
-        return baseMapper.getConsoleMockToScoreNum(bo);
-    }
-
     @Override
     public List<UserMockSubscribeVo> listSubscribe(UserMockSubscribeQueryBo bo){
         List<UserMockSubscribeVo> userMockSubscribeVoList = baseMapper.listSubscribe(bo);
@@ -230,6 +225,7 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
             userMockSubscribeVoList.stream().forEach(userMockSubscribeVo -> {
                 LambdaQueryWrapper<UserMockRecord> lqw = Wrappers.lambdaQuery();
                 lqw.eq(UserMockRecord::getEachExamId, userMockSubscribeVo.getEachExamId());
+                lqw.eq(UserMockRecord::getUserId, userMockSubscribeVo.getUserId());
                 List<UserMockRecord> userMockRecordList = iUserMockRecordService.list(lqw);
                 if (userMockRecordList != null && userMockRecordList.size() > 0) {
                     userMockSubscribeVo.setDoNum(userMockRecordList.size());

+ 24 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockWrongRecordServiceImpl.java

@@ -8,12 +8,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.user.bo.UserExamWrongRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserMockWrongRecordAddBo;
 import com.zhongzheng.modules.user.bo.UserMockWrongRecordEditBo;
 import com.zhongzheng.modules.user.bo.UserMockWrongRecordQueryBo;
+import com.zhongzheng.modules.user.domain.UserExamWrongRecord;
 import com.zhongzheng.modules.user.domain.UserMockWrongRecord;
 import com.zhongzheng.modules.user.mapper.UserMockWrongRecordMapper;
 import com.zhongzheng.modules.user.service.IUserMockWrongRecordService;
+import com.zhongzheng.modules.user.vo.UserExamWrongRecordVo;
 import com.zhongzheng.modules.user.vo.UserMockWrongRecordVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -32,7 +35,7 @@ import java.util.stream.Collectors;
 public class UserMockWrongRecordServiceImpl extends ServiceImpl<UserMockWrongRecordMapper, UserMockWrongRecord> implements IUserMockWrongRecordService {
 
     @Autowired
-    private UserMockWrongRecordMapper UserMockWrongRecordMapper;
+    private UserMockWrongRecordMapper userMockWrongRecordMapper;
 
     @Override
     public UserMockWrongRecordVo queryById(Long wrongId){
@@ -58,12 +61,22 @@ public class UserMockWrongRecordServiceImpl extends ServiceImpl<UserMockWrongRec
 
     @Override
     public List<UserMockWrongRecordVo> selectList(UserMockWrongRecordQueryBo bo) {
-        return UserMockWrongRecordMapper.selectList(bo);
+        return userMockWrongRecordMapper.selectList(bo);
+    }
+
+    @Override
+    public List<UserMockWrongRecordVo> selectQuestionList(UserMockWrongRecordQueryBo bo) {
+        return userMockWrongRecordMapper.selectQuestionList(bo);
     }
 
     @Override
     public List<UserMockWrongRecordVo> selectTypeNum(UserMockWrongRecordQueryBo bo) {
-        return UserMockWrongRecordMapper.selectTypeNum(bo);
+        return userMockWrongRecordMapper.selectTypeNum(bo);
+    }
+
+    @Override
+    public List<UserMockWrongRecordVo> selectTypeQuestionList(UserMockWrongRecordQueryBo bo) {
+        return userMockWrongRecordMapper.selectTypeQuestionList(bo);
     }
 
 
@@ -129,4 +142,12 @@ public class UserMockWrongRecordServiceImpl extends ServiceImpl<UserMockWrongRec
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public Boolean remove_question(UserMockWrongRecordQueryBo bo) {
+        return this.remove(new LambdaQueryWrapper<UserMockWrongRecord>()
+                .eq(UserMockWrongRecord::getQuestionId,bo.getQuestionId())
+                .eq(UserMockWrongRecord::getExamId,bo.getExamId())
+                .eq(UserMockWrongRecord::getUserId,bo.getUserId()));
+    }
 }

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

@@ -111,6 +111,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                  LEFT JOIN mock_major_subject_time mmst ON mms.mock_major_subject_id = mmst.mock_major_subject_id
         WHERE
             UNIX_TIMESTAMP(NOW()) &lt; mmst.exam_time
+          <if test="timeLimitMillisecond != null">
+              + #{timeLimitMillisecond}
+          </if>
         <if test="projectId != null and projectId != ''">
             and ma.project_id = #{projectId}
         </if>

+ 15 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserMockRecordMapper.xml

@@ -111,7 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="chapterExamId != null and chapterExamId != ''">
             AND ue.chapter_exam_id = #{chapterExamId}
         </if>
-        ORDER by ue.record_id DESC
+        ORDER by ue.record_id
     </select>
 
     <select id="selectGroupList" parameterType="com.zhongzheng.modules.user.bo.UserMockRecordQueryBo" resultMap="UserMockRecordVoResult">
@@ -266,4 +266,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                   AND uer.do_question_ids IS NOT NULL
             ))
     </select>
+    <select id="getConsoleMockToScore" parameterType="com.zhongzheng.modules.base.bo.ConsoleQueryBo" resultMap="UserMockRecordResult">
+        SELECT any_value(umr.record_id) record_id,
+               any_value(umr.create_time) create_time,
+               any_value(umr.score) score
+        FROM user_mock_record umr
+        GROUP BY umr.each_exam_id
+        HAVING score is null
+        <if test="subStartTime != null and subStartTime != ''">
+            and create_time &gt; #{subStartTime}
+        </if>
+        <if test="subEndTime != null and subEndTime != ''">
+            and create_time &lt; #{subEndTime}
+        </if>
+    </select>
 </mapper>

+ 1 - 22
zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml

@@ -98,28 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND ums.create_time &lt; #{subEndTime}
         </if>
     </select>
-    <select id="getConsoleMockToScoreNum" resultType="java.lang.Integer">
-        SELECT  COUNT(ums.subscribe_id)
-        FROM user_mock_subscribe ums
-        LEFT JOIN mock_apply ma ON ums.apply_id = ma.apply_id
-        WHERE
-        1=1
-        <if test="businessId != null and businessId != ''">
-            AND ma.business_id = #{businessId}
-        </if>
-        <if test="subjectiveScore != null">
-            AND ums.first_subjective_score = #{subjectiveScore}
-        </if>
-        <if test="subscribeStatus != null and subscribeStatus != ''">
-            AND ums.subscribe_status = #{subscribeStatus}
-        </if>
-        <if test="subStartTime != null and subStartTime != ''">
-            AND ums.create_time &gt; #{subStartTime}
-        </if>
-        <if test="subEndTime != null and subEndTime != ''">
-            AND ums.create_time &lt; #{subEndTime}
-        </if>
-    </select>
+
     <select id="listSubscribe" parameterType="com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo" resultMap="UserMockSubscribeVoResult">
         SELECT 	ums.*,
                 u.realname,