This commit is contained in:
xyc 2025-04-28 17:37:41 +08:00
parent 678b3eb207
commit d4eefc8da9
3 changed files with 48 additions and 9 deletions

View File

@ -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 ServiceImpl<DlDriveSchoolCou
DlDriveSchoolCourse course = BeanUtils.toBean(courseVO, DlDriveSchoolCourse.class);
saveOrUpdate(course);
coachCourseService.saveCoachCourse(course.getId(), courseVO.getName(), courseVO.getType(), courseVO.getCoachList());
// 删除提成配置
driveSchoolCourseDeductService.remove(Wrappers.<DriveSchoolCourseDeduct>lambdaQuery()
.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<DlDriveSchoolCou
Map<String, List<String>> 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<DriveSchoolCourseDeduct> deducts = driveSchoolCourseDeductService.list(Wrappers.<DriveSchoolCourseDeduct>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<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachVO>
**/
* @author PQZ
* @date 14:25 2025/2/8
**/
private List<DlDriveSchoolCoachVO> transCoachList(List<DlDriveSchoolCoachCourse> coachList) {
List<DlDriveSchoolCoachVO> transList = new ArrayList<>();
if (!coachList.isEmpty()) {

View File

@ -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<DlDriveSchoolCoachVO> coachList;
private String coachListText;
private List<DriveSchoolCourseDeduct> deductList;
}

View File

@ -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<ProcessMapper, Process> 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<ProcessMapper, Process> impl
@Autowired
private SchoolNotifyMessageSendService schoolNotifyMessageSendService;
@Autowired
private DlDriveSchoolCourseDeductService deductService;
/**
* 教练查自己带教的课程和科目
@ -262,7 +267,10 @@ public class ProcessServiceImpl extends ServiceImpl<ProcessMapper, Process> impl
if (process.getFinancePass()) {
//根据科目查询规则
if (null != process.getSubject()) {
DriveSchoolDeduct deduct = deductService.queryBySubject(process.getSubject().toString());
// 根据课程id查询配置
DriveSchoolCourseDeduct deduct = deductService.getOne(Wrappers.<DriveSchoolCourseDeduct>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<ProcessMapper, Process> 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);
}