|
|
|
|
@ -10,6 +10,7 @@ import com.sztzjy.linkCommerce.mapper.SchoolClassMapper;
|
|
|
|
|
import com.sztzjy.linkCommerce.mapper.SchoolFacultyMapper;
|
|
|
|
|
import com.sztzjy.linkCommerce.mapper.SchoolMajorMapper;
|
|
|
|
|
import com.sztzjy.linkCommerce.mapper.SchoolMapper;
|
|
|
|
|
import com.sztzjy.linkCommerce.mapper.UserinfoMapper;
|
|
|
|
|
import com.sztzjy.linkCommerce.service.SchoolService;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
@ -17,6 +18,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
@ -32,6 +34,8 @@ public class SchoolServiceImpl implements SchoolService {
|
|
|
|
|
SchoolMajorMapper schoolMajorMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
SchoolClassMapper schoolClassMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
UserinfoMapper userinfoMapper;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Integer addSchool(School school) {
|
|
|
|
|
@ -116,12 +120,71 @@ public class SchoolServiceImpl implements SchoolService {
|
|
|
|
|
List<SchoolClass> schoolClasses = schoolClassMapper.selectByExample(schoolClassExample);
|
|
|
|
|
|
|
|
|
|
// 将院系信息转换为 DTO
|
|
|
|
|
String schoolName = schoolMapper.selectSchoolNameById(schoolId);
|
|
|
|
|
List<String> schoolMajorIds = schoolClasses.stream()
|
|
|
|
|
.map(SchoolClass::getSchoolMajorId)
|
|
|
|
|
.filter(StringUtils::isNotBlank)
|
|
|
|
|
.distinct()
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
List<SchoolMajor> schoolMajors;
|
|
|
|
|
if (schoolMajorIds.isEmpty()) {
|
|
|
|
|
schoolMajors = Collections.emptyList();
|
|
|
|
|
} else {
|
|
|
|
|
SchoolMajorExample schoolMajorExample = new SchoolMajorExample();
|
|
|
|
|
schoolMajorExample.createCriteria().andSchoolMajorIdIn(schoolMajorIds);
|
|
|
|
|
schoolMajors = schoolMajorMapper.selectByExample(schoolMajorExample);
|
|
|
|
|
}
|
|
|
|
|
Map<String, SchoolMajor> schoolMajorMap = schoolMajors.stream()
|
|
|
|
|
.collect(Collectors.toMap(SchoolMajor::getSchoolMajorId, schoolMajor -> schoolMajor, (left, right) -> left));
|
|
|
|
|
List<String> schoolFacultyIds = schoolMajors.stream()
|
|
|
|
|
.map(SchoolMajor::getSchoolFacultyId)
|
|
|
|
|
.filter(StringUtils::isNotBlank)
|
|
|
|
|
.distinct()
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
List<SchoolFaculty> schoolFaculties;
|
|
|
|
|
if (schoolFacultyIds.isEmpty()) {
|
|
|
|
|
schoolFaculties = Collections.emptyList();
|
|
|
|
|
} else {
|
|
|
|
|
SchoolFacultyExample schoolFacultyExample = new SchoolFacultyExample();
|
|
|
|
|
schoolFacultyExample.createCriteria().andSchoolFacultyIdIn(schoolFacultyIds);
|
|
|
|
|
schoolFaculties = schoolFacultyMapper.selectByExample(schoolFacultyExample);
|
|
|
|
|
}
|
|
|
|
|
Map<String, SchoolFaculty> schoolFacultyMap = schoolFaculties.stream()
|
|
|
|
|
.collect(Collectors.toMap(SchoolFaculty::getSchoolFacultyId, schoolFaculty -> schoolFaculty, (left, right) -> left));
|
|
|
|
|
List<String> createdByIds = schoolClasses.stream()
|
|
|
|
|
.map(SchoolClass::getCreatedBy)
|
|
|
|
|
.filter(StringUtils::isNotBlank)
|
|
|
|
|
.distinct()
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
List<Userinfo> creators;
|
|
|
|
|
if (createdByIds.isEmpty()) {
|
|
|
|
|
creators = Collections.emptyList();
|
|
|
|
|
} else {
|
|
|
|
|
UserinfoExample userinfoExample = new UserinfoExample();
|
|
|
|
|
userinfoExample.createCriteria().andUserIdIn(createdByIds);
|
|
|
|
|
creators = userinfoMapper.selectByExample(userinfoExample);
|
|
|
|
|
}
|
|
|
|
|
Map<String, Userinfo> creatorMap = creators.stream()
|
|
|
|
|
.collect(Collectors.toMap(Userinfo::getUserId, userinfo -> userinfo, (left, right) -> left));
|
|
|
|
|
List<SchoolClassDto> dtoList = schoolClasses.stream()
|
|
|
|
|
.map(schoolClass -> {
|
|
|
|
|
SchoolClassDto dto = new SchoolClassDto();
|
|
|
|
|
dto.setSchoolClass(schoolClass);
|
|
|
|
|
String schoolName = schoolMapper.selectSchoolNameById(schoolId);
|
|
|
|
|
dto.setSchoolName(schoolName);
|
|
|
|
|
dto.setSchoolMajorId(schoolClass.getSchoolMajorId());
|
|
|
|
|
SchoolMajor schoolMajor = schoolMajorMap.get(schoolClass.getSchoolMajorId());
|
|
|
|
|
if (schoolMajor != null) {
|
|
|
|
|
dto.setSchoolMajorName(schoolMajor.getSchoolMajorName());
|
|
|
|
|
dto.setSchoolFacultyId(schoolMajor.getSchoolFacultyId());
|
|
|
|
|
SchoolFaculty schoolFaculty = schoolFacultyMap.get(schoolMajor.getSchoolFacultyId());
|
|
|
|
|
if (schoolFaculty != null) {
|
|
|
|
|
dto.setSchoolFacultyName(schoolFaculty.getSchoolFacultyName());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Userinfo creator = creatorMap.get(schoolClass.getCreatedBy());
|
|
|
|
|
if (creator != null) {
|
|
|
|
|
dto.setCreatedByName(StringUtils.defaultIfBlank(creator.getName(), creator.getUsername()));
|
|
|
|
|
}
|
|
|
|
|
return dto;
|
|
|
|
|
})
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|