From 00d4f131f12eac51257e004ad499b5669596a71f Mon Sep 17 00:00:00 2001 From: caolin <1149034574@qq.com> Date: Mon, 21 Aug 2023 01:46:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=A7=86=E9=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 ++ .../jwl/driver/server/constant/Constants.java | 4 +- .../controller/TdProjectController.java | 36 ++++++++ .../controller/TdQuestionTestController.java | 10 +- .../controller/TdTestProjectController.java | 20 ---- .../TdTestProjectVideosController.java | 20 ---- .../com/jwl/driver/server/dto/ProjectDto.java | 55 +++++++++++ .../jwl/driver/server/dto/TestQueryDto.java | 35 +++++++ .../jwl/driver/server/dto/TestSubmitDto.java | 7 ++ .../jwl/driver/server/entity/TdMember.java | 4 +- .../{TdTestProject.java => TdProject.java} | 18 +++- .../driver/server/entity/TdQuestionTest.java | 6 ++ .../server/entity/TdTestProjectVideos.java | 62 ------------- .../server/generator/MysqlParamGenerator.java | 8 +- ...rojectMapper.java => TdProjectMapper.java} | 4 +- .../mapper/TdTestProjectVideosMapper.java | 16 ---- .../server/service/ITdProjectService.java | 26 ++++++ .../service/ITdQuestionTestService.java | 11 ++- .../server/service/ITdTestProjectService.java | 16 ---- .../service/ITdTestProjectVideosService.java | 16 ---- .../service/impl/TdProjectServiceImpl.java | 65 +++++++++++++ .../service/impl/TdQuestionServiceImpl.java | 6 +- .../impl/TdQuestionTestServiceImpl.java | 45 ++++++++- .../impl/TdTestProjectServiceImpl.java | 20 ---- .../impl/TdTestProjectVideosServiceImpl.java | 20 ---- .../com/jwl/driver/server/vo/MemberVo.java | 2 +- .../com/jwl/driver/server/vo/ProjectVo.java | 91 +++++++++++++++++++ .../com/jwl/driver/server/vo/TestTotalVo.java | 47 ++++++++++ src/main/resources/mapper/TdMemberMapper.xml | 4 +- ...tProjectMapper.xml => TdProjectMapper.xml} | 2 +- .../mapper/TdTestProjectVideosMapper.xml | 5 - 31 files changed, 466 insertions(+), 222 deletions(-) create mode 100644 src/main/java/com/jwl/driver/server/controller/TdProjectController.java delete mode 100644 src/main/java/com/jwl/driver/server/controller/TdTestProjectController.java delete mode 100644 src/main/java/com/jwl/driver/server/controller/TdTestProjectVideosController.java create mode 100644 src/main/java/com/jwl/driver/server/dto/ProjectDto.java create mode 100644 src/main/java/com/jwl/driver/server/dto/TestQueryDto.java rename src/main/java/com/jwl/driver/server/entity/{TdTestProject.java => TdProject.java} (81%) delete mode 100644 src/main/java/com/jwl/driver/server/entity/TdTestProjectVideos.java rename src/main/java/com/jwl/driver/server/mapper/{TdTestProjectMapper.java => TdProjectMapper.java} (63%) delete mode 100644 src/main/java/com/jwl/driver/server/mapper/TdTestProjectVideosMapper.java create mode 100644 src/main/java/com/jwl/driver/server/service/ITdProjectService.java delete mode 100644 src/main/java/com/jwl/driver/server/service/ITdTestProjectService.java delete mode 100644 src/main/java/com/jwl/driver/server/service/ITdTestProjectVideosService.java create mode 100644 src/main/java/com/jwl/driver/server/service/impl/TdProjectServiceImpl.java delete mode 100644 src/main/java/com/jwl/driver/server/service/impl/TdTestProjectServiceImpl.java delete mode 100644 src/main/java/com/jwl/driver/server/service/impl/TdTestProjectVideosServiceImpl.java create mode 100644 src/main/java/com/jwl/driver/server/vo/ProjectVo.java create mode 100644 src/main/java/com/jwl/driver/server/vo/TestTotalVo.java rename src/main/resources/mapper/{TdTestProjectMapper.xml => TdProjectMapper.xml} (69%) delete mode 100644 src/main/resources/mapper/TdTestProjectVideosMapper.xml diff --git a/pom.xml b/pom.xml index b4f1f7d..0fbd9a6 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,13 @@ ${mybatis-plus-boot-starter.version} + + org.freemarker + freemarker + 2.3.28 + compile + + com.baomidou mybatis-plus-generator diff --git a/src/main/java/com/jwl/driver/server/constant/Constants.java b/src/main/java/com/jwl/driver/server/constant/Constants.java index 6291082..f702683 100644 --- a/src/main/java/com/jwl/driver/server/constant/Constants.java +++ b/src/main/java/com/jwl/driver/server/constant/Constants.java @@ -35,10 +35,10 @@ public class Constants { //科目四 public static String SUBJECT_FOUR = "4"; - //单选题 + //判断题 public static String QUESTION_TYPE_ONE = "1"; - //判断题 + //单选题 public static String QUESTION_TYPE_TWO = "2"; //多选题 diff --git a/src/main/java/com/jwl/driver/server/controller/TdProjectController.java b/src/main/java/com/jwl/driver/server/controller/TdProjectController.java new file mode 100644 index 0000000..e98f399 --- /dev/null +++ b/src/main/java/com/jwl/driver/server/controller/TdProjectController.java @@ -0,0 +1,36 @@ +package com.jwl.driver.server.controller; + + +import com.jwl.driver.server.dto.ProjectDto; +import com.jwl.driver.server.response.BaseResponse; +import com.jwl.driver.server.service.ITdProjectService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + *

+ * 考试项目表; 前端控制器 + *

+ * + * @author Automated procedures + * @since 2023-08-10 + */ +@Api(tags = "考试项目") +@RestController +@RequestMapping("/tdTestProject") +@Slf4j +public class TdProjectController { + + @Autowired + private ITdProjectService projectService; + + @ApiOperation("获取项目列表 (考试项目和基础操作)") + @PostMapping("/queryProjectList") + public BaseResponse list(@RequestBody ProjectDto projectDto) { + log.info("获取考试项目=========》projectDto{}",projectDto); + return BaseResponse.success(projectService.queryProjectList(projectDto)); + } +} diff --git a/src/main/java/com/jwl/driver/server/controller/TdQuestionTestController.java b/src/main/java/com/jwl/driver/server/controller/TdQuestionTestController.java index 55a877f..2d27c6b 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdQuestionTestController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdQuestionTestController.java @@ -2,6 +2,7 @@ package com.jwl.driver.server.controller; import com.jwl.driver.server.dto.QuestionQueryDto; +import com.jwl.driver.server.dto.TestQueryDto; import com.jwl.driver.server.dto.TestSubmitDto; import com.jwl.driver.server.response.BaseResponse; import com.jwl.driver.server.service.ITdQuestionService; @@ -40,7 +41,10 @@ public class TdQuestionTestController { return BaseResponse.success(testService.testSubmit(submitDto)); } - - - + @ApiOperation("获取考试统计") + @PostMapping("/testTotal") + public BaseResponse testTotal(@RequestBody @Valid TestQueryDto queryDto) { + log.info("考试统计查询======>queryDto:{}", queryDto); + return BaseResponse.success(testService.testTotal(queryDto)); + } } diff --git a/src/main/java/com/jwl/driver/server/controller/TdTestProjectController.java b/src/main/java/com/jwl/driver/server/controller/TdTestProjectController.java deleted file mode 100644 index 7d74518..0000000 --- a/src/main/java/com/jwl/driver/server/controller/TdTestProjectController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.jwl.driver.server.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.stereotype.Controller; - -/** - *

- * 考试项目表; 前端控制器 - *

- * - * @author Automated procedures - * @since 2023-08-10 - */ -@Controller -@RequestMapping("//tdTestProject") -public class TdTestProjectController { - -} diff --git a/src/main/java/com/jwl/driver/server/controller/TdTestProjectVideosController.java b/src/main/java/com/jwl/driver/server/controller/TdTestProjectVideosController.java deleted file mode 100644 index bb0ff82..0000000 --- a/src/main/java/com/jwl/driver/server/controller/TdTestProjectVideosController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.jwl.driver.server.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.stereotype.Controller; - -/** - *

- * 视频标识表; 前端控制器 - *

- * - * @author Automated procedures - * @since 2023-08-10 - */ -@Controller -@RequestMapping("//tdTestProjectVideos") -public class TdTestProjectVideosController { - -} diff --git a/src/main/java/com/jwl/driver/server/dto/ProjectDto.java b/src/main/java/com/jwl/driver/server/dto/ProjectDto.java new file mode 100644 index 0000000..33334dd --- /dev/null +++ b/src/main/java/com/jwl/driver/server/dto/ProjectDto.java @@ -0,0 +1,55 @@ +package com.jwl.driver.server.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * 考试项目查询; + *

+ * + * @author Automated procedures + * @since 2023-08-10 + */ +@Data +@Accessors(chain = true) +@ApiModel("考试项目查询入参") +public class ProjectDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 考试项目 + */ + @ApiModelProperty("考试项目") + private Integer projectId; + + /** + * 类型 + */ + @ApiModelProperty("类型 1:考试项目 2:基础操作") + private String type; + + /** + * 所属科目 + */ + @ApiModelProperty("所属科目") + private String subject; + + /** + * 车型标识 + */ + @ApiModelProperty("车型标识") + private Integer carTypeId; + + /** + * 驾驶类型,手动挡,自动挡,A2:B2等(在字典表里配置) + */ + @ApiModelProperty("驾驶类型") + private String driveType; + +} diff --git a/src/main/java/com/jwl/driver/server/dto/TestQueryDto.java b/src/main/java/com/jwl/driver/server/dto/TestQueryDto.java new file mode 100644 index 0000000..4214069 --- /dev/null +++ b/src/main/java/com/jwl/driver/server/dto/TestQueryDto.java @@ -0,0 +1,35 @@ +package com.jwl.driver.server.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +/** + * @author 曹林 + * @description 成绩查询入参 + * @create 2023/8/14 21:22 + */ +@Data +@Accessors(chain = true) +@ApiModel("成绩查询入参") +public class TestQueryDto { + + /** + * 车型标识 + */ + @ApiModelProperty(value = "车型标识",required = true) + @NotNull(message = "车型标识不能为空") + private Integer carTypeId; + + /** + * 科目 + */ + @ApiModelProperty(value = "科目",required = true) + @NotNull(message = "考试科目不能为空") + private String subject ; +} diff --git a/src/main/java/com/jwl/driver/server/dto/TestSubmitDto.java b/src/main/java/com/jwl/driver/server/dto/TestSubmitDto.java index bf4040c..437643a 100644 --- a/src/main/java/com/jwl/driver/server/dto/TestSubmitDto.java +++ b/src/main/java/com/jwl/driver/server/dto/TestSubmitDto.java @@ -28,6 +28,13 @@ public class TestSubmitDto { @NotNull(message = "车型标识不能为空") private Integer carTypeId; + /** + * 科目 + */ + @ApiModelProperty(value = "科目",required = true) + @NotNull(message = "考试科目不能为空") + private String subject ; + /** * 考试得分 */ diff --git a/src/main/java/com/jwl/driver/server/entity/TdMember.java b/src/main/java/com/jwl/driver/server/entity/TdMember.java index d018f4b..5bed54f 100644 --- a/src/main/java/com/jwl/driver/server/entity/TdMember.java +++ b/src/main/java/com/jwl/driver/server/entity/TdMember.java @@ -76,8 +76,8 @@ public class TdMember implements Serializable { /** * 会员描述 */ - @TableField("DESC") - private String desc; + @TableField("DESCRIPTION") + private String DESCRIPTION; /** * 创建时间 diff --git a/src/main/java/com/jwl/driver/server/entity/TdTestProject.java b/src/main/java/com/jwl/driver/server/entity/TdProject.java similarity index 81% rename from src/main/java/com/jwl/driver/server/entity/TdTestProject.java rename to src/main/java/com/jwl/driver/server/entity/TdProject.java index 570a824..0ad2bfa 100644 --- a/src/main/java/com/jwl/driver/server/entity/TdTestProject.java +++ b/src/main/java/com/jwl/driver/server/entity/TdProject.java @@ -19,15 +19,21 @@ import lombok.experimental.Accessors; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -public class TdTestProject implements Serializable { +public class TdProject implements Serializable { private static final long serialVersionUID = 1L; /** * 考试项目 */ - @TableId("TEST_PROJECT_ID") - private Integer testProjectId; + @TableId("PROJECT_ID") + private Integer projectId; + + /** + * 类型 + */ + @TableField("TYPE") + private String type; /** * 所属科目 @@ -47,6 +53,12 @@ public class TdTestProject implements Serializable { @TableField("DRIVE_TYPE") private String driveType; + /** + * 描述 + */ + @TableField("DESCRIPTION") + private String description; + /** * 创建时间 */ diff --git a/src/main/java/com/jwl/driver/server/entity/TdQuestionTest.java b/src/main/java/com/jwl/driver/server/entity/TdQuestionTest.java index 4421327..14e5283 100644 --- a/src/main/java/com/jwl/driver/server/entity/TdQuestionTest.java +++ b/src/main/java/com/jwl/driver/server/entity/TdQuestionTest.java @@ -36,6 +36,12 @@ public class TdQuestionTest implements Serializable { @TableField("CAR_TYPE_ID") private Integer carTypeId; + /** + * 考试科目 + */ + @TableField("SUBJECT") + private String subject; + /** * 用户标识 */ diff --git a/src/main/java/com/jwl/driver/server/entity/TdTestProjectVideos.java b/src/main/java/com/jwl/driver/server/entity/TdTestProjectVideos.java deleted file mode 100644 index cf66a9f..0000000 --- a/src/main/java/com/jwl/driver/server/entity/TdTestProjectVideos.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.jwl.driver.server.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableField; -import java.io.Serializable; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - *

- * 视频标识表; - *

- * - * @author Automated procedures - * @since 2023-08-10 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -public class TdTestProjectVideos implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 视频标识 - */ - @TableId(value = "VIDEO_ID", type = IdType.AUTO) - private Integer videoId; - - /** - * 考试项目 - */ - @TableField("TEST_PROJECT_ID") - private Integer testProjectId; - - /** - * 视频图片 - */ - private String videoImage; - - /** - * 视频链接 - */ - private String videoUrl; - - /** - * 创建时间 - */ - @TableField("CREATE_TIME") - private LocalDateTime createTime; - - /** - * 是否生效 - */ - @TableField("IS_ACTIVE") - private String isActive; - - -} diff --git a/src/main/java/com/jwl/driver/server/generator/MysqlParamGenerator.java b/src/main/java/com/jwl/driver/server/generator/MysqlParamGenerator.java index 78da371..b8a2a8c 100644 --- a/src/main/java/com/jwl/driver/server/generator/MysqlParamGenerator.java +++ b/src/main/java/com/jwl/driver/server/generator/MysqlParamGenerator.java @@ -1,15 +1,15 @@ package com.jwl.driver.server.generator; public class MysqlParamGenerator { - private static final String host = "127.0.0.1:3306"; - private static final String database = "driver_test"; + private static final String host = "118.31.23.45"; + private static final String database = "driver_server"; private static final String url = "jdbc:mysql://" + host + "/" + database + "?characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai&failOverReadOnly=false"; private static final String userName = "root"; - private static final String password = "123456"; + private static final String password = "admin231280"; private static final String module = "com.jwl.driver.server"; // projectPath项为空即可 - private static final String projectPath = "/driver-server"; + private static final String projectPath = ""; // todo 实体类是否继承基础类-具备开始时间和结束时间实体类的基础属性 private static final String superEntityClass = ""; diff --git a/src/main/java/com/jwl/driver/server/mapper/TdTestProjectMapper.java b/src/main/java/com/jwl/driver/server/mapper/TdProjectMapper.java similarity index 63% rename from src/main/java/com/jwl/driver/server/mapper/TdTestProjectMapper.java rename to src/main/java/com/jwl/driver/server/mapper/TdProjectMapper.java index 6351efb..fa0789f 100644 --- a/src/main/java/com/jwl/driver/server/mapper/TdTestProjectMapper.java +++ b/src/main/java/com/jwl/driver/server/mapper/TdProjectMapper.java @@ -1,6 +1,6 @@ package com.jwl.driver.server.mapper; -import com.jwl.driver.server.entity.TdTestProject; +import com.jwl.driver.server.entity.TdProject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** @@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @author Automated procedures * @since 2023-08-10 */ -public interface TdTestProjectMapper extends BaseMapper { +public interface TdProjectMapper extends BaseMapper { } diff --git a/src/main/java/com/jwl/driver/server/mapper/TdTestProjectVideosMapper.java b/src/main/java/com/jwl/driver/server/mapper/TdTestProjectVideosMapper.java deleted file mode 100644 index 85e8021..0000000 --- a/src/main/java/com/jwl/driver/server/mapper/TdTestProjectVideosMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.jwl.driver.server.mapper; - -import com.jwl.driver.server.entity.TdTestProjectVideos; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -/** - *

- * 视频标识表; Mapper 接口 - *

- * - * @author Automated procedures - * @since 2023-08-10 - */ -public interface TdTestProjectVideosMapper extends BaseMapper { - -} diff --git a/src/main/java/com/jwl/driver/server/service/ITdProjectService.java b/src/main/java/com/jwl/driver/server/service/ITdProjectService.java new file mode 100644 index 0000000..1b5550a --- /dev/null +++ b/src/main/java/com/jwl/driver/server/service/ITdProjectService.java @@ -0,0 +1,26 @@ +package com.jwl.driver.server.service; + +import com.jwl.driver.server.dto.ProjectDto; +import com.jwl.driver.server.entity.TdProject; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jwl.driver.server.vo.ProjectVo; + +import java.util.List; + +/** + *

+ * 考试项目表; 服务类 + *

+ * + * @author Automated procedures + * @since 2023-08-10 + */ +public interface ITdProjectService extends IService { + + /** + * 获取考试项目列表 + * @param queryDto + * @return + */ + List queryProjectList(ProjectDto queryDto); +} diff --git a/src/main/java/com/jwl/driver/server/service/ITdQuestionTestService.java b/src/main/java/com/jwl/driver/server/service/ITdQuestionTestService.java index 10151c8..6d8e4a7 100644 --- a/src/main/java/com/jwl/driver/server/service/ITdQuestionTestService.java +++ b/src/main/java/com/jwl/driver/server/service/ITdQuestionTestService.java @@ -1,8 +1,10 @@ package com.jwl.driver.server.service; +import com.jwl.driver.server.dto.TestQueryDto; import com.jwl.driver.server.dto.TestSubmitDto; import com.jwl.driver.server.entity.TdQuestionTest; import com.baomidou.mybatisplus.extension.service.IService; +import com.jwl.driver.server.vo.TestTotalVo; /** *

@@ -19,5 +21,12 @@ public interface ITdQuestionTestService extends IService { * @param submitDto * @return */ - Boolean testSubmit(TestSubmitDto submitDto); + TdQuestionTest testSubmit(TestSubmitDto submitDto); + + /** + * 考试成绩统计 + * @param queryDto + * @return + */ + TestTotalVo testTotal(TestQueryDto queryDto); } diff --git a/src/main/java/com/jwl/driver/server/service/ITdTestProjectService.java b/src/main/java/com/jwl/driver/server/service/ITdTestProjectService.java deleted file mode 100644 index 8c15668..0000000 --- a/src/main/java/com/jwl/driver/server/service/ITdTestProjectService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.jwl.driver.server.service; - -import com.jwl.driver.server.entity.TdTestProject; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - *

- * 考试项目表; 服务类 - *

- * - * @author Automated procedures - * @since 2023-08-10 - */ -public interface ITdTestProjectService extends IService { - -} diff --git a/src/main/java/com/jwl/driver/server/service/ITdTestProjectVideosService.java b/src/main/java/com/jwl/driver/server/service/ITdTestProjectVideosService.java deleted file mode 100644 index 6a143c8..0000000 --- a/src/main/java/com/jwl/driver/server/service/ITdTestProjectVideosService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.jwl.driver.server.service; - -import com.jwl.driver.server.entity.TdTestProjectVideos; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - *

- * 视频标识表; 服务类 - *

- * - * @author Automated procedures - * @since 2023-08-10 - */ -public interface ITdTestProjectVideosService extends IService { - -} diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdProjectServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdProjectServiceImpl.java new file mode 100644 index 0000000..53eb08a --- /dev/null +++ b/src/main/java/com/jwl/driver/server/service/impl/TdProjectServiceImpl.java @@ -0,0 +1,65 @@ +package com.jwl.driver.server.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jwl.driver.server.constant.Constants; +import com.jwl.driver.server.dto.ProjectDto; +import com.jwl.driver.server.entity.TdProject; +import com.jwl.driver.server.entity.TdVideos; +import com.jwl.driver.server.mapper.TdProjectMapper; +import com.jwl.driver.server.service.ITdProjectService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jwl.driver.server.service.ITdVideosService; +import com.jwl.driver.server.vo.ProjectVo; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 考试项目表; 服务实现类 + *

+ * + * @author Automated procedures + * @since 2023-08-10 + */ +@Service +public class TdProjectServiceImpl extends ServiceImpl implements ITdProjectService { + + @Autowired + private ITdVideosService videosService; + + @Override + public List queryProjectList(ProjectDto queryDto) { + + List resultList = new ArrayList<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(TdProject::getProjectId,queryDto.getProjectId()) + .eq(TdProject::getType,queryDto.getType()) + .eq(TdProject::getCarTypeId,queryDto.getCarTypeId()) + .eq(TdProject::getSubject,queryDto.getSubject()) + .eq(TdProject::getDriveType,queryDto.getDriveType()) + .eq(TdProject::getIsActive, Constants.IS_ACTIVE_TRUE) + .orderByAsc(TdProject::getShowOrder); + List tdProjects = this.getBaseMapper().selectList(queryWrapper); + + if (CollectionUtil.isNotEmpty(tdProjects)){ + for (TdProject tdProject : tdProjects) { + ProjectVo projectVo = new ProjectVo(); + BeanUtils.copyProperties(tdProject,projectVo); + //查询项目视频 + List videoList = videosService.list(new QueryWrapper().lambda().eq(TdVideos::getTypeId, tdProject.getProjectId()).orderByAsc(TdVideos::getShowOrder)); + if (CollectionUtil.isNotEmpty(videoList)){ + projectVo.setVideoList(videoList); + projectVo.setImageUrl(videoList.get(0).getVideoImage()); + } + resultList.add(projectVo); + } + } + return resultList; + } +} diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdQuestionServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdQuestionServiceImpl.java index 4690480..fa456e3 100644 --- a/src/main/java/com/jwl/driver/server/service/impl/TdQuestionServiceImpl.java +++ b/src/main/java/com/jwl/driver/server/service/impl/TdQuestionServiceImpl.java @@ -67,11 +67,11 @@ public class TdQuestionServiceImpl extends ServiceImpl optionList = new ArrayList<>(); - if (StrUtil.isBlank(questionVo.getChooseA())){ + if (StrUtil.isBlank(questionVo.getChooseA()) || StrUtil.equals(questionVo.getType(),Constants.QUESTION_TYPE_ONE)){ optionList.add(new QuestionVo.QuestionOption("A","正确","1")); optionList.add(new QuestionVo.QuestionOption("B","错误","2")); }else { diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdQuestionTestServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdQuestionTestServiceImpl.java index e4d64e8..0522ee7 100644 --- a/src/main/java/com/jwl/driver/server/service/impl/TdQuestionTestServiceImpl.java +++ b/src/main/java/com/jwl/driver/server/service/impl/TdQuestionTestServiceImpl.java @@ -1,17 +1,26 @@ package com.jwl.driver.server.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jwl.driver.server.dto.SecurityUser; +import com.jwl.driver.server.dto.TestQueryDto; import com.jwl.driver.server.dto.TestSubmitDto; import com.jwl.driver.server.entity.TdQuestionTest; import com.jwl.driver.server.mapper.TdQuestionTestMapper; import com.jwl.driver.server.service.ITdQuestionTestService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jwl.driver.server.util.SecurityUtil; +import com.jwl.driver.server.vo.TestTotalVo; +import io.swagger.models.auth.In; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.OptionalDouble; /** *

@@ -26,13 +35,43 @@ public class TdQuestionTestServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper() + .eq(TdQuestionTest::getCarTypeId, queryDto.getCarTypeId()) + .eq(TdQuestionTest::getSubject, queryDto.getSubject()) + .eq(TdQuestionTest::getUserId, SecurityUtil.getUserId()) + .orderByDesc(TdQuestionTest::getCreateTime); + + List list = this.list(queryWrapper); + Long passNum = list.stream().filter(s -> s.getScore() >= 90).count(); + testTotalVo.setTestNum(list.size()) + .setPassNum(passNum.intValue()); + //取最近的五次 + if (CollectionUtil.isNotEmpty(list) && list.size() > 5) { + list = list.subList(0, 5); + } + List recentTestList = CollectionUtil.reverse(list); + //最近五次的平均分 + OptionalDouble averaged = recentTestList.stream().mapToInt(TdQuestionTest::getScore).average(); + Integer average = 0; + if (averaged.isPresent()){ + Double averageScore = averaged.getAsDouble(); + average = averageScore.intValue(); + } + testTotalVo.setRecentTestList(recentTestList) + .setRecentAverageScore(average); + return testTotalVo; } } diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdTestProjectServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdTestProjectServiceImpl.java deleted file mode 100644 index 04835ac..0000000 --- a/src/main/java/com/jwl/driver/server/service/impl/TdTestProjectServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.jwl.driver.server.service.impl; - -import com.jwl.driver.server.entity.TdTestProject; -import com.jwl.driver.server.mapper.TdTestProjectMapper; -import com.jwl.driver.server.service.ITdTestProjectService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -/** - *

- * 考试项目表; 服务实现类 - *

- * - * @author Automated procedures - * @since 2023-08-10 - */ -@Service -public class TdTestProjectServiceImpl extends ServiceImpl implements ITdTestProjectService { - -} diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdTestProjectVideosServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdTestProjectVideosServiceImpl.java deleted file mode 100644 index b39162d..0000000 --- a/src/main/java/com/jwl/driver/server/service/impl/TdTestProjectVideosServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.jwl.driver.server.service.impl; - -import com.jwl.driver.server.entity.TdTestProjectVideos; -import com.jwl.driver.server.mapper.TdTestProjectVideosMapper; -import com.jwl.driver.server.service.ITdTestProjectVideosService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -/** - *

- * 视频标识表; 服务实现类 - *

- * - * @author Automated procedures - * @since 2023-08-10 - */ -@Service -public class TdTestProjectVideosServiceImpl extends ServiceImpl implements ITdTestProjectVideosService { - -} diff --git a/src/main/java/com/jwl/driver/server/vo/MemberVo.java b/src/main/java/com/jwl/driver/server/vo/MemberVo.java index 2ac7576..1263ddd 100644 --- a/src/main/java/com/jwl/driver/server/vo/MemberVo.java +++ b/src/main/java/com/jwl/driver/server/vo/MemberVo.java @@ -89,7 +89,7 @@ public class MemberVo { * 会员描述 */ @ApiModelProperty("会员描述") - private String desc; + private String description; /** * 是否生效 diff --git a/src/main/java/com/jwl/driver/server/vo/ProjectVo.java b/src/main/java/com/jwl/driver/server/vo/ProjectVo.java new file mode 100644 index 0000000..28ee556 --- /dev/null +++ b/src/main/java/com/jwl/driver/server/vo/ProjectVo.java @@ -0,0 +1,91 @@ +package com.jwl.driver.server.vo; + + +import com.jwl.driver.server.entity.TdVideos; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + *

+ * 考试项目表; + *

+ * + * @author Automated procedures + * @since 2023-08-10 + */ +@Data +@Accessors(chain = true) +@ApiModel("考试项目出参") +public class ProjectVo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 考试项目 + */ + @ApiModelProperty("考试项目") + private Integer projectId; + + /** + * 类型 + */ + @ApiModelProperty("类型") + private String type; + + /** + * 所属科目 + */ + @ApiModelProperty("所属科目") + private String subject; + + /** + * 车型标识 + */ + @ApiModelProperty("车型标识") + private Integer carTypeId; + + /** + * 驾驶类型,手动挡,自动挡,A2:B2等(在字典表里配置) + */ + @ApiModelProperty("驾驶类型") + private String driveType; + + /** + * 描述 + */ + @ApiModelProperty("描述") + private String description; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + private LocalDateTime createTime; + + /** + * 是否生效 + */ + @ApiModelProperty("是否生效") + private String isActive; + + /** + * 显示序号 + */ + @ApiModelProperty("显示序号") + private Integer showOrder; + + /** + * 图片url + */ + @ApiModelProperty("图片url") + private String imageUrl; + + @ApiModelProperty("视频列表") + private List videoList; +} diff --git a/src/main/java/com/jwl/driver/server/vo/TestTotalVo.java b/src/main/java/com/jwl/driver/server/vo/TestTotalVo.java new file mode 100644 index 0000000..a5c9d4f --- /dev/null +++ b/src/main/java/com/jwl/driver/server/vo/TestTotalVo.java @@ -0,0 +1,47 @@ +package com.jwl.driver.server.vo; + +import com.jwl.driver.server.entity.TdQuestionTest; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author 曹林 + * @description 考试成绩统计出参 + * @create 2023/8/21 0:39 + */ + +@Data +@Accessors(chain = true) +@ApiModel("考试成绩统计出参") +public class TestTotalVo { + + private static final long serialVersionUID = 1L; + + /** + * 考试次数 + */ + @ApiModelProperty("考试次数") + private Integer testNum; + + /** + * 合格次数 + */ + @ApiModelProperty("合格次数") + private Integer passNum; + + /** + * 最近考试平均得分(超过五次按最近五次计算) + */ + @ApiModelProperty("最近考试平均得分(超过五次按最近五次计算)") + private Integer recentAverageScore; + + /** + * 最近考试情况(超过五次返回最近五次) + */ + @ApiModelProperty("最近考试情况(超过五次返回最近五次)") + private List recentTestList; +} diff --git a/src/main/resources/mapper/TdMemberMapper.xml b/src/main/resources/mapper/TdMemberMapper.xml index fc25b76..a7be022 100644 --- a/src/main/resources/mapper/TdMemberMapper.xml +++ b/src/main/resources/mapper/TdMemberMapper.xml @@ -12,7 +12,7 @@ tm.DURATION, tm.SUBJECTS, tm.UNIT, - tm.DESC, + tm.DESCRIPTION, tm.IS_ACTIVE from td_member tm @@ -42,7 +42,7 @@ tm.DURATION, tm.SUBJECTS, tm.UNIT, - tm.DESC, + tm.DESCRIPTION, tm.IS_ACTIVE from td_sys_user_member tsum diff --git a/src/main/resources/mapper/TdTestProjectMapper.xml b/src/main/resources/mapper/TdProjectMapper.xml similarity index 69% rename from src/main/resources/mapper/TdTestProjectMapper.xml rename to src/main/resources/mapper/TdProjectMapper.xml index eae8484..e9817fc 100644 --- a/src/main/resources/mapper/TdTestProjectMapper.xml +++ b/src/main/resources/mapper/TdProjectMapper.xml @@ -1,5 +1,5 @@ - + diff --git a/src/main/resources/mapper/TdTestProjectVideosMapper.xml b/src/main/resources/mapper/TdTestProjectVideosMapper.xml deleted file mode 100644 index 9459807..0000000 --- a/src/main/resources/mapper/TdTestProjectVideosMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - -