From dff741a9fdc353f5a54ef461b594f118099f310c Mon Sep 17 00:00:00 2001 From: caolin <1149034574@qq.com> Date: Sat, 19 Aug 2023 23:36:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=98=E7=9B=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TdQuestionController.java | 10 +-- .../controller/TdSysUserController.java | 10 +-- .../driver/server/dto/DriverSchoolDto.java | 31 ++++++++ .../jwl/driver/server/dto/LoginUserDto.java | 3 - .../jwl/driver/server/entity/TdSysUser.java | 13 ++++ .../server/mapper/TdQuestionMapper.java | 8 +- .../server/service/ITdQuestionService.java | 14 ++-- .../server/service/ITdSysUserService.java | 5 +- .../service/impl/TdQuestionServiceImpl.java | 75 ++++++++++++++----- .../service/impl/TdSysUserServiceImpl.java | 7 +- .../com/jwl/driver/server/vo/LoginUserVo.java | 6 ++ .../vo/{QusetionVo.java => QuestionVo.java} | 25 ++++++- src/main/resources/application-dev.yml | 9 ++- .../resources/mapper/TdQuestionMapper.xml | 36 ++++----- 14 files changed, 181 insertions(+), 71 deletions(-) create mode 100644 src/main/java/com/jwl/driver/server/dto/DriverSchoolDto.java rename src/main/java/com/jwl/driver/server/vo/{QusetionVo.java => QuestionVo.java} (87%) diff --git a/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java b/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java index ad77d2f..8cf623f 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java @@ -6,15 +6,13 @@ import com.jwl.driver.server.dto.QuestionQueryDto; import com.jwl.driver.server.exception.BusinessException; import com.jwl.driver.server.response.BaseResponse; import com.jwl.driver.server.service.ITdQuestionService; -import com.jwl.driver.server.vo.QusetionVo; +import com.jwl.driver.server.vo.QuestionVo; 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.*; -import org.springframework.stereotype.Controller; - import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -92,11 +90,11 @@ public class TdQuestionController { @ApiOperation("对嘛接口-修改题库") @PutMapping("/duima/update") - public Map updateQuestion(@RequestBody QusetionVo qusetionVo) { - log.info("修改题库======>qusetionVo:{}", qusetionVo); + public Map updateQuestion(@RequestBody QuestionVo questionVo) { + log.info("修改题库======>questionVo:{}", questionVo); Map result = new HashMap<>(); result.put("code", 200); - result.put("data", tdQuestionService.updateQuestion(qusetionVo)); + result.put("data", tdQuestionService.updateQuestion(questionVo)); return result; } diff --git a/src/main/java/com/jwl/driver/server/controller/TdSysUserController.java b/src/main/java/com/jwl/driver/server/controller/TdSysUserController.java index df1a192..9186da9 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdSysUserController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdSysUserController.java @@ -1,6 +1,7 @@ package com.jwl.driver.server.controller; +import com.jwl.driver.server.dto.DriverSchoolDto; import com.jwl.driver.server.dto.LoginUserDto; import com.jwl.driver.server.exception.BusinessException; import com.jwl.driver.server.response.BaseResponse; @@ -64,12 +65,9 @@ public class TdSysUserController { @ApiOperation("用户绑定驾校") @PostMapping("/bindSchool") - public BaseResponse bindSchool(@RequestBody LoginUserDto userDto) { - log.info("用户绑定驾校======>schoolId{}",userDto.getSchoolId()); - if (Objects.isNull(userDto.getSchoolId())){ - throw new BusinessException("缺少必要参数"); - } - return BaseResponse.success(userService.bindSchool(userDto)); + public BaseResponse bindSchool(@RequestBody @Valid DriverSchoolDto schoolDto) { + log.info("用户绑定驾校信息======>schoolDto{}",schoolDto); + return BaseResponse.success(userService.bindSchool(schoolDto)); } diff --git a/src/main/java/com/jwl/driver/server/dto/DriverSchoolDto.java b/src/main/java/com/jwl/driver/server/dto/DriverSchoolDto.java new file mode 100644 index 0000000..f96a861 --- /dev/null +++ b/src/main/java/com/jwl/driver/server/dto/DriverSchoolDto.java @@ -0,0 +1,31 @@ +package com.jwl.driver.server.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author 曹林 + * @description 登陆入参 + * @create 2023/8/11 22:21 + */ +@Data +@Accessors(chain = true) +public class DriverSchoolDto { + + @ApiModelProperty(value = "驾校id",required = true) + @NotNull(message = "驾校id不能为空") + private Long schoolId; + + @ApiModelProperty(value = "驾校名称",required = true) + @NotBlank(message = "驾校名称不能为空") + private String schoolName; + + @ApiModelProperty(value = "驾校联系方式",required = false) + private String schoolPhone; + + +} diff --git a/src/main/java/com/jwl/driver/server/dto/LoginUserDto.java b/src/main/java/com/jwl/driver/server/dto/LoginUserDto.java index 4306b47..6ff1aeb 100644 --- a/src/main/java/com/jwl/driver/server/dto/LoginUserDto.java +++ b/src/main/java/com/jwl/driver/server/dto/LoginUserDto.java @@ -22,7 +22,4 @@ public class LoginUserDto { @ApiModelProperty(value = "登陆验证码",required = true) @NotBlank(message = "登陆验证码不能为空") private String code; - - @ApiModelProperty(value = "驾校id",required = false) - private Long schoolId; } diff --git a/src/main/java/com/jwl/driver/server/entity/TdSysUser.java b/src/main/java/com/jwl/driver/server/entity/TdSysUser.java index f6234de..998c310 100644 --- a/src/main/java/com/jwl/driver/server/entity/TdSysUser.java +++ b/src/main/java/com/jwl/driver/server/entity/TdSysUser.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -65,6 +66,18 @@ public class TdSysUser implements Serializable { @TableField("SCHOOL_ID") private Long schoolId; + /** + * 驾校名称 + */ + @TableField("SCHOOL_NAME") + private String schoolName; + + /** + * 驾校电话 + */ + @TableField("SCHOOL_PHONE") + private String schoolPhone; + /** * 创建时间 */ diff --git a/src/main/java/com/jwl/driver/server/mapper/TdQuestionMapper.java b/src/main/java/com/jwl/driver/server/mapper/TdQuestionMapper.java index 9f4eb88..4e339c1 100644 --- a/src/main/java/com/jwl/driver/server/mapper/TdQuestionMapper.java +++ b/src/main/java/com/jwl/driver/server/mapper/TdQuestionMapper.java @@ -3,7 +3,7 @@ package com.jwl.driver.server.mapper; import com.jwl.driver.server.dto.QuestionQueryDto; import com.jwl.driver.server.entity.TdQuestion; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.jwl.driver.server.vo.QusetionVo; +import com.jwl.driver.server.vo.QuestionVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -23,14 +23,14 @@ public interface TdQuestionMapper extends BaseMapper { * @param queryDto * @return */ - List queryQuestion(@Param("queryDto") QuestionQueryDto queryDto); + List queryQuestion(@Param("queryDto") QuestionQueryDto queryDto); /** * 随机查询考题 * @param queryDto * @return */ - List queryQuestionByRandom(@Param("queryDto") QuestionQueryDto queryDto); + List queryQuestionByRandom(@Param("queryDto") QuestionQueryDto queryDto); - int updateQuestion(@Param("qusetionVo") QusetionVo qusetionVo); + int updateQuestion(@Param("questionVo") QuestionVo questionVo); } diff --git a/src/main/java/com/jwl/driver/server/service/ITdQuestionService.java b/src/main/java/com/jwl/driver/server/service/ITdQuestionService.java index af1c64a..387f538 100644 --- a/src/main/java/com/jwl/driver/server/service/ITdQuestionService.java +++ b/src/main/java/com/jwl/driver/server/service/ITdQuestionService.java @@ -3,8 +3,8 @@ package com.jwl.driver.server.service; import com.jwl.driver.server.dto.QuestionQueryDto; import com.jwl.driver.server.entity.TdQuestion; import com.baomidou.mybatisplus.extension.service.IService; +import com.jwl.driver.server.vo.QuestionVo; import com.jwl.driver.server.vo.QusetionCategoryVo; -import com.jwl.driver.server.vo.QusetionVo; import java.util.List; @@ -24,28 +24,28 @@ public interface ITdQuestionService extends IService { * @param queryDto * @return */ - TdQuestion queryQuestionById(QuestionQueryDto queryDto); + QuestionVo queryQuestionById(QuestionQueryDto queryDto); /** * 根据id列表 批量获取题目 * @param queryDto * @return */ - List queryQuestionByIdList(QuestionQueryDto queryDto); + List queryQuestionByIdList(QuestionQueryDto queryDto); /** * 根据查询条件获取列表 * @param queryDto * @return */ - List queryQuestion(QuestionQueryDto queryDto); + List queryQuestion(QuestionQueryDto queryDto); /** * 获取考试题目 * @param queryDto * @return */ - List getTestQuestion(QuestionQueryDto queryDto); + List getTestQuestion(QuestionQueryDto queryDto); /** * 题目分类 @@ -56,8 +56,8 @@ public interface ITdQuestionService extends IService { /** * 修改题库 - * @param qusetionVo + * @param questionVo * @return */ - int updateQuestion(QusetionVo qusetionVo); + int updateQuestion(QuestionVo questionVo); } diff --git a/src/main/java/com/jwl/driver/server/service/ITdSysUserService.java b/src/main/java/com/jwl/driver/server/service/ITdSysUserService.java index ebf972a..67ea217 100644 --- a/src/main/java/com/jwl/driver/server/service/ITdSysUserService.java +++ b/src/main/java/com/jwl/driver/server/service/ITdSysUserService.java @@ -1,5 +1,6 @@ package com.jwl.driver.server.service; +import com.jwl.driver.server.dto.DriverSchoolDto; import com.jwl.driver.server.dto.LoginUserDto; import com.jwl.driver.server.entity.TdSysUser; import com.baomidou.mybatisplus.extension.service.IService; @@ -43,8 +44,8 @@ public interface ITdSysUserService extends IService { /** * 绑定驾校 - * @param userDto + * @param schoolDto * @return */ - Boolean bindSchool(LoginUserDto userDto); + Boolean bindSchool(DriverSchoolDto schoolDto); } 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 45cf998..4690480 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 @@ -3,6 +3,7 @@ package com.jwl.driver.server.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.generator.config.IFileCreate; import com.jwl.driver.server.constant.Constants; import com.jwl.driver.server.dto.QuestionQueryDto; import com.jwl.driver.server.entity.TdQuestion; @@ -12,8 +13,8 @@ import com.jwl.driver.server.service.ITdQuestionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jwl.driver.server.service.ITdSysConfigListService; import com.jwl.driver.server.service.ITdSysConfigService; +import com.jwl.driver.server.vo.QuestionVo; import com.jwl.driver.server.vo.QusetionCategoryVo; -import com.jwl.driver.server.vo.QusetionVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -38,26 +39,30 @@ public class TdQuestionServiceImpl extends ServiceImpl questionVos = queryQuestion(newDto); + return CollectionUtil.isEmpty(questionVos)? null : questionVos.get(0); } @Override - public List queryQuestionByIdList(QuestionQueryDto queryDto) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .in(TdQuestion::getQuestionId,queryDto.getQuestionIdList()); - - return this.getBaseMapper().selectList(queryWrapper); + public List queryQuestionByIdList(QuestionQueryDto queryDto) { + QuestionQueryDto newDto = new QuestionQueryDto() + .setQuestionIdList(queryDto.getQuestionIdList()); + return queryQuestion(newDto); } @Override - public List queryQuestion(QuestionQueryDto queryDto) { - return this.getBaseMapper().queryQuestion(queryDto); + public List queryQuestion(QuestionQueryDto queryDto) { + List questionVos = this.getBaseMapper().queryQuestion(queryDto); + questionOptionHandler(questionVos); + return questionVos; } @Override - public List getTestQuestion(QuestionQueryDto queryDto) { - List resultList = new ArrayList<>(); + public List getTestQuestion(QuestionQueryDto queryDto) { + List resultList = new ArrayList<>(); if (StrUtil.equals(Constants.SUBJECT_ONE,queryDto.getSubject())){ //40道判断题 60道单选 每题1分 @@ -83,6 +88,7 @@ public class TdQuestionServiceImpl extends ServiceImpl resultList = new ArrayList<>(); //获取题目 - List tdQuestions = queryQuestionByIdList(queryDto); - if (CollectionUtil.isEmpty(tdQuestions)){ + List tdQuestionVos = queryQuestionByIdList(queryDto); + if (CollectionUtil.isEmpty(tdQuestionVos)){ return resultList; } //获取分类 @@ -100,8 +106,8 @@ public class TdQuestionServiceImpl extends ServiceImpl categoryMap = categoryList.stream().collect(Collectors.toMap(TdSysConfigList::getConfigItemCode, TdSysConfigList::getConfigItemName, (v1, v2) -> v1)); Map totalMap = new HashMap<>(); - for (TdQuestion tdQuestion : tdQuestions) { - String category = tdQuestion.getCategory(); + for (QuestionVo tdQuestionVo : tdQuestionVos) { + String category = tdQuestionVo.getCategory(); if (StrUtil.isBlank(category)){ continue; } @@ -127,7 +133,40 @@ public class TdQuestionServiceImpl extends ServiceImpl questionVos){ + if (CollectionUtil.isNotEmpty(questionVos)){ + for (QuestionVo questionVo : questionVos) { + //如果选项A没有值 则为判断题 + List optionList = new ArrayList<>(); + if (StrUtil.isBlank(questionVo.getChooseA())){ + optionList.add(new QuestionVo.QuestionOption("A","正确","1")); + optionList.add(new QuestionVo.QuestionOption("B","错误","2")); + }else { + //起码ABCD都有 + optionList.add(new QuestionVo.QuestionOption("A",questionVo.getChooseA(),"1")); + optionList.add(new QuestionVo.QuestionOption("B",questionVo.getChooseB(),"2")); + optionList.add(new QuestionVo.QuestionOption("C",questionVo.getChooseC(),"3")); + optionList.add(new QuestionVo.QuestionOption("D",questionVo.getChooseD(),"4")); + + if (StrUtil.isNotBlank(questionVo.getChooseE())){ + optionList.add(new QuestionVo.QuestionOption("E",questionVo.getChooseE(),"5")); + } + if (StrUtil.isNotBlank(questionVo.getChooseF())){ + optionList.add(new QuestionVo.QuestionOption("F",questionVo.getChooseF(),"6")); + } + if (StrUtil.isNotBlank(questionVo.getChooseG())){ + optionList.add(new QuestionVo.QuestionOption("G",questionVo.getChooseG(),"7")); + } + } + questionVo.setOptionList(optionList); + } + } } } diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdSysUserServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdSysUserServiceImpl.java index dc480b0..c0989d0 100644 --- a/src/main/java/com/jwl/driver/server/service/impl/TdSysUserServiceImpl.java +++ b/src/main/java/com/jwl/driver/server/service/impl/TdSysUserServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.PhoneUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jwl.driver.server.constant.Constants; +import com.jwl.driver.server.dto.DriverSchoolDto; import com.jwl.driver.server.dto.LoginUserDto; import com.jwl.driver.server.dto.SecurityUser; import com.jwl.driver.server.entity.TdSysUser; @@ -136,7 +137,7 @@ public class TdSysUserServiceImpl extends ServiceImpl cond = new LambdaQueryWrapper() @@ -146,7 +147,9 @@ public class TdSysUserServiceImpl extends ServiceImpl optionList; + /** * 题目类型,1:选择题 2:判断题,3:多选题 */ @@ -189,4 +193,19 @@ public class QusetionVo { */ @ApiModelProperty("是否密卷2") private Integer isExam2; + + + @Data + @Accessors + @AllArgsConstructor + public static class QuestionOption{ + @ApiModelProperty("选项") + private String op; + + @ApiModelProperty("选项描述") + private String opDesc; + + @ApiModelProperty("选项值") + private String opValue; + } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index e91e46f..c6602ee 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,11 +1,16 @@ spring: # redis 配置 redis: - host: 127.0.0.1 +# host: 127.0.0.1 +# port: 6379 +# database: 8 +# timeout: 5000 +# auth: caolin123 + host: 118.31.23.45 port: 6379 database: 8 timeout: 5000 - auth: caolin123 + password: 123456 # 数据库 配置 diff --git a/src/main/resources/mapper/TdQuestionMapper.xml b/src/main/resources/mapper/TdQuestionMapper.xml index c203b09..545c0df 100644 --- a/src/main/resources/mapper/TdQuestionMapper.xml +++ b/src/main/resources/mapper/TdQuestionMapper.xml @@ -2,7 +2,7 @@ - select tq.QUESTION_ID, tq.QUESTION, @@ -76,7 +76,7 @@ order by tq.SHOW_ORDER asc - select tq.QUESTION_ID, tq.QUESTION, @@ -123,32 +123,32 @@ order by rand() limit ${queryDto.num}; - + update td_question - - IS_VIP = #{qusetionVo.isVip}, + + IS_VIP = #{questionVo.isVip}, - - IS_ERROR = #{qusetionVo.isError}, + + IS_ERROR = #{questionVo.isError}, - - IS_NEW = #{qusetionVo.isNew}, + + IS_NEW = #{questionVo.isNew}, - - EXAM_KEYS = #{qusetionVo.examKeys}, + + EXAM_KEYS = #{questionVo.examKeys}, - - IS_VIP2 = #{qusetionVo.isVip2}, + + IS_VIP2 = #{questionVo.isVip2}, - - IS_EXAM1 = #{qusetionVo.isExam1}, + + IS_EXAM1 = #{questionVo.isExam1}, - - IS_EXAM2 = #{qusetionVo.isExam2}, + + IS_EXAM2 = #{questionVo.isExam2}, - where QUESTION_ID = #{qusetionVo.questionId} + where QUESTION_ID = #{questionVo.questionId}