diff --git a/src/main/java/com/wrj/driver/server/controller/WrjQuestionPracticeController.java b/src/main/java/com/wrj/driver/server/controller/WrjQuestionPracticeController.java
index 4b983d6..ff8fff8 100644
--- a/src/main/java/com/wrj/driver/server/controller/WrjQuestionPracticeController.java
+++ b/src/main/java/com/wrj/driver/server/controller/WrjQuestionPracticeController.java
@@ -1,10 +1,19 @@
package com.wrj.driver.server.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.wrj.driver.server.dto.QuestionPracticeAddDto;
+import com.wrj.driver.server.dto.QuestionQueryDto;
+import com.wrj.driver.server.response.BaseResponse;
+import com.wrj.driver.server.service.IWrjQuestionPracticeService;
+import com.wrj.driver.server.util.SecurityUtil;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
/**
*
@@ -16,6 +25,27 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/wrjQuestionPractice")
+@Slf4j
public class WrjQuestionPracticeController {
+ @Autowired
+ private IWrjQuestionPracticeService practiceService;
+
+ @ApiOperation("答题练习")
+ @PostMapping("/insert")
+ public BaseResponse insertQuestionPractice(@RequestBody @Valid QuestionPracticeAddDto addDto) {
+
+ addDto.setUserId(SecurityUtil.getUserId());
+ log.info("答题练习======>addDto:{}", addDto);
+ return BaseResponse.success(practiceService.insertQuestionPractice(addDto));
+ }
+
+
+ @ApiOperation("清空答题练习")
+ @PostMapping("/clear")
+ public BaseResponse clear(@RequestParam String practiceType) {
+ log.info("清空答题练习 userId:{},practiceType:{}", SecurityUtil.getUserId(),practiceType);
+ return BaseResponse.success(practiceService.clear(SecurityUtil.getUserId(),practiceType));
+ }
+
}
diff --git a/src/main/java/com/wrj/driver/server/controller/WrjUserCollectQuestionController.java b/src/main/java/com/wrj/driver/server/controller/WrjUserCollectQuestionController.java
index ad0c433..dccd211 100644
--- a/src/main/java/com/wrj/driver/server/controller/WrjUserCollectQuestionController.java
+++ b/src/main/java/com/wrj/driver/server/controller/WrjUserCollectQuestionController.java
@@ -1,10 +1,16 @@
package com.wrj.driver.server.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.wrj.driver.server.dto.QuestionPracticeAddDto;
+import com.wrj.driver.server.response.BaseResponse;
+import com.wrj.driver.server.service.IWrjUserCollectQuestionService;
+import com.wrj.driver.server.util.SecurityUtil;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RestController;
/**
*
@@ -16,6 +22,17 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/wrjUserCollectQuestion")
+@Slf4j
public class WrjUserCollectQuestionController {
+ @Autowired
+ private IWrjUserCollectQuestionService collectQuestionService;
+
+ @ApiOperation("更新收藏(没有收藏调用则是收藏,已收藏调用则是取消收藏)")
+ @PostMapping("/update")
+ public BaseResponse updateUserCollectQuestion(@RequestParam Long questionId) {
+ log.info("更新收藏题目id======>questionId:{},userId:{}", questionId, SecurityUtil.getUserId());
+ return BaseResponse.success(collectQuestionService.updateUserCollectQuestion(questionId, SecurityUtil.getUserId()));
+ }
+
}
diff --git a/src/main/java/com/wrj/driver/server/controller/WrjUserErrorQuestionController.java b/src/main/java/com/wrj/driver/server/controller/WrjUserErrorQuestionController.java
index 444b162..fb6472a 100644
--- a/src/main/java/com/wrj/driver/server/controller/WrjUserErrorQuestionController.java
+++ b/src/main/java/com/wrj/driver/server/controller/WrjUserErrorQuestionController.java
@@ -1,9 +1,17 @@
package com.wrj.driver.server.controller;
+import com.wrj.driver.server.response.BaseResponse;
+import com.wrj.driver.server.service.IWrjUserErrorQuestionService;
+import com.wrj.driver.server.util.SecurityUtil;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
@@ -16,6 +24,17 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/wrjUserErrorQuestion")
+@Slf4j
public class WrjUserErrorQuestionController {
+ @Autowired
+ private IWrjUserErrorQuestionService errorQuestionService;
+
+ @ApiOperation("移除错题")
+ @PostMapping("/remove")
+ public BaseResponse remove(@RequestParam Long questionId) {
+ log.info("移除错题题目id======>questionId:{},userId:{}", questionId, SecurityUtil.getUserId());
+ return BaseResponse.success(errorQuestionService.remove(questionId, SecurityUtil.getUserId()));
+ }
+
}
diff --git a/src/main/java/com/wrj/driver/server/dto/QuestionPracticeAddDto.java b/src/main/java/com/wrj/driver/server/dto/QuestionPracticeAddDto.java
new file mode 100644
index 0000000..e49eeb7
--- /dev/null
+++ b/src/main/java/com/wrj/driver/server/dto/QuestionPracticeAddDto.java
@@ -0,0 +1,61 @@
+package com.wrj.driver.server.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ *
{
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/SysUserMapper.java b/src/main/java/com/wrj/driver/server/mapper/SysUserMapper.java
index 05c8e87..c328810 100644
--- a/src/main/java/com/wrj/driver/server/mapper/SysUserMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/SysUserMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.SysUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,5 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2023-08-10
*/
+
+@Mapper
public interface SysUserMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjChapterMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjChapterMapper.java
index c63b731..c30d5d0 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjChapterMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjChapterMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wrj.driver.server.dto.ChapterDto;
import com.wrj.driver.server.dto.ChapterQueryDto;
import com.wrj.driver.server.entity.WrjChapter;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -11,6 +12,8 @@ import java.util.List;
/**
* 章节数据层
*/
+
+@Mapper
public interface WrjChapterMapper extends BaseMapper {
List queryChapter(@Param("param") ChapterQueryDto queryDto);
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjDriverTypeMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjDriverTypeMapper.java
index 39b98d8..a5ad9b2 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjDriverTypeMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjDriverTypeMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjDriverType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2023-08-10
*/
+
+@Mapper
public interface WrjDriverTypeMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjExamPlaceMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjExamPlaceMapper.java
index d9d8897..224554c 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjExamPlaceMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjExamPlaceMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjExamPlace;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjExamPlaceMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjModelMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjModelMapper.java
index 890e1dd..b303fe2 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjModelMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjModelMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjModel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjModelMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjQuestionMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjQuestionMapper.java
index 60e2d3a..0ab54ca 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjQuestionMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjQuestionMapper.java
@@ -4,6 +4,7 @@ import com.wrj.driver.server.dto.QuestionQueryDto;
import com.wrj.driver.server.entity.WrjQuestion;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wrj.driver.server.vo.QuestionVo;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -17,10 +18,13 @@ import java.util.Map;
* @author Automated procedures
* @since 2023-08-10
*/
+
+@Mapper
public interface WrjQuestionMapper extends BaseMapper {
/**
* 查询考题
+ *
* @param queryDto
* @return
*/
@@ -28,6 +32,7 @@ public interface WrjQuestionMapper extends BaseMapper {
/**
* 获取考题id
+ *
* @param queryDto
* @return
*/
@@ -35,6 +40,7 @@ public interface WrjQuestionMapper extends BaseMapper {
/**
* 随机查询考题
+ *
* @param queryDto
* @return
*/
@@ -42,6 +48,7 @@ public interface WrjQuestionMapper extends BaseMapper {
/**
* 随机查询考题Id
+ *
* @param queryDto
* @return
*/
@@ -51,6 +58,7 @@ public interface WrjQuestionMapper extends BaseMapper {
/**
* 获取各类里题目数量(目前肯嫩南瓜用不上,但暂时保留)
+ *
* @param queryDto
* @return
*/
@@ -58,8 +66,19 @@ public interface WrjQuestionMapper extends BaseMapper {
/**
* 获取车型最大排序
+ *
* @param carTypeId
* @return
*/
Integer queryMaxSort();
+
+ /**
+ * 更新答题信息
+ *
+ * @param questionId
+ * @param answerNum 答题次数
+ * @param rightNum 正确次数
+ * @return
+ */
+ int updateAnswerNumber(@Param("questionId") Long questionId, @Param("answerNum") int answerNum, @Param("rightNum") int rightNum);
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjQuestionPracticeMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjQuestionPracticeMapper.java
index 6e11569..87ffbdd 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjQuestionPracticeMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjQuestionPracticeMapper.java
@@ -2,6 +2,8 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjQuestionPractice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
/**
*
@@ -11,6 +13,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjQuestionPracticeMapper extends BaseMapper {
+ int clearPracticeRecord(@Param("userId") Long userId, @Param("practiceType") String practiceType);
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjQuestionTestMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjQuestionTestMapper.java
index 08550ae..b1c05ee 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjQuestionTestMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjQuestionTestMapper.java
@@ -4,6 +4,7 @@ import com.wrj.driver.server.dto.TestQueryDto;
import com.wrj.driver.server.vo.TestScoreVO;
import com.wrj.driver.server.entity.WrjQuestionTest;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -16,6 +17,8 @@ import java.util.List;
* @author Automated procedures
* @since 2023-08-10
*/
+
+@Mapper
public interface WrjQuestionTestMapper extends BaseMapper {
List getTestScore(@Param("param") TestQueryDto queryDto);
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjSchoolMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjSchoolMapper.java
index 35fbc44..d6dceb3 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjSchoolMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjSchoolMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjSchool;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjSchoolMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjSchoolModelMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjSchoolModelMapper.java
index bf0130f..afb7e60 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjSchoolModelMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjSchoolModelMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjSchoolModel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjSchoolModelMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjSchoolServiceMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjSchoolServiceMapper.java
index d8c9253..218c783 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjSchoolServiceMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjSchoolServiceMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjSchoolService;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjSchoolServiceMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjSchoolTagMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjSchoolTagMapper.java
index 3d132f9..a3e318e 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjSchoolTagMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjSchoolTagMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjSchoolTag;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjSchoolTagMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjSysConfigListMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjSysConfigListMapper.java
index 11353bf..dcba57a 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjSysConfigListMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjSysConfigListMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjSysConfigList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
*
@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2023-08-10
*/
+@Mapper
public interface WrjSysConfigListMapper extends BaseMapper {
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjSysConfigMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjSysConfigMapper.java
index ac28f94..79d4b13 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjSysConfigMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjSysConfigMapper.java
@@ -2,6 +2,7 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjSysConfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
@@ -12,6 +13,8 @@ import org.apache.ibatis.annotations.Param;
* @author Automated procedures
* @since 2023-08-10
*/
+
+@Mapper
public interface WrjSysConfigMapper extends BaseMapper {
void updateConfig(@Param("param") WrjSysConfig config);
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjTypeChapterMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjTypeChapterMapper.java
index a5afc53..8f52143 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjTypeChapterMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjTypeChapterMapper.java
@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wrj.driver.server.dto.BaseQueryDto;
import com.wrj.driver.server.entity.WrjTypeChapter;
import com.wrj.driver.server.vo.WrjTypeChapterVo;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
+@Mapper
public interface WrjTypeChapterMapper extends BaseMapper {
List queryWrjTypeChapter(@Param("param") BaseQueryDto queryDto1);
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjUserCollectQuestionMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjUserCollectQuestionMapper.java
index 8841d09..ae9cc96 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjUserCollectQuestionMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjUserCollectQuestionMapper.java
@@ -2,6 +2,8 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjUserCollectQuestion;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
/**
*
@@ -11,6 +13,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjUserCollectQuestionMapper extends BaseMapper {
+ WrjUserCollectQuestion selectByUserIdAndQuestionId(@Param("userId") Long userId, @Param("questionId") Long questionId);
+
+ int deleteByUserIdAndQuestionId(@Param("userId") Long userId, @Param("questionId") Long questionId);
}
diff --git a/src/main/java/com/wrj/driver/server/mapper/WrjUserErrorQuestionMapper.java b/src/main/java/com/wrj/driver/server/mapper/WrjUserErrorQuestionMapper.java
index 6f70d4e..815974f 100644
--- a/src/main/java/com/wrj/driver/server/mapper/WrjUserErrorQuestionMapper.java
+++ b/src/main/java/com/wrj/driver/server/mapper/WrjUserErrorQuestionMapper.java
@@ -2,6 +2,8 @@ package com.wrj.driver.server.mapper;
import com.wrj.driver.server.entity.WrjUserErrorQuestion;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
/**
*
@@ -11,6 +13,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author Automated procedures
* @since 2025-06-29
*/
+
+@Mapper
public interface WrjUserErrorQuestionMapper extends BaseMapper {
+ WrjUserErrorQuestion selectByUserIdAndQuestionId(@Param("userId") Long userId, @Param("questionId") Long questionId);
+
+ int deleteByUserIdAndQuestionId(@Param("userId") Long userId, @Param("questionId") Long questionId);
}
diff --git a/src/main/java/com/wrj/driver/server/service/IWrjQuestionPracticeService.java b/src/main/java/com/wrj/driver/server/service/IWrjQuestionPracticeService.java
index 5eef11f..a727540 100644
--- a/src/main/java/com/wrj/driver/server/service/IWrjQuestionPracticeService.java
+++ b/src/main/java/com/wrj/driver/server/service/IWrjQuestionPracticeService.java
@@ -1,5 +1,6 @@
package com.wrj.driver.server.service;
+import com.wrj.driver.server.dto.QuestionPracticeAddDto;
import com.wrj.driver.server.entity.WrjQuestionPractice;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -13,4 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IWrjQuestionPracticeService extends IService {
+ Boolean insertQuestionPractice(QuestionPracticeAddDto addDto);
+
+ Boolean clear(Long userId, String practiceType);
}
diff --git a/src/main/java/com/wrj/driver/server/service/IWrjUserCollectQuestionService.java b/src/main/java/com/wrj/driver/server/service/IWrjUserCollectQuestionService.java
index 3a6a6cd..6c13cda 100644
--- a/src/main/java/com/wrj/driver/server/service/IWrjUserCollectQuestionService.java
+++ b/src/main/java/com/wrj/driver/server/service/IWrjUserCollectQuestionService.java
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IWrjUserCollectQuestionService extends IService {
+ Boolean updateUserCollectQuestion(Long questionId, Long userId);
}
diff --git a/src/main/java/com/wrj/driver/server/service/IWrjUserErrorQuestionService.java b/src/main/java/com/wrj/driver/server/service/IWrjUserErrorQuestionService.java
index 2409d10..f1575f5 100644
--- a/src/main/java/com/wrj/driver/server/service/IWrjUserErrorQuestionService.java
+++ b/src/main/java/com/wrj/driver/server/service/IWrjUserErrorQuestionService.java
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IWrjUserErrorQuestionService extends IService {
+ Boolean remove(Long questionId, Long userId);
}
diff --git a/src/main/java/com/wrj/driver/server/service/impl/WrjQuestionPracticeServiceImpl.java b/src/main/java/com/wrj/driver/server/service/impl/WrjQuestionPracticeServiceImpl.java
index 51d3348..764225e 100644
--- a/src/main/java/com/wrj/driver/server/service/impl/WrjQuestionPracticeServiceImpl.java
+++ b/src/main/java/com/wrj/driver/server/service/impl/WrjQuestionPracticeServiceImpl.java
@@ -1,10 +1,22 @@
package com.wrj.driver.server.service.impl;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.wrj.driver.server.dto.QuestionPracticeAddDto;
+import com.wrj.driver.server.entity.WrjQuestion;
import com.wrj.driver.server.entity.WrjQuestionPractice;
+import com.wrj.driver.server.entity.WrjUserErrorQuestion;
+import com.wrj.driver.server.exception.BusinessException;
+import com.wrj.driver.server.mapper.WrjQuestionMapper;
import com.wrj.driver.server.mapper.WrjQuestionPracticeMapper;
+import com.wrj.driver.server.mapper.WrjUserErrorQuestionMapper;
import com.wrj.driver.server.service.IWrjQuestionPracticeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
/**
*
@@ -17,4 +29,57 @@ import org.springframework.stereotype.Service;
@Service
public class WrjQuestionPracticeServiceImpl extends ServiceImpl implements IWrjQuestionPracticeService {
+ @Autowired
+ private WrjQuestionMapper questionMapper;
+
+ @Autowired
+ private WrjQuestionPracticeMapper practiceMapper;
+
+ @Autowired
+ private WrjUserErrorQuestionMapper errorQuestionMapper;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insertQuestionPractice(QuestionPracticeAddDto addDto) {
+
+ WrjQuestion question = questionMapper.selectById(addDto.getQuestionId());
+ if (question == null) {
+ throw new BusinessException("题目不存在");
+ }
+
+ WrjQuestionPractice questionPractice = new WrjQuestionPractice();
+ BeanUtil.copyProperties(addDto, questionPractice);
+
+ // 插入练习
+ questionPractice.setPracticeTime(LocalDateTime.now());
+ practiceMapper.insert(questionPractice);
+
+ // 判断答题是否正确
+ boolean isTrue = StrUtil.equals(addDto.getAnswer(), question.getTrueAnswer());
+
+ questionMapper.updateAnswerNumber(addDto.getQuestionId(),1, (isTrue ? 1 : 0));
+
+ if (!isTrue) {
+ // 判断是否在错题本里(答题错误会加入错题本,答题正确不会移出)
+ WrjUserErrorQuestion userErrorQuestion = errorQuestionMapper.selectByUserIdAndQuestionId(addDto.getUserId(), addDto.getQuestionId());
+ if (userErrorQuestion == null) {
+ userErrorQuestion = new WrjUserErrorQuestion()
+ .setQuestionId(addDto.getQuestionId())
+ .setUserId(addDto.getUserId())
+ .setCreateTime(LocalDateTime.now());
+ // 将错误的答题加入错题本中
+ errorQuestionMapper.insert(userErrorQuestion);
+ }
+ }
+
+ return Boolean.TRUE;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean clear(Long userId, String practiceType) {
+ practiceMapper.clearPracticeRecord(userId, practiceType);
+
+ return Boolean.TRUE;
+ }
}
diff --git a/src/main/java/com/wrj/driver/server/service/impl/WrjUserCollectQuestionServiceImpl.java b/src/main/java/com/wrj/driver/server/service/impl/WrjUserCollectQuestionServiceImpl.java
index 641698c..93d6d26 100644
--- a/src/main/java/com/wrj/driver/server/service/impl/WrjUserCollectQuestionServiceImpl.java
+++ b/src/main/java/com/wrj/driver/server/service/impl/WrjUserCollectQuestionServiceImpl.java
@@ -1,10 +1,15 @@
package com.wrj.driver.server.service.impl;
import com.wrj.driver.server.entity.WrjUserCollectQuestion;
+import com.wrj.driver.server.entity.WrjUserErrorQuestion;
import com.wrj.driver.server.mapper.WrjUserCollectQuestionMapper;
import com.wrj.driver.server.service.IWrjUserCollectQuestionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
/**
*
@@ -17,4 +22,25 @@ import org.springframework.stereotype.Service;
@Service
public class WrjUserCollectQuestionServiceImpl extends ServiceImpl implements IWrjUserCollectQuestionService {
+ @Autowired
+ private WrjUserCollectQuestionMapper collectQuestionMapper;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean updateUserCollectQuestion(Long questionId, Long userId) {
+
+ // 判断用户之前是不是收藏了,已经收藏了调用则是取消收藏
+ WrjUserCollectQuestion userCollectQuestion = collectQuestionMapper.selectByUserIdAndQuestionId(userId, questionId);
+ if (userCollectQuestion == null){
+ userCollectQuestion = new WrjUserCollectQuestion()
+ .setQuestionId(questionId)
+ .setUserId(userId)
+ .setCreateTime(LocalDateTime.now());
+ collectQuestionMapper.insert(userCollectQuestion);
+ }
+
+ collectQuestionMapper.deleteByUserIdAndQuestionId(userId,questionId);
+
+ return Boolean.TRUE;
+ }
}
diff --git a/src/main/java/com/wrj/driver/server/service/impl/WrjUserErrorQuestionServiceImpl.java b/src/main/java/com/wrj/driver/server/service/impl/WrjUserErrorQuestionServiceImpl.java
index cf39cf1..693d334 100644
--- a/src/main/java/com/wrj/driver/server/service/impl/WrjUserErrorQuestionServiceImpl.java
+++ b/src/main/java/com/wrj/driver/server/service/impl/WrjUserErrorQuestionServiceImpl.java
@@ -4,7 +4,9 @@ import com.wrj.driver.server.entity.WrjUserErrorQuestion;
import com.wrj.driver.server.mapper.WrjUserErrorQuestionMapper;
import com.wrj.driver.server.service.IWrjUserErrorQuestionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
/**
*
@@ -17,4 +19,14 @@ import org.springframework.stereotype.Service;
@Service
public class WrjUserErrorQuestionServiceImpl extends ServiceImpl implements IWrjUserErrorQuestionService {
+ @Autowired
+ private WrjUserErrorQuestionMapper errorQuestionMapper;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean remove(Long questionId, Long userId) {
+
+ errorQuestionMapper.deleteByUserIdAndQuestionId(userId,questionId);
+
+ }
}
diff --git a/src/main/java/com/wrj/driver/server/util/SecurityUtil.java b/src/main/java/com/wrj/driver/server/util/SecurityUtil.java
index eaeb4ee..142aa6b 100644
--- a/src/main/java/com/wrj/driver/server/util/SecurityUtil.java
+++ b/src/main/java/com/wrj/driver/server/util/SecurityUtil.java
@@ -54,19 +54,4 @@ public class SecurityUtil {
return userId;
}
-
- /**
- * 获取当前登录人用户的分销人员信息
- * @return
- */
- public static String getDistributionId() {
- SecurityUser loginUser = SecurityUtil.getLoginUser();
- if (null != loginUser) {
- return loginUser.getDistributionId();
- }
-
- return null;
- }
-
-
}
diff --git a/src/main/resources/mapper/WrjQuestionMapper.xml b/src/main/resources/mapper/WrjQuestionMapper.xml
index c986c5a..9df6a77 100644
--- a/src/main/resources/mapper/WrjQuestionMapper.xml
+++ b/src/main/resources/mapper/WrjQuestionMapper.xml
@@ -122,6 +122,13 @@
where question_id = #{questionVo.questionId}
+
+ update wrj_question
+ set answer_number = answer_number + #{answerNum},
+ right_number = right_number + #{rightNum}
+ where question_id = #{questionId}
+
+