Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 năm trước cách đây
mục cha
commit
e2b84b4700

+ 54 - 39
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -39,7 +39,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @params [musicGroupId]
      * @describe 获取所有班级
      */
-    List<ClassGroup> findAllClassGroupByMusicGroup(@Param("musicGroupId") String musicGroupId,@Param("classGroupType") String classGroupType);
+    List<ClassGroup> findAllClassGroupByMusicGroup(@Param("musicGroupId") String musicGroupId, @Param("classGroupType") String classGroupType);
 
     /**
      * 根据合奏班ID查询该合奏班下的子班级
@@ -74,11 +74,11 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     List<ClassGroup> findClassGroupByIds(@Param("ids") String ids);
 
     /**
+     * @param classGroupIds: 班级编号列表
+     * @return java.util.List<com.ym.mec.biz.dal.entity.ClassGroup>
      * @describe 获取班级列表
      * @author Joburgess
      * @date 2020/2/20
-     * @param classGroupIds: 班级编号列表
-     * @return java.util.List<com.ym.mec.biz.dal.entity.ClassGroup>
      */
     List<ClassGroup> findClassGroupWithIds(@Param("classGroupIds") List<Integer> classGroupIds);
 
@@ -149,7 +149,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @param vipIds
      * @return
      */
-    List<Map<String, String>> findVipStuNames(@Param("vipIds") String vipIds,@Param("groupType") String groupType);
+    List<Map<String, String>> findVipStuNames(@Param("vipIds") String vipIds, @Param("groupType") String groupType);
 
     /**
      * 获取班级下的学员列表
@@ -506,11 +506,11 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     int batchUpdateClassGroupCourseTimes(@Param("classGroupCourseTimes") Map<Integer, Integer> classGroupCourseTimes);
 
     /**
+     * @param classGroups:
+     * @return int
      * @describe
      * @author Joburgess
      * @date 2020/2/20
-     * @param classGroups:
-     * @return int
      */
     int batchUpdate(@Param("classGroups") List<ClassGroup> classGroups);
 
@@ -524,23 +524,23 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
 
     /**
+     * @param musicGroupId: 编号
+     * @param groupType:    类型
+     * @return com.ym.mec.biz.dal.entity.ClassGroup
      * @describe 根据乐团编号和类型获取班级
      * @author Joburgess
      * @date 2019/11/17
-     * @param musicGroupId: 编号
-     * @param groupType: 类型
-     * @return com.ym.mec.biz.dal.entity.ClassGroup
      */
     ClassGroup findByMusicGroupAndType(@Param("musicGroupId") String musicGroupId,
                                        @Param("groupType") String groupType);
 
     /**
+     * @param musicGroupId: 编号
+     * @param groupType:    类型
+     * @return com.ym.mec.biz.dal.entity.ClassGroup
      * @describe 根据乐团编号和类型获取班级
      * @author Joburgess
      * @date 2019/11/17
-     * @param musicGroupId: 编号
-     * @param groupType: 类型
-     * @return com.ym.mec.biz.dal.entity.ClassGroup
      */
     ClassGroup lockByMusicGroupAndType(@Param("musicGroupId") String musicGroupId,
                                        @Param("groupType") String groupType);
@@ -566,33 +566,33 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     List<ClassGroupTeachersDto> findClassGroupByType(@Param("musicGroupId") String musicGroupId, @Param("type") ClassGroupTypeEnum type);
 
     /**
+     * @param groupIds:  乐团或vip课编号
+     * @param groupType: 类型
+     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Integer>>
      * @describe 统计指定乐团或vip课的总课次
      * @author Joburgess
      * @date 2019/11/21
-     * @param groupIds: 乐团或vip课编号
-     * @param groupType: 类型
-     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Integer>>
      */
-    List<Map<String,Integer>> countGroupTotalClassTimes(@Param("groupIds") List<String> groupIds,
-                                                        @Param("groupType") String groupType);
+    List<Map<String, Integer>> countGroupTotalClassTimes(@Param("groupIds") List<String> groupIds,
+                                                         @Param("groupType") String groupType);
 
     /**
+     * @param groupIds:  乐团或vip课编号
+     * @param groupType: 类型
+     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Integer>>
      * @describe 统计指定乐团或vip课的已上课次
      * @author Joburgess
      * @date 2019/11/21
-     * @param groupIds: 乐团或vip课编号
-     * @param groupType: 类型
-     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Integer>>
      */
-    List<Map<String,Integer>> countGroupOverClassTimes(@Param("groupIds") List<String> groupIds,
+    List<Map<String, Integer>> countGroupOverClassTimes(@Param("groupIds") List<String> groupIds,
                                                         @Param("groupType") String groupType);
 
     /**
+     * @param classGroupIds: 班级编号列表
+     * @return java.util.List<com.ym.mec.biz.dal.entity.ClassGroup>
      * @describe 获取班级列表
      * @author Joburgess
      * @date 2019/11/21
-     * @param classGroupIds: 班级编号列表
-     * @return java.util.List<com.ym.mec.biz.dal.entity.ClassGroup>
      */
     List<ClassGroup> findByClassGroupIds(@Param("classGroupIds") List<Integer> classGroupIds);
 
@@ -604,6 +604,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 批量更新班级学生数减一
+     *
      * @param classGroupIdList
      * @return
      */
@@ -612,46 +613,48 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     int updateTest(@Param("delFlag") YesOrNoEnum delFlag);
 
     /**
+     * @param groupId:   乐团编号
+     * @param groupType: 乐团类型
+     * @return com.ym.mec.biz.dal.entity.ClassGroup
      * @describe 根据乐团编号和类型获取班级
      * @author Joburgess
      * @date 2019/12/11
-     * @param groupId: 乐团编号
-     * @param groupType: 乐团类型
-     * @return com.ym.mec.biz.dal.entity.ClassGroup
      */
     ClassGroup findByGroupAndType(@Param("groupId") String groupId,
                                   @Param("groupType") String groupType);
 
     /**
+     * @param params: 查询条件
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SuperClassGroupDtio>
      * @describe 终极班级查询
      * @author Joburgess
      * @date 2019/12/30
-     * @param params: 查询条件
-     * @return java.util.List<com.ym.mec.biz.dal.dto.SuperClassGroupDtio>
      */
     List<SuperClassGroupDto> superFindClassGroups(Map<String, Object> params);
+
     int superCountClassGroups(Map<String, Object> params);
 
     /**
+     * @param search:
+     * @return java.util.List<java.lang.Integer>
      * @describe 根据关键字查询学生相关的班级编号
      * @author Joburgess
      * @date 2019/12/31
-     * @param search:
-     * @return java.util.List<java.lang.Integer>
      */
     List<Integer> findClassGroupIdsByStudent(@Param("search") String search);
 
     /**
+     * @param search:
+     * @return java.util.List<java.lang.Integer>
      * @describe 根据关键字查询教师相关的班级编号
      * @author Joburgess
      * @date 2019/12/31
-     * @param search:
-     * @return java.util.List<java.lang.Integer>
      */
     List<Integer> findClassGroupIdsByTeacher(@Param("search") String search);
 
     /**
      * 获取基础技能版数量
+     *
      * @param musicGroupId
      * @return
      */
@@ -659,35 +662,37 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取对应班级的声部名称列表
+     *
      * @param courseScheduleIds
      * @return
      */
     List<Map<Integer, String>> findClassGroupSubjectNameMaps(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
     /**
-     * @describe 根据团体删除班级
-     * @author Joburgess
-     * @date 2020/2/17
      * @param groupId:
      * @param groupType:
      * @return int
+     * @describe 根据团体删除班级
+     * @author Joburgess
+     * @date 2020/2/17
      */
     int deleteByGroup(@Param("groupId") String groupId,
-                      @Param("groupType")GroupType groupType);
+                      @Param("groupType") GroupType groupType);
 
     /**
-     * @describe 根据团体删除班级-逻辑删除
-     * @author Joburgess
-     * @date 2020/3/4
      * @param groupId:
      * @param groupType:
      * @return int
+     * @describe 根据团体删除班级-逻辑删除
+     * @author Joburgess
+     * @date 2020/3/4
      */
     int deleteByGroupWithLogic(@Param("groupId") String groupId,
                                @Param("groupType") GroupType groupType);
 
     /**
      * 获取vip所有班级列表
+     *
      * @param vipGroupIds
      * @return
      */
@@ -695,8 +700,18 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 根据群编号,修改群名称
+     *
      * @param groupId
      * @param groupName
      */
     void updateGroupName(@Param("groupId") Integer groupId, @Param("groupName") String groupName);
+
+    /**
+     * 获取进行中乐团报名中基础技能班
+     * @param musicGroupId
+     * @param subjectId
+     * @param type
+     * @return
+     */
+    List<HighClassGroupDto> findHighClassGroupByTypeAndSubjectId(@Param("musicGroupId") String musicGroupId, @Param("subjectId") Integer subjectId, @Param("type") String type);
 }

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -1273,4 +1273,14 @@
             #{classGroupId}
         </foreach>
     </select>
+    <select id="findHighClassGroupByTypeAndSubjectId" resultMap="HighClassGroup">
+        SELECT * FROM class_group WHERE music_group_id_=#{musicGroupId}
+        <if test="subjectId != null and type=='HIGH'">
+            AND FIND_IN_SET(#{subjectId},subject_id_list_)
+        </if>
+        <if test="subjectId != null and type=='HIGH_ONLINE'">
+            AND FIND_IN_SET(#{subjectId},memo_)
+        </if>
+        AND type_ = #{type} AND total_class_times_=0 AND del_flag_='0';
+    </select>
 </mapper>

+ 21 - 4
mec-student/src/main/java/com/ym/mec/student/controller/ClassGroupController.java

@@ -2,13 +2,17 @@ package com.ym.mec.student.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
 import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dto.HighClassGroupDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
+import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
@@ -24,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -42,6 +47,10 @@ public class ClassGroupController extends BaseController {
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
     @Autowired
     private StudentRegistrationService studentRegistrationService;
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private ClassGroupDao classGroupDao;
 
     @ApiOperation(value = "基础提高班报名")
     @PostMapping("/highReg")
@@ -49,7 +58,7 @@ public class ClassGroupController extends BaseController {
     public HttpResponseResult highReg(Integer classGroupId) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         ClassGroup classGroup = classGroupService.get(classGroupId);
-        if (classGroup == null || (!classGroup.getType().equals(ClassGroupTypeEnum.HIGH)&&!classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) || classGroup.getDelFlag().equals(1)) {
+        if (classGroup == null || (!classGroup.getType().equals(ClassGroupTypeEnum.HIGH) && !classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) || classGroup.getDelFlag().equals(1)) {
             return failed("报名的班级不存在");
         }
         if (classGroup.getStudentNum().compareTo(classGroup.getExpectStudentNum()) >= 0) {
@@ -73,10 +82,18 @@ public class ClassGroupController extends BaseController {
         if (studentRegistration == null || studentRegistration.getActualSubjectId() == null) {
             return failed("学生不在该乐团");
         }
+        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         Map<String, Object> classGroupAndStatusMap = new HashMap<>();
-        List<HighClassGroupDto> highClassGroups = classGroupService.findClassGroupByMusicGroupIdAndSubjectId(musicGroupId, studentRegistration.getActualSubjectId());
-        List<ClassGroupStudentMapper> ClassGroupStudentMapper = classGroupStudentMapperDao.findHighClassGroupHasUser(musicGroupId, userId,ClassGroupTypeEnum.HIGH);
-        List<ClassGroupStudentMapper> highOnlineClassGroupStudentMapper = classGroupStudentMapperDao.findHighClassGroupHasUser(musicGroupId, userId,ClassGroupTypeEnum.HIGH_ONLINE);
+        List<HighClassGroupDto> highClassGroups = new ArrayList<>();
+        if (musicGroup.getStatus().equals(MusicGroupStatusEnum.PROGRESS)) {
+            highClassGroups = classGroupDao.findHighClassGroupByTypeAndSubjectId(musicGroupId, studentRegistration.getActualSubjectId(), "HIGH");
+            List<HighClassGroupDto> highOnlineClassGroup = classGroupDao.findHighClassGroupByTypeAndSubjectId(musicGroupId, studentRegistration.getActualSubjectId(), "HIGH_ONLINE");
+            highClassGroups.addAll(highOnlineClassGroup);
+        } else {
+            highClassGroups = classGroupService.findClassGroupByMusicGroupIdAndSubjectId(musicGroupId, studentRegistration.getActualSubjectId());
+        }
+        List<ClassGroupStudentMapper> ClassGroupStudentMapper = classGroupStudentMapperDao.findHighClassGroupHasUser(musicGroupId, userId, ClassGroupTypeEnum.HIGH);
+        List<ClassGroupStudentMapper> highOnlineClassGroupStudentMapper = classGroupStudentMapperDao.findHighClassGroupHasUser(musicGroupId, userId, ClassGroupTypeEnum.HIGH_ONLINE);
         classGroupAndStatusMap.put("highClassGroups", highClassGroups);
         classGroupAndStatusMap.put("hasReg", false);
         classGroupAndStatusMap.put("onlineHasReg", false);