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 496c8271..bdfd0471 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 @@ -323,6 +323,11 @@ public class DlDriveSchoolCoachController { return success(dlDriveSchoolCoachService.getBusinessRecordExportData(exportVO, page)); } + @GetMapping("/getBusinessRecordExportCount") + public CommonResult getBusinessRecordExportCount(BusinessRecordExportVO exportVO) { + return success(dlDriveSchoolCoachService.getBusinessRecordExportCount(exportVO)); + } + /** * 导出 * @param exportVO 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 7d660879..bec10b9d 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 @@ -162,6 +162,7 @@ public interface DlDriveSchoolCoachService extends IService * 获取导出数据列表 */ IPage getBusinessRecordExportData(BusinessRecordExportVO reqVO, Page page); + BusinessRecordExportCountVO getBusinessRecordExportCount(BusinessRecordExportVO reqVO); /** * 导出的三种形式 * @param exportVO 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 eba4455d..03e36120 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 @@ -1226,6 +1226,32 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl page = new Page<>(1, Integer.MAX_VALUE); +// reqVO.setIsSign(1); + reqVO.setIfEnd("0"); + + IPage allData = this.getBusinessRecordExportData(reqVO, page); + List records = allData.getRecords(); + + BusinessRecordExportCountVO result = new BusinessRecordExportCountVO(); + + result.setTotalPeople(records.size()); + + BigDecimal totalAmount = records.stream() + .map(record -> record.getReserveMoney() != null ? record.getReserveMoney() : BigDecimal.ZERO) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + BigDecimal totalSubsidy = records.stream() + .map(record -> record.getSubsidy() != null ? record.getSubsidy() : BigDecimal.ZERO) + .reduce(BigDecimal.ZERO, BigDecimal::add); + result.setTotalAmount(totalAmount); + result.setTotalSubsidy(totalSubsidy); + + return result; + } + /** * 导出的三种形式 */ @@ -1234,7 +1260,20 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl page = new Page<>(exportVO.getPageNo(), exportVO.getPageSize()); IPage result = dlDriveSchoolCoachMapper.getBusinessRecordExportData(exportVO, page); - return result.getRecords(); + List records = result.getRecords(); + + // 计算提成 + for (BusinessRecordExportVO record : records) { + BigDecimal deduct = BigDecimal.ZERO; + if(record.getScheme() != null){ + deduct = schemeService.getSchemeById(record.getScheme(), 0); + }else{ + deduct = schemeService.getCourseDeduct(record.getCourseId(), 0); + } + record.setSubsidy(deduct); + } + + return records; } @Override @@ -1242,7 +1281,20 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl page = new Page<>(1, Integer.MAX_VALUE); IPage result = dlDriveSchoolCoachMapper.getBusinessRecordExportData(exportVO, page); - return result.getRecords(); + List records = result.getRecords(); + + // 计算提成 + for (BusinessRecordExportVO record : records) { + BigDecimal deduct = BigDecimal.ZERO; + if(record.getScheme() != null){ + deduct = schemeService.getSchemeById(record.getScheme(), 0); + }else{ + deduct = schemeService.getCourseDeduct(record.getCourseId(), 0); + } + record.setSubsidy(deduct); + } + + return records; } @Override @@ -1253,7 +1305,20 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl page = new Page<>(i, exportVO.getPageSize()); IPage result = dlDriveSchoolCoachMapper.getBusinessRecordExportData(exportVO, page); - allData.addAll(result.getRecords()); + List records = result.getRecords(); + + // 计算提成 + for (BusinessRecordExportVO record : records) { + BigDecimal deduct = BigDecimal.ZERO; + if(record.getScheme() != null){ + deduct = schemeService.getSchemeById(record.getScheme(), 0); + }else{ + deduct = schemeService.getCourseDeduct(record.getCourseId(), 0); + } + record.setSubsidy(deduct); + } + + allData.addAll(records); if (i >= result.getPages()) { break; diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordExportCountVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordExportCountVO.java new file mode 100644 index 00000000..3438cf7a --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordExportCountVO.java @@ -0,0 +1,15 @@ +package cn.iocoder.yudao.module.base.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class BusinessRecordExportCountVO { + + private BigDecimal totalAmount; + + private BigDecimal totalSubsidy; + + private Integer totalPeople; +} diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordExportVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordExportVO.java index 95ac24c6..869e3f25 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordExportVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/BusinessRecordExportVO.java @@ -46,6 +46,8 @@ public class BusinessRecordExportVO { @ExcelIgnore private Integer isSign; + @ExcelIgnore + private String ifEnd; @ExcelProperty(value = "面签时间", index = 9) private String signTimeStr; diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCourseOrderServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCourseOrderServiceImpl.java index 9e5c138b..68132c97 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCourseOrderServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCourseOrderServiceImpl.java @@ -328,8 +328,8 @@ public class SchoolCourseOrderServiceImpl extends ServiceImpl diff --git a/dl-module-jx/src/main/resources/mapper/course/SchoolCommissionMapper.xml b/dl-module-jx/src/main/resources/mapper/course/SchoolCommissionMapper.xml index 447195b2..02d816c0 100644 --- a/dl-module-jx/src/main/resources/mapper/course/SchoolCommissionMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/course/SchoolCommissionMapper.xml @@ -166,7 +166,7 @@ - order BY dsc.create_time DESC + ORDER BY dsc.create_time DESC @@ -312,6 +326,7 @@ dsco.cashier_confirm_time, dss.source, dsco.payment_account, + dsco.sign_time, MAX(CASE WHEN dsp.subject = 2 THEN COALESCE(dsp.coach_name, '') END) AS subject2CoachName, MAX(CASE WHEN dscd.course_subject = 2 THEN COALESCE(dscd.deduct, 0) END) AS subject2Deduct, MAX(CASE WHEN dsp.subject = 3 THEN COALESCE(dsp.coach_name, '') END) AS subject3CoachName, @@ -406,13 +421,19 @@ dsco.user_no, dsco.user_phone, dsco.create_time, + dsco.is_sign, dsco.pay_fees_time, dsco.reserve_money, dsco.course_name, dsco.course_type, dsco.order_remark, dsco.cashier_confirm, - dsco.cashier_confirm_remark + dsco.cashier_confirm_remark, + dsco.cashier_confirm_time, + dss.source, + dsco.payment_account, + dsco.sign_time + ORDER BY dsco.create_time DESC, dsco.user_id