diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java index b8fc7baf..83c261bf 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.base.service.impl; +import cn.hutool.core.date.DateUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; @@ -14,6 +15,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -151,6 +153,27 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl queryCoachListPage(DlDriveSchoolStudentVO pageReqVO, Page page) { + //默认查全部数据 + String startTimeStr = ""; + String endTimeStr = ""; + if("more".equals(pageReqVO.getTimeType())){ + if(StringUtils.isNotEmpty(pageReqVO.getStartTime())){ + startTimeStr = pageReqVO.getStartTime()+" 00:00:01"; + } + if(StringUtils.isNotEmpty(pageReqVO.getEndTime())) { + endTimeStr = pageReqVO.getEndTime() + " 23:59:59"; + } + }else if("month".equals(pageReqVO.getTimeType())){ + //当月 + startTimeStr = DateUtil.format(DateUtil.beginOfMonth(DateUtil.date()),"yyyy-MM-dd")+" 00:00:01"; + endTimeStr = DateUtil.format(DateUtil.endOfMonth(DateUtil.date()),"yyyy-MM-dd")+" 23:59:59"; + }else if("day".equals(pageReqVO.getTimeType())){ + //当天 + startTimeStr = DateUtil.formatDate(DateUtil.date())+" 00:00:01"; + endTimeStr = DateUtil.formatDate(DateUtil.date())+" 23:59:59"; + } + pageReqVO.setStartTime(startTimeStr); + pageReqVO.setStartTime(endTimeStr); IPage pageResult = dlDriveSchoolStudentMapper.selectByCoachId(pageReqVO,page); pageResult.getRecords().forEach(item->{ //查每个学生的当前所处的科目 diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStudentVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStudentVO.java index 207524a4..e26a3090 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStudentVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStudentVO.java @@ -22,4 +22,11 @@ public class DlDriveSchoolStudentVO extends DlDriveSchoolStudent { private String courseType; /**科目*/ private Integer subject; + + /**时间查询类型(all-全部|day-当日|month-当月|more-自定义)*/ + private String timeType; + /**查询时间范围--开始*/ + private String startTime; + /**查询时间范围--结束*/ + private String endTime; } \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/StudentCountVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/StudentCountVO.java index 42f7f4fb..aabc27da 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/StudentCountVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/StudentCountVO.java @@ -16,4 +16,6 @@ public class StudentCountVO { private Integer c2Num; /**总人数*/ private Integer totalNum; + /**userId*/ + private Long userId; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java index 9ec45fc2..b77c2a24 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java @@ -94,6 +94,7 @@ public class TrainController { public CommonResult> indexGetTrainList(@RequestParam(value = "type") String type, @RequestParam(value = "timeType") String timeType, @RequestParam(value = "coachId",required = false) Long coachId, + @RequestParam(value = "sourceCoachId",required = false) Long sourceCoachId, @RequestParam(value = "searchValue",required = false) String searchValue, @RequestParam(value = "courseType",required = false) String courseType, @RequestParam(value = "subject",required = false) Integer subject, 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 a048c36d..5dcb6e38 100644 --- a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml @@ -115,6 +115,12 @@ AND dss.`name` LIKE CONCAT('%',#{entity.name},'%') + + AND dss.create_time >= #{startTime} + + + AND dss.create_time <= #{endTime} + AND dss.id IS NOT NULL ORDER BY dss.create_time DESC @@ -211,16 +217,17 @@ c.image AS image, c.NAME AS coachName, c.car_id AS carId, + c.user_id AS userId, COUNT(DISTINCT s.user_id) AS totalNum, COUNT(DISTINCT CASE WHEN o.course_type = 'C1' THEN o.user_id END) AS c1Num, COUNT(DISTINCT CASE WHEN o.course_type = 'C2' THEN o.user_id END) AS c2Num FROM drive_school_coach c - LEFT JOIN drive_school_student s ON c.id = s.source_user_id + LEFT JOIN drive_school_student s ON c.user_id = s.source_user_id AND s.deleted=0 AND s.source = #{type} - LEFT JOIN drive_school_course_order o ON s.user_id = o.user_id AND o.payment_status > 1 + LEFT JOIN drive_school_course_order o ON s.user_id = o.user_id AND o.payment_status > 1 AND o.deleted=0 AND o.create_time >= #{startTime}