|
@@ -6,20 +6,23 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.ym.mec.biz.dal.enums.JobTypeEnum;
|
|
|
+import com.ym.mec.common.enums.UserGenderEnum;
|
|
|
+import com.ym.mec.common.security.SecurityUtils;
|
|
|
+import com.ym.mec.education.base.BaseResponse;
|
|
|
import com.ym.mec.education.base.PageResponse;
|
|
|
import com.ym.mec.education.entity.*;
|
|
|
import com.ym.mec.education.enums.TeachTypeEnum;
|
|
|
import com.ym.mec.education.mapper.ClassGroupStudentMapperMapper;
|
|
|
import com.ym.mec.education.req.ClassGroupReq;
|
|
|
-import com.ym.mec.education.req.TeacherReq;
|
|
|
+import com.ym.mec.education.req.StudentReq;
|
|
|
import com.ym.mec.education.resp.ClassStudentResp;
|
|
|
import com.ym.mec.education.resp.StudentListResp;
|
|
|
+import com.ym.mec.education.resp.StudentResp;
|
|
|
import com.ym.mec.education.service.*;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -50,7 +53,10 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
|
|
|
private ISubjectService subjectService;
|
|
|
@Autowired
|
|
|
private IClassGroupTeacherMapperService classGroupTeacherMapperService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private IStudentRegistrationService studentRegistrationService;
|
|
|
+ @Autowired
|
|
|
+ private ISchoolService schoolService;
|
|
|
|
|
|
@Override
|
|
|
public PageResponse getPage(ClassGroupReq classGroupReq) {
|
|
@@ -68,11 +74,11 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
|
|
|
page.getRecords().forEach(item -> {
|
|
|
SysUser sysUser = sysUserService.getById(item.getUserId());
|
|
|
StudentListResp studentRegistrationResp = new StudentListResp()
|
|
|
- .setStudentName(sysUser.getRealName());
|
|
|
+ .setStudentName(sysUser.getRealName());
|
|
|
if (Objects.nonNull(classGroup) && Objects.nonNull(classGroup.getMusicGroupId())) {
|
|
|
QueryWrapper<MusicGroupStudentFee> musicGroupStudentFeeQueryWrapper = new QueryWrapper<MusicGroupStudentFee>();
|
|
|
musicGroupStudentFeeQueryWrapper.lambda().eq(true, MusicGroupStudentFee::getMusicGroupId, classGroup.getMusicGroupId())
|
|
|
- .eq(true, MusicGroupStudentFee::getUserId, item.getUserId());
|
|
|
+ .eq(true, MusicGroupStudentFee::getUserId, item.getUserId());
|
|
|
MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeService.getOne(musicGroupStudentFeeQueryWrapper);
|
|
|
if (Objects.nonNull(musicGroupStudentFee) && Objects.nonNull(musicGroupStudentFee.getContinuousAbsenteeismTimes())) {
|
|
|
studentRegistrationResp.setStudentAttendance("连续缺到" + musicGroupStudentFee.getContinuousAbsenteeismTimes() + "次");
|
|
@@ -105,70 +111,117 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public PageResponse getPageByTeacher(TeacherReq teacherReq) {
|
|
|
- if (Objects.isNull(teacherReq.getUserId())) {
|
|
|
- return PageResponse.errorParam();
|
|
|
- }
|
|
|
+ public PageResponse getPageByTeacher(StudentReq studentReq) {
|
|
|
//判断当前登录人角色
|
|
|
- Teacher teacher = teacherService.getById(teacherReq.getUserId());
|
|
|
+ Teacher teacher = teacherService.getById(SecurityUtils.getUser().getUserId());
|
|
|
if (Objects.nonNull(teacher)) {
|
|
|
//教学主管
|
|
|
QueryWrapper<MusicGroup> musicGroupQueryWrapper = new QueryWrapper<>();
|
|
|
if (JobTypeEnum.TEACHING.getCode().equals(teacher.getJobType())) {
|
|
|
musicGroupQueryWrapper.lambda().eq(MusicGroup::getOrganId, teacher.getOrganId())
|
|
|
- .eq(MusicGroup::getEducationalTeacherId, teacher.getId());
|
|
|
+ .eq(MusicGroup::getEducationalTeacherId, teacher.getId());
|
|
|
} else if (JobTypeEnum.ACADEMIC.getCode().equals(teacher.getJobType())) {
|
|
|
//教务老师
|
|
|
musicGroupQueryWrapper.lambda().eq(MusicGroup::getOrganId, teacher.getOrganId())
|
|
|
- .eq(MusicGroup::getTeamTeacherId, teacher.getId());
|
|
|
+ .eq(MusicGroup::getTeamTeacherId, teacher.getId());
|
|
|
}
|
|
|
List<MusicGroup> musicGroupList = musicGroupService.list(musicGroupQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(musicGroupList)) {
|
|
|
QueryWrapper<ClassGroup> classGroupQueryWrapper = new QueryWrapper<>();
|
|
|
classGroupQueryWrapper.lambda().in(ClassGroup::getMusicGroupId,
|
|
|
- musicGroupList.stream().map(MusicGroup::getId).collect(Collectors.toList()));
|
|
|
+ musicGroupList.stream().map(MusicGroup::getId).collect(Collectors.toList()));
|
|
|
List<ClassGroup> classGroupList = classGroupService.list(classGroupQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(classGroupList)) {
|
|
|
- return PageResponse.success(getPage(classGroupList, teacherReq, musicGroupList));
|
|
|
+ return PageResponse.success(getPage(classGroupList, studentReq, musicGroupList));
|
|
|
}
|
|
|
}
|
|
|
//指导老师 助教老师
|
|
|
QueryWrapper<ClassGroupTeacherMapper> classGroupTeacherMapperQueryWrapper = new QueryWrapper<>();
|
|
|
if (JobTypeEnum.ADVISER.getCode().equals(teacher.getJobType())) {
|
|
|
classGroupTeacherMapperQueryWrapper.lambda().eq(ClassGroupTeacherMapper::getTeacherRole, TeachTypeEnum.BISHOP.getCode())
|
|
|
- .eq(ClassGroupTeacherMapper::getUserId, teacher.getId());
|
|
|
+ .eq(ClassGroupTeacherMapper::getUserId, teacher.getId());
|
|
|
} else if (JobTypeEnum.ASSISTANT.getCode().equals(teacher.getJobType())) {
|
|
|
classGroupTeacherMapperQueryWrapper.lambda().eq(ClassGroupTeacherMapper::getTeacherRole, TeachTypeEnum.TEACHING.getCode())
|
|
|
- .eq(ClassGroupTeacherMapper::getUserId, teacher.getId());
|
|
|
+ .eq(ClassGroupTeacherMapper::getUserId, teacher.getId());
|
|
|
}
|
|
|
List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.list(classGroupTeacherMapperQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(classGroupTeacherMapperList)) {
|
|
|
QueryWrapper<ClassGroup> classGroupQueryWrapper = new QueryWrapper<>();
|
|
|
classGroupQueryWrapper.lambda().in(ClassGroup::getMusicGroupId, classGroupTeacherMapperList.stream().
|
|
|
- map(ClassGroupTeacherMapper::getMusicGroupId).collect(Collectors.toList()));
|
|
|
+ map(ClassGroupTeacherMapper::getMusicGroupId).collect(Collectors.toList()));
|
|
|
List<ClassGroup> classGroupList = classGroupService.list(classGroupQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(classGroupList)) {
|
|
|
musicGroupQueryWrapper.lambda().in(MusicGroup::getId, classGroupList.stream().map(ClassGroup::getMusicGroupId).collect(Collectors.toList()));
|
|
|
musicGroupList = musicGroupService.list(musicGroupQueryWrapper);
|
|
|
- return PageResponse.success(getPage(classGroupList, teacherReq, musicGroupList));
|
|
|
+ return PageResponse.success(getPage(classGroupList, studentReq, musicGroupList));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return PageResponse.noDataExists();
|
|
|
}
|
|
|
|
|
|
- private IPage<StudentListResp> getPage(List<ClassGroup> classGroupList, TeacherReq teacherReq, List<MusicGroup> musicGroupList) {
|
|
|
+ @Override
|
|
|
+ public BaseResponse getInfo(StudentReq studentReq) {
|
|
|
+ if (Objects.isNull(studentReq.getStudentId())) {
|
|
|
+ return BaseResponse.errorParam();
|
|
|
+ }
|
|
|
+ SysUser user = sysUserService.getById(studentReq.getStudentId());
|
|
|
+ StudentResp studentResp = new StudentResp();
|
|
|
+ List<String> subjectNameList = Lists.newArrayList();
|
|
|
+ if (Objects.nonNull(user)) {
|
|
|
+ studentResp.setStudentName(user.getRealName())
|
|
|
+ .setStudentGender(UserGenderEnum.get(user.getGender()).getDescription());
|
|
|
+ }
|
|
|
+ QueryWrapper<StudentRegistration> studentRegistrationQueryWrapper = new QueryWrapper<>();
|
|
|
+ studentRegistrationQueryWrapper.lambda().eq(StudentRegistration::getUserId, studentReq.getStudentId());
|
|
|
+ studentRegistrationService.list(studentRegistrationQueryWrapper).stream().findFirst().
|
|
|
+ ifPresent(studentRegistration -> studentResp.setParentsPhone(studentRegistration.getParentsPhone())
|
|
|
+ .setStudentGrade(studentRegistration.getCurrentGrade())
|
|
|
+ .setRemark(studentRegistration.getRemark()));
|
|
|
+ QueryWrapper<ClassGroupStudentMapper> classGroupStudentMapperQueryWrapper = new QueryWrapper<>();
|
|
|
+ classGroupStudentMapperQueryWrapper.lambda().eq(ClassGroupStudentMapper::getUserId, studentReq.getStudentId());
|
|
|
+ List<ClassGroupStudentMapper> classGroupStudentMapperList = list(classGroupStudentMapperQueryWrapper);
|
|
|
+ if (!CollectionUtils.isEmpty(classGroupStudentMapperList)) {
|
|
|
+ QueryWrapper<ClassGroup> classGroupQueryWrapper = new QueryWrapper<>();
|
|
|
+ classGroupQueryWrapper.lambda().in(ClassGroup::getId, classGroupStudentMapperList.stream().
|
|
|
+ map(ClassGroupStudentMapper::getClassGroupId).collect(Collectors.toList()));
|
|
|
+ List<ClassGroup> classGroupList = classGroupService.list(classGroupQueryWrapper);
|
|
|
+ if (!CollectionUtils.isEmpty(classGroupList)) {
|
|
|
+ classGroupList.forEach(classGroup -> {
|
|
|
+ List<Subject> subjectList = subjectService.getSubjectList(classGroup.getSubjectIdList());
|
|
|
+ if (!CollectionUtils.isEmpty(subjectList)) {
|
|
|
+ subjectNameList.addAll(subjectList.stream().map(Subject::getName).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //学校
|
|
|
+ classGroupList.stream().findFirst().ifPresent(group -> {
|
|
|
+ MusicGroup musicGroup = musicGroupService.getById(group.getMusicGroupId());
|
|
|
+ if (Objects.nonNull(musicGroup) && Objects.nonNull(musicGroup.getSchoolId())) {
|
|
|
+ School school = schoolService.getById(musicGroup.getSchoolId());
|
|
|
+ if (Objects.nonNull(school)) {
|
|
|
+ studentResp.setStudentSchool(school.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ studentResp.setSubjectName(subjectNameList);
|
|
|
+ return BaseResponse.success(studentResp);
|
|
|
+ }
|
|
|
+
|
|
|
+ private IPage<StudentListResp> getPage(List<ClassGroup> classGroupList, StudentReq studentReq, List<MusicGroup> musicGroupList) {
|
|
|
Page<StudentListResp> pageResult = new Page<>();
|
|
|
ArrayList<StudentListResp> resultList = Lists.newArrayList();
|
|
|
QueryWrapper<ClassGroupStudentMapper> classGroupStudentMapperQueryWrapper = new QueryWrapper<>();
|
|
|
classGroupStudentMapperQueryWrapper.lambda().in(ClassGroupStudentMapper::getClassGroupId,
|
|
|
- classGroupList.stream().map(ClassGroup::getId).collect(Collectors.toList()));
|
|
|
+ classGroupList.stream().map(ClassGroup::getId).collect(Collectors.toList()));
|
|
|
List<ClassGroupStudentMapper> classGroupStudentMapperList = classGroupStudentMapperService.list(classGroupStudentMapperQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(classGroupStudentMapperList)) {
|
|
|
QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
|
|
|
sysUserQueryWrapper.lambda().in(SysUser::getId,
|
|
|
- classGroupStudentMapperList.stream().map(ClassGroupStudentMapper::getUserId).collect(Collectors.toList()));
|
|
|
- Page<SysUser> sysUserPage = new Page<>(teacherReq.getPageNo(), teacherReq.getPageSize());
|
|
|
+ classGroupStudentMapperList.stream().map(ClassGroupStudentMapper::getUserId).collect(Collectors.toList()))
|
|
|
+ .like(SysUser::getRealName, studentReq.getStudentName());
|
|
|
+ Page<SysUser> sysUserPage = new Page<SysUser>(studentReq.getPageNo(), studentReq.getPageSize());
|
|
|
IPage<SysUser> page = sysUserService.page(sysUserPage, sysUserQueryWrapper);
|
|
|
if (!CollectionUtils.isEmpty(page.getRecords())) {
|
|
|
BeanUtils.copyProperties(page, pageResult);
|
|
@@ -178,16 +231,16 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
|
|
|
studentListResp.setStudentId(sysUser.getId());
|
|
|
studentListResp.setStudentName(sysUser.getRealName());
|
|
|
classGroupStudentMapperList.stream().filter
|
|
|
- (classGroupStudentMapper -> classGroupStudentMapper.getUserId().
|
|
|
- equals(sysUser.getId())).findFirst().ifPresent(classGroupStudentMapper -> {
|
|
|
+ (classGroupStudentMapper -> classGroupStudentMapper.getUserId().
|
|
|
+ equals(sysUser.getId())).findFirst().ifPresent(classGroupStudentMapper -> {
|
|
|
Integer classGroupId = classGroupStudentMapper.getClassGroupId();
|
|
|
classGroupList.stream().filter(classGroup -> classGroup.getId().equals(classGroupId)).
|
|
|
- findFirst().ifPresent(classGroup -> {
|
|
|
+ findFirst().ifPresent(classGroup -> {
|
|
|
Integer musicGroupId = classGroup.getMusicGroupId();
|
|
|
//连续迟到
|
|
|
QueryWrapper<MusicGroupStudentFee> musicGroupStudentFeeQueryWrapper = new QueryWrapper<MusicGroupStudentFee>();
|
|
|
musicGroupStudentFeeQueryWrapper.lambda().eq(true, MusicGroupStudentFee::getMusicGroupId, musicGroupId)
|
|
|
- .eq(true, MusicGroupStudentFee::getUserId, sysUser.getId());
|
|
|
+ .eq(true, MusicGroupStudentFee::getUserId, sysUser.getId());
|
|
|
MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeService.getOne(musicGroupStudentFeeQueryWrapper);
|
|
|
if (Objects.nonNull(musicGroupStudentFee)) {
|
|
|
studentListResp.setStudentAttendance("连续旷课" + musicGroupStudentFee.getContinuousAbsenteeismTimes() + "次");
|
|
@@ -197,7 +250,7 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
|
|
|
studentListResp.setSubjectName(subjectList.stream().map(Subject::getName).collect(Collectors.toList()));
|
|
|
}
|
|
|
finalMusicGroupList.stream().filter(musicGroup -> musicGroup.getId().equals(musicGroupId)).
|
|
|
- findFirst().ifPresent(musicGroup -> studentListResp.setMusicGroupName(musicGroup.getName()));
|
|
|
+ findFirst().ifPresent(musicGroup -> studentListResp.setMusicGroupName(musicGroup.getName()));
|
|
|
});
|
|
|
});
|
|
|
resultList.add(studentListResp);
|