保存课程教练关联关系

This commit is contained in:
PQZ 2025-02-07 18:12:10 +08:00
parent 64927cecf0
commit a713c8f862
7 changed files with 156 additions and 1 deletions

View File

@ -33,6 +33,10 @@ public class DlDriveSchoolCoachCourse extends TenantBaseDO {
* 教练名称
*/
private String coachName;
/**
* 教练联系方式
*/
private String coachPhone;
/**
* 课程id
*/

View File

@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.base.mapper;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 驾校教练 Mapper
*
* @author pqz
*/
@Mapper
public interface DlDriveSchoolCoachCourseMapper extends BaseMapper<DlDriveSchoolCoachCourse> {
}

View File

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.base.service;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* 驾校教练 Service 接口
*
* @author pqz
*/
public interface DlDriveSchoolCoachCourseService extends IService<DlDriveSchoolCoachCourse> {
/**
* 保存课程与教练关联关系
*
* @param courseId 课程id
* @param courseName 课程名称
* @param courseType 教练类型
* @param coachList 教练集合
* @author PQZ
* @date 17:14 2025/2/7
**/
void saveCoachCourse(String courseId, String courseName, String courseType, List<DlDriveSchoolCoachVO> coachList);
/**
* 通过课程id删除课程与教练关联关系
* @author PQZ
* @date 17:35 2025/2/7
* @param courseId 课程id
**/
void removeByCourseId(String courseId);
}

View File

@ -0,0 +1,74 @@
package cn.iocoder.yudao.module.base.service.impl;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoachCourse;
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCoachCourseMapper;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachCourseService;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachVO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.util.ArrayList;
import java.util.List;
/**
* 驾校教练 Service 实现类
*
* @author pqz
*/
@Service
@Validated
public class DlDriveSchoolCoachCourseServiceImpl extends ServiceImpl<DlDriveSchoolCoachCourseMapper, DlDriveSchoolCoachCourse> implements DlDriveSchoolCoachCourseService {
/**
* 保存课程与教练关联关系
*
* @param courseId 课程id
* @param courseName 课程名称
* @param courseType 教练类型
* @param coachList 教练集合
* @author PQZ
* @date 17:14 2025/2/7
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void saveCoachCourse(String courseId, String courseName, String courseType, List<DlDriveSchoolCoachVO> coachList) {
List<DlDriveSchoolCoachCourse> saveList = new ArrayList<>();
//删除与课程关联的教练
removeByCourseId(courseId);
//初始化教练与课程关联数据
if (!coachList.isEmpty()){
coachList.forEach(item -> {
DlDriveSchoolCoachCourse coachCourse = new DlDriveSchoolCoachCourse();
coachCourse.setCoachId(item.getCoachId());
coachCourse.setCoachName(item.getCoachName());
coachCourse.setCoachPhone(item.getCoachPhone());
//教练在本课程中的任教科目
coachCourse.setSubject(item.getSubject());
coachCourse.setCourseId(courseId);
coachCourse.setCourseName(courseName);
coachCourse.setCourseType(courseType);
saveList.add(coachCourse);
});
}
//批量保存
saveBatch(saveList);
}
/**
* 通过课程id删除课程与教练关联关系
*
* @param courseId 课程id
* @author PQZ
* @date 17:35 2025/2/7
**/
@Override
public void removeByCourseId(String courseId) {
LambdaQueryWrapper<DlDriveSchoolCoachCourse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DlDriveSchoolCoachCourse::getCourseId,courseId);
remove(lambdaQueryWrapper);
}
}

View File

@ -4,6 +4,7 @@ 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.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.DlDriveSchoolCourseVO;
import cn.iocoder.yudao.module.jx.utils.StringUtils;
@ -28,6 +29,8 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl<DlDriveSchoolCou
@Resource
private DlDriveSchoolCourseMapper courseMapper;
@Resource
private DlDriveSchoolCoachCourseService coachCourseService;
/**
* 分页查询驾校课程
@ -70,7 +73,9 @@ public class DlDriveSchoolCourseServiceImpl extends ServiceImpl<DlDriveSchoolCou
**/
@Override
public void saveDriveSchoolCourse(DlDriveSchoolCourseVO courseVO) {
saveOrUpdate(courseVO);
DlDriveSchoolCourse course = BeanUtils.toBean(courseVO,DlDriveSchoolCourse.class);
saveOrUpdate(course);
coachCourseService.saveCoachCourse(course.getId(),courseVO.getName(),courseVO.getType(),courseVO.getCoachList());
}
/**

View File

@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.base.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 驾校教练新增/修改 Request VO")
@Data
public class DlDriveSchoolCoachVO {
/**教练id*/
private String coachId;
/**教练姓名*/
private String coachName;
/**联系方式*/
private String coachPhone;
/**任教科目*/
private String subject;
}

View File

@ -9,9 +9,12 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.util.List;
@Schema(description = "驾校课程管理VO")
@Data
public class DlDriveSchoolCourseVO extends DlDriveSchoolCourse {
List<DlDriveSchoolCoachVO> coachList;
}