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删除课程与教练关联关系
|
* 通过课程id删除课程与教练关联关系
|
||||||
|
*
|
||||||
|
* @param courseId 课程id
|
||||||
* @author PQZ
|
* @author PQZ
|
||||||
* @date 17:35 2025/2/7
|
* @date 17:35 2025/2/7
|
||||||
* @param courseId 课程id
|
**/
|
||||||
**/
|
|
||||||
void removeByCourseId(String courseId);
|
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;
|
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.DlDriveSchoolCoach;
|
||||||
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse;
|
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse;
|
||||||
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCoachCourseMapper;
|
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCoachCourseMapper;
|
||||||
@ -71,4 +72,19 @@ public class DlDriveSchoolCoachCourseServiceImpl extends ServiceImpl<DlDriveScho
|
|||||||
lambdaQueryWrapper.eq(DlDriveSchoolCoachCourse::getCourseId,courseId);
|
lambdaQueryWrapper.eq(DlDriveSchoolCoachCourse::getCourseId,courseId);
|
||||||
remove(lambdaQueryWrapper);
|
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.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.DlDriveSchoolCourse;
|
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCourse;
|
||||||
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.DlDriveSchoolCourseService;
|
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.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.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@ -16,7 +18,10 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 驾校教练 Service 实现类
|
* 驾校教练 Service 实现类
|
||||||
@ -43,7 +48,7 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl<DlDriveSchoolCou
|
|||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public IPage<DlDriveSchoolCourseVO> queryListPage(DlDriveSchoolCourseVO pageReqVO, Page<DlDriveSchoolCourseVO> page) {
|
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
|
@Override
|
||||||
public void saveDriveSchoolCourse(DlDriveSchoolCourseVO courseVO) {
|
public void saveDriveSchoolCourse(DlDriveSchoolCourseVO courseVO) {
|
||||||
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());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -101,9 +106,47 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl<DlDriveSchoolCou
|
|||||||
@Override
|
@Override
|
||||||
public DlDriveSchoolCourseVO queryDetailById(String id) {
|
public DlDriveSchoolCourseVO queryDetailById(String id) {
|
||||||
DlDriveSchoolCourse course = getById(id);
|
DlDriveSchoolCourse course = getById(id);
|
||||||
|
//查询课程信息
|
||||||
DlDriveSchoolCourseVO result = BeanUtils.toBean(course, DlDriveSchoolCourseVO.class);
|
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;
|
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")
|
@Schema(description = "驾校课程管理VO")
|
||||||
@Data
|
@Data
|
||||||
public class DlDriveSchoolCourseVO extends DlDriveSchoolCourse {
|
public class DlDriveSchoolCourseVO extends DlDriveSchoolCourse {
|
||||||
|
private List<DlDriveSchoolCoachVO> coachList;
|
||||||
List<DlDriveSchoolCoachVO> coachList;
|
private String coachListText;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,8 +17,7 @@
|
|||||||
<where>
|
<where>
|
||||||
main.deleted = 0
|
main.deleted = 0
|
||||||
<if test="entity.type != null and entity.type != '' ">and main.type = #{entity.type}</if>
|
<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 test="entity.name != null and entity.name != ''">and main.name like concat('%', #{entity.name}, '%')</if>
|
||||||
</if>
|
|
||||||
<if test="entity.phone != null and entity.phone != ''">and main.phone like concat('%', #{entity.phone},'%')
|
<if test="entity.phone != null and entity.phone != ''">and main.phone like concat('%', #{entity.phone},'%')
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
@ -32,10 +31,10 @@
|
|||||||
main.seniority AS seniority,
|
main.seniority AS seniority,
|
||||||
main.car_id AS carId,
|
main.car_id AS carId,
|
||||||
main.phone AS phone,
|
main.phone AS phone,
|
||||||
GROUP_CONCAT(dscc.course_type SEPARATOR ',') AS courseTypes
|
GROUP_CONCAT(DISTINCT dscc.course_type SEPARATOR ',') AS courseTypes
|
||||||
FROM
|
FROM
|
||||||
drive_school_coach main
|
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>
|
<where>
|
||||||
main.deleted = 0
|
main.deleted = 0
|
||||||
<if test="entity.type != null and entity.type != ''">
|
<if test="entity.type != null and entity.type != ''">
|
||||||
@ -43,7 +42,7 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
GROUP BY
|
GROUP BY
|
||||||
main.id,dscc.course_type
|
main.id
|
||||||
order by main.create_time desc
|
order by main.create_time desc
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
Loading…
Reference in New Issue
Block a user