From d4eefc8da9a37ac0d86d999d536a47b1400e5dd1 Mon Sep 17 00:00:00 2001 From: xyc <3422692813@qq.com> Date: Mon, 28 Apr 2025 17:37:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DlDriveSchoolCourseServiceImpl.java | 39 ++++++++++++++++--- .../module/base/vo/DlDriveSchoolCourseVO.java | 2 + .../service/impl/ProcessServiceImpl.java | 16 ++++++-- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCourseServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCourseServiceImpl.java index e2d9c5b4..ea39a5d2 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCourseServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCourseServiceImpl.java @@ -1,9 +1,11 @@ package cn.iocoder.yudao.module.base.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse; import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCourse; +import cn.iocoder.yudao.module.base.entity.DriveSchoolCourseDeduct; import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCourseMapper; import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachCourseService; import cn.iocoder.yudao.module.base.service.DlDriveSchoolCourseDeductService; @@ -11,8 +13,10 @@ import cn.iocoder.yudao.module.base.service.DlDriveSchoolCourseService; import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachVO; import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseVO; import cn.iocoder.yudao.module.jx.utils.StringUtils; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @@ -20,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -90,8 +95,17 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpllambdaQuery() + .eq(DriveSchoolCourseDeduct::getCourseId, course.getId())); + //设置提成信息课程id + courseVO.getDeductList().forEach(deduct -> { + deduct.setCourseId(course.getId()); + deduct.setId(null); + }); + // 保存提成信息 - driveSchoolCourseDeductService.defaultAdd(course.getId()); + driveSchoolCourseDeductService.saveBatch(courseVO.getDeductList()); } /** @@ -126,24 +140,39 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl> groupedCoachMap = coachList.stream() .collect(Collectors.groupingBy( DlDriveSchoolCoachVO::getCoachName, - Collectors.mapping(coach -> "科目" + coach.getSubject() , Collectors.toList()) + Collectors.mapping(coach -> "科目" + coach.getSubject(), Collectors.toList()) )); // 将 groupedCoachMap 转换为字符串格式 String resultString = groupedCoachMap.entrySet().stream() .map(entry -> entry.getKey() + "[" + String.join(" ", entry.getValue()) + "]") .collect(Collectors.joining(", ")); result.setCoachListText(resultString); + // 查询提成配置 + List deducts = driveSchoolCourseDeductService.list(Wrappers.lambdaQuery() + .eq(DriveSchoolCourseDeduct::getCourseId, id)); + if (CollUtil.isEmpty(deducts)) { + // 科目一到科目四都为0 + for (int i = 1; i <= 4; i++) { + DriveSchoolCourseDeduct deduct = new DriveSchoolCourseDeduct(); + deduct.setCourseId(id); + deduct.setCourseSubject(i + ""); + deduct.setDeduct(new BigDecimal("0")); + deducts.add(deduct); + } + } + result.setDeductList(deducts); return result; } /** * 数据类型转换 - * @author PQZ - * @date 14:25 2025/2/8 + * * @param coachList TODO * @return java.util.List - **/ + * @author PQZ + * @date 14:25 2025/2/8 + **/ private List transCoachList(List coachList) { List transList = new ArrayList<>(); if (!coachList.isEmpty()) { diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCourseVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCourseVO.java index a8ca0f3a..6e856262 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCourseVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCourseVO.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.base.vo; import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCourse; +import cn.iocoder.yudao.module.base.entity.DriveSchoolCourseDeduct; import cn.iocoder.yudao.module.jx.core.page.TenantBaDO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -16,4 +17,5 @@ import java.util.List; public class DlDriveSchoolCourseVO extends DlDriveSchoolCourse { private List coachList; private String coachListText; + private List deductList; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java index e6e7a58c..1013b60a 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java @@ -7,6 +7,8 @@ import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.base.constant.SchoolBaseConstants; +import cn.iocoder.yudao.module.base.entity.DriveSchoolCourseDeduct; +import cn.iocoder.yudao.module.base.service.DlDriveSchoolCourseDeductService; import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService; import cn.iocoder.yudao.module.base.service.SchoolNotifyMessageSendService; import cn.iocoder.yudao.module.course.entity.Process; @@ -52,8 +54,8 @@ import static cn.iocoder.yudao.module.base.utils.DriveSchoolBaseUtil.getSubjectS public class ProcessServiceImpl extends ServiceImpl implements ProcessService { @Autowired private ProcessMapper processMapper; - @Resource - private IDriveSchoolDeductService deductService; + // @Resource +// private IDriveSchoolDeductService deductService; @Resource private AdminUserApi userApi; @Resource @@ -70,6 +72,9 @@ public class ProcessServiceImpl extends ServiceImpl impl @Autowired private SchoolNotifyMessageSendService schoolNotifyMessageSendService; + @Autowired + private DlDriveSchoolCourseDeductService deductService; + /** * 教练查自己带教的课程和科目 @@ -262,7 +267,10 @@ public class ProcessServiceImpl extends ServiceImpl impl if (process.getFinancePass()) { //根据科目查询规则 if (null != process.getSubject()) { - DriveSchoolDeduct deduct = deductService.queryBySubject(process.getSubject().toString()); + // 根据课程id查询配置 + DriveSchoolCourseDeduct deduct = deductService.getOne(Wrappers.lambdaQuery() + .eq(DriveSchoolCourseDeduct::getCourseId, process.getCourseId()) + .eq(DriveSchoolCourseDeduct::getCourseSubject, process.getSubject())); //如果存在提成规则则生成提成记录 if (null != deduct) { SchoolCommission schoolCommission = new SchoolCommission(); @@ -379,7 +387,7 @@ public class ProcessServiceImpl extends ServiceImpl impl AdminUserRespDTO user = userApi.getUser(userId); String userName = user.getNickname(); String userPhone = user.getMobile(); - String messageToCoach = String.format(SchoolBaseConstants.SCHOOL_NOTIFY_MESSAGE_TEMPLATE_ASSIGN_COACH_TO_COACH,userName,userPhone); + String messageToCoach = String.format(SchoolBaseConstants.SCHOOL_NOTIFY_MESSAGE_TEMPLATE_ASSIGN_COACH_TO_COACH, userName, userPhone); schoolNotifyMessageSendService.sendMessage(request.getProcessList().get(0).getCoachId(), messageToCoach, SchoolBaseConstants.SCHOOL_NOTIFY_MESSAGE_TYPE_ADMIN, null); }