1
This commit is contained in:
parent
f736e8279f
commit
59811ea203
@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
@Tag(name = "管理后台 - 数据查询统一方法")
|
@Tag(name = "管理后台 - 数据查询统一方法")
|
||||||
@ -35,4 +37,24 @@ public class DataViewController {
|
|||||||
return success(dataViewService.selectStudentInfo(id,coachId));
|
return success(dataViewService.selectStudentInfo(id,coachId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页数据统计查询接口 --
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 14:12 2025/2/14
|
||||||
|
* @param type 查询类型(coach-教练查询|admin-管理员查询)
|
||||||
|
* @param timeType 时间查询类型(all-全部|day-当日|month-当月|more-自定义)
|
||||||
|
* @param coachId 教练id
|
||||||
|
* @param startTime 查询时间范围--开始
|
||||||
|
* @param endTime 查询时间范围--结束
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
|
**/
|
||||||
|
@GetMapping("/indexData")
|
||||||
|
@Operation(summary = "首页数据统计查询接口")
|
||||||
|
public CommonResult<?> selectIndexInfo(@RequestParam(value = "type") String type,
|
||||||
|
@RequestParam(value = "timeType") String timeType,
|
||||||
|
@RequestParam(value = "coachId",required = false) Long coachId,
|
||||||
|
@RequestParam(value = "startTime",required = false) String startTime,
|
||||||
|
@RequestParam(value = "endTime",required = false) String endTime) {
|
||||||
|
return success(dataViewService.selectIndexInfo(type,timeType,coachId,startTime,endTime));
|
||||||
|
}
|
||||||
}
|
}
|
@ -126,5 +126,19 @@ public class DlDriveSchoolCoachController {
|
|||||||
return success(dlDriveSchoolCoachService.getCoachById(id));
|
return success(dlDriveSchoolCoachService.getCoachById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:41 2025/2/18
|
||||||
|
* @param userId userId
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
|
**/
|
||||||
|
@GetMapping("/getCoachByUserId")
|
||||||
|
@Operation(summary = "根据userId获得驾校教练信息")
|
||||||
|
@Parameter(name = "userId", description = "用户id", required = true, example = "1024")
|
||||||
|
public CommonResult<?> getCoachByUserId(@RequestParam("userId") Long userId) {
|
||||||
|
return success(dlDriveSchoolCoachService.getDlDriveSchoolCoachByUserId(userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -57,4 +57,24 @@ public interface DlDriveSchoolStudentMapper extends BaseMapper<DlDriveSchoolStud
|
|||||||
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO>
|
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO>
|
||||||
**/
|
**/
|
||||||
IPage<DlDriveSchoolStudentVO> selectByCoachId(@Param("entity") DlDriveSchoolStudentVO pageReqVO, Page<DlDriveSchoolStudentVO> page);
|
IPage<DlDriveSchoolStudentVO> selectByCoachId(@Param("entity") DlDriveSchoolStudentVO pageReqVO, Page<DlDriveSchoolStudentVO> page);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查学生列表---驾校层面查询
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:13 2025/2/14
|
||||||
|
* @param coachId 教练ID
|
||||||
|
* @param startTime 开始时间
|
||||||
|
* @param endTime 结束时间
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO>
|
||||||
|
**/
|
||||||
|
List<DlDriveSchoolStudentVO> selectStudentList(@Param("coachId")Long coachId, @Param("startTime") String startTime, @Param("endTime")String endTime);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 教练层面查询自己的学生列表
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:24 2025/2/17
|
||||||
|
**/
|
||||||
|
List<DlDriveSchoolStudentVO> selectStudentListCoach(@Param("coachId")Long coachId, @Param("startTime") String startTime, @Param("endTime")String endTime);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.base.service;
|
package cn.iocoder.yudao.module.base.service;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.base.vo.IndexDataVO;
|
||||||
import cn.iocoder.yudao.module.base.vo.StudentInfoVO;
|
import cn.iocoder.yudao.module.base.vo.StudentInfoVO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -16,5 +17,15 @@ public interface DataViewService {
|
|||||||
* @return cn.iocoder.yudao.module.base.vo.StudentInfoVO
|
* @return cn.iocoder.yudao.module.base.vo.StudentInfoVO
|
||||||
**/
|
**/
|
||||||
StudentInfoVO selectStudentInfo(Long id,Long coachId);
|
StudentInfoVO selectStudentInfo(Long id,Long coachId);
|
||||||
|
/**
|
||||||
|
* 首页数据统计查询接口 --
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 14:12 2025/2/14
|
||||||
|
* @param type 查询类型(coach-教练查询|admin-管理员查询)
|
||||||
|
* @param timeType 时间查询类型(all-全部|day-当日|month-当月|more-自定义)
|
||||||
|
* @param coachId 教练id
|
||||||
|
* @param startTime 查询时间范围--开始
|
||||||
|
* @param endTime 查询时间范围--结束
|
||||||
|
**/
|
||||||
|
IndexDataVO selectIndexInfo(String type, String timeType, Long coachId, String startTime, String endTime);
|
||||||
}
|
}
|
@ -1,22 +1,30 @@
|
|||||||
package cn.iocoder.yudao.module.base.service.impl;
|
package cn.iocoder.yudao.module.base.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent;
|
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent;
|
||||||
|
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolStudentMapper;
|
||||||
import cn.iocoder.yudao.module.base.service.DataViewService;
|
import cn.iocoder.yudao.module.base.service.DataViewService;
|
||||||
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService;
|
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService;
|
||||||
import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService;
|
import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService;
|
||||||
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO;
|
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.StudentInfoVO;
|
||||||
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.exam.mapper.ExamBatchItemMapper;
|
||||||
import cn.iocoder.yudao.module.exam.service.ExamBatchItemService;
|
import cn.iocoder.yudao.module.exam.service.ExamBatchItemService;
|
||||||
import cn.iocoder.yudao.module.exam.vo.ExamBatchItemVO;
|
import cn.iocoder.yudao.module.exam.vo.ExamBatchItemVO;
|
||||||
import cn.iocoder.yudao.module.train.entity.Train;
|
import cn.iocoder.yudao.module.train.entity.Train;
|
||||||
|
import cn.iocoder.yudao.module.train.mapper.TrainMapper;
|
||||||
import cn.iocoder.yudao.module.train.service.TrainService;
|
import cn.iocoder.yudao.module.train.service.TrainService;
|
||||||
|
import cn.iocoder.yudao.module.train.vo.TrainVO;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import java.util.List;
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
@ -24,13 +32,19 @@ public class DataViewServiceImpl implements DataViewService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DlDriveSchoolStudentService studentService;
|
private DlDriveSchoolStudentService studentService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private DlDriveSchoolStudentMapper studentMapper;
|
||||||
|
@Autowired
|
||||||
private DlDriveSchoolCoachService coachService;
|
private DlDriveSchoolCoachService coachService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProcessService processService;
|
private ProcessService processService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TrainService trainService;
|
private TrainService trainService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private TrainMapper trainMapper;
|
||||||
|
@Autowired
|
||||||
private ExamBatchItemService examBatchItemService;
|
private ExamBatchItemService examBatchItemService;
|
||||||
|
@Autowired
|
||||||
|
private ExamBatchItemMapper examBatchItemMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询学员详情
|
* 查询学员详情
|
||||||
@ -68,4 +82,150 @@ public class DataViewServiceImpl implements DataViewService {
|
|||||||
studentInfoVO.setExamList(examList);
|
studentInfoVO.setExamList(examList);
|
||||||
return studentInfoVO;
|
return studentInfoVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页数据统计查询接口 --
|
||||||
|
*
|
||||||
|
* @param type 查询类型(coach-教练查询|admin-管理员查询)
|
||||||
|
* @param timeType 时间查询类型(all-全部|day-当日|month-当月|more-自定义)
|
||||||
|
* @param coachId 教练id
|
||||||
|
* @param startTime 查询时间范围--开始
|
||||||
|
* @param endTime 查询时间范围--结束
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 14:12 2025/2/14
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public IndexDataVO selectIndexInfo(String type, String timeType, Long coachId, String startTime, String endTime) {
|
||||||
|
IndexDataVO rtnObj = new IndexDataVO();
|
||||||
|
//默认查全部数据
|
||||||
|
String startTimeStr = "";
|
||||||
|
String endTimeStr = "";
|
||||||
|
if("more".equals(timeType)){
|
||||||
|
startTimeStr = startTime+" 00:00:01";
|
||||||
|
endTimeStr = endTime+" 23:59:59";
|
||||||
|
}else if("month".equals(timeType)){
|
||||||
|
//当月
|
||||||
|
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(timeType)){
|
||||||
|
//当天
|
||||||
|
startTimeStr = DateUtil.formatDate(DateUtil.date())+" 00:00:01";
|
||||||
|
endTimeStr = DateUtil.formatDate(DateUtil.date())+" 23:59:59";
|
||||||
|
}
|
||||||
|
if("admin".equals(type)){
|
||||||
|
//管理员查询
|
||||||
|
/*1.招生情况*/
|
||||||
|
List<DlDriveSchoolStudentVO> studentList = studentMapper.selectStudentList(coachId, startTimeStr, endTimeStr);
|
||||||
|
Map<String,Object> studentInfoMap = new HashMap<>();
|
||||||
|
int coachNum=0;
|
||||||
|
double coachAmount=0;
|
||||||
|
int schoolNum=0;
|
||||||
|
double schoolAmount=0;
|
||||||
|
for (DlDriveSchoolStudentVO item:studentList){
|
||||||
|
if("02".equals(item.getSource())){
|
||||||
|
//教练自招
|
||||||
|
coachNum++;
|
||||||
|
coachAmount = coachAmount+item.getPriceAmount();
|
||||||
|
}else{
|
||||||
|
//驾校统招
|
||||||
|
schoolNum++;
|
||||||
|
schoolAmount = schoolAmount+item.getPriceAmount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
studentInfoMap.put("coachNum",coachNum);
|
||||||
|
studentInfoMap.put("coachAmount",coachAmount);
|
||||||
|
studentInfoMap.put("schoolNum",schoolNum);
|
||||||
|
studentInfoMap.put("schoolAmount",schoolAmount);
|
||||||
|
rtnObj.setStudentInfo(studentInfoMap);
|
||||||
|
/*4.财务情况--TODO*/
|
||||||
|
Map<String,Object> moneyInfoMap = new HashMap<>();
|
||||||
|
moneyInfoMap.put("inAmount",0);
|
||||||
|
moneyInfoMap.put("outAmount",0);
|
||||||
|
rtnObj.setMoneyInfo(moneyInfoMap);
|
||||||
|
}else if("coach".equals(type)){
|
||||||
|
//教练查询
|
||||||
|
/*1.学员情况*/
|
||||||
|
List<DlDriveSchoolStudentVO> studentVOList = studentMapper.selectStudentListCoach(coachId,startTimeStr,endTimeStr);
|
||||||
|
int overNum = (int) studentVOList.stream().filter(item -> null != item.getGradTime()).count();
|
||||||
|
int noOverNum = studentVOList.size()-overNum;
|
||||||
|
Map<String,Object> studentInfoMap = new HashMap<>();
|
||||||
|
studentInfoMap.put("allNum",studentVOList.size());
|
||||||
|
studentInfoMap.put("overNum",overNum);
|
||||||
|
studentInfoMap.put("noOverNum",noOverNum);
|
||||||
|
rtnObj.setStudentInfo(studentInfoMap);
|
||||||
|
/*4.财务情况-查教练自己应得的提成-TODO*/
|
||||||
|
Map<String,Object> moneyInfoMap = new HashMap<>();
|
||||||
|
moneyInfoMap.put("money",0);
|
||||||
|
rtnObj.setMoneyInfo(moneyInfoMap);
|
||||||
|
}
|
||||||
|
/*2.训练情况*/
|
||||||
|
List<TrainVO> allTrainList = trainMapper.selectTrainByCondition(coachId,startTimeStr,endTimeStr);
|
||||||
|
//所有车辆set,目的是去重
|
||||||
|
Set<String> allCarSet = new HashSet<>();
|
||||||
|
Set<String> subject2CarSet = new HashSet<>();
|
||||||
|
Set<String> subject3CarSet = new HashSet<>();
|
||||||
|
Set<Long> allUserSet = new HashSet<>();
|
||||||
|
Set<Long> subject2UserSet = new HashSet<>();
|
||||||
|
Set<Long> subject3UserSet = new HashSet<>();
|
||||||
|
for (TrainVO trainVO:allTrainList){
|
||||||
|
if(2==trainVO.getSubject()){
|
||||||
|
subject2CarSet.add(trainVO.getCarNo());
|
||||||
|
allCarSet.add(trainVO.getCarNo());
|
||||||
|
subject2UserSet.add(trainVO.getUserId());
|
||||||
|
allUserSet.add(trainVO.getUserId());
|
||||||
|
}else if(3==trainVO.getSubject()){
|
||||||
|
subject3CarSet.add(trainVO.getCarNo());
|
||||||
|
allCarSet.add(trainVO.getCarNo());
|
||||||
|
subject3UserSet.add(trainVO.getUserId());
|
||||||
|
allUserSet.add(trainVO.getUserId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Map<String,Object> trainInfoMap = new HashMap<>();
|
||||||
|
trainInfoMap.put("allCarNum",allCarSet.size());
|
||||||
|
trainInfoMap.put("subject2CarNum",subject2CarSet.size());
|
||||||
|
trainInfoMap.put("subject3CarNum",subject3CarSet.size());
|
||||||
|
trainInfoMap.put("allUserNum",allUserSet.size());
|
||||||
|
trainInfoMap.put("subject2UserNum",subject2UserSet.size());
|
||||||
|
trainInfoMap.put("subject3UserNum",subject3UserSet.size());
|
||||||
|
rtnObj.setTrainInfo(trainInfoMap);
|
||||||
|
/*3.考试情况*/
|
||||||
|
List<ExamBatchItemVO> examBatchItemVOList = examBatchItemMapper.selectByCoachId(coachId,startTimeStr,endTimeStr);
|
||||||
|
Double subject2Num = 0.0;
|
||||||
|
Double subject3Num = 0.0;
|
||||||
|
Double subject2PassNum = 0.0;
|
||||||
|
Double subject3PassNum = 0.0;
|
||||||
|
for (ExamBatchItemVO exam:examBatchItemVOList){
|
||||||
|
if(2==exam.getSubject()){
|
||||||
|
subject2Num++;
|
||||||
|
if(null!=exam.getIfPass() && exam.getIfPass()){
|
||||||
|
//考试通过
|
||||||
|
subject2PassNum++;
|
||||||
|
}
|
||||||
|
}else if(3==exam.getSubject()){
|
||||||
|
subject3Num++;
|
||||||
|
if(null!=exam.getIfPass() && exam.getIfPass()){
|
||||||
|
//考试通过
|
||||||
|
subject3PassNum++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
double subject2Rate=0;
|
||||||
|
double subject3Rate=0;
|
||||||
|
if(0!=subject2Num && 0!=subject2PassNum){
|
||||||
|
subject2Rate = subject2PassNum / subject2Num;
|
||||||
|
}
|
||||||
|
if(0!=subject3Num && 0!=subject3PassNum){
|
||||||
|
subject3Rate = subject3PassNum / subject3Num;
|
||||||
|
}
|
||||||
|
DecimalFormat df = new DecimalFormat("#.00");
|
||||||
|
Map<String,Object> examInfoMap = new HashMap<>();
|
||||||
|
examInfoMap.put("subject2All",subject2Num);
|
||||||
|
examInfoMap.put("subject2Pass",subject2PassNum);
|
||||||
|
examInfoMap.put("subject2Rate",0!=subject2Rate?(Double.parseDouble(df.format(subject2Rate))*100):0);
|
||||||
|
examInfoMap.put("subject3All",subject3Num);
|
||||||
|
examInfoMap.put("subject3Pass",subject3PassNum);
|
||||||
|
examInfoMap.put("subject3Rate",0!=subject3Rate?(Double.parseDouble(df.format(subject3Rate))*100):0);
|
||||||
|
rtnObj.setExamInfo(examInfoMap);
|
||||||
|
return rtnObj;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,4 +16,6 @@ public class DlDriveSchoolStudentVO extends DlDriveSchoolStudent {
|
|||||||
private String courseId;
|
private String courseId;
|
||||||
/**学习进度*/
|
/**学习进度*/
|
||||||
private Process process;
|
private Process process;
|
||||||
|
/**总金额*/
|
||||||
|
private Double priceAmount;
|
||||||
}
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package cn.iocoder.yudao.module.base.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* app首页数据统计实体
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 14:15 2025/2/14
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class IndexDataVO {
|
||||||
|
/**招生情况*/
|
||||||
|
private Map<String,Object> studentInfo;
|
||||||
|
/**训练情况*/
|
||||||
|
private Map<String,Object> trainInfo;
|
||||||
|
/**考试情况*/
|
||||||
|
private Map<String,Object> examInfo;
|
||||||
|
/**财务情况*/
|
||||||
|
private Map<String,Object> moneyInfo;
|
||||||
|
}
|
@ -24,4 +24,6 @@ public interface ExamBatchItemMapper extends BaseMapper<ExamBatchItem> {
|
|||||||
List<ExamBatchItemVO> selectByBatchId(@Param("batchId")String batchId);
|
List<ExamBatchItemVO> selectByBatchId(@Param("batchId")String batchId);
|
||||||
|
|
||||||
List<ExamBatchItemVO> selectByUserIdAndCoachId(@Param("userId")Long userId,@Param("coachId")Long coachId);
|
List<ExamBatchItemVO> selectByUserIdAndCoachId(@Param("userId")Long userId,@Param("coachId")Long coachId);
|
||||||
|
|
||||||
|
List<ExamBatchItemVO> selectByCoachId(@Param("coachId")Long coachId,@Param("startTime")String startTime,@Param("endTime")String endTime);
|
||||||
}
|
}
|
@ -8,6 +8,8 @@ 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;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 练车记录 Mapper
|
* 练车记录 Mapper
|
||||||
*
|
*
|
||||||
@ -18,6 +20,6 @@ public interface TrainMapper extends BaseMapper<Train> {
|
|||||||
|
|
||||||
IPage<TrainVO> queryListPage(@Param("entity") TrainVO entity, Page<TrainVO> page);
|
IPage<TrainVO> queryListPage(@Param("entity") TrainVO entity, Page<TrainVO> page);
|
||||||
|
|
||||||
|
List<TrainVO> selectTrainByCondition(@Param("coachId")Long coachId,@Param("startTime")String startTime,@Param("endTime")String endTime);
|
||||||
|
|
||||||
}
|
}
|
@ -13,4 +13,8 @@ public class TrainVO extends Train {
|
|||||||
* 学习课程进度表ID
|
* 学习课程进度表ID
|
||||||
*/
|
*/
|
||||||
private String processId;
|
private String processId;
|
||||||
|
/**
|
||||||
|
* 车牌号
|
||||||
|
*/
|
||||||
|
private String carNo;
|
||||||
}
|
}
|
||||||
|
@ -80,4 +80,46 @@
|
|||||||
GROUP BY
|
GROUP BY
|
||||||
temp.user_id
|
temp.user_id
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectStudentList" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO">
|
||||||
|
SELECT
|
||||||
|
dss.* ,SUM(dsco.reserve_money+dsco.rest_money)AS priceAmount
|
||||||
|
FROM
|
||||||
|
drive_school_student dss
|
||||||
|
LEFT JOIN drive_school_course_order dsco ON dss.user_id=dsco.user_id AND dsco.deleted=0
|
||||||
|
WHERE
|
||||||
|
dss.deleted=0
|
||||||
|
AND dsco.id IS NOT NULL
|
||||||
|
<if test="startTime!=null and startTime!=''">
|
||||||
|
AND dss.create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!=null and endTime!=''">
|
||||||
|
AND dss.create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
<if test="coachId!=null and coachId!=''">
|
||||||
|
AND dss.source_user_id=#{coachId}
|
||||||
|
</if>
|
||||||
|
GROUP BY dss.id
|
||||||
|
</select>
|
||||||
|
<select id="selectStudentListCoach" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO">
|
||||||
|
SELECT
|
||||||
|
dss.*
|
||||||
|
FROM
|
||||||
|
drive_school_process dsp
|
||||||
|
LEFT JOIN drive_school_student dss ON dsp.user_id = dss.user_id
|
||||||
|
AND dss.deleted = 0
|
||||||
|
WHERE
|
||||||
|
dsp.deleted = 0
|
||||||
|
AND dss.id IS NOT NULL
|
||||||
|
<if test="coachId != null and coachId != ''">
|
||||||
|
AND dsp.coach_id = #{coachId}
|
||||||
|
</if>
|
||||||
|
<if test="startTime!=null and startTime!=''">
|
||||||
|
AND dss.create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!=null and endTime!=''">
|
||||||
|
AND dss.create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
dss.id
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
@ -52,4 +52,24 @@
|
|||||||
</if>
|
</if>
|
||||||
ORDER BY dseb.create_time DESC
|
ORDER BY dseb.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectByCoachId" resultType="cn.iocoder.yudao.module.exam.vo.ExamBatchItemVO">
|
||||||
|
SELECT
|
||||||
|
dsebi.*,
|
||||||
|
dseb.`subject`
|
||||||
|
FROM
|
||||||
|
drive_school_exam_batch_item dsebi
|
||||||
|
LEFT JOIN drive_school_exam_batch dseb ON dsebi.batch_id = dseb.id
|
||||||
|
WHERE
|
||||||
|
dsebi.deleted = 0
|
||||||
|
AND dseb.deleted = 0
|
||||||
|
<if test="coachId != null and coachId != ''">
|
||||||
|
AND dseb.coach_id= #{coachId}
|
||||||
|
</if>
|
||||||
|
<if test="startTime!=null and startTime!=''">
|
||||||
|
AND dseb.start_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!=null and endTime!=''">
|
||||||
|
AND dseb.start_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="cn.iocoder.yudao.module.train.mapper.ReservationCourseMapper">
|
<mapper namespace="cn.iocoder.yudao.module.train.mapper.TrainMapper">
|
||||||
|
|
||||||
<select id="queryListPage" resultType="cn.iocoder.yudao.module.train.vo.TrainVO">
|
<select id="queryListPage" resultType="cn.iocoder.yudao.module.train.vo.TrainVO">
|
||||||
SELECT
|
SELECT
|
||||||
@ -31,4 +31,23 @@
|
|||||||
</if>
|
</if>
|
||||||
order by dsrc.create_time desc
|
order by dsrc.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectTrainByCondition" resultType="cn.iocoder.yudao.module.train.vo.TrainVO">
|
||||||
|
SELECT
|
||||||
|
dst.*,
|
||||||
|
dsc.car_id
|
||||||
|
FROM
|
||||||
|
drive_school_train dst
|
||||||
|
LEFT JOIN drive_school_coach dsc ON dst.coach_id = dsc.user_id
|
||||||
|
WHERE
|
||||||
|
dst.deleted = 0
|
||||||
|
<if test="coachId != null and coachId != ''">
|
||||||
|
AND dst.coach_id = #{coachId}
|
||||||
|
</if>
|
||||||
|
<if test="startTime!=null and startTime!=''">
|
||||||
|
AND dst.create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!=null and endTime!=''">
|
||||||
|
AND dst.create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user