1
This commit is contained in:
parent
53bcb324ad
commit
f736e8279f
@ -1,8 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.course.controller.admin;
|
package cn.iocoder.yudao.module.course.controller.admin;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
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.entity.Process;
|
||||||
import cn.iocoder.yudao.module.course.service.ProcessService;
|
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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -26,22 +29,45 @@ public class ProcessController {
|
|||||||
@Resource
|
@Resource
|
||||||
private ProcessService processService;
|
private ProcessService processService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 学员课程进度分页查询
|
||||||
|
*
|
||||||
|
* @param pageReqVO {@link ProcessVO}
|
||||||
|
* @param pageNo 分页参数
|
||||||
|
* @param pageSize 分页参数
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<com.baomidou.mybatisplus.core.metadata.IPage < ?>>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 15:33 2025/2/17
|
||||||
|
**/
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "学员课程进度分页")
|
||||||
|
public CommonResult<IPage<?>> getDlDriveSchoolCoachPage(ProcessVO pageReqVO,
|
||||||
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
|
Page<ProcessVO> page = new Page<>(pageNo, pageSize);
|
||||||
|
return success(processService.pageProcess(page, pageReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 教练查自己带教的课程和科目
|
* 教练查自己带教的课程和科目
|
||||||
|
*
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
* @author vinjor-M
|
* @author vinjor-M
|
||||||
* @date 11:05 2025/1/15
|
* @date 11:05 2025/1/15
|
||||||
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
|
||||||
**/
|
**/
|
||||||
@GetMapping("/getMyCourseAndSubject")
|
@GetMapping("/getMyCourseAndSubject")
|
||||||
@Operation(summary = "教练查自己带教的课程和科目")
|
@Operation(summary = "教练查自己带教的课程和科目")
|
||||||
public CommonResult<?> getMyCourseAndSubject() {
|
public CommonResult<?> getMyCourseAndSubject() {
|
||||||
return success(processService.getMyCourseAndSubject());
|
return success(processService.getMyCourseAndSubject());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 教练查自己带教的课程和科目在训练中的学生
|
* 教练查自己带教的课程和科目在训练中的学生
|
||||||
|
*
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
* @author vinjor-M
|
* @author vinjor-M
|
||||||
* @date 11:05 2025/1/15
|
* @date 11:05 2025/1/15
|
||||||
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
|
||||||
**/
|
**/
|
||||||
@GetMapping("/getMyCourseStudentPage")
|
@GetMapping("/getMyCourseStudentPage")
|
||||||
@Operation(summary = "教练查自己带教的课程和科目在训练中的学生")
|
@Operation(summary = "教练查自己带教的课程和科目在训练中的学生")
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
package cn.iocoder.yudao.module.course.mapper;
|
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.entity.Process;
|
||||||
|
import cn.iocoder.yudao.module.course.vo.ProcessVO;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
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.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@ -55,5 +60,15 @@ public interface ProcessMapper extends BaseMapper<Process> {
|
|||||||
**/
|
**/
|
||||||
Process selectNewMaxByUserId(@Param("userId") Long userId,@Param("coachId") Long coachId);
|
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<cn.iocoder.yudao.module.course.vo.ProcessVO>
|
||||||
|
**/
|
||||||
|
IPage<ProcessVO> pageProcess(@Param("entity") ProcessVO entity, Page<ProcessVO> page);
|
||||||
|
|
||||||
Double selectAllTrainTime(@Param("userId") Long userId,@Param("courseId") String courseId);
|
Double selectAllTrainTime(@Param("userId") Long userId,@Param("courseId") String courseId);
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.course.service;
|
package cn.iocoder.yudao.module.course.service;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.course.entity.Process;
|
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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@ -17,59 +18,75 @@ public interface ProcessService extends IService<Process> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 教练查自己带教的课程和科目
|
* 教练查自己带教的课程和科目
|
||||||
|
*
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.course.entity.Process>
|
||||||
* @author vinjor-M
|
* @author vinjor-M
|
||||||
* @date 11:05 2025/1/15
|
* @date 11:05 2025/1/15
|
||||||
* @return java.util.List<cn.iocoder.yudao.module.course.entity.Process>
|
|
||||||
**/
|
**/
|
||||||
List<Process> getMyCourseAndSubject();
|
List<Process> getMyCourseAndSubject();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 教练查自己带教的课程和科目在训练中的学生
|
* 教练查自己带教的课程和科目在训练中的学生
|
||||||
|
*
|
||||||
|
* @param process 查询对象
|
||||||
* @author vinjor-M
|
* @author vinjor-M
|
||||||
* @date 17:11 2025/1/15
|
* @date 17:11 2025/1/15
|
||||||
* @param process 查询对象
|
|
||||||
**/
|
**/
|
||||||
IPage<Process> getMyCourseStudentPage(Process process, Page<Process> page);
|
IPage<Process> getMyCourseStudentPage(Process process, Page<Process> page);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查某个学员在某个教练的某个课程、某个科目的学习进度(当前在练习中的)
|
* 查某个学员在某个教练的某个课程、某个科目的学习进度(当前在练习中的)
|
||||||
* @author vinjor-M
|
*
|
||||||
* @date 18:39 2025/1/16
|
|
||||||
* @param userId 学生id
|
* @param userId 学生id
|
||||||
* @param courseId 课程id
|
* @param courseId 课程id
|
||||||
* @param subject 科目
|
* @param subject 科目
|
||||||
* @param coachId 教练id
|
* @param coachId 教练id
|
||||||
* @return cn.iocoder.yudao.module.course.entity.Process
|
* @return cn.iocoder.yudao.module.course.entity.Process
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 18:39 2025/1/16
|
||||||
**/
|
**/
|
||||||
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
|
* @param coachId 教练id
|
||||||
* @return cn.iocoder.yudao.module.course.entity.Process
|
* @return cn.iocoder.yudao.module.course.entity.Process
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 16:39 2025/2/8
|
||||||
**/
|
**/
|
||||||
Process selectByUserId(Long userId, Long coachId);
|
Process selectByUserId(Long userId, Long coachId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询教练 每个科目已毕未毕业学生数量
|
* 查询教练 每个科目已毕未毕业学生数量
|
||||||
* @author vinjor-M
|
*
|
||||||
* @date 13:52 2025/2/10
|
|
||||||
* @param coachId 教练id
|
* @param coachId 教练id
|
||||||
* @return java.util.Map<java.lang.String, java.lang.Integer>
|
* @return java.util.Map<java.lang.String, java.lang.Integer>
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 13:52 2025/2/10
|
||||||
**/
|
**/
|
||||||
Map<String, Integer> selectByCoachId(Long coachId);
|
Map<String, Integer> selectByCoachId(Long coachId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查某学生某课程累计总训练时长
|
* 查某学生某课程累计总训练时长
|
||||||
* @author vinjor-M
|
*
|
||||||
* @date 14:17 2025/2/11
|
|
||||||
* @param userId 学生ID
|
* @param userId 学生ID
|
||||||
* @param courseId 课程ID
|
* @param courseId 课程ID
|
||||||
* @return java.lang.Double
|
* @return java.lang.Double
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 14:17 2025/2/11
|
||||||
**/
|
**/
|
||||||
Double getAllTrainTime(Long userId, String courseId);
|
Double getAllTrainTime(Long userId, String courseId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询学员课程进度
|
||||||
|
*
|
||||||
|
* @param page 分页参数
|
||||||
|
* @param pageReqVO {@link ProcessVO}
|
||||||
|
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.course.vo.ProcessVO>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 15:34 2025/2/17
|
||||||
|
**/
|
||||||
|
IPage<ProcessVO> pageProcess(Page<ProcessVO> page, ProcessVO pageReqVO);
|
||||||
}
|
}
|
||||||
|
@ -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.entity.Process;
|
||||||
import cn.iocoder.yudao.module.course.mapper.ProcessMapper;
|
import cn.iocoder.yudao.module.course.mapper.ProcessMapper;
|
||||||
import cn.iocoder.yudao.module.course.service.ProcessService;
|
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.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -184,4 +185,18 @@ public class ProcessServiceImpl extends ServiceImpl<ProcessMapper, Process> impl
|
|||||||
return processMapper.selectAllTrainTime(userId, courseId);
|
return processMapper.selectAllTrainTime(userId, courseId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询学员课程进度
|
||||||
|
*
|
||||||
|
* @param page 分页参数
|
||||||
|
* @param pageReqVO {@link ProcessVO}
|
||||||
|
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.course.vo.ProcessVO>
|
||||||
|
* @author PQZ
|
||||||
|
* @date 15:34 2025/2/17
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public IPage<ProcessVO> pageProcess(Page<ProcessVO> page, ProcessVO pageReqVO) {
|
||||||
|
return processMapper.pageProcess(pageReqVO,page);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -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 cn.iocoder.yudao.module.course.entity.Process;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import lombok.Data;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import lombok.*;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 驾校-学员课程进度 DO
|
* 驾校-学员课程进度 DO
|
||||||
*
|
*
|
||||||
* @author 若依
|
* @author 若依
|
||||||
*/
|
*/
|
||||||
@TableName("drive_school_process")
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
public class ProcessVO extends Process {
|
||||||
@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;
|
|
||||||
|
|
||||||
}
|
}
|
@ -42,4 +42,12 @@
|
|||||||
AND dsp.course_id = #{courseId}
|
AND dsp.course_id = #{courseId}
|
||||||
AND (( dsp.`status` = '2' AND dsp.exam_status = '1' ) OR dsp.`status` = '1' )
|
AND (( dsp.`status` = '2' AND dsp.exam_status = '1' ) OR dsp.`status` = '1' )
|
||||||
</select>
|
</select>
|
||||||
|
<select id="pageProcess" resultType="cn.iocoder.yudao.module.course.vo.ProcessVO">
|
||||||
|
SELECT
|
||||||
|
dsp.* FROM drive_school_process dsp
|
||||||
|
<where>
|
||||||
|
desp.deleted = 0
|
||||||
|
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user