diff --git a/src/main/java/com/greenorange/promotion/controller/userInfo/UserPerformanceSummaryController.java b/src/main/java/com/greenorange/promotion/controller/userInfo/UserPerformanceSummaryController.java index d6ce191..0ecf299 100644 --- a/src/main/java/com/greenorange/promotion/controller/userInfo/UserPerformanceSummaryController.java +++ b/src/main/java/com/greenorange/promotion/controller/userInfo/UserPerformanceSummaryController.java @@ -486,7 +486,7 @@ public class UserPerformanceSummaryController { * @return 是否更新成功 */ // @Scheduled(cron = "0 0 0 * * ?") - @Scheduled(cron = "30 36 16 * * ?") + @Scheduled(cron = "00 16 20 * * ?") @Operation(summary = "轮询课程推广待提成记录表", description = "参数:无,权限:管理员,方法名:pollCourseOrder") public void pollCourseOrder() { // 找出下单时间超过7天的订单,分别统计主管和员工的可结算金额 @@ -767,10 +767,20 @@ public class UserPerformanceSummaryController { String commissionStatus = coursePromotionCommissionPending.getCommissionStatus(); CommissionStatusEnum commissionStatusEnum = CommissionStatusEnum.getEnumByValue(commissionStatus); supervisorOrderCntMap.merge(firstUserId, 1, Integer::sum); - supervisorOrderAmountMap.merge(firstUserId, totalAmount, BigDecimal::add); + BigDecimal totalAmountTemp = totalAmount; + if (CommissionStatusEnum.EXPIRED.equals(commissionStatusEnum)) { + totalAmountTemp = totalAmount.multiply(SystemConstant.FEE_RATE); + } + supervisorOrderAmountMap.merge(firstUserId, totalAmountTemp, BigDecimal::add); - if (!(CommissionStatusEnum.COMPLETED.equals(commissionStatusEnum) && updateDate.isAfterOrEquals(startDate) && updateDate.isBeforeOrEquals(endDate))) { - totalAmount = totalAmount.multiply(SystemConstant.FEE_RATE); + if (startDate != null && endDate != null) { + if (!(CommissionStatusEnum.COMPLETED.equals(commissionStatusEnum) && updateDate.isAfterOrEquals(startDate) && updateDate.isBeforeOrEquals(endDate))) { + totalAmount = totalAmount.multiply(SystemConstant.FEE_RATE); + } + } else { + if (!CommissionStatusEnum.COMPLETED.equals(commissionStatusEnum)) { + totalAmount = totalAmount.multiply(SystemConstant.FEE_RATE); + } } supervisorNetSalesAmountMap.merge(firstUserId, totalAmount, BigDecimal::add); } @@ -863,10 +873,20 @@ public class UserPerformanceSummaryController { String commissionStatus = coursePromotionCommissionPending.getCommissionStatus(); CommissionStatusEnum commissionStatusEnum = CommissionStatusEnum.getEnumByValue(commissionStatus); staffOrderCntMap.merge(secondUserId, 1, Integer::sum); - staffOrderAmountMap.merge(secondUserId, totalAmount, BigDecimal::add); + BigDecimal totalAmountTemp = totalAmount; + if (CommissionStatusEnum.EXPIRED.equals(commissionStatusEnum)) { + totalAmountTemp = totalAmount.multiply(SystemConstant.FEE_RATE); + } + staffOrderAmountMap.merge(secondUserId, totalAmountTemp, BigDecimal::add); - if (!(CommissionStatusEnum.COMPLETED.equals(commissionStatusEnum) && updateDate.isAfterOrEquals(startDate) && updateDate.isBeforeOrEquals(endDate))) { - totalAmount = totalAmount.multiply(SystemConstant.FEE_RATE); + if (startDate != null && endDate != null) { + if (!(CommissionStatusEnum.COMPLETED.equals(commissionStatusEnum) && updateDate.isAfterOrEquals(startDate) && updateDate.isBeforeOrEquals(endDate))) { + totalAmount = totalAmount.multiply(SystemConstant.FEE_RATE); + } + } else { + if (!CommissionStatusEnum.COMPLETED.equals(commissionStatusEnum)) { + totalAmount = totalAmount.multiply(SystemConstant.FEE_RATE); + } } staffNetSalesAmountMap.merge(secondUserId, totalAmount, BigDecimal::add); }