ClassGroupController.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.ym.mec.student.controller;
  2. import com.ym.mec.auth.api.client.SysUserFeignService;
  3. import com.ym.mec.auth.api.entity.SysUser;
  4. import com.ym.mec.biz.dal.dao.ClassGroupDao;
  5. import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
  6. import com.ym.mec.biz.dal.dao.MusicGroupDao;
  7. import com.ym.mec.biz.dal.dto.HighClassGroupDto;
  8. import com.ym.mec.biz.dal.entity.ClassGroup;
  9. import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
  10. import com.ym.mec.biz.dal.entity.MusicGroup;
  11. import com.ym.mec.biz.dal.entity.StudentRegistration;
  12. import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
  13. import com.ym.mec.biz.dal.enums.GroupType;
  14. import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
  15. import com.ym.mec.biz.service.ClassGroupService;
  16. import com.ym.mec.biz.service.StudentRegistrationService;
  17. import com.ym.mec.common.controller.BaseController;
  18. import com.ym.mec.common.entity.HttpResponseResult;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiImplicitParam;
  21. import io.swagger.annotations.ApiImplicitParams;
  22. import io.swagger.annotations.ApiOperation;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.web.bind.annotation.GetMapping;
  25. import org.springframework.web.bind.annotation.PostMapping;
  26. import org.springframework.web.bind.annotation.RequestMapping;
  27. import org.springframework.web.bind.annotation.RestController;
  28. import javax.annotation.Resource;
  29. import java.util.ArrayList;
  30. import java.util.HashMap;
  31. import java.util.List;
  32. import java.util.Map;
  33. @RequestMapping("classGroup")
  34. @Api(tags = "班级服务")
  35. @RestController
  36. public class ClassGroupController extends BaseController {
  37. @Resource
  38. private SysUserFeignService sysUserFeignService;
  39. @Autowired
  40. private ClassGroupService classGroupService;
  41. @Autowired
  42. private ClassGroupStudentMapperDao classGroupStudentMapperDao;
  43. @Autowired
  44. private StudentRegistrationService studentRegistrationService;
  45. @Autowired
  46. private MusicGroupDao musicGroupDao;
  47. @Autowired
  48. private ClassGroupDao classGroupDao;
  49. @ApiOperation(value = "基础提高班报名")
  50. @PostMapping("/highReg")
  51. @ApiImplicitParams({@ApiImplicitParam(name = "classGroupId", value = "班级id", required = true, dataType = "int")})
  52. public HttpResponseResult highReg(Integer classGroupId) {
  53. SysUser sysUser = sysUserFeignService.queryUserInfo();
  54. ClassGroup classGroup = classGroupService.get(classGroupId);
  55. if (classGroup == null || (!classGroup.getType().equals(ClassGroupTypeEnum.HIGH) && !classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) || classGroup.getDelFlag().equals(1)) {
  56. return failed("报名的班级不存在");
  57. }
  58. if (classGroup.getStudentNum().compareTo(classGroup.getExpectStudentNum()) >= 0) {
  59. return failed("班级人数已满");
  60. }
  61. ClassGroupStudentMapper classGroupStudentMapper = classGroupStudentMapperDao.query(classGroupId, sysUser.getId());
  62. if (classGroupStudentMapper != null) {
  63. return succeed(classGroup);
  64. }
  65. classGroupService.addStudent(classGroup, sysUser.getId(), GroupType.MUSIC);
  66. return succeed("报名成功");
  67. }
  68. @ApiOperation(value = "用户声部小班课列表")
  69. @GetMapping("/highClassGroups")
  70. @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
  71. public HttpResponseResult getHighClassGroup(String musicGroupId) {
  72. SysUser sysUser = sysUserFeignService.queryUserInfo();
  73. Integer userId = sysUser.getId();
  74. StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
  75. if (studentRegistration == null || studentRegistration.getActualSubjectId() == null) {
  76. return failed("学生不在该乐团");
  77. }
  78. MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
  79. Map<String, Object> classGroupAndStatusMap = new HashMap<>();
  80. List<HighClassGroupDto> highClassGroups = new ArrayList<>();
  81. if (musicGroup.getStatus().equals(MusicGroupStatusEnum.PROGRESS)) {
  82. highClassGroups = classGroupDao.findHighClassGroupByTypeAndSubjectId(musicGroupId, studentRegistration.getActualSubjectId(), "HIGH");
  83. List<HighClassGroupDto> highOnlineClassGroup = classGroupDao.findHighClassGroupByTypeAndSubjectId(musicGroupId, studentRegistration.getActualSubjectId(), "HIGH_ONLINE");
  84. highClassGroups.addAll(highOnlineClassGroup);
  85. } else {
  86. highClassGroups = classGroupService.findClassGroupByMusicGroupIdAndSubjectId(musicGroupId, studentRegistration.getActualSubjectId());
  87. }
  88. List<ClassGroupStudentMapper> ClassGroupStudentMapper = classGroupStudentMapperDao.findHighClassGroupHasUser(musicGroupId, userId, ClassGroupTypeEnum.HIGH);
  89. List<ClassGroupStudentMapper> highOnlineClassGroupStudentMapper = classGroupStudentMapperDao.findHighClassGroupHasUser(musicGroupId, userId, ClassGroupTypeEnum.HIGH_ONLINE);
  90. classGroupAndStatusMap.put("highClassGroups", highClassGroups);
  91. classGroupAndStatusMap.put("hasReg", false);
  92. classGroupAndStatusMap.put("onlineHasReg", false);
  93. if (ClassGroupStudentMapper.size() > 0) {
  94. classGroupAndStatusMap.put("hasReg", true);
  95. }
  96. if (highOnlineClassGroupStudentMapper.size() > 0) {
  97. classGroupAndStatusMap.put("onlineHasReg", true);
  98. }
  99. return succeed(classGroupAndStatusMap);
  100. }
  101. }