123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- package com.schoolinout.system.service.impl;
- import com.schoolinout.common.constant.DictConstants;
- import com.schoolinout.common.exception.ServiceException;
- import com.schoolinout.common.utils.DateUtils;
- import com.schoolinout.system.domain.Clazz;
- import com.schoolinout.system.domain.Teacher;
- import com.schoolinout.system.domain.TeacherClassRelation;
- import com.schoolinout.system.domain.dto.AddTeacherClassRelationDto;
- import com.schoolinout.system.domain.dto.BindClassTeacherMain;
- import com.schoolinout.system.domain.dto.RelationListDto;
- import com.schoolinout.system.domain.vo.TeacherClassInfoVo;
- import com.schoolinout.system.mapper.ClazzMapper;
- import com.schoolinout.system.mapper.TeacherClassRelationMapper;
- import com.schoolinout.system.mapper.TeacherMapper;
- import com.schoolinout.system.service.ITeacherClassRelationService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.List;
- import java.util.Set;
- import java.util.stream.Collectors;
- @Service
- public class TeacherClassRelationServiceImpl implements ITeacherClassRelationService {
- @Autowired
- private TeacherClassRelationMapper teacherClassRelationMapper;
- @Autowired
- private TeacherMapper teacherMapper;
- @Autowired
- private ClazzMapper clazzMapper;
-
- @Override
- public TeacherClassRelation selectTeacherClassRelationById(Long id) {
- return teacherClassRelationMapper.selectTeacherClassRelationById(id);
- }
-
- @Override
- public List<TeacherClassRelation> selectTeacherClassRelationList(TeacherClassRelation teacherClassRelation) {
- return teacherClassRelationMapper.selectTeacherClassRelationList(teacherClassRelation);
- }
-
- @Override
- public int insertTeacherClassRelation(TeacherClassRelation teacherClassRelation) {
- teacherClassRelation.setCreateTime(DateUtils.getNowDate());
- return teacherClassRelationMapper.insertTeacherClassRelation(teacherClassRelation);
- }
-
- @Override
- public int updateTeacherClassRelation(TeacherClassRelation teacherClassRelation) {
- teacherClassRelation.setUpdateTime(DateUtils.getNowDate());
- return teacherClassRelationMapper.updateTeacherClassRelation(teacherClassRelation);
- }
-
- @Override
- public int deleteTeacherClassRelationByIds(Long[] ids) {
- return teacherClassRelationMapper.deleteTeacherClassRelationByIds(ids);
- }
-
- @Override
- public int deleteTeacherClassRelationById(Long id) {
- return teacherClassRelationMapper.deleteTeacherClassRelationById(id);
- }
- @Override
- @Transactional(rollbackFor = {RuntimeException.class, ServiceException.class})
- public int bindTeacherClass(AddTeacherClassRelationDto form) {
-
- TeacherClassRelation queryRelation = new TeacherClassRelation();
-
- queryRelation.setTeacherId(form.getTeacherId());
- queryRelation.setSchoolId(form.getSchoolId());
- List<TeacherClassRelation> existingRelations = teacherClassRelationMapper.selectTeacherClassRelationList(queryRelation);
-
- Set<Long> existingClassIds = existingRelations.stream()
- .map(TeacherClassRelation::getClassId)
- .collect(Collectors.toSet());
- List<Long> newClassIds = form.getClassId();
- if (newClassIds == null || newClassIds.isEmpty()) {
- teacherClassRelationMapper.deleteAllRelationsForClass(form.getSchoolId(), null, form.getTeacherId());
- } else if (existingClassIds == null || existingClassIds.isEmpty()) {
- teacherClassRelationMapper.insertRelationBatchForClassId(form.getSchoolId(), form.getTeacherId(), newClassIds);
- } else {
-
- List<Long> classIdsToRemove = existingClassIds.stream()
- .filter(item -> !newClassIds.contains(item))
- .collect(Collectors.toList());
-
- boolean classIdsToAdd = newClassIds.removeAll(classIdsToRemove);
-
- if (!classIdsToRemove.isEmpty()) {
- teacherClassRelationMapper.deleteRelationBatchForClassId(form.getSchoolId(), form.getTeacherId(), classIdsToRemove);
- }
-
- if (classIdsToAdd) {
- teacherClassRelationMapper.insertRelationBatchForClassId(form.getSchoolId(), form.getTeacherId(), newClassIds);
- }
- }
- return 1;
- }
- @Override
- public List<TeacherClassInfoVo> queryTeacherBindClassList(RelationListDto form) {
- return teacherClassRelationMapper.selectTeacherClass(form.getSchoolId(), form.getTeacherId(), form.getClassId());
- }
- @Override
- public String bindClassTeacherMain(BindClassTeacherMain form) {
-
- Clazz clazz = clazzMapper.selectClazzByIdAndSchoolId(form.getClassId(), form.getSchoolId());
- if (clazz == null) {
- throw new ServiceException("当前学校不存在该班级");
- }
-
- String teacherMain = form.getTeacherMain();
- String ans = "";
- if (DictConstants.SYS_DICT_YES.equals(teacherMain)) {
- if (form.getTeacherId() == null) {
- throw new ServiceException("教师不能为空");
- }
- Teacher teacher = teacherMapper.selectTeacherByIdAndSchoolId(form.getTeacherId(), form.getSchoolId());
- if (teacher == null) {
- throw new ServiceException("当前学校不存在该教师");
- }
-
- TeacherClassRelation teacherMainRelation = teacherClassRelationMapper.selectTeacherMain(form.getSchoolId(), form.getTeacherId(), null);
- if (teacherMainRelation != null) {
- throw new ServiceException("当前教师已经绑定有其他班的班主任,无法再次绑定");
- }
-
-
- teacherClassRelationMapper.updateTeacherMainBindRelation(form.getSchoolId(), form.getClassId(), null, form.getTeacherMain(), DictConstants.SYS_DICT_NO);
-
- teacherClassRelationMapper.updateTeacherMainBindRelation(form.getSchoolId(), form.getClassId(), form.getTeacherId(), null, DictConstants.SYS_DICT_YES);
- ans = "绑定成功!";
- } else if (DictConstants.SYS_DICT_NO.equals(teacherMain)) {
-
- teacherClassRelationMapper.updateTeacherMainBindRelation(form.getSchoolId(), form.getClassId(), null, DictConstants.SYS_DICT_YES, DictConstants.SYS_DICT_NO);
- ans = "解绑成功";
- }
- return ans;
- }
- @Override
- public List<Long> listTeacherBindClass(Long teacherId) {
- return teacherClassRelationMapper.selectTeacherBindClass(teacherId);
- }
- }
|