Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 5 years ago
parent
commit
4dfac1b3bd

+ 8 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysUserDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.auth.dal.dao;
 import com.ym.mec.auth.api.entity.SysMenu;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.page.PageInfo;
 import org.apache.ibatis.annotations.Param;
 
@@ -28,4 +29,11 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	 * @param password
 	 */
 	void updatePassword(@Param("mobile") String mobile, @Param("password") String password);
+
+	/**
+	 * 获取用户基本信息
+	 * @param userId
+	 * @return
+	 */
+    ImUserModel getBasic(Integer userId);
 }

+ 8 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysUserService.java

@@ -2,6 +2,7 @@ package com.ym.mec.auth.service;
 
 import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.service.BaseService;
 
 public interface SysUserService extends BaseService<Integer, SysUser> {
@@ -54,4 +55,11 @@ public interface SysUserService extends BaseService<Integer, SysUser> {
 	 * @return
 	 */
     Integer add(SysUser sysUser);
+
+	/**
+	 * 获取用户基本信息
+	 * @param userId
+	 * @return
+	 */
+	ImUserModel getBasic(Integer userId);
 }

+ 5 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -114,4 +114,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 		return sysUser.getId();
 	}
 
+	@Override
+	public ImUserModel getBasic(Integer userId) {
+		return sysUserDao.getBasic(userId);
+	}
+
 }

+ 11 - 4
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/UserController.java

@@ -10,10 +10,7 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.security.AuthUser;
 import com.ym.mec.common.security.SecurityUtils;
 import com.ym.mec.common.validcode.SmsCodeService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
@@ -55,6 +52,16 @@ public class UserController extends BaseController {
 		return failed();
 	}
 
+	@ApiOperation(value = "根据用户编号获取用户基本信息")
+	@GetMapping("/get/{userId}")
+	@ApiParam(value = "用户编号", required = true)
+	public Object getBasic(@PathVariable("userId") Integer userId) {
+		if(userId == null){
+			return failed("参数校验异常");
+		}
+		return succeed(sysUserService.getBasic(userId));
+	}
+
 	@GetMapping(value = "/queryUserByPhone")
 	public SysUser queryUserByPhone(String mobile) {
 		return sysUserService.queryByPhone(mobile);

+ 8 - 0
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -165,4 +165,12 @@
     <select id="queryByPhone" resultMap="SysUser">
 		select * from sys_user where phone_ = #{phone} OR username_ = #{phone}
 	</select>
+    <resultMap id="ImUserModel" type="com.ym.mec.common.entity.ImUserModel">
+        <result column="id_" property="id"/>
+        <result property="name" column="username_"/>
+        <result property="portrait" column="avatar_"/>
+    </resultMap>
+    <select id="getBasic" resultMap="ImUserModel">
+        select * from sys_user where id_ = #{userId}
+    </select>
 </mapper>

+ 10 - 0
mec-education/src/main/java/com/ym/mec/education/mapper/ClassGroupStudentMapperMapper.java

@@ -1,7 +1,13 @@
 package com.ym.mec.education.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ym.mec.education.entity.ClassGroupStudentMapper;
+import com.ym.mec.education.req.ClassGroupReq;
+import com.ym.mec.education.resp.ClassStudentResp;
+
+import java.util.List;
+
 
 /**
  * <p>
@@ -13,4 +19,8 @@ import com.ym.mec.education.entity.ClassGroupStudentMapper;
  */
 public interface ClassGroupStudentMapperMapper extends BaseMapper<ClassGroupStudentMapper> {
 
+
+    List<ClassStudentResp> selectStudentPage(IPage page, ClassGroupReq req);
+
+    int selectStudentPageCount(ClassGroupReq req);
 }

+ 19 - 5
mec-education/src/main/java/com/ym/mec/education/mapper/xml/ClassGroupStudentMapperMapper.xml

@@ -4,11 +4,11 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.ym.mec.education.entity.ClassGroupStudentMapper">
-        <id column="id_" property="id" />
-        <result column="class_group_id_" property="classGroupId" />
-        <result column="user_id_" property="userId" />
-        <result column="create_time_" property="createTime" />
-        <result column="status_" property="status" />
+        <id column="id_" property="id"/>
+        <result column="class_group_id_" property="classGroupId"/>
+        <result column="user_id_" property="userId"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="status_" property="status"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -16,4 +16,18 @@
         id_, class_group_id_, user_id_, create_time_, status_
     </sql>
 
+    <select id="selectStudentPage" parameterType="com.ym.mec.education.req.ClassGroupReq"
+            resultType="com.ym.mec.education.resp.ClassStudentResp">
+
+        SELECT s.real_name_ as name,s.avatar_ as avatar,m.class_group_id_ as classGroupId,s.id_ as userId,c.music_group_id_ as musicGroupId  from class_group_student_mapper m
+
+        LEFT JOIN class_group c on m.class_group_id_ = c.id_
+
+        LEFT JOIN sys_user s on m.user_id_ = s.id_
+
+        where c.music_group_id_ = #{musicGroupId}
+
+
+    </select>
+
 </mapper>

+ 4 - 0
mec-education/src/main/java/com/ym/mec/education/req/ClassGroupReq.java

@@ -20,4 +20,8 @@ public class ClassGroupReq extends BaseQuery implements Serializable {
     private Integer groupId;
 
     private Integer type = 0;
+
+
+    @ApiModelProperty(value = "乐团id", required = true)
+    private Integer musicGroupId;
 }

+ 2 - 0
mec-education/src/main/java/com/ym/mec/education/resp/ClassStudentResp.java

@@ -33,4 +33,6 @@ public class ClassStudentResp implements Serializable {
 
     private Integer classGroupId;
 
+    private Integer musicGroupId;
+
 }

+ 8 - 0
mec-education/src/main/java/com/ym/mec/education/service/IClassGroupStudentMapperService.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.entity.ClassGroupStudentMapper;
 import com.ym.mec.education.req.ClassGroupReq;
+import com.ym.mec.education.resp.ClassStudentResp;
+
+import java.util.List;
 
 /**
  * <p>
@@ -16,4 +19,9 @@ import com.ym.mec.education.req.ClassGroupReq;
 public interface IClassGroupStudentMapperService extends IService<ClassGroupStudentMapper> {
 
     PageResponse getPage(ClassGroupReq classGroupReq);
+
+    List<ClassStudentResp> selectStudentPage(ClassGroupReq classGroupReq);
+
+    int  selectStudentPageCount(ClassGroupReq classGroupReq);
+
 }

+ 16 - 2
mec-education/src/main/java/com/ym/mec/education/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -8,15 +8,14 @@ import com.google.common.collect.Lists;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.entity.ClassGroupStudentMapper;
 import com.ym.mec.education.entity.StudentAttendance;
-import com.ym.mec.education.entity.StudentRegistration;
 import com.ym.mec.education.entity.SysUser;
 import com.ym.mec.education.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.education.mapper.ClassGroupStudentMapperMapper;
 import com.ym.mec.education.req.ClassGroupReq;
+import com.ym.mec.education.resp.ClassStudentResp;
 import com.ym.mec.education.resp.StudentListResp;
 import com.ym.mec.education.service.IClassGroupStudentMapperService;
 import com.ym.mec.education.service.IStudentAttendanceService;
-import com.ym.mec.education.service.IStudentRegistrationService;
 import com.ym.mec.education.service.ISysUserService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +38,7 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
     @Autowired
     private ISysUserService sysUserService;
 
+
     @Override
     public PageResponse getPage(ClassGroupReq classGroupReq) {
         Page<ClassGroupStudentMapper> classGroupStudentMapperPage = new Page<ClassGroupStudentMapper>(classGroupReq.getPageNo(), classGroupReq.getPageSize());
@@ -63,4 +63,18 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
         studentListRespPage.setRecords(list);
         return PageResponse.success(studentListRespPage);
     }
+
+    @Override
+    public List<ClassStudentResp> selectStudentPage(ClassGroupReq classGroupReq) {
+        IPage page = new Page(classGroupReq.getPageNo() ==null ? 1 : classGroupReq.getPageNo(),classGroupReq.getPageSize() == null ? 10:classGroupReq.getPageSize());
+
+        List<ClassStudentResp> classStudentResps =  this.baseMapper.selectStudentPage(page,classGroupReq);
+
+        return  classStudentResps;
+    }
+
+    @Override
+    public int selectStudentPageCount(ClassGroupReq classGroupReq) {
+        return 0;
+    }
 }

+ 145 - 131
mec-education/src/main/java/com/ym/mec/education/service/impl/MusicGroupServiceImpl.java

@@ -1,4 +1,5 @@
 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;
@@ -64,10 +65,10 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
     @Override
     public PageResponse groupList(MusicGroupReq req) {
         PageResponse response = new PageResponse();
-        IPage page = new Page(req.getPageNo()==null? 0: req.getPageNo(),req.getPageSize() == null ? 10:req.getPageSize());
+        IPage page = new Page(req.getPageNo() == null ? 0 : req.getPageNo(), req.getPageSize() == null ? 10 : req.getPageSize());
         QueryWrapper<MusicGroup> queryWrapper = new QueryWrapper<>();
-        if(req != null && !StringUtils.isEmpty(req.getName())){
-            queryWrapper.eq("name_",req.getName());
+        if (req != null && !StringUtils.isEmpty(req.getName())) {
+            queryWrapper.eq("name_", req.getName());
         }
 
         IPage<MusicGroup> queryPage = this.page(page, queryWrapper);
@@ -87,7 +88,7 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
             if (!CollectionUtils.isEmpty(classGroups)) {
                 int studNum = classGroups.stream().mapToInt(ClassGroup::getStudentNum).sum();
                 musicGroupResp.setStudentNum(studNum);
-            }else{
+            } else {
                 musicGroupResp.setStudentNum(0);
             }
 
@@ -98,18 +99,18 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
             if (!CollectionUtils.isEmpty(classGroupTeacherMappers)) {
                 int teachNum = classGroupTeacherMappers.size();
                 musicGroupResp.setTeacherNum(teachNum);
-            }else{
+            } else {
                 musicGroupResp.setTeacherNum(0);
             }
 
             //老师
-            SysUser  sysUser1 = sysUserService.getById(g.getTeamTeacherId());
+            SysUser sysUser1 = sysUserService.getById(g.getTeamTeacherId());
 
-            SysUser  sysUser2 = sysUserService.getById(g.getTeamTeacherId());
-            if(sysUser1 != null){
+            SysUser sysUser2 = sysUserService.getById(g.getTeamTeacherId());
+            if (sysUser1 != null) {
                 musicGroupResp.setTeamTeacherName(sysUser1.getRealName());
             }
-            if(sysUser2 != null){
+            if (sysUser2 != null) {
                 musicGroupResp.setEduTeacherName(sysUser2.getRealName());
             }
             musicGroupResps.add(musicGroupResp);
@@ -148,13 +149,13 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
             musicGroupResp.setUnitClassNum(Optional.ofNullable(unitClassNum).orElse(0L).intValue());
 
 
-            List<Integer> classId = classGroups.stream().map(e ->e.getId()).collect(Collectors.toList());
+            List<Integer> classId = classGroups.stream().map(e -> e.getId()).collect(Collectors.toList());
             QueryWrapper<ClassGroupStudentMapper> queryWrapper2 = new QueryWrapper<>();
             queryWrapper2.in("class_group_id_", classId);
 
             List<ClassGroupStudentMapper> classGroupStudentMappers = classGroupStudentMapperService.list(queryWrapper2);
 
-            if(!CollectionUtils.isEmpty(classGroupStudentMappers)){
+            if (!CollectionUtils.isEmpty(classGroupStudentMappers)) {
 
                 Long liveNum = classGroups.stream().filter(e -> ClassGroupStudentStatusEnum.NORMAL.getCode().equalsIgnoreCase(e.getType())).count();
 
@@ -165,13 +166,13 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
             }
         }
         //老师
-        SysUser  sysUser1 = sysUserService.getById(musicGroup.getTeamTeacherId());
+        SysUser sysUser1 = sysUserService.getById(musicGroup.getTeamTeacherId());
 
-        SysUser  sysUser2 = sysUserService.getById(musicGroup.getTeamTeacherId());
-        if(sysUser1 != null){
+        SysUser sysUser2 = sysUserService.getById(musicGroup.getTeamTeacherId());
+        if (sysUser1 != null) {
             musicGroupResp.setTeamTeacherName(sysUser1.getRealName());
         }
-        if(sysUser2 != null){
+        if (sysUser2 != null) {
             musicGroupResp.setEduTeacherName(sysUser2.getRealName());
         }
         baseResponse.setDataInfo(musicGroupResp);
@@ -182,6 +183,7 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
 
     /**
      * 班级列表
+     *
      * @param
      * @return
      */
@@ -189,13 +191,13 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
     public PageResponse classGroupList(ClassGroupReq req) {
 
         PageResponse response = new PageResponse();
-        IPage page = new Page(req.getPageNo()==null? 0: req.getPageNo(),req.getPageSize() == null ? 10:req.getPageSize());
+        IPage<ClassGroup> page = new Page(req.getPageNo() == null ? 0 : req.getPageNo(), req.getPageSize() == null ? 10 : req.getPageSize());
         QueryWrapper<ClassGroup> queryWrapper1 = new QueryWrapper<>();
-        if(req != null && req.getGroupId() != null){
-            queryWrapper1.eq("music_group_id_", req.getGroupId());
+        if (req != null && req.getMusicGroupId() != null) {
+            queryWrapper1.eq("music_group_id_", req.getMusicGroupId());
         }
 
-        IPage<ClassGroup> classGroupPage = classGroupService.page(page,queryWrapper1);
+        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());
@@ -205,36 +207,36 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
         List<ClassGroup> classGroups = classGroupPage.getRecords();
 
         //班级
-        if(req.getType() == 0){
+        if (req.getType() == 0) {
             List<ClassGroupResp> groupRespList = new ArrayList<>();
-            if(!CollectionUtils.isEmpty(classGroups)){
-                classGroups.forEach(e ->{
+            if (!CollectionUtils.isEmpty(classGroups)) {
+                classGroups.forEach(e -> {
 
                     ClassGroupResp classGroupResp = new ClassGroupResp();
                     //查询班级老师
-                    BeanUtils.copyProperties(e,classGroupResp);
+                    BeanUtils.copyProperties(e, classGroupResp);
                     QueryWrapper<ClassGroupTeacherMapper> queryWrapper2 = new QueryWrapper<>();
-                    queryWrapper2.eq("music_group_id_",e.getId()).eq("teacher_role_", TeachTypeEnum.BISHOP.getCode());
+                    queryWrapper2.eq("music_group_id_", e.getId()).eq("teacher_role_", TeachTypeEnum.BISHOP.getCode());
                     List<ClassGroupTeacherMapper> list = classGroupTeacherMapperService.list(queryWrapper2);
 
-                    if(!CollectionUtils.isEmpty(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);
+                        queryWrapper.in("id_", firstId);
                         List<SysUser> sysUserList = sysUserService.list(queryWrapper);
-                        if(!CollectionUtils.isEmpty(sysUserList)){
+                        if (!CollectionUtils.isEmpty(sysUserList)) {
                             classGroupResp.setFirstTehNameList(sysUserList.stream().map(SysUser::getRealName).collect(Collectors.toList()));
                         }
                     }
 
-                    queryWrapper2.eq("music_group_id_",e.getId()).eq("teacher_role_", TeachTypeEnum.TEACHING.getCode());
+                    queryWrapper2.eq("music_group_id_", e.getId()).eq("teacher_role_", TeachTypeEnum.TEACHING.getCode());
                     List<ClassGroupTeacherMapper> list2 = classGroupTeacherMapperService.list();
-                    if(!CollectionUtils.isEmpty(list2)){
+                    if (!CollectionUtils.isEmpty(list2)) {
                         List<Integer> secdId = list2.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toList());
                         QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
-                        queryWrapper.in("id_",secdId);
+                        queryWrapper.in("id_", secdId);
                         List<SysUser> sysUserList = sysUserService.list(queryWrapper);
-                        if(!CollectionUtils.isEmpty(sysUserList)){
+                        if (!CollectionUtils.isEmpty(sysUserList)) {
                             classGroupResp.setSecdTehNameList(sysUserList.stream().map(SysUser::getRealName).collect(Collectors.toList()));
                         }
                     }
@@ -250,125 +252,137 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
             return response;
         }
         //学生
-        if(req.getType() == 1){
+        if (req.getType() == 1) {
             List<ClassStudentResp> classStudentResps = new ArrayList<>();
 
-            classGroups.forEach(e ->{
-
-                QueryWrapper<ClassGroupStudentMapper> queryWrapper = new QueryWrapper<>();
-                queryWrapper.eq("class_group_id_",e.getId());
-                List<ClassGroupStudentMapper> studentMappers = classGroupStudentMapperService.list(queryWrapper);
-                if(!CollectionUtils.isEmpty(studentMappers)){
-                    studentMappers.forEach(stud ->{
-                        ClassStudentResp classStudentResp = new ClassStudentResp();
-                        Set<String> set = new HashSet<>();
-                        List<ClassStudentResp> removeList = classStudentResps.stream().filter(c ->c.getUserId().equals(stud.getUserId()) && c.getClassGroupId().equals(stud.getClassGroupId())).collect(Collectors.toList());
-                        if(!CollectionUtils.isEmpty(removeList)){
-                            classStudentResp = removeList.get(0);
-                            set.addAll(classStudentResp.getClassType());
-                            set.add(e.getType());
-                            classStudentResp.setClassType(new ArrayList<>(set));
-                        }else{
-
-                            SysUser sysUser = sysUserService.getById(stud.getUserId());
-                            if(sysUser != null){
-                                classStudentResp.setName(sysUser.getRealName());
-                                classStudentResp.setAvatar(sysUser.getAvatar());
-                            }
-                            classStudentResp.setUserId(stud.getUserId());
-                            classStudentResp.setClassGroupId(stud.getClassGroupId());
-                            QueryWrapper<StudentAttendance> truntWrapper = new QueryWrapper<>();
-                            //旷课
-                            truntWrapper.lambda().eq(true, StudentAttendance::getMusicGroupId, req.getGroupId())
-                                    .eq(true, StudentAttendance::getClassGroupId, e.getId())
-                                    .eq(true, StudentAttendance::getStatus, StudentAttendanceStatusEnum.TRUANT.getCode())
-                                    .eq(true,StudentAttendance::getUserId,stud.getUserId());
-                            Integer leaveCount = studentAttendanceService.count(truntWrapper);
-                            classStudentResp.setTruantNum(leaveCount);
-                            set.add(e.getType());
-                            if(ClassGroupTypeEnum.VIP.equals(e.getType())){
+            List<Integer> classGroupId = classGroups.stream().map(ClassGroup::getId).collect(Collectors.toList());
+            QueryWrapper<ClassGroupStudentMapper> queryWrapper = new QueryWrapper<>();
+            queryWrapper.in("class_group_id_", classGroupId);
+            IPage<ClassGroupStudentMapper> studentPage = new Page<>(req.getPageNo() == null ? 0 : req.getPageNo(), req.getPageSize() == null ? 10 : req.getPageSize());
+            IPage<ClassGroupStudentMapper> studentMappersPage = classGroupStudentMapperService.page(studentPage, queryWrapper);
+            List<ClassGroupStudentMapper> studentMappers = studentMappersPage.getRecords();
+
+            if (!CollectionUtils.isEmpty(studentMappers)) {
+                studentMappers.forEach(stud -> {
+
+
+                    Optional<ClassGroup> optional = classGroups.stream().filter(e -> e.getId().equals(stud.getClassGroupId())).findFirst();
+
+                    ClassStudentResp classStudentResp = new ClassStudentResp();
+                    Set<String> set = new HashSet<>();
+                    List<ClassStudentResp> removeList = classStudentResps.stream().filter(c -> c.getUserId().equals(stud.getUserId()) && c.getClassGroupId().equals(stud.getClassGroupId())).collect(Collectors.toList());
+                    if (!CollectionUtils.isEmpty(removeList)) {
+                        classStudentResp = removeList.get(0);
+                        set.addAll(classStudentResp.getClassType());
+                        if (optional.isPresent()) {
+                            set.add(optional.get().getType());
+                        }
+
+                        classStudentResp.setClassType(new ArrayList<>(set));
+                    } else {
+
+                        SysUser sysUser = sysUserService.getById(stud.getUserId());
+                        if (sysUser != null) {
+                            classStudentResp.setName(sysUser.getRealName());
+                            classStudentResp.setAvatar(sysUser.getAvatar());
+                        }
+                        classStudentResp.setUserId(stud.getUserId());
+                        classStudentResp.setClassGroupId(stud.getClassGroupId());
+                        QueryWrapper<StudentAttendance> truntWrapper = new QueryWrapper<>();
+                        //旷课
+                        truntWrapper.lambda().eq(true, StudentAttendance::getMusicGroupId, req.getMusicGroupId())
+                                .eq(true, StudentAttendance::getClassGroupId, stud.getClassGroupId())
+                                .eq(true, StudentAttendance::getStatus, StudentAttendanceStatusEnum.TRUANT.getCode())
+                                .eq(true, StudentAttendance::getUserId, stud.getUserId());
+                        Integer leaveCount = studentAttendanceService.count(truntWrapper);
+                        classStudentResp.setTruantNum(leaveCount);
+                        if (optional.isPresent()) {
+                            set.add(optional.get().getType());
+                            if (ClassGroupTypeEnum.VIP.equals(optional.get().getType())) {
                                 classStudentResp.setIsVip(1);
                             }
-                            classStudentResp.setClassType(new ArrayList<>(set));
-                            classStudentResps.add(classStudentResp);
                         }
+                        classStudentResp.setClassType(new ArrayList<>(set));
+                        classStudentResps.add(classStudentResp);
+                    }
 
+                });
 
+                response.setRecords(classStudentResps);
+                response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
+                response.setMessage(ReturnCodeEnum.CODE_200.getValue());
+                response.setTotal(count);
+                return response;
 
-                    });
-
-                }
+            }
+            //老师
+            if (req.getType() == 2) {
 
-            });
+                List<ClassTeacherResp> classTeacherResps = new ArrayList<>();
+                IPage<ClassGroupTeacherMapper> teacherPage = new Page<>(req.getPageNo() == null ? 0 : req.getPageNo(), req.getPageSize() == null ? 10 : req.getPageSize());
 
-            response.setRecords(classStudentResps);
-            response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
-            response.setMessage(ReturnCodeEnum.CODE_200.getValue());
-            response.setTotal(count);
-            return response;
+                List<Integer> classGroupIds = classGroups.stream().map(ClassGroup::getId).collect(Collectors.toList());
+                QueryWrapper<ClassGroupTeacherMapper> queryWrapper2 = new QueryWrapper<>();
+                queryWrapper2.in("music_group_id_", classGroupIds);
+                IPage<ClassGroupTeacherMapper> teacherMapperIPage = classGroupTeacherMapperService.page(teacherPage, queryWrapper2);
+                List<ClassGroupTeacherMapper> list = teacherMapperIPage.getRecords();
+
+                list.forEach(tech -> {
+                    ClassTeacherResp classTeacherResp = new ClassTeacherResp();
+                    List<ClassTeacherResp> removeList = classTeacherResps.stream().filter(c -> c.getUserId().equals(tech.getUserId()) && c.getClassGroupId().equals(tech.getClassGroupId())).collect(Collectors.toList());
+                    HashSet set = new HashSet<>();
+                    Optional<ClassGroup> optional = classGroups.stream().filter(e -> e.getId().equals(tech.getClassGroupId())).findFirst();
+                    if (!CollectionUtils.isEmpty(removeList)) {
+
+                        classTeacherResp = removeList.get(0);
+                        set.addAll(classTeacherResp.getClassName());
+
+                        if (optional.isPresent()) {
+                            set.add(optional.get().getName());
+                        }
 
-        }
-        //老师
-        if(req.getType() == 2){
+                        classTeacherResp.setClassName(new ArrayList<>(set));
+                    } else {
+                        SysUser sysUser = sysUserService.getById(tech.getUserId());
+                        if (sysUser != null) {
+                            classTeacherResp.setName(sysUser.getRealName());
+                            classTeacherResp.setAvatar(sysUser.getAvatar());
+                        }
+                        classTeacherResp.setUserId(tech.getUserId());
+                        classTeacherResp.setClassGroupId(tech.getClassGroupId());
+                        if (optional.isPresent()) {
+                            set.add(optional.get().getName());
+                        }
 
-            List<ClassTeacherResp> classTeacherResps = new ArrayList<>();
-            classGroups.forEach(e -> {
-                QueryWrapper<ClassGroupTeacherMapper> queryWrapper2 = new QueryWrapper<>();
-                queryWrapper2.eq("music_group_id_", e.getId());
-                List<ClassGroupTeacherMapper> list = classGroupTeacherMapperService.list(queryWrapper2);
-                if(!CollectionUtils.isEmpty(list)){
-
-                    list.forEach(tech ->{
-                        ClassTeacherResp classTeacherResp = new ClassTeacherResp();
-                        List<ClassTeacherResp> removeList = classTeacherResps.stream().filter(c ->c.getUserId().equals(tech.getUserId()) && c.getClassGroupId().equals(tech.getClassGroupId())).collect(Collectors.toList());
-                        HashSet set = new HashSet<>();
-                        if(!CollectionUtils.isEmpty(removeList)){
-
-                            classTeacherResp = removeList.get(0);
-                            set.addAll(classTeacherResp.getClassName());
-                            set.add(e.getName());
-                            classTeacherResp.setClassName(new ArrayList<>(set));
-                        }else{
-                            SysUser sysUser = sysUserService.getById(tech.getUserId());
-                            if(sysUser != null){
-                                classTeacherResp.setName(sysUser.getRealName());
-                                classTeacherResp.setAvatar(sysUser.getAvatar());
+                        classTeacherResp.setClassName(new ArrayList<>(set));
+
+                        //查询老师技能
+                        Teacher teacher = teacherService.getById(tech.getUserId());
+                        if (teacher != null && !StringUtils.isEmpty(teacher.getSubjectId())) {
+                            String ids[] = teacher.getSubjectId().split(",");
+                            List<String> stringB = Arrays.asList(ids);
+                            QueryWrapper<Subject> queryWrapperSub = new QueryWrapper<>();
+                            queryWrapper.in("id_", stringB);
+                            List<Subject> subjectList = subjectService.list(queryWrapperSub);
+                            if (!CollectionUtils.isEmpty(subjectList)) {
+                                List<String> subName = subjectList.stream().map(Subject::getName).collect(Collectors.toList());
+                                classTeacherResp.setTechSubject(subName);
                             }
-                            classTeacherResp.setUserId(tech.getUserId());
-                            classTeacherResp.setClassGroupId(tech.getClassGroupId());
-
-                            set.add(e.getName());
-                            classTeacherResp.setClassName(new ArrayList<>(set));
-
-                            //查询老师技能
-                            Teacher  teacher =  teacherService.getById(tech.getUserId());
-                            if(teacher != null && !StringUtils.isEmpty(teacher.getSubjectId())){
-                                String ids[] = teacher.getSubjectId().split(",");
-                                List<String> stringB = Arrays.asList(ids);
-                                QueryWrapper<Subject> queryWrapper = new QueryWrapper<>();
-                                queryWrapper.in("id_",stringB);
-                                List<Subject> subjectList =  subjectService.list(queryWrapper);
-                                if(!CollectionUtils.isEmpty(subjectList)){
-                                    List<String> subName = subjectList.stream().map(Subject::getName).collect(Collectors.toList());
-                                    classTeacherResp.setTechSubject(subName);
-                                }
-                            }
-
-                            classTeacherResps.add(classTeacherResp);
                         }
 
+                        classTeacherResps.add(classTeacherResp);
+                    }
 
+                });
 
-                    });
+                response.setRecords(classTeacherResps);
+                response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
+                response.setMessage(ReturnCodeEnum.CODE_200.getValue());
+                response.setTotal(count);
+                return response;
 
-                }
-            });
+            }
 
-            response.setRecords(classTeacherResps);
-            response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
-            response.setMessage(ReturnCodeEnum.CODE_200.getValue());
-            response.setTotal(count);
-            return response;
         }
         return response;
     }