From 31e29202cf130b684be08f1509d1e1c05f4974c2 Mon Sep 17 00:00:00 2001 From: caolin <1149034574@qq.com> Date: Mon, 30 Jun 2025 22:35:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=94=E9=A2=98=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WrjQuestionPracticeController.java | 34 +++++++++- .../WrjUserCollectQuestionController.java | 21 +++++- .../WrjUserErrorQuestionController.java | 19 ++++++ .../server/dto/QuestionPracticeAddDto.java | 61 +++++++++++++++++ .../wrj/driver/server/dto/SecurityUser.java | 7 -- .../wrj/driver/server/entity/WrjQuestion.java | 13 ++++ .../server/entity/WrjQuestionPractice.java | 2 +- .../server/mapper/SysUserLogMapper.java | 2 + .../driver/server/mapper/SysUserMapper.java | 3 + .../server/mapper/WrjChapterMapper.java | 3 + .../server/mapper/WrjDriverTypeMapper.java | 3 + .../server/mapper/WrjExamPlaceMapper.java | 3 + .../driver/server/mapper/WrjModelMapper.java | 3 + .../server/mapper/WrjQuestionMapper.java | 19 ++++++ .../mapper/WrjQuestionPracticeMapper.java | 5 ++ .../server/mapper/WrjQuestionTestMapper.java | 3 + .../driver/server/mapper/WrjSchoolMapper.java | 3 + .../server/mapper/WrjSchoolModelMapper.java | 3 + .../server/mapper/WrjSchoolServiceMapper.java | 3 + .../server/mapper/WrjSchoolTagMapper.java | 3 + .../server/mapper/WrjSysConfigListMapper.java | 2 + .../server/mapper/WrjSysConfigMapper.java | 3 + .../server/mapper/WrjTypeChapterMapper.java | 2 + .../mapper/WrjUserCollectQuestionMapper.java | 7 ++ .../mapper/WrjUserErrorQuestionMapper.java | 7 ++ .../service/IWrjQuestionPracticeService.java | 4 ++ .../IWrjUserCollectQuestionService.java | 1 + .../service/IWrjUserErrorQuestionService.java | 1 + .../impl/WrjQuestionPracticeServiceImpl.java | 65 +++++++++++++++++++ .../WrjUserCollectQuestionServiceImpl.java | 26 ++++++++ .../impl/WrjUserErrorQuestionServiceImpl.java | 12 ++++ .../wrj/driver/server/util/SecurityUtil.java | 15 ----- .../resources/mapper/WrjQuestionMapper.xml | 7 ++ .../mapper/WrjQuestionPracticeMapper.xml | 6 ++ .../mapper/WrjUserCollectQuestionMapper.xml | 12 ++++ .../mapper/WrjUserErrorQuestionMapper.xml | 12 ++++ 36 files changed, 368 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/wrj/driver/server/dto/QuestionPracticeAddDto.java 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; + +/** + *

+ * 用户答题练习表入参 + *

+ * + * @author Automated procedures + * @since 2025-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel("答题练习入参") +public class QuestionPracticeAddDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 题目标识 + */ + @ApiModelProperty(value = "题目标识",required = true) + @NotNull(message = "题目标识不能为空") + private Long questionId; + + /** + * 用户标识 + */ + @ApiModelProperty("用户标识") + private Long userId; + + /** + * 答题类型 1-顺序练习 2-章节练习 3-随机练习 4-模拟考试 + */ + @ApiModelProperty(value = "答题类型 1-顺序练习 2-章节练习 3-随机练习 4-模拟考试 5-错题训练 6-收藏训练",required = true) + @NotBlank(message = "答题类型不能为空") + private String practiceType; + + /** + * 用户选择的答案 + */ + @ApiModelProperty("用户选择的答案") + @NotBlank(message = "答案不能为空") + private String answer; + + /** + * 业务标识,顺序练习对应顺序练习批次,模拟考试对应考试test_id + */ + @ApiModelProperty("业务标识,顺序练习对应顺序练习批次,模拟考试对应考试test_id") + private Long businessCode; +} diff --git a/src/main/java/com/wrj/driver/server/dto/SecurityUser.java b/src/main/java/com/wrj/driver/server/dto/SecurityUser.java index b0f6301..79e0022 100644 --- a/src/main/java/com/wrj/driver/server/dto/SecurityUser.java +++ b/src/main/java/com/wrj/driver/server/dto/SecurityUser.java @@ -28,11 +28,4 @@ public class SecurityUser implements Serializable { */ private String token; - - /** - * 分下人员id - */ - private String distributionId; - - } diff --git a/src/main/java/com/wrj/driver/server/entity/WrjQuestion.java b/src/main/java/com/wrj/driver/server/entity/WrjQuestion.java index e98aad7..7b88cc7 100644 --- a/src/main/java/com/wrj/driver/server/entity/WrjQuestion.java +++ b/src/main/java/com/wrj/driver/server/entity/WrjQuestion.java @@ -184,4 +184,17 @@ public class WrjQuestion implements Serializable { @TableField("d_words") private String dWords; + /** + * 答题次数 + */ + @TableField("answer_number") + private Long answerNumber; + + + /** + * 答题正确次数 + */ + @TableField("right_number") + private Long rightNumber; + } diff --git a/src/main/java/com/wrj/driver/server/entity/WrjQuestionPractice.java b/src/main/java/com/wrj/driver/server/entity/WrjQuestionPractice.java index dfde3a5..c16890d 100644 --- a/src/main/java/com/wrj/driver/server/entity/WrjQuestionPractice.java +++ b/src/main/java/com/wrj/driver/server/entity/WrjQuestionPractice.java @@ -46,7 +46,7 @@ public class WrjQuestionPractice implements Serializable { private Long userId; /** - * 练习类型 1-顺序练习 2-章节练习 3-随机练习 4-模拟考试 + * 练习类型 1-顺序练习 2-章节练习 3-随机练习 4-模拟考试 5-错题训练 6-收藏训练 */ @TableField("practice_type") private String practiceType; diff --git a/src/main/java/com/wrj/driver/server/mapper/SysUserLogMapper.java b/src/main/java/com/wrj/driver/server/mapper/SysUserLogMapper.java index 6e0900d..a6019a7 100644 --- a/src/main/java/com/wrj/driver/server/mapper/SysUserLogMapper.java +++ b/src/main/java/com/wrj/driver/server/mapper/SysUserLogMapper.java @@ -2,6 +2,8 @@ package com.wrj.driver.server.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wrj.driver.server.entity.SysUserLog; +import org.apache.ibatis.annotations.Mapper; +@Mapper public interface SysUserLogMapper extends BaseMapper { } 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} + + + select + * + from wrj_user_collect_question + where user_id = #{userId} and question_id = #{questionId} + + + + delete from wrj_user_collect_question + where user_id = #{userId} and question_id = #{questionId} + diff --git a/src/main/resources/mapper/WrjUserErrorQuestionMapper.xml b/src/main/resources/mapper/WrjUserErrorQuestionMapper.xml index 79d1df1..12d9870 100644 --- a/src/main/resources/mapper/WrjUserErrorQuestionMapper.xml +++ b/src/main/resources/mapper/WrjUserErrorQuestionMapper.xml @@ -2,4 +2,16 @@ + + + + delete from wrj_user_error_question + where user_id = #{userId} and question_id = #{questionId} +