|
@@ -1,10 +1,29 @@
|
|
|
package com.ym.mec.education.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.ym.mec.education.entity.MusicGroup;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+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.ReturnCodeEnum;
|
|
|
+import com.ym.mec.education.enums.TeachTypeEnum;
|
|
|
import com.ym.mec.education.mapper.MusicGroupMapper;
|
|
|
-import com.ym.mec.education.service.IMusicGroupService;
|
|
|
+import com.ym.mec.education.req.MusicGroupReq;
|
|
|
+import com.ym.mec.education.resp.ClassGroupResp;
|
|
|
+import com.ym.mec.education.resp.MusicGroupResp;
|
|
|
+import com.ym.mec.education.service.*;
|
|
|
+import io.swagger.models.auth.In;
|
|
|
+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.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -17,4 +36,162 @@ import org.springframework.stereotype.Service;
|
|
|
@Service
|
|
|
public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGroup> implements IMusicGroupService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IClassGroupService classGroupService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IClassGroupTeacherMapperService classGroupTeacherMapperService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ICourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ITeacherService teacherService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ISysUserService sysUserService;
|
|
|
+ @Override
|
|
|
+ public PageResponse groupList(MusicGroupReq req) {
|
|
|
+ PageResponse response = new PageResponse();
|
|
|
+ IPage page = new Page();
|
|
|
+ QueryWrapper<MusicGroup> queryWrapper = new QueryWrapper<>();
|
|
|
+ IPage<MusicGroup> queryPage = this.page(page, queryWrapper);
|
|
|
+ if (queryPage.getRecords() == null && queryPage.getRecords().isEmpty()) {
|
|
|
+ response.setReturnCode(ReturnCodeEnum.CODE_206.getCode());
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<MusicGroup> musicGroupList = queryPage.getRecords();
|
|
|
+ List<MusicGroupResp> musicGroupResps = Lists.newArrayList();
|
|
|
+ musicGroupList.forEach(g -> {
|
|
|
+ MusicGroupResp musicGroupResp = new MusicGroupResp();
|
|
|
+ BeanUtils.copyProperties(g, musicGroupResp);
|
|
|
+ QueryWrapper<ClassGroup> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("music_group_id_", g.getId());
|
|
|
+ List<ClassGroup> classGroups = classGroupService.list(queryWrapper1);
|
|
|
+ if (!CollectionUtils.isEmpty(classGroups)) {
|
|
|
+ int studNum = classGroups.stream().mapToInt(ClassGroup::getStudentNum).sum();
|
|
|
+ musicGroupResp.setStudentNum(studNum);
|
|
|
+ }else{
|
|
|
+ musicGroupResp.setStudentNum(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<ClassGroupTeacherMapper> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("music_group_id_", g.getId());
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperService.list(queryWrapper2);
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(classGroupTeacherMappers)) {
|
|
|
+ int teachNum = classGroupTeacherMappers.size();
|
|
|
+ musicGroupResp.setTeacherNum(teachNum);
|
|
|
+ }else{
|
|
|
+ musicGroupResp.setTeacherNum(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ //老师
|
|
|
+ SysUser sysUser1 = sysUserService.getById(g.getTeamTeacherId());
|
|
|
+
|
|
|
+ SysUser sysUser2 = sysUserService.getById(g.getTeamTeacherId());
|
|
|
+ if(sysUser1 != null){
|
|
|
+ musicGroupResp.setTeamTeacherName(sysUser1.getUsername());
|
|
|
+ }
|
|
|
+ if(sysUser2 != null){
|
|
|
+ musicGroupResp.setEduTeacherName(sysUser2.getUsername());
|
|
|
+ }
|
|
|
+ musicGroupResps.add(musicGroupResp);
|
|
|
+ });
|
|
|
+ int count = this.count(queryWrapper);
|
|
|
+ response.setRecords(musicGroupResps);
|
|
|
+ response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
|
|
|
+ response.setMessage(ReturnCodeEnum.CODE_200.getValue());
|
|
|
+ response.setTotal(count);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public BaseResponse groupDetail(Integer groupId) {
|
|
|
+ BaseResponse baseResponse = new BaseResponse();
|
|
|
+
|
|
|
+ MusicGroup musicGroup = this.getById(groupId);
|
|
|
+ if (musicGroup == null) {
|
|
|
+ baseResponse.setReturnCode(ReturnCodeEnum.CODE_207.getCode());
|
|
|
+ baseResponse.setMessage(ReturnCodeEnum.CODE_207.getValue());
|
|
|
+ return baseResponse;
|
|
|
+ }
|
|
|
+ MusicGroupResp musicGroupResp = new MusicGroupResp();
|
|
|
+ BeanUtils.copyProperties(musicGroup, musicGroupResp);
|
|
|
+ QueryWrapper<ClassGroup> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("music_group_id_", groupId);
|
|
|
+ List<ClassGroup> classGroups = classGroupService.list(queryWrapper1);
|
|
|
+ if (!CollectionUtils.isEmpty(classGroups)) {
|
|
|
+ int studNum = classGroups.stream().mapToInt(ClassGroup::getStudentNum).sum();
|
|
|
+ musicGroupResp.setStudentNum(studNum);
|
|
|
+ }
|
|
|
+
|
|
|
+ return baseResponse;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 班级列表
|
|
|
+ * @param groupId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public PageResponse classGroupList(Integer groupId) {
|
|
|
+
|
|
|
+ PageResponse response = new PageResponse();
|
|
|
+ IPage page = new Page();
|
|
|
+ QueryWrapper<ClassGroup> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("music_group_id_", groupId);
|
|
|
+ IPage<ClassGroup> classGroupPage = classGroupService.page(page,queryWrapper1);
|
|
|
+ int count = classGroupService.count(queryWrapper1);
|
|
|
+ if (classGroupPage.getRecords() == null && classGroupPage.getRecords().isEmpty()) {
|
|
|
+ response.setReturnCode(ReturnCodeEnum.CODE_206.getCode());
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ClassGroup> classGroups = classGroupPage.getRecords();
|
|
|
+
|
|
|
+ List<ClassGroupResp> groupRespList = new ArrayList<>();
|
|
|
+ if(!CollectionUtils.isEmpty(classGroups)){
|
|
|
+ classGroups.forEach(e ->{
|
|
|
+
|
|
|
+ ClassGroupResp classGroupResp = new ClassGroupResp();
|
|
|
+ //查询班级老师
|
|
|
+ BeanUtils.copyProperties(e,classGroupResp);
|
|
|
+ QueryWrapper<ClassGroupTeacherMapper> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("music_group_id_",e.getId()).eq("teacher_role_", TeachTypeEnum.BISHOP.getCode());
|
|
|
+ List<ClassGroupTeacherMapper> list = classGroupTeacherMapperService.list();
|
|
|
+
|
|
|
+ if(!CollectionUtils.isEmpty(list)){
|
|
|
+ List<Integer> firstId = list.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toList());
|
|
|
+ QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.in("id_",firstId);
|
|
|
+ List<SysUser> sysUserList = sysUserService.list(queryWrapper);
|
|
|
+ if(!CollectionUtils.isEmpty(sysUserList)){
|
|
|
+ classGroupResp.setFirstTehNameList(sysUserList.stream().map(SysUser::getUsername).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ queryWrapper2.eq("music_group_id_",e.getId()).eq("teacher_role_", TeachTypeEnum.TEACHING.getCode());
|
|
|
+ List<ClassGroupTeacherMapper> list2 = classGroupTeacherMapperService.list();
|
|
|
+ if(!CollectionUtils.isEmpty(list2)){
|
|
|
+ List<Integer> secdId = list2.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toList());
|
|
|
+ QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.in("id_",secdId);
|
|
|
+ List<SysUser> sysUserList = sysUserService.list(queryWrapper);
|
|
|
+ if(!CollectionUtils.isEmpty(sysUserList)){
|
|
|
+ classGroupResp.setSecdTehNameList(sysUserList.stream().map(SysUser::getUsername).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ groupRespList.add(classGroupResp);
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ response.setRecords(groupRespList);
|
|
|
+ response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
|
|
|
+ response.setMessage(ReturnCodeEnum.CODE_200.getValue());
|
|
|
+ response.setTotal(count);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|