From c209aa3da381275a47d3f4220ef5e08f3ccf6035 Mon Sep 17 00:00:00 2001 From: caolin <1149034574@qq.com> Date: Tue, 15 Aug 2023 01:37:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=9F=A5=E8=AF=A2=E4=B8=8E?= =?UTF-8?q?=E8=80=83=E8=AF=95=E6=88=90=E7=BB=A9=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SecurityAutoConfiguration.java | 21 ++++ .../server/controller/TdMemberController.java | 37 ++++++- .../controller/TdQuestionController.java | 8 +- .../controller/TdQuestionTestController.java | 32 +++++- .../controller/TdSysConfigListController.java | 2 +- .../jwl/driver/server/dto/MemberQueryDto.java | 44 ++++++++ .../jwl/driver/server/dto/TestSubmitDto.java | 50 +++++++++ .../jwl/driver/server/entity/TdMember.java | 6 ++ .../driver/server/mapper/TdMemberMapper.java | 19 ++++ .../jwl/driver/server/redis/RedisCache.java | 1 + .../server/service/ITdMemberService.java | 17 +++ .../service/ITdQuestionTestService.java | 7 ++ .../service/impl/TdMemberServiceImpl.java | 44 ++++++++ .../impl/TdQuestionTestServiceImpl.java | 18 ++++ .../jwl/driver/server/util/SecurityUtil.java | 4 +- .../com/jwl/driver/server/vo/MemberVo.java | 100 ++++++++++++++++++ .../com/jwl/driver/server/vo/QusetionVo.java | 6 ++ src/main/resources/mapper/TdMemberMapper.xml | 59 +++++++++++ .../resources/mapper/TdQuestionMapper.xml | 8 +- 19 files changed, 466 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/jwl/driver/server/autoconfigure/SecurityAutoConfiguration.java create mode 100644 src/main/java/com/jwl/driver/server/dto/MemberQueryDto.java create mode 100644 src/main/java/com/jwl/driver/server/dto/TestSubmitDto.java create mode 100644 src/main/java/com/jwl/driver/server/vo/MemberVo.java diff --git a/src/main/java/com/jwl/driver/server/autoconfigure/SecurityAutoConfiguration.java b/src/main/java/com/jwl/driver/server/autoconfigure/SecurityAutoConfiguration.java new file mode 100644 index 0000000..e3f8896 --- /dev/null +++ b/src/main/java/com/jwl/driver/server/autoconfigure/SecurityAutoConfiguration.java @@ -0,0 +1,21 @@ +package com.jwl.driver.server.autoconfigure; + +import com.jwl.driver.server.util.SpringAsyncUtil; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * spring工具类 + */ + +@Configuration +public class SecurityAutoConfiguration { + + @Bean(name = {"SpringAsyncUtilBySecurityConfigurationProperties"}) + @ConditionalOnMissingBean({SpringAsyncUtil.class}) + public SpringAsyncUtil springAsyncUtil() { + return new SpringAsyncUtil(); + } + +} diff --git a/src/main/java/com/jwl/driver/server/controller/TdMemberController.java b/src/main/java/com/jwl/driver/server/controller/TdMemberController.java index 1063c99..c93fbbc 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdMemberController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdMemberController.java @@ -1,9 +1,21 @@ package com.jwl.driver.server.controller; +import com.jwl.driver.server.dto.MemberQueryDto; +import com.jwl.driver.server.exception.BusinessException; +import com.jwl.driver.server.response.BaseResponse; +import com.jwl.driver.server.service.ITdMemberService; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Objects; /** *

@@ -13,8 +25,27 @@ import org.springframework.stereotype.Controller; * @author Automated procedures * @since 2023-08-10 */ -@Controller -@RequestMapping("//tdMember") +@Api(tags = "会员") +@RestController +@RequestMapping("/tdMember") +@Slf4j public class TdMemberController { + @Autowired + private ITdMemberService memberService; + + @ApiOperation("查询会员列表") + @PostMapping("/queryMember") + public BaseResponse queryMember(@RequestBody MemberQueryDto queryDto) { + log.info("获取会员列表======>queryDto:{}", queryDto); + return BaseResponse.success(memberService.queryMember(queryDto)); + } + + + @ApiOperation("查询用户开通的会员") + @PostMapping("/queryUserMember") + public BaseResponse queryUserMember(@RequestBody MemberQueryDto queryDto) { + log.info("获取用户会员列表======>queryDto:{}", queryDto); + return BaseResponse.success(memberService.queryUserMember(queryDto)); + } } 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 6feea0c..d0084ee 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java @@ -34,7 +34,7 @@ public class TdQuestionController { @ApiOperation("根据id获取题目") @PostMapping("/queryQuestionById") - public BaseResponse queryQuestionById(@RequestParam QuestionQueryDto queryDto) { + public BaseResponse queryQuestionById(@RequestBody QuestionQueryDto queryDto) { log.info("获取题型======>queryDto:{}", queryDto); return BaseResponse.success(tdQuestionService.queryQuestionById(queryDto)); } @@ -42,7 +42,7 @@ public class TdQuestionController { @ApiOperation("根据id列表获取题目") @PostMapping("/queryQuestionByIdList") - public BaseResponse queryQuestionByIdList(@RequestParam QuestionQueryDto queryDto) { + public BaseResponse queryQuestionByIdList(@RequestBody QuestionQueryDto queryDto) { log.info("获取题型======>queryDto:{}", queryDto); return BaseResponse.success(tdQuestionService.queryQuestionByIdList(queryDto)); } @@ -50,14 +50,14 @@ public class TdQuestionController { @ApiOperation("根据查询条件获取题目") @PostMapping("/queryQuestion") - public BaseResponse queryQuestion(@RequestParam QuestionQueryDto queryDto) { + public BaseResponse queryQuestion(@RequestBody QuestionQueryDto queryDto) { log.info("获取题型======>queryDto:{}", queryDto); return BaseResponse.success(tdQuestionService.queryQuestion(queryDto)); } @ApiOperation("获取模拟考试题目") @PostMapping("/getTestQuestion") - public BaseResponse getTestQuestion(@RequestParam QuestionQueryDto queryDto) { + public BaseResponse getTestQuestion(@RequestBody QuestionQueryDto queryDto) { log.info("获取模拟考试题目======>queryDto:{}", queryDto); if (Objects.isNull(queryDto.getCarTypeId()) && Objects.isNull(queryDto.getSubject())){ throw new BusinessException("缺少必要参数"); 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 0e4e2f7..55a877f 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdQuestionTestController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdQuestionTestController.java @@ -1,10 +1,21 @@ package com.jwl.driver.server.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import com.jwl.driver.server.dto.QuestionQueryDto; +import com.jwl.driver.server.dto.TestSubmitDto; +import com.jwl.driver.server.response.BaseResponse; +import com.jwl.driver.server.service.ITdQuestionService; +import com.jwl.driver.server.service.ITdQuestionTestService; +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 javax.validation.Valid; + /** *

* 模拟考试成绩表; 前端控制器 @@ -13,8 +24,23 @@ import org.springframework.stereotype.Controller; * @author Automated procedures * @since 2023-08-10 */ -@Controller -@RequestMapping("//tdQuestionTest") +@Api(tags = "考试") +@RestController +@RequestMapping("/tdQuestionTest") +@Slf4j public class TdQuestionTestController { + @Autowired + private ITdQuestionTestService testService; + + @ApiOperation("提交考试成绩") + @PostMapping("/testSubmit") + public BaseResponse testSubmit(@RequestBody @Valid TestSubmitDto submitDto) { + log.info("考试成绩======>submitDto:{}", submitDto); + return BaseResponse.success(testService.testSubmit(submitDto)); + } + + + + } diff --git a/src/main/java/com/jwl/driver/server/controller/TdSysConfigListController.java b/src/main/java/com/jwl/driver/server/controller/TdSysConfigListController.java index 8ceed30..160ef43 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdSysConfigListController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdSysConfigListController.java @@ -51,7 +51,7 @@ public class TdSysConfigListController { */ @ApiOperation("通过多个配置key 和 carTypeId 查询多个配置列表") @GetMapping("/querySysConfigMap") - public BaseResponse querySysConfigMap(@RequestParam("configKey") String configKeys, @RequestParam("carTypeId") Integer carTypeId) { + public BaseResponse querySysConfigMap(@RequestParam("configKeys") String configKeys, @RequestParam("carTypeId") Integer carTypeId) { log.info("request to querySysConfigList :{}", configKeys); Map> map = configListService.querySysConfigMap(Arrays.asList(configKeys.split(",")), carTypeId); return BaseResponse.success(map); diff --git a/src/main/java/com/jwl/driver/server/dto/MemberQueryDto.java b/src/main/java/com/jwl/driver/server/dto/MemberQueryDto.java new file mode 100644 index 0000000..53a931f --- /dev/null +++ b/src/main/java/com/jwl/driver/server/dto/MemberQueryDto.java @@ -0,0 +1,44 @@ +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; +import java.util.List; + +/** + *

+ * 会员查询入参; + *

+ * + * @author Automated procedures + * @since 2023-08-10 + */ +@Data +@Accessors(chain = true) +@ApiModel("会员查询入参") +public class MemberQueryDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 会员标识 + */ + @ApiModelProperty("会员标识") + private Integer memberId; + + /** + * 车型标识 + */ + @ApiModelProperty("车型标识") + private Integer carTypeId; + + /** + * 科目标识 + */ + @ApiModelProperty("科目标识") + 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 new file mode 100644 index 0000000..af7fb6e --- /dev/null +++ b/src/main/java/com/jwl/driver/server/dto/TestSubmitDto.java @@ -0,0 +1,50 @@ +package com.jwl.driver.server.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +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; +import java.util.List; + +/** + * @author 曹林 + * @description 成绩提交入参 + * @create 2023/8/14 21:22 + */ +@Data +@Accessors(chain = true) +@ApiModel("成绩提交入参") +public class TestSubmitDto { + + /** + * 车型标识 + */ + @ApiModelProperty("车型标识") + @NotNull(message = "车型标识不能为空") + private Integer carTypeId; + + /** + * 考试得分 + */ + @ApiModelProperty("考试得分") + @NotNull(message = "考试得分不能为空") + @Max(100) + @Min(0) + private Integer score; + + /** + * 考试时长,单位为秒 + */ + @ApiModelProperty("考试时长,单位为秒") + @NotNull(message = "k考试时间不能为空") + @Max(3600) + @Min(0) + private Integer testTime; + + +} 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 d5551c0..d018f4b 100644 --- a/src/main/java/com/jwl/driver/server/entity/TdMember.java +++ b/src/main/java/com/jwl/driver/server/entity/TdMember.java @@ -43,6 +43,12 @@ public class TdMember implements Serializable { @TableField("CAR_TYPE_ID") private Integer carTypeId; + /** + * 科目 + */ + @TableField("SUBJECTS") + private String subjects; + /** * 会员价格,单位元 */ diff --git a/src/main/java/com/jwl/driver/server/mapper/TdMemberMapper.java b/src/main/java/com/jwl/driver/server/mapper/TdMemberMapper.java index 6c71d4f..85f62c1 100644 --- a/src/main/java/com/jwl/driver/server/mapper/TdMemberMapper.java +++ b/src/main/java/com/jwl/driver/server/mapper/TdMemberMapper.java @@ -1,7 +1,12 @@ package com.jwl.driver.server.mapper; +import com.jwl.driver.server.dto.MemberQueryDto; import com.jwl.driver.server.entity.TdMember; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jwl.driver.server.vo.MemberVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +18,18 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface TdMemberMapper extends BaseMapper { + /** + * 获取会员列表 + * @param queryDto + * @return + */ + List queryMember(@Param("queryDto") MemberQueryDto queryDto); + + /** + * 获取用户会员 + * @param queryDto + * @param userId + * @return + */ + List queryUserMember(@Param("queryDto") MemberQueryDto queryDto, @Param("userId") Long userId); } diff --git a/src/main/java/com/jwl/driver/server/redis/RedisCache.java b/src/main/java/com/jwl/driver/server/redis/RedisCache.java index 0008e97..99de2a5 100644 --- a/src/main/java/com/jwl/driver/server/redis/RedisCache.java +++ b/src/main/java/com/jwl/driver/server/redis/RedisCache.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Component; @Component @Slf4j public class RedisCache { + @Autowired public RedisTemplate redisTemplate; diff --git a/src/main/java/com/jwl/driver/server/service/ITdMemberService.java b/src/main/java/com/jwl/driver/server/service/ITdMemberService.java index 87e853f..f334769 100644 --- a/src/main/java/com/jwl/driver/server/service/ITdMemberService.java +++ b/src/main/java/com/jwl/driver/server/service/ITdMemberService.java @@ -1,7 +1,11 @@ package com.jwl.driver.server.service; +import com.jwl.driver.server.dto.MemberQueryDto; import com.jwl.driver.server.entity.TdMember; import com.baomidou.mybatisplus.extension.service.IService; +import com.jwl.driver.server.vo.MemberVo; + +import java.util.List; /** *

@@ -13,4 +17,17 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ITdMemberService extends IService { + /** + * 查询会员列表 + * @param queryDto + * @return + */ + List queryMember(MemberQueryDto queryDto); + + /** + * 获取用户开通的会员 + * @param queryDto + * @return + */ + List queryUserMember(MemberQueryDto 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 eba9ffa..10151c8 100644 --- a/src/main/java/com/jwl/driver/server/service/ITdQuestionTestService.java +++ b/src/main/java/com/jwl/driver/server/service/ITdQuestionTestService.java @@ -1,5 +1,6 @@ package com.jwl.driver.server.service; +import com.jwl.driver.server.dto.TestSubmitDto; import com.jwl.driver.server.entity.TdQuestionTest; import com.baomidou.mybatisplus.extension.service.IService; @@ -13,4 +14,10 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ITdQuestionTestService extends IService { + /** + * 交卷 考试提交 + * @param submitDto + * @return + */ + Boolean testSubmit(TestSubmitDto submitDto); } diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdMemberServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdMemberServiceImpl.java index 540a16a..86d13a8 100644 --- a/src/main/java/com/jwl/driver/server/service/impl/TdMemberServiceImpl.java +++ b/src/main/java/com/jwl/driver/server/service/impl/TdMemberServiceImpl.java @@ -1,11 +1,20 @@ package com.jwl.driver.server.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.jwl.driver.server.constant.Constants; +import com.jwl.driver.server.dto.MemberQueryDto; import com.jwl.driver.server.entity.TdMember; import com.jwl.driver.server.mapper.TdMemberMapper; import com.jwl.driver.server.service.ITdMemberService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jwl.driver.server.util.SecurityUtil; +import com.jwl.driver.server.vo.MemberVo; import org.springframework.stereotype.Service; +import java.util.*; +import java.util.stream.Collectors; + /** *

* 会员类型表; 服务实现类 @@ -17,4 +26,39 @@ import org.springframework.stereotype.Service; @Service public class TdMemberServiceImpl extends ServiceImpl implements ITdMemberService { + @Override + public List queryMember(MemberQueryDto queryDto) { + + List resultList = new ArrayList<>(); + + //获取用户已开通且未到期的会员(即使该会员已不售卖了) + List userMemberList = queryUserMember(queryDto); + Map userMemberMap = userMemberList.stream().collect(Collectors.toMap(MemberVo::getMemberId, v -> v, (v1, v2) -> v1)); + + //将用户购买的已停售但未过期的会员放在最前面 + List expireMemberlist = userMemberList.stream().filter(s -> StrUtil.equals(s.getIsActive(), Constants.IS_ACTIVE_FALSE)).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(expireMemberlist)){ + resultList.addAll(expireMemberlist); + } + + //获取现在可开通的会员 + List memberList = this.getBaseMapper().queryMember(queryDto); + if (CollectionUtil.isNotEmpty(memberList)){ + for (MemberVo memberVo : memberList) { + if(userMemberMap.containsKey(memberVo.getMemberId())){ + resultList.add(userMemberMap.get(memberVo.getMemberId())); + }else { + resultList.add(memberVo); + } + } + } + + return resultList; + } + + @Override + public List queryUserMember(MemberQueryDto queryDto) { + return this.getBaseMapper().queryUserMember(queryDto,SecurityUtil.getUserId()); + } + } 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 91d3fde..e4d64e8 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,10 +1,17 @@ package com.jwl.driver.server.service.impl; +import com.jwl.driver.server.dto.SecurityUser; +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 org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; /** *

@@ -17,4 +24,15 @@ import org.springframework.stereotype.Service; @Service public class TdQuestionTestServiceImpl extends ServiceImpl implements ITdQuestionTestService { + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean testSubmit(TestSubmitDto submitDto) { + + TdQuestionTest questionTest = new TdQuestionTest(); + BeanUtils.copyProperties(submitDto,questionTest); + questionTest.setUserId(SecurityUtil.getUserId()) + .setCreateTime(LocalDateTime.now()); + + return this.save(questionTest); + } } diff --git a/src/main/java/com/jwl/driver/server/util/SecurityUtil.java b/src/main/java/com/jwl/driver/server/util/SecurityUtil.java index 1456c94..6d62dbf 100644 --- a/src/main/java/com/jwl/driver/server/util/SecurityUtil.java +++ b/src/main/java/com/jwl/driver/server/util/SecurityUtil.java @@ -35,10 +35,10 @@ public class SecurityUtil { String token = TokenThreadUtil.getToken(); if (StrUtil.isBlank(token)) throw new BusinessException(ErrorCode.AUTH_ERROR, "尚未登录"); - SecurityUser securityUser = null; + SecurityUser securityUser = new SecurityUser(); TdSysUser tdSysUser = redisCache.getCacheObject(token); - if (Objects.isNull(securityUser)){ + if (Objects.isNull(tdSysUser)){ throw new BusinessException(ErrorCode.AUTH_ERROR, "登录信息已失效"); } BeanUtils.copyProperties(tdSysUser,securityUser); diff --git a/src/main/java/com/jwl/driver/server/vo/MemberVo.java b/src/main/java/com/jwl/driver/server/vo/MemberVo.java new file mode 100644 index 0000000..2ac7576 --- /dev/null +++ b/src/main/java/com/jwl/driver/server/vo/MemberVo.java @@ -0,0 +1,100 @@ +package com.jwl.driver.server.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author 曹林 + * @description 会员列表出参 + * @create 2023/8/13 17:13 + */ +@Data +@Accessors(chain = true) +@ApiModel("会员列表出参") +public class MemberVo { + + private static final long serialVersionUID = 1L; + + /** + * 用户标识 + */ + @ApiModelProperty("用户标识") + private Long userId; + + /** + * 会员结束时间 + */ + @ApiModelProperty("会员结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endDate; + + /** + * 会员标识 + */ + @ApiModelProperty("会员标识") + private Integer memberId; + + /** + * 会员名称 + */ + @ApiModelProperty("会员名称") + private String memberName; + + /** + * 车型标识 + */ + @ApiModelProperty("车型标识") + private Integer carTypeId; + + /** + * 科目 + */ + @ApiModelProperty("科目") + private String subjects; + + /** + * 会员价格,单位元 + */ + @ApiModelProperty("会员价格,单位元") + private BigDecimal price; + + /** + * 会员折扣,单位元 + */ + @ApiModelProperty("会员折扣,单位元") + private BigDecimal discount; + + /** + * 会员时间 + */ + @ApiModelProperty("会员时间") + private Integer duration; + + /** + * 时长单位,1:天,2:月 3:年 + */ + @ApiModelProperty("时长单位,1:天,2:月 3:年") + private String unit; + + /** + * 会员描述 + */ + @ApiModelProperty("会员描述") + private String desc; + + /** + * 是否生效 + */ + @ApiModelProperty("是否生效") + private String isActive; + +} diff --git a/src/main/java/com/jwl/driver/server/vo/QusetionVo.java b/src/main/java/com/jwl/driver/server/vo/QusetionVo.java index 836224a..e72383d 100644 --- a/src/main/java/com/jwl/driver/server/vo/QusetionVo.java +++ b/src/main/java/com/jwl/driver/server/vo/QusetionVo.java @@ -2,13 +2,19 @@ package com.jwl.driver.server.vo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; /** * @author 曹林 * @description 驾考题目出参 * @create 2023/8/13 17:13 */ +@Data +@Accessors(chain = true) +@ApiModel("驾考题目出参") public class QusetionVo { private static final long serialVersionUID = 1L; diff --git a/src/main/resources/mapper/TdMemberMapper.xml b/src/main/resources/mapper/TdMemberMapper.xml index 2d1f014..fc25b76 100644 --- a/src/main/resources/mapper/TdMemberMapper.xml +++ b/src/main/resources/mapper/TdMemberMapper.xml @@ -2,4 +2,63 @@ + + diff --git a/src/main/resources/mapper/TdQuestionMapper.xml b/src/main/resources/mapper/TdQuestionMapper.xml index 036d3e0..c27fa56 100644 --- a/src/main/resources/mapper/TdQuestionMapper.xml +++ b/src/main/resources/mapper/TdQuestionMapper.xml @@ -27,8 +27,8 @@ tq.CAR_TYPE_ID, tq.IS_ACTIVE from td_question tq - left join td_question_point tqp on tq.QUESTION_ID = tqp.QUESTION_ID and tq.CAR_TYPE_ID = tqp.CAR_TYPE_ID and - tqp.IS_ACTIVE = '0' + left join td_point_question tpq on tq.QUESTION_ID = tpq.QUESTION_ID and tq.CAR_TYPE_ID = tpq.CAR_TYPE_ID and + tpq.IS_ACTIVE = '0' tq.IS_ACTIVE = '0' @@ -49,14 +49,14 @@ and tq.CAR_TYPE_ID = #{queryDto.carTypeId} - + and tq.TYPE = #{queryDto.type} and find_in_set(#{queryDto.cid},tq.CIDS) - and tqp.POINT = #{queryDto.point} + and tpq.POINT = #{queryDto.point} group by tq.QUESTION_ID