Merge branch 'driver' of http://122.51.230.86:3000/dianliang/lanan-system into driver
This commit is contained in:
commit
928a6d7f47
@ -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);
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -17,8 +17,7 @@
|
||||
<where>
|
||||
main.deleted = 0
|
||||
<if test="entity.type != null and entity.type != '' ">and main.type = #{entity.type}</if>
|
||||
<if test="entity.name != null and entity.name != ''">and main.name like concat('%', #{entity.name}, '%')
|
||||
</if>
|
||||
<if test="entity.name != null and entity.name != ''">and main.name like concat('%', #{entity.name}, '%')</if>
|
||||
<if test="entity.phone != null and entity.phone != ''">and main.phone like concat('%', #{entity.phone},'%')
|
||||
</if>
|
||||
</where>
|
||||
@ -32,10 +31,10 @@
|
||||
main.seniority AS seniority,
|
||||
main.car_id AS carId,
|
||||
main.phone AS phone,
|
||||
GROUP_CONCAT(dscc.course_type SEPARATOR ',') AS courseTypes
|
||||
GROUP_CONCAT(DISTINCT dscc.course_type SEPARATOR ',') AS courseTypes
|
||||
FROM
|
||||
drive_school_coach main
|
||||
LEFT JOIN drive_school_coach_course dscc ON main.id = dscc.coach_id
|
||||
LEFT JOIN drive_school_coach_course dscc ON main.id = dscc.coach_id AND dscc.deleted = 0
|
||||
<where>
|
||||
main.deleted = 0
|
||||
<if test="entity.type != null and entity.type != ''">
|
||||
@ -43,7 +42,7 @@
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
main.id,dscc.course_type
|
||||
main.id
|
||||
order by main.create_time desc
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user