|
@@ -3,16 +3,27 @@ package com.ym.mec.education.controller;
|
|
|
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.google.common.collect.Lists;
|
|
|
import com.netflix.hystrix.contrib.javanica.annotation.DefaultProperties;
|
|
|
import com.ym.mec.education.base.BaseResponse;
|
|
|
import com.ym.mec.education.base.PageResponse;
|
|
|
+import com.ym.mec.education.entity.ClassGroup;
|
|
|
+import com.ym.mec.education.entity.ClassGroupTeacherMapper;
|
|
|
import com.ym.mec.education.entity.MusicGroup;
|
|
|
+import com.ym.mec.education.enums.ReturnCodeEnum;
|
|
|
+import com.ym.mec.education.req.MusicGroupReq;
|
|
|
+import com.ym.mec.education.resp.MusicGroupResp;
|
|
|
+import com.ym.mec.education.service.IClassGroupService;
|
|
|
+import com.ym.mec.education.service.IClassGroupTeacherMapperService;
|
|
|
import com.ym.mec.education.service.IMusicGroupService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.web.bind.annotation.GetMapping;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -29,6 +40,12 @@ public class MusicGroupController {
|
|
|
|
|
|
@Autowired
|
|
|
private IMusicGroupService musicGroupService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IClassGroupService classGroupService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IClassGroupTeacherMapperService classGroupTeacherMapperService;
|
|
|
/**
|
|
|
* 服务降级处理
|
|
|
*
|
|
@@ -41,12 +58,45 @@ public class MusicGroupController {
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
- @GetMapping(value = "/groupList")
|
|
|
- public PageResponse groupList(){
|
|
|
+ @PostMapping(value = "/groupList")
|
|
|
+ public PageResponse groupList(@RequestBody MusicGroupReq req){
|
|
|
PageResponse response = new PageResponse();
|
|
|
IPage page = new Page();
|
|
|
QueryWrapper<MusicGroup> queryWrapper = new QueryWrapper<>();
|
|
|
IPage<MusicGroup> queryPage = musicGroupService.page(page,queryWrapper);
|
|
|
+ if(queryPage.getRecords() == null && queryPage.getRecords().isEmpty()){
|
|
|
+ response.setReturnCode(ReturnCodeEnum.CODE_1005.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);
|
|
|
+ }
|
|
|
+
|
|
|
+ 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.setStudentNum(teachNum);
|
|
|
+ }
|
|
|
+ musicGroupResps.add(musicGroupResp);
|
|
|
+ });
|
|
|
+ int count = musicGroupService.count(queryWrapper);
|
|
|
+ response.setRecords(musicGroupResps);
|
|
|
+ response.setReturnCode(ReturnCodeEnum.CODE_1000.getCode());
|
|
|
+ response.setMessage(ReturnCodeEnum.CODE_1000.getValue());
|
|
|
+ response.setTotal(count);
|
|
|
return response;
|
|
|
}
|
|
|
}
|