From a713c8f862e383f68d2295cfd8dd03dfcefe1dfb Mon Sep 17 00:00:00 2001 From: PQZ <pangqingzhou@gmail.com> Date: Fri, 7 Feb 2025 18:12:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=AF=BE=E7=A8=8B=E6=95=99?= =?UTF-8?q?=E7=BB=83=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/entity/DlDriveSchoolCoachCourse.java | 4 + .../DlDriveSchoolCoachCourseMapper.java | 16 ++++ .../DlDriveSchoolCoachCourseService.java | 36 +++++++++ .../DlDriveSchoolCoachCourseServiceImpl.java | 74 +++++++++++++++++++ .../impl/DlDriveSchoolCourseServiceImpl.java | 7 +- .../module/base/vo/DlDriveSchoolCoachVO.java | 17 +++++ .../module/base/vo/DlDriveSchoolCourseVO.java | 3 + 7 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/mapper/DlDriveSchoolCoachCourseMapper.java create mode 100644 dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachCourseService.java create mode 100644 dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachCourseServiceImpl.java create mode 100644 dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCoachVO.java diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/entity/DlDriveSchoolCoachCourse.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/entity/DlDriveSchoolCoachCourse.java index b0959dd6..011df7e1 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/entity/DlDriveSchoolCoachCourse.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/entity/DlDriveSchoolCoachCourse.java @@ -33,6 +33,10 @@ public class DlDriveSchoolCoachCourse extends TenantBaseDO { * 教练名称 */ private String coachName; + /** + * 教练联系方式 + */ + private String coachPhone; /** * 课程id */ diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/mapper/DlDriveSchoolCoachCourseMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/mapper/DlDriveSchoolCoachCourseMapper.java new file mode 100644 index 00000000..9dffa491 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/mapper/DlDriveSchoolCoachCourseMapper.java @@ -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> { + + +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachCourseService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachCourseService.java new file mode 100644 index 00000000..50b090fb --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolCoachCourseService.java @@ -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); +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachCourseServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachCourseServiceImpl.java new file mode 100644 index 00000000..bdb951be --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachCourseServiceImpl.java @@ -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); + } +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCourseServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCourseServiceImpl.java index 2a540d52..13a220ee 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCourseServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCourseServiceImpl.java @@ -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()); } /** diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCoachVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCoachVO.java new file mode 100644 index 00000000..9507a9a4 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCoachVO.java @@ -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; +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCourseVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCourseVO.java index 40464e4e..ab0d26bf 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCourseVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolCourseVO.java @@ -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; + }