diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/ProcessController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/ProcessController.java index 56f8e5d3..a214a367 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/ProcessController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/ProcessController.java @@ -1,8 +1,11 @@ package cn.iocoder.yudao.module.course.controller.admin; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachPageReqVO; +import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO; import cn.iocoder.yudao.module.course.entity.Process; import cn.iocoder.yudao.module.course.service.ProcessService; +import cn.iocoder.yudao.module.course.vo.ProcessVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; @@ -26,30 +29,53 @@ public class ProcessController { @Resource private ProcessService processService; + + /** + * 学员课程进度分页查询 + * + * @param pageReqVO {@link ProcessVO} + * @param pageNo 分页参数 + * @param pageSize 分页参数 + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult> + * @author PQZ + * @date 15:33 2025/2/17 + **/ + @GetMapping("/page") + @Operation(summary = "学员课程进度分页") + public CommonResult> getDlDriveSchoolCoachPage(ProcessVO pageReqVO, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + return success(processService.pageProcess(page, pageReqVO)); + } + /** * 教练查自己带教的课程和科目 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult * @author vinjor-M * @date 11:05 2025/1/15 - * @return cn.iocoder.yudao.framework.common.pojo.CommonResult - **/ + **/ @GetMapping("/getMyCourseAndSubject") @Operation(summary = "教练查自己带教的课程和科目") public CommonResult getMyCourseAndSubject() { return success(processService.getMyCourseAndSubject()); } + /** * 教练查自己带教的课程和科目在训练中的学生 + * + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult * @author vinjor-M * @date 11:05 2025/1/15 - * @return cn.iocoder.yudao.framework.common.pojo.CommonResult - **/ + **/ @GetMapping("/getMyCourseStudentPage") @Operation(summary = "教练查自己带教的课程和科目在训练中的学生") public CommonResult> getMyCourseStudentPage(Process process, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { - Page page = new Page<>(pageNo,pageSize); - return success(processService.getMyCourseStudentPage(process,page)); + Page page = new Page<>(pageNo, pageSize); + return success(processService.getMyCourseStudentPage(process, page)); } 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 31b70ee5..e564d2a8 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 @@ -1,7 +1,12 @@ package cn.iocoder.yudao.module.course.mapper; +import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachPageReqVO; +import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO; import cn.iocoder.yudao.module.course.entity.Process; +import cn.iocoder.yudao.module.course.vo.ProcessVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -55,5 +60,15 @@ public interface ProcessMapper extends BaseMapper { **/ Process selectNewMaxByUserId(@Param("userId") Long userId,@Param("coachId") Long coachId); + /** + * 分页查询学员课程进度 + * @author PQZ + * @date 15:50 2025/2/17 + * @param entity {@link ProcessVO} + * @param page 分页参数 + * @return com.baomidou.mybatisplus.core.metadata.IPage + **/ + IPage pageProcess(@Param("entity") ProcessVO entity, Page page); + Double selectAllTrainTime(@Param("userId") Long userId,@Param("courseId") String courseId); } \ 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 fdaa8404..666f9707 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 @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.course.service; import cn.iocoder.yudao.module.course.entity.Process; +import cn.iocoder.yudao.module.course.vo.ProcessVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -17,59 +18,75 @@ public interface ProcessService extends IService { /** * 教练查自己带教的课程和科目 + * + * @return java.util.List * @author vinjor-M * @date 11:05 2025/1/15 - * @return java.util.List - **/ + **/ List getMyCourseAndSubject(); /** * 教练查自己带教的课程和科目在训练中的学生 + * + * @param process 查询对象 * @author vinjor-M * @date 17:11 2025/1/15 - * @param process 查询对象 - **/ + **/ IPage getMyCourseStudentPage(Process process, Page page); /** * 查某个学员在某个教练的某个课程、某个科目的学习进度(当前在练习中的) + * + * @param userId 学生id + * @param courseId 课程id + * @param subject 科目 + * @param coachId 教练id + * @return cn.iocoder.yudao.module.course.entity.Process * @author vinjor-M * @date 18:39 2025/1/16 - * @param userId 学生id - * @param courseId 课程id - * @param subject 科目 - * @param coachId 教练id - * @return cn.iocoder.yudao.module.course.entity.Process - **/ - Process getByStudentAndCourse(Long userId,String courseId,Integer subject,Long coachId,String examStatus); + **/ + Process getByStudentAndCourse(Long userId, String courseId, Integer subject, Long coachId, String examStatus); /** * 查学生当下正在学习中的学习进度 - * @author vinjor-M - * @date 16:39 2025/2/8 - * @param userId 用户id + * + * @param userId 用户id * @param coachId 教练id * @return cn.iocoder.yudao.module.course.entity.Process - **/ - Process selectByUserId(Long userId,Long coachId); + * @author vinjor-M + * @date 16:39 2025/2/8 + **/ + Process selectByUserId(Long userId, Long coachId); /** * 查询教练 每个科目已毕未毕业学生数量 + * + * @param coachId 教练id + * @return java.util.Map * @author vinjor-M * @date 13:52 2025/2/10 - * @param coachId 教练id - * @return java.util.Map - **/ - Map selectByCoachId(Long coachId); + **/ + Map selectByCoachId(Long coachId); /** * 查某学生某课程累计总训练时长 - * @author vinjor-M - * @date 14:17 2025/2/11 - * @param userId 学生ID + * + * @param userId 学生ID * @param courseId 课程ID * @return java.lang.Double - **/ - Double getAllTrainTime(Long userId,String courseId); - + * @author vinjor-M + * @date 14:17 2025/2/11 + **/ + Double getAllTrainTime(Long userId, String courseId); + + /** + * 分页查询学员课程进度 + * + * @param page 分页参数 + * @param pageReqVO {@link ProcessVO} + * @return com.baomidou.mybatisplus.core.metadata.IPage + * @author PQZ + * @date 15:34 2025/2/17 + **/ + IPage pageProcess(Page page, ProcessVO pageReqVO); } 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 f33481d8..3347fcb3 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 @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.course.entity.Process; import cn.iocoder.yudao.module.course.mapper.ProcessMapper; import cn.iocoder.yudao.module.course.service.ProcessService; +import cn.iocoder.yudao.module.course.vo.ProcessVO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -184,4 +185,18 @@ public class ProcessServiceImpl extends ServiceImpl impl return processMapper.selectAllTrainTime(userId, courseId); } + /** + * 分页查询学员课程进度 + * + * @param page 分页参数 + * @param pageReqVO {@link ProcessVO} + * @return com.baomidou.mybatisplus.core.metadata.IPage + * @author PQZ + * @date 15:34 2025/2/17 + **/ + @Override + public IPage pageProcess(Page page, ProcessVO pageReqVO) { + return processMapper.pageProcess(pageReqVO,page); + } + } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/ProcessVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/ProcessVO.java index 735b7812..3d29a955 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/ProcessVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/ProcessVO.java @@ -1,103 +1,14 @@ -package cn.iocoder.yudao.module.course.entity; +package cn.iocoder.yudao.module.course.vo; -import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.*; - -import java.util.Date; +import cn.iocoder.yudao.module.course.entity.Process; +import lombok.Data; /** * 驾校-学员课程进度 DO * * @author 若依 */ -@TableName("drive_school_process") @Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class Process extends TenantBaseDO { - - /** - * id - */ - @TableId(type = IdType.ASSIGN_UUID) - private String id; - /** - * 课程ID - */ - private String courseId; - /** - * 课程名称 - */ - private String courseName; - /** - * 用户(学员)ID - */ - private Long userId; - /** - * 用户(学员)姓名 - */ - private String userName; - /** - * 学员手机号 - */ - private String userMobile; - /** - * 教练ID - */ - private Long coachId; - /** - * 教练姓名 - */ - private String coachName; - /** - * 科目(1-科目一;2-科目二;3科目三;4科目四) - */ - private Integer subject; - /** - * 考试次数(第一次考试为1,第二次为2...) - */ - private Integer examNum; - /** - * 当前状态(0-未开始;1-训练中;2-已完成) - */ - private String status; - /** - * 考试状态(0未通过;1已通过;9已送考;null未送考) - */ - private String examStatus; - /** - * 考试分数 - */ - private Double examScore; - /** - * 图片证明材料 - */ - private String images; - /** - * 考试时间 - */ - private Date examTime; - /** - * 备注 - */ - private String remark; - /** - * 本科目累计训练时长 - */ - private Double trainTime; - /** - * 财务审核是否通过(0未通过;1通过;null待审核) - */ - private Boolean financePass; - /** - * 财务审核备注 - */ - private String financeRemark; +public class ProcessVO extends Process { } \ 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 a88a966f..5acf60d0 100644 --- a/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml @@ -42,4 +42,12 @@ AND dsp.course_id = #{courseId} AND (( dsp.`status` = '2' AND dsp.exam_status = '1' ) OR dsp.`status` = '1' ) +