This commit is contained in:
PQZ 2025-02-08 14:50:42 +08:00
parent 45f43b6a38
commit 6a85ce60bd
4 changed files with 77 additions and 8 deletions

View File

@ -28,9 +28,20 @@ public interface DlDriveSchoolCoachCourseService extends IService<DlDriveSchoolC
/**
* 通过课程id删除课程与教练关联关系
*
* @param courseId 课程id
* @author PQZ
* @date 17:35 2025/2/7
* @param courseId 课程id
**/
**/
void removeByCourseId(String courseId);
/**
* 通过课程id查询课程与教练关联关系
*
* @param courseId 课程id
* @return java.util.List<cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse>
* @author PQZ
* @date 14:17 2025/2/8
**/
List<DlDriveSchoolCoachCourse> queryByCourseId(String courseId);
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.base.service.impl;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse;
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCoachCourseMapper;
@ -71,4 +72,19 @@ public class DlDriveSchoolCoachCourseServiceImpl extends ServiceImpl<DlDriveScho
lambdaQueryWrapper.eq(DlDriveSchoolCoachCourse::getCourseId,courseId);
remove(lambdaQueryWrapper);
}
/**
* 通过课程id查询课程与教练关联关系
*
* @param courseId 课程id
* @return java.util.List<cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse>
* @author PQZ
* @date 14:17 2025/2/8
**/
@Override
public List<DlDriveSchoolCoachCourse> queryByCourseId(String courseId) {
LambdaQueryWrapper<DlDriveSchoolCoachCourse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DlDriveSchoolCoachCourse::getCourseId,courseId).eq(BaseDO::getDeleted,0).orderByDesc(BaseDO::getCreateTime);
return list(lambdaQueryWrapper);
}
}

View File

@ -2,10 +2,12 @@ package cn.iocoder.yudao.module.base.service.impl;
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.mapper.DlDriveSchoolCourseMapper;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachCourseService;
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.query.LambdaQueryWrapper;
@ -16,7 +18,10 @@ import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 驾校教练 Service 实现类
@ -43,7 +48,7 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl<DlDriveSchoolCou
**/
@Override
public IPage<DlDriveSchoolCourseVO> queryListPage(DlDriveSchoolCourseVO pageReqVO, Page<DlDriveSchoolCourseVO> page) {
return courseMapper.queryListPage(pageReqVO,page);
return courseMapper.queryListPage(pageReqVO, page);
}
/**
@ -73,9 +78,9 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl<DlDriveSchoolCou
**/
@Override
public void saveDriveSchoolCourse(DlDriveSchoolCourseVO courseVO) {
DlDriveSchoolCourse course = BeanUtils.toBean(courseVO,DlDriveSchoolCourse.class);
DlDriveSchoolCourse course = BeanUtils.toBean(courseVO, DlDriveSchoolCourse.class);
saveOrUpdate(course);
coachCourseService.saveCoachCourse(course.getId(),courseVO.getName(),courseVO.getType(),courseVO.getCoachList());
coachCourseService.saveCoachCourse(course.getId(), courseVO.getName(), courseVO.getType(), courseVO.getCoachList());
}
/**
@ -101,9 +106,47 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl<DlDriveSchoolCou
@Override
public DlDriveSchoolCourseVO queryDetailById(String id) {
DlDriveSchoolCourse course = getById(id);
//查询课程信息
DlDriveSchoolCourseVO result = BeanUtils.toBean(course, DlDriveSchoolCourseVO.class);
//课程关联教练
List<DlDriveSchoolCoachVO> coachList = transCoachList(coachCourseService.queryByCourseId(id));
result.setCoachList(coachList);
// 使用 Stream API coachId 分组
Map<String, List<String>> groupedCoachMap = coachList.stream()
.collect(Collectors.groupingBy(
DlDriveSchoolCoachVO::getCoachName,
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);
return result;
}
/**
* 数据类型转换
* @author PQZ
* @date 14:25 2025/2/8
* @param coachList TODO
* @return java.util.List<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachVO>
**/
private List<DlDriveSchoolCoachVO> transCoachList(List<DlDriveSchoolCoachCourse> coachList) {
List<DlDriveSchoolCoachVO> transList = new ArrayList<>();
if (!coachList.isEmpty()) {
coachList.forEach(item -> {
DlDriveSchoolCoachVO vo = new DlDriveSchoolCoachVO();
vo.setCoachId(item.getCoachId());
vo.setCoachName(item.getCoachName());
vo.setSubject(item.getSubject());
vo.setCoachPhone(item.getCoachPhone());
transList.add(vo);
});
}
return transList;
}
}

View File

@ -14,7 +14,6 @@ import java.util.List;
@Schema(description = "驾校课程管理VO")
@Data
public class DlDriveSchoolCourseVO extends DlDriveSchoolCourse {
List<DlDriveSchoolCoachVO> coachList;
private List<DlDriveSchoolCoachVO> coachList;
private String coachListText;
}