From 4a9e99f69eef98127e04c323e478747b8ee7efb5 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Tue, 11 Feb 2025 10:15:55 +0800 Subject: [PATCH] no message --- .../controller/admin/DataViewController.java | 4 +- .../module/base/service/DataViewService.java | 2 +- .../service/DlDriveSchoolCoachService.java | 8 +++ .../service/impl/DataViewServiceImpl.java | 30 ++++++++- .../impl/DlDriveSchoolCoachServiceImpl.java | 18 ++++++ .../base/vo/DlDriveSchoolCoachRespVO.java | 5 +- .../yudao/module/base/vo/StudentInfoVO.java | 13 ++++ .../yudao/module/course/entity/Process.java | 4 +- .../module/course/mapper/ProcessMapper.java | 2 +- .../module/course/service/ProcessService.java | 15 ++++- .../service/impl/ProcessServiceImpl.java | 63 ++++++++++++++++++- .../exam/mapper/ExamBatchItemMapper.java | 2 + .../exam/service/ExamBatchItemService.java | 10 +++ .../impl/ExamBatchItemServiceImpl.java | 60 +++++++++++++----- .../yudao/module/exam/vo/ExamBatchItemVO.java | 19 ++++++ .../module/train/service/TrainService.java | 12 ++++ .../train/service/impl/TrainServiceImpl.java | 21 +++++++ .../resources/mapper/course/ProcessMapper.xml | 3 + .../mapper/exam/ExamBatchItemMapper.xml | 28 +++++++-- 19 files changed, 285 insertions(+), 34 deletions(-) diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DataViewController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DataViewController.java index 2f6df456..315e9e09 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DataViewController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DataViewController.java @@ -31,8 +31,8 @@ public class DataViewController { **/ @GetMapping("/getStudentInfo") @Operation(summary = "查询学员详情") - public CommonResult selectStudentInfo(@RequestParam("id") Long id) { - return success(dataViewService.selectStudentInfo(id)); + public CommonResult selectStudentInfo(@RequestParam("id") Long id,@RequestParam(value = "coachId",required = false)Long coachId) { + return success(dataViewService.selectStudentInfo(id,coachId)); } } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DataViewService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DataViewService.java index 7dc172de..b247eb28 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DataViewService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DataViewService.java @@ -15,6 +15,6 @@ public interface DataViewService { * @param id 学生id * @return cn.iocoder.yudao.module.base.vo.StudentInfoVO **/ - StudentInfoVO selectStudentInfo(Long id); + StudentInfoVO selectStudentInfo(Long id,Long coachId); } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachService.java index f33eb53b..8e136f25 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachService.java @@ -81,5 +81,13 @@ public interface DlDriveSchoolCoachService extends IService */ DlDriveSchoolCoachRespVO getDlDriveSchoolCoach(String id); + /** + * 获得驾校教练---通过user_id查 + * + * @param userId 用户表id + * @return 驾校教练 + */ + DlDriveSchoolCoachRespVO getDlDriveSchoolCoachByUserId(Long userId); + } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java index f81efada..11e1c7bf 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java @@ -2,10 +2,14 @@ package cn.iocoder.yudao.module.base.service.impl; import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent; import cn.iocoder.yudao.module.base.service.DataViewService; +import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService; import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService; +import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO; import cn.iocoder.yudao.module.base.vo.StudentInfoVO; import cn.iocoder.yudao.module.course.entity.Process; import cn.iocoder.yudao.module.course.service.ProcessService; +import cn.iocoder.yudao.module.exam.service.ExamBatchItemService; +import cn.iocoder.yudao.module.train.service.TrainService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -16,7 +20,13 @@ public class DataViewServiceImpl implements DataViewService { @Autowired private DlDriveSchoolStudentService studentService; @Autowired + private DlDriveSchoolCoachService coachService; + @Autowired private ProcessService processService; + @Autowired + private TrainService trainService; + @Autowired + private ExamBatchItemService examBatchItemService; /** * 查询学员详情 @@ -27,11 +37,25 @@ public class DataViewServiceImpl implements DataViewService { * @date 14:37 2025/2/8 **/ @Override - public StudentInfoVO selectStudentInfo(Long id) { + public StudentInfoVO selectStudentInfo(Long id,Long coachId) { + StudentInfoVO studentInfoVO = new StudentInfoVO(); //学员主信息 DlDriveSchoolStudent student = studentService.getStudentByUserId(id); + studentInfoVO.setStudentInfo(student); //当前学习进度 - Process process = processService.selectByUserId(id); - return null; + Process process = processService.selectByUserId(id,coachId); + studentInfoVO.setProcess(process); + //查归属教练信息 + DlDriveSchoolCoachRespVO coachRespVO = coachService.getDlDriveSchoolCoachByUserId(process.getCoachId()); + if(null!=coachRespVO){ + //有教练,查未毕业学员、已毕业学员,区分科目 + coachRespVO.setDataMap(processService.selectByCoachId(coachRespVO.getUserId())); + studentInfoVO.setCoachInfo(coachRespVO); + } + //查该学生的培训记录 + studentInfoVO.setTrainList(trainService.selectByUserIdAndCoachId(id,coachId)); + //查该学生的考试记录 + studentInfoVO.setExamList(examBatchItemService.selectByUserIdAndCoachId(id, coachId)); + return studentInfoVO; } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java index e745edc9..a494ea85 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java @@ -180,5 +180,23 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper() + .eq(DlDriveSchoolCoach::getUserId,userId); + List list = this.list(queryWrapper); + DlDriveSchoolCoachRespVO schoolCoach = null; + if(!list.isEmpty()){ + schoolCoach = BeanUtils.toBean(list.get(0), DlDriveSchoolCoachRespVO.class); + } + return schoolCoach; + } + } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCoachRespVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCoachRespVO.java index ea17e396..7ed8fa51 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCoachRespVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCoachRespVO.java @@ -5,9 +5,12 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.Map; + @Schema(description = "管理后台 - 驾校教练 Response VO") @Data @ExcelIgnoreUnannotated public class DlDriveSchoolCoachRespVO extends DlDriveSchoolCoach { - + /**教练带教学员数量情况-细分科目2、3未毕业、已毕业数量*/ + Map dataMap; } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/StudentInfoVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/StudentInfoVO.java index 57afdf2a..62d8c41a 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/StudentInfoVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/StudentInfoVO.java @@ -1,10 +1,23 @@ package cn.iocoder.yudao.module.base.vo; import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent; +import cn.iocoder.yudao.module.course.entity.Process; +import cn.iocoder.yudao.module.exam.vo.ExamBatchItemVO; +import cn.iocoder.yudao.module.train.entity.Train; import lombok.Data; +import java.util.List; + @Data public class StudentInfoVO { /**学生基本信息*/ private DlDriveSchoolStudent studentInfo; + /**学习进度*/ + private Process process; + /**教练信息*/ + private DlDriveSchoolCoachRespVO coachInfo; + /**训练记录*/ + private List trainList; + /**考试记录*/ + private List examList; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/Process.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/Process.java index 3751c50a..735b7812 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/Process.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/Process.java @@ -38,7 +38,7 @@ public class Process extends TenantBaseDO { /** * 用户(学员)ID */ - private Integer userId; + private Long userId; /** * 用户(学员)姓名 */ @@ -50,7 +50,7 @@ public class Process extends TenantBaseDO { /** * 教练ID */ - private Integer coachId; + private Long coachId; /** * 教练姓名 */ diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/ProcessMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/ProcessMapper.java index fbc49ad2..a0f3aa9c 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/ProcessMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/ProcessMapper.java @@ -53,5 +53,5 @@ public interface ProcessMapper extends BaseMapper { * @param userId 用户id * @return cn.iocoder.yudao.module.course.entity.Process **/ - Process selectNewMaxByUserId(@Param("userId") Long userId); + Process selectNewMaxByUserId(@Param("userId") Long userId,@Param("coachId") Long coachId); } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/ProcessService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/ProcessService.java index c536267b..fbc47ad6 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/ProcessService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/ProcessService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** * 学员课程进度 Service 接口 @@ -46,9 +47,19 @@ public interface ProcessService extends IService { * 查学生当下正在学习中的学习进度 * @author vinjor-M * @date 16:39 2025/2/8 - * @param userId TODO + * @param userId 用户id + * @param coachId 教练id * @return cn.iocoder.yudao.module.course.entity.Process **/ - Process selectByUserId(Long userId); + Process selectByUserId(Long userId,Long coachId); + + /** + * 查询教练 每个科目已毕未毕业学生数量 + * @author vinjor-M + * @date 13:52 2025/2/10 + * @param coachId 教练id + * @return java.util.Map + **/ + Map selectByCoachId(Long coachId); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java index 59a52026..0271282a 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java @@ -13,7 +13,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** @@ -108,9 +109,65 @@ public class ProcessServiceImpl extends ServiceImpl impl * @date 15:18 2025/2/8 **/ @Override - public Process selectByUserId(Long userId) { + public Process selectByUserId(Long userId,Long coachId) { + return processMapper.selectNewMaxByUserId(userId,coachId); + } - return null; + /** + * 查询教练 每个科目已毕未毕业学生数量 + * + * @param coachId 教练id + * @return java.util.Map + * @author vinjor-M + * @date 13:52 2025/2/10 + **/ + @Override + public Map selectByCoachId(Long coachId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(Process::getCoachId,coachId); + List allList = this.list(queryWrapper); + //所有科目二的记录 + List subject2List = allList.stream().filter(item->2==item.getSubject()).collect(Collectors.toList()); + //所有科目三的记录 + List subject3List = allList.stream().filter(item->3==item.getSubject()).collect(Collectors.toList()); + //科目二未毕业学员id + Set subject2No = new HashSet<>(); + //科目二已毕业学员id + Set subject2Over = new HashSet<>(); + for (Process item:subject2List){ + if("2".equals(item.getStatus())){ + //已完成 + if("1".equals(item.getExamStatus())){ + //已通过考试 + subject2Over.add(item.getUserId()); + } + }else{ + //未完成 + subject2No.add(item.getUserId()); + } + } + //科目三未毕业学员id + Set subject3No = new HashSet<>(); + //科目三已毕业学员id + Set subject3Over = new HashSet<>(); + for (Process item:subject3List){ + if("2".equals(item.getStatus())){ + //已完成 + if("1".equals(item.getExamStatus())){ + //已通过考试 + subject3Over.add(item.getUserId()); + } + }else{ + //未完成 + subject3No.add(item.getUserId()); + } + } + Map rtnMap= new HashMap<>(); + rtnMap.put("subject2No",subject2No.size()); + rtnMap.put("subject2Over",subject2Over.size()); + rtnMap.put("subject3No",subject3No.size()); + rtnMap.put("subject3Over",subject3Over.size()); + return rtnMap; } } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/mapper/ExamBatchItemMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/mapper/ExamBatchItemMapper.java index 1f259498..2a839167 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/mapper/ExamBatchItemMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/mapper/ExamBatchItemMapper.java @@ -22,4 +22,6 @@ public interface ExamBatchItemMapper extends BaseMapper { IPage queryListPage(@Param("entity") ExamBatchVO pageReqVO, Page page); List selectByBatchId(@Param("batchId")String batchId); + + List selectByUserIdAndCoachId(@Param("userId")Long userId,@Param("coachId")Long coachId); } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/ExamBatchItemService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/ExamBatchItemService.java index ce1d9642..cbb81d02 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/ExamBatchItemService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/ExamBatchItemService.java @@ -40,4 +40,14 @@ public interface ExamBatchItemService extends IService { * @date 13:48 2025/1/21 **/ void updateObj(ExamBatchItemVO examBatchVO); + + /** + * 根据学生id和教练ID查询考试记录 + * @author vinjor-M + * @date 16:38 2025/2/10 + * @param userId 学生ID + * @param coachId 教练ID,可能为空 + * @return java.util.List + **/ + List selectByUserIdAndCoachId(Long userId,Long coachId); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/impl/ExamBatchItemServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/impl/ExamBatchItemServiceImpl.java index ae5d928d..86badd9d 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/impl/ExamBatchItemServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/impl/ExamBatchItemServiceImpl.java @@ -110,23 +110,39 @@ public class ExamBatchItemServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper() + .eq(Process::getCourseId,process.getCourseId()) + .eq(Process::getUserId,process.getUserId()) + .eq(Process::getCoachId,process.getCoachId()) + .eq(Process::getSubject,nextSubject) + .eq(Process::getStatus,"0"); + List list = processService.list(queryWrapper); + if(list.isEmpty()){ + //插入 + Process nextProcess = new Process(); + nextProcess.setCourseId(process.getCourseId()); + nextProcess.setCourseName(process.getCourseName()); + nextProcess.setUserId(process.getUserId()); + nextProcess.setUserName(process.getUserName()); + nextProcess.setUserMobile(process.getUserMobile()); + nextProcess.setCoachId(process.getCoachId()); + nextProcess.setCoachName(process.getCoachName()); + nextProcess.setSubject(process.getSubject()+1); + nextProcess.setExamNum(process.getExamNum()+1); + nextProcess.setStatus("1"); + nextProcess.setTrainTime((double) 0); + processService.save(nextProcess); + }else{ + //更新状态为进行中 + Process nextProcess = list.get(0); + nextProcess.setStatus("1"); + processService.updateById(nextProcess); + } } }else{ - //考试不通过,重新插入一条本科目的学习记录 + //考试不通过,重新插入一条本科目的学习记录-并改为进行中 Process thisProcess = new Process(); thisProcess.setCourseId(process.getCourseId()); thisProcess.setCourseName(process.getCourseName()); @@ -164,4 +180,18 @@ public class ExamBatchItemServiceImpl extends ServiceImpl + * @author vinjor-M + * @date 16:38 2025/2/10 + **/ + @Override + public List selectByUserIdAndCoachId(Long userId, Long coachId) { + return examBatchItemMapper.selectByUserIdAndCoachId(userId, coachId); + } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/vo/ExamBatchItemVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/vo/ExamBatchItemVO.java index f0c2faf0..e86ad8b9 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/vo/ExamBatchItemVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/vo/ExamBatchItemVO.java @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.exam.vo; import cn.iocoder.yudao.module.exam.entity.ExamBatchItem; import lombok.Data; +import java.util.Date; + @Data public class ExamBatchItemVO extends ExamBatchItem { /** @@ -29,4 +31,21 @@ public class ExamBatchItemVO extends ExamBatchItem { * 本科目累计训练时长 */ private Double trainTime; + + /** + * 考试开始时间 + */ + private Date startTime; + /** + * 考试结束时间 + */ + private Date endTime; + /** + * 考试地址 + */ + private String addr; + /** + * 考试交通方式 + */ + private String transWay; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java index 01c5135b..9aefa5a8 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * 预约练车 Service 接口 * @@ -49,4 +51,14 @@ public interface TrainService extends IService { * @return cn.iocoder.yudao.module.train.entity.Train **/ Train getUserTrainData(Long userId,String courseId,Integer subject,String dayStr); + + /** + * 查某学生所有培训记录 + * @author vinjor-M + * @date 16:26 2025/2/10 + * @param userId 学生id + * @param coachId 教练id,可能为空 + * @return java.util.List + **/ + List selectByUserIdAndCoachId(Long userId,Long coachId); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java index fbb628bd..c4d2b715 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.train.service.impl; import cn.hutool.core.date.DateUtil; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.course.entity.Process; import cn.iocoder.yudao.module.course.service.ProcessService; import cn.iocoder.yudao.module.train.entity.Train; @@ -101,4 +102,24 @@ public class TrainServiceImpl extends ServiceImpl implements List list = this.list(queryWrapper); return list.isEmpty()?null:list.get(0); } + + /** + * 查某学生所有培训记录 + * + * @param userId 学生id + * @param coachId 教练id,可能为空 + * @return java.util.List + * @author vinjor-M + * @date 16:26 2025/2/10 + **/ + @Override + public List selectByUserIdAndCoachId(Long userId, Long coachId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(Train::getUserId,userId); + if(null!=coachId){ + queryWrapper.eq(Train::getCoachId,coachId); + } + queryWrapper.orderByDesc(BaseDO::getCreateTime); + return this.list(queryWrapper); + } } \ No newline at end of file diff --git a/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml b/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml index ad82d303..a607dd42 100644 --- a/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml @@ -26,6 +26,9 @@ dsp.* FROM drive_school_process dsp WHERE dsp.user_id = #{userId} + + AND dsp.coach_id=#{coachId} + ORDER BY dsp.`subject` DESC, dsp.create_time DESC LIMIT 1 diff --git a/dl-module-jx/src/main/resources/mapper/exam/ExamBatchItemMapper.xml b/dl-module-jx/src/main/resources/mapper/exam/ExamBatchItemMapper.xml index 7ef76647..35359960 100644 --- a/dl-module-jx/src/main/resources/mapper/exam/ExamBatchItemMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/exam/ExamBatchItemMapper.xml @@ -25,11 +25,31 @@ +