package cn.iocoder.yudao.module.infra.service.demo.demo03.erp; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.erp.vo.Demo03StudentErpPageReqVO; import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.erp.vo.Demo03StudentErpSaveReqVO; import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.erp.Demo03CourseErpMapper; import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.erp.Demo03GradeErpMapper; import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.erp.Demo03StudentErpMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; /** * 学生 Service 实现类 * * @author 芋道源码 */ @Service @Validated public class Demo03StudentErpServiceImpl implements Demo03StudentErpService { @Resource private Demo03StudentErpMapper demo03StudentErpMapper; @Resource private Demo03CourseErpMapper demo03CourseErpMapper; @Resource private Demo03GradeErpMapper demo03GradeErpMapper; @Override public Long createDemo03Student(Demo03StudentErpSaveReqVO createReqVO) { // 插入 Demo03StudentDO demo03Student = BeanUtils.toBean(createReqVO, Demo03StudentDO.class); demo03StudentErpMapper.insert(demo03Student); // 返回 return demo03Student.getId(); } @Override public void updateDemo03Student(Demo03StudentErpSaveReqVO updateReqVO) { // 校验存在 validateDemo03StudentExists(updateReqVO.getId()); // 更新 Demo03StudentDO updateObj = BeanUtils.toBean(updateReqVO, Demo03StudentDO.class); demo03StudentErpMapper.updateById(updateObj); } @Override @Transactional(rollbackFor = Exception.class) public void deleteDemo03Student(Long id) { // 校验存在 validateDemo03StudentExists(id); // 删除 demo03StudentErpMapper.deleteById(id); // 删除子表 deleteDemo03CourseByStudentId(id); deleteDemo03GradeByStudentId(id); } @Override @Transactional(rollbackFor = Exception.class) public void deleteDemo03StudentList(List ids) { // 校验存在 validateDemo03StudentExists(ids); // 删除 demo03StudentErpMapper.deleteByIds(ids); // 删除子表 deleteDemo03CourseByStudentIds(ids); deleteDemo03GradeByStudentIds(ids); } private void validateDemo03StudentExists(List ids) { List list = demo03StudentErpMapper.selectByIds(ids); if (CollUtil.isEmpty(list) || list.size() != ids.size()) { throw exception(DEMO03_STUDENT_NOT_EXISTS); } } private void validateDemo03StudentExists(Long id) { if (demo03StudentErpMapper.selectById(id) == null) { throw exception(DEMO03_STUDENT_NOT_EXISTS); } } @Override public Demo03StudentDO getDemo03Student(Long id) { return demo03StudentErpMapper.selectById(id); } @Override public PageResult getDemo03StudentPage(Demo03StudentErpPageReqVO pageReqVO) { return demo03StudentErpMapper.selectPage(pageReqVO); } // ==================== 子表(学生课程) ==================== @Override public PageResult getDemo03CoursePage(PageParam pageReqVO, Long studentId) { return demo03CourseErpMapper.selectPage(pageReqVO, studentId); } @Override public Long createDemo03Course(Demo03CourseDO demo03Course) { demo03CourseErpMapper.insert(demo03Course); return demo03Course.getId(); } @Override public void updateDemo03Course(Demo03CourseDO demo03Course) { // 校验存在 validateDemo03CourseExists(demo03Course.getId()); // 更新 demo03Course.clean(); demo03CourseErpMapper.updateById(demo03Course); } @Override public void deleteDemo03Course(Long id) { // 删除 demo03CourseErpMapper.deleteById(id); } @Override public void deleteDemo03CourseList(List ids) { // 删除 demo03CourseErpMapper.deleteByIds(ids); } @Override public Demo03CourseDO getDemo03Course(Long id) { return demo03CourseErpMapper.selectById(id); } private void validateDemo03CourseExists(Long id) { if (demo03CourseErpMapper.selectById(id) == null) { throw exception(DEMO03_COURSE_NOT_EXISTS); } } private void deleteDemo03CourseByStudentId(Long studentId) { demo03CourseErpMapper.deleteByStudentId(studentId); } private void deleteDemo03CourseByStudentIds(List studentIds) { demo03CourseErpMapper.deleteByStudentIds(studentIds); } // ==================== 子表(学生班级) ==================== @Override public PageResult getDemo03GradePage(PageParam pageReqVO, Long studentId) { return demo03GradeErpMapper.selectPage(pageReqVO, studentId); } @Override public Long createDemo03Grade(Demo03GradeDO demo03Grade) { // 校验是否已经存在 if (demo03GradeErpMapper.selectByStudentId(demo03Grade.getStudentId()) != null) { throw exception(DEMO03_GRADE_EXISTS); } // 插入 demo03GradeErpMapper.insert(demo03Grade); return demo03Grade.getId(); } @Override public void updateDemo03Grade(Demo03GradeDO demo03Grade) { // 校验存在 validateDemo03GradeExists(demo03Grade.getId()); // 更新 demo03Grade.clean(); demo03GradeErpMapper.updateById(demo03Grade); } @Override public void deleteDemo03Grade(Long id) { // 删除 demo03GradeErpMapper.deleteById(id); } @Override public void deleteDemo03GradeList(List ids) { // 删除 demo03GradeErpMapper.deleteByIds(ids); } @Override public Demo03GradeDO getDemo03Grade(Long id) { return demo03GradeErpMapper.selectById(id); } private void validateDemo03GradeExists(Long id) { if (demo03GradeErpMapper.selectById(id) == null) { throw exception(DEMO03_GRADE_NOT_EXISTS); } } private void deleteDemo03GradeByStudentId(Long studentId) { demo03GradeErpMapper.deleteByStudentId(studentId); } private void deleteDemo03GradeByStudentIds(List studentIds) { demo03GradeErpMapper.deleteByStudentIds(studentIds); } }