diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DlDriveSchoolCoachController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DlDriveSchoolCoachController.java index 61170a74..13777ca0 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DlDriveSchoolCoachController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DlDriveSchoolCoachController.java @@ -166,6 +166,15 @@ public class DlDriveSchoolCoachController { return success(dlDriveSchoolCoachService.getCoachByIdAndTime(id,timeType,startTime,endTime)); } + @GetMapping("/getBusinessByIdAndTime") + @Operation(summary = "获得驾校业务经理") + public CommonResult getBusinessByIdAndTime(@RequestParam("id") String id, + @RequestParam(value = "timeType") String timeType, + @RequestParam(value = "startTime",required = false) String startTime, + @RequestParam(value = "endTime",required = false) String endTime) { + return success(dlDriveSchoolCoachService.getBusinessByIdAndTime(id,timeType,startTime,endTime)); + } + /** * * @author vinjor-M diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachService.java index 27303692..571f20bc 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachService.java @@ -105,6 +105,7 @@ public interface DlDriveSchoolCoachService extends IService **/ CoachInfoVO getCoachById(String id); CoachInfoVO getCoachByIdAndTime(String id, String timeType, String startTime, String endTime); + CoachInfoVO getBusinessByIdAndTime(String id, String timeType, String startTime, String endTime); /** * 根据邀请码查询教练信息 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 78d46af6..dbae2943 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 @@ -211,11 +211,16 @@ public class DataViewServiceImpl implements DataViewService { double coachAmount = 0; int schoolNum = 0; double schoolAmount = 0; + int businessNum = 0; + double businessAmount = 0; for (DlDriveSchoolStudentVO item : studentList) { if ("02".equals(item.getSource())) { //教练自招 coachNum++; coachAmount = coachAmount + item.getPriceAmount(); + } else if ("04".equals(item.getSource())) { + businessNum++; + businessAmount = businessAmount + item.getPriceAmount(); } else { //驾校统招 schoolNum++; @@ -225,6 +230,7 @@ public class DataViewServiceImpl implements DataViewService { int allNum = coachNum + schoolNum; double coachRate = 0; double schoolRate = 0; + double businessRate = 0; if (allNum > 0) { if (coachNum > 0) { coachRate = (double) coachNum / allNum; @@ -232,6 +238,9 @@ public class DataViewServiceImpl implements DataViewService { if (schoolNum > 0) { schoolRate = (double) schoolNum / allNum; } + if (businessNum > 0) { + businessRate = (double) businessNum / allNum; + } } studentInfoMap.put("coachNum", new BigDecimal(coachNum).setScale(2, RoundingMode.HALF_UP)); studentInfoMap.put("coachAmount", new BigDecimal(coachAmount).setScale(2, RoundingMode.HALF_UP)); @@ -239,6 +248,9 @@ public class DataViewServiceImpl implements DataViewService { studentInfoMap.put("schoolNum", schoolNum); studentInfoMap.put("schoolAmount", schoolAmount); studentInfoMap.put("schoolRate", 0 != schoolRate ? (Double.parseDouble(df.format(schoolRate)) * 100) : 0); + studentInfoMap.put("businessNum", businessNum); + studentInfoMap.put("businessAmount", businessAmount); + studentInfoMap.put("businessRate", 0 != businessRate ? (Double.parseDouble(df.format(businessRate)) * 100) : 0); rtnObj.setStudentInfo(studentInfoMap); /*4.财务情况--*/ //应收 diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java index 2323bb2b..319ba0e0 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java @@ -643,6 +643,58 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl studentVOList = studentMapper.selectStudentListBusiness(coach.getUserId(),startTimeStr,endTimeStr); + int overNum = (int) studentVOList.stream().filter(item -> null != item.getGradTime()).count(); + int noOverNum = studentVOList.size()-overNum; + Map studentInfoMap = new HashMap<>(); + studentInfoMap.put("overNum",overNum); + studentInfoMap.put("noOverNum",noOverNum); + //招生情况 + List studentList = studentMapper.selectStudentList(coach.getUserId(), startTimeStr, endTimeStr); + int coachNum=0; + double coachAmount=0; + for (DlDriveSchoolStudentVO item:studentList){ + if("04".equals(item.getSource())){ + //教练自招 + coachNum++; + coachAmount = coachAmount+item.getPriceAmount(); + } + } + studentInfoMap.put("coachNum",coachNum); + studentInfoMap.put("coachAmount",coachAmount); + result.setStudentInfoMap(studentInfoMap); + return result; + } + /** * 根据邀请码查询教练信息 */ 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 c76eb703..bbe1ffc2 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 @@ -456,6 +456,9 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl> batchItemListByCoach(ExamBatchVO examBatchVO, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNo,pageSize); + return success(examBatchItemService.batchItemListByCoach(examBatchVO, page)); + } + +} diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/controller/app/AppExamBatchController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/controller/app/AppExamBatchController.java index 8c81c9b1..ea205ad0 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/controller/app/AppExamBatchController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/controller/app/AppExamBatchController.java @@ -64,4 +64,6 @@ public class AppExamBatchController { examBatchItemService.updateObjNew(examBatchVO); return success(true); } + + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/mapper/ExamBatchItemMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/mapper/ExamBatchItemMapper.java index 83681a38..661e9ba1 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/mapper/ExamBatchItemMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/mapper/ExamBatchItemMapper.java @@ -32,4 +32,5 @@ public interface ExamBatchItemMapper extends BaseMapper { List selectExamByUserIdAndCoachId(@Param("userId") Long userId, @Param("coachId") Long coachId); List listJoinBatchByIds(@Param("examIds") List examIds); + IPage batchItemListByCoach(@Param("entity") ExamBatchVO examBatchVO, Page page); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/ExamBatchItemService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/ExamBatchItemService.java index 3d96fe02..f0d4b708 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/ExamBatchItemService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/ExamBatchItemService.java @@ -84,4 +84,6 @@ public interface ExamBatchItemService extends IService { * @return */ List listJoinBatchByIds(List examIds); + + IPage batchItemListByCoach(ExamBatchVO examBatchVO, Page page); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/impl/ExamBatchItemServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/impl/ExamBatchItemServiceImpl.java index db027106..4f700e6c 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/impl/ExamBatchItemServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/service/impl/ExamBatchItemServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.exam.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.base.constant.SchoolBaseConstants; import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService; @@ -365,4 +366,41 @@ public class ExamBatchItemServiceImpl extends ServiceImpl batchItemListByCoach(ExamBatchVO examBatchVO, Page page) { + if (examBatchVO == null) { + return null; + } + String startTimeStr = ""; + String endTimeStr = ""; + String startTime = examBatchVO.getStartTimeSearch(); + String endTime = examBatchVO.getEndTimeSearch(); + String timeType = examBatchVO.getTimeType(); + if("more".equals(timeType)){ + if(org.apache.commons.lang3.StringUtils.isNotEmpty(startTime)){ + startTimeStr = startTime+" 00:00:01"; + } + if(org.apache.commons.lang3.StringUtils.isNotEmpty(endTime)) { + 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"; + } + examBatchVO.setStartTimeSearch(startTimeStr); + examBatchVO.setEndTimeSearch(endTimeStr); + return baseMapper.batchItemListByCoach(examBatchVO, page); + } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/vo/ExamBatchVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/vo/ExamBatchVO.java index 51bba21e..bc99855d 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/vo/ExamBatchVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/exam/vo/ExamBatchVO.java @@ -28,4 +28,14 @@ public class ExamBatchVO extends ExamBatch { * 查询时间区间-结束 */ private String endTimeSearch; + + /** + * 通过人数 + */ + private Integer passCount; + /** + * 学生人数 + */ + private Integer studentCount; + } diff --git a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml index 4870433f..855c026c 100644 --- a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml @@ -160,6 +160,12 @@ AND (dss.phone LIKE CONCAT('%', #{entity.phone}, '%') OR dsc.phone LIKE CONCAT('%', #{entity.phone}, '%')) + + AND dsco.is_sign = #{entity.isSign} + + + AND dsco.payment_status = #{entity.paymentStatus} + ORDER BY dsco.create_time DESC 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 3167e398..ecf74f55 100644 --- a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml @@ -317,37 +317,50 @@ + +