From af10e91e51a1ae262ec150573d000d5901e1fc06 Mon Sep 17 00:00:00 2001 From: Vinjor <vinjorm@gmail.com> Date: Tue, 25 Feb 2025 17:10:29 +0800 Subject: [PATCH] 1 --- .../controller/admin/DataViewController.java | 13 ++++++++-- .../mapper/DlDriveSchoolStudentMapper.java | 7 +++++ .../module/base/service/DataViewService.java | 10 +++++++ .../service/impl/DataViewServiceImpl.java | 26 ++++++++++++++++--- .../base/DlDriveSchoolStudentMapper.xml | 18 +++++++++++++ 5 files changed, 68 insertions(+), 6 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 2c4a2798..71a0fca8 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 @@ -11,8 +11,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.Date; - import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 数据查询统一方法") @@ -57,4 +55,15 @@ public class DataViewController { @RequestParam(value = "endTime",required = false) String endTime) { return success(dataViewService.selectIndexInfo(type,timeType,coachId,startTime,endTime)); } + + /** + * 查询学生总数 + * @author vinjor-M + * @date 15:57 2025/2/25 + **/ + @GetMapping("/getStudentCount") + @Operation(summary = "查询学生总数") + public CommonResult<?> getStudentCount() { + return success(dataViewService.getStudentCount()); + } } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/mapper/DlDriveSchoolStudentMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/mapper/DlDriveSchoolStudentMapper.java index 8eb01743..fe65e14a 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/mapper/DlDriveSchoolStudentMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/mapper/DlDriveSchoolStudentMapper.java @@ -48,6 +48,13 @@ public interface DlDriveSchoolStudentMapper extends BaseMapper<DlDriveSchoolStud * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO> **/ IPage<DlDriveSchoolStaffVO> pageStaffStudent(@Param("entity") DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page); + /** + * 查所有学生列表 + * @author vinjor-M + * @date 16:11 2025/2/25 + * @return java.util.List<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO> + **/ + List<DlDriveSchoolStaffVO> selectStudentListCount(); /** * 教练查询自己的学生 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 bffdc960..73052669 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 @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.base.service; import cn.iocoder.yudao.module.base.vo.IndexDataVO; import cn.iocoder.yudao.module.base.vo.StudentInfoVO; +import java.util.Map; + /** * 数据查询统一方法 * @@ -28,4 +30,12 @@ public interface DataViewService { * @param endTime 查询时间范围--结束 **/ IndexDataVO selectIndexInfo(String type, String timeType, Long coachId, String startTime, String endTime); + + /** + * 查询学生总数 + * @author vinjor-M + * @date 15:58 2025/2/25 + * @return java.util.Map<java.lang.String,java.lang.Object> + **/ + Map<String,Object> getStudentCount(); } \ 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 dd8cfdde..fa832f4c 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 @@ -6,10 +6,7 @@ import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolStudentMapper; 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.DlDriveSchoolStudentVO; -import cn.iocoder.yudao.module.base.vo.IndexDataVO; -import cn.iocoder.yudao.module.base.vo.StudentInfoVO; +import cn.iocoder.yudao.module.base.vo.*; import cn.iocoder.yudao.module.course.entity.Process; import cn.iocoder.yudao.module.course.entity.SchoolCommission; import cn.iocoder.yudao.module.course.mapper.SchoolCommissionMapper; @@ -29,6 +26,7 @@ import org.springframework.validation.annotation.Validated; import java.text.DecimalFormat; import java.util.*; +import java.util.stream.Collectors; @Service @Validated @@ -270,4 +268,24 @@ public class DataViewServiceImpl implements DataViewService { rtnObj.setExamInfo(examInfoMap); return rtnObj; } + + /** + * 查询学生总数 + * + * @return java.util.Map<java.lang.String, java.lang.Object> + * @author vinjor-M + * @date 15:58 2025/2/25 + **/ + @Override + public Map<String, Object> getStudentCount() { + List<DlDriveSchoolStaffVO> list= studentMapper.selectStudentListCount(); + Map<String, Object> rtnMap = new HashMap<>(); + rtnMap.put("all",list.size()); + //按courseType分组 + Map<String,List<DlDriveSchoolStaffVO>> map = list.stream().collect(Collectors.groupingBy(DlDriveSchoolStaffVO::getCourseType)); + for (String key:map.keySet()){ + rtnMap.put(key,map.get(key).size()); + } + return rtnMap; + } } diff --git a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml index 6a552496..36c61123 100644 --- a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml @@ -258,4 +258,22 @@ AND dsco.create_time <= #{endTime} </if> </select> + <select id="selectStudentListCount" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO"> + SELECT + main.id AS id, + dsco.course_type + FROM + drive_school_student main + LEFT JOIN drive_school_course_order dsco ON main.user_id = dsco.user_id + AND dsco.deleted = 0 + AND dsco.payment_status IN ( '2', '3', '4', '5' ) + AND dsco.if_end = 0 + LEFT JOIN drive_school_process dsp ON main.user_id = dsp.user_id + AND dsco.course_id = dsp.course_id + AND dsp.`status` = '1' + WHERE + main.deleted = 0 + GROUP BY + main.id + </select> </mapper> \ No newline at end of file