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; 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.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse; import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCourse; 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.mapper.DlDriveSchoolCourseMapper;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachCourseService; import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachCourseService;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCourseDeductService; 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.DlDriveSchoolCoachVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseVO; import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseVO;
import cn.iocoder.yudao.module.jx.utils.StringUtils; 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.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -20,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -90,8 +95,17 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl<DlDriveSchoolCou
DlDriveSchoolCourse course = BeanUtils.toBean(courseVO, DlDriveSchoolCourse.class); DlDriveSchoolCourse course = BeanUtils.toBean(courseVO, DlDriveSchoolCourse.class);
saveOrUpdate(course); saveOrUpdate(course);
coachCourseService.saveCoachCourse(course.getId(), courseVO.getName(), courseVO.getType(), courseVO.getCoachList()); 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() Map<String, List<String>> groupedCoachMap = coachList.stream()
.collect(Collectors.groupingBy( .collect(Collectors.groupingBy(
DlDriveSchoolCoachVO::getCoachName, DlDriveSchoolCoachVO::getCoachName,
Collectors.mapping(coach -> "科目" + coach.getSubject() , Collectors.toList()) Collectors.mapping(coach -> "科目" + coach.getSubject(), Collectors.toList())
)); ));
// groupedCoachMap 转换为字符串格式 // groupedCoachMap 转换为字符串格式
String resultString = groupedCoachMap.entrySet().stream() String resultString = groupedCoachMap.entrySet().stream()
.map(entry -> entry.getKey() + "[" + String.join(" ", entry.getValue()) + "]") .map(entry -> entry.getKey() + "[" + String.join(" ", entry.getValue()) + "]")
.collect(Collectors.joining(", ")); .collect(Collectors.joining(", "));
result.setCoachListText(resultString); 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; return result;
} }
/** /**
* 数据类型转换 * 数据类型转换
* @author PQZ *
* @date 14:25 2025/2/8
* @param coachList TODO * @param coachList TODO
* @return java.util.List<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachVO> * @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) { private List<DlDriveSchoolCoachVO> transCoachList(List<DlDriveSchoolCoachCourse> coachList) {
List<DlDriveSchoolCoachVO> transList = new ArrayList<>(); List<DlDriveSchoolCoachVO> transList = new ArrayList<>();
if (!coachList.isEmpty()) { if (!coachList.isEmpty()) {

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.base.vo; package cn.iocoder.yudao.module.base.vo;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCourse; 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 cn.iocoder.yudao.module.jx.core.page.TenantBaDO;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -16,4 +17,5 @@ import java.util.List;
public class DlDriveSchoolCourseVO extends DlDriveSchoolCourse { public class DlDriveSchoolCourseVO extends DlDriveSchoolCourse {
private List<DlDriveSchoolCoachVO> coachList; private List<DlDriveSchoolCoachVO> coachList;
private String coachListText; 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.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.base.constant.SchoolBaseConstants; 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.DlDriveSchoolStudentService;
import cn.iocoder.yudao.module.base.service.SchoolNotifyMessageSendService; import cn.iocoder.yudao.module.base.service.SchoolNotifyMessageSendService;
import cn.iocoder.yudao.module.course.entity.Process; 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 { public class ProcessServiceImpl extends ServiceImpl<ProcessMapper, Process> implements ProcessService {
@Autowired @Autowired
private ProcessMapper processMapper; private ProcessMapper processMapper;
@Resource // @Resource
private IDriveSchoolDeductService deductService; // private IDriveSchoolDeductService deductService;
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@Resource @Resource
@ -70,6 +72,9 @@ public class ProcessServiceImpl extends ServiceImpl<ProcessMapper, Process> impl
@Autowired @Autowired
private SchoolNotifyMessageSendService schoolNotifyMessageSendService; private SchoolNotifyMessageSendService schoolNotifyMessageSendService;
@Autowired
private DlDriveSchoolCourseDeductService deductService;
/** /**
* 教练查自己带教的课程和科目 * 教练查自己带教的课程和科目
@ -262,7 +267,10 @@ public class ProcessServiceImpl extends ServiceImpl<ProcessMapper, Process> impl
if (process.getFinancePass()) { if (process.getFinancePass()) {
//根据科目查询规则 //根据科目查询规则
if (null != process.getSubject()) { 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) { if (null != deduct) {
SchoolCommission schoolCommission = new SchoolCommission(); SchoolCommission schoolCommission = new SchoolCommission();
@ -379,7 +387,7 @@ public class ProcessServiceImpl extends ServiceImpl<ProcessMapper, Process> impl
AdminUserRespDTO user = userApi.getUser(userId); AdminUserRespDTO user = userApi.getUser(userId);
String userName = user.getNickname(); String userName = user.getNickname();
String userPhone = user.getMobile(); 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); schoolNotifyMessageSendService.sendMessage(request.getProcessList().get(0).getCoachId(), messageToCoach, SchoolBaseConstants.SCHOOL_NOTIFY_MESSAGE_TYPE_ADMIN, null);
} }