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