Jelajahi Sumber

1、陪练课调整

Joburgess 5 tahun lalu
induk
melakukan
fe0f861249

+ 14 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -79,11 +79,23 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @author Joburgess
      * @author Joburgess
      * @date 2020/2/2
      * @date 2020/2/2
      * @param organId: 分部编号
      * @param organId: 分部编号
-     * @param subjectIds: 声部编号列表
+     * @param subjectId: 声部编号列表
      * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherBasicDto>
      * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherBasicDto>
      */
      */
     List<TeacherBasicDto> findTeaTeachersByOrganAndSubject(@Param("organId") Integer organId,
     List<TeacherBasicDto> findTeaTeachersByOrganAndSubject(@Param("organId") Integer organId,
-                                                           @Param("subjectIds") String subjectIds);
+                                                           @Param("subjectId") Integer subjectId);
+
+
+    /**
+     * @describe 获取指定声部和分部下的全职老师
+     * @author Joburgess
+     * @date 2020/2/2
+     * @param organId: 分部编号
+     * @param subjectId: 声部编号列表
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherBasicDto>
+     */
+    List<ExtendTeacherBasicDto> findTeaTeachersByOrganAndSubject1(@Param("organId") Integer organId,
+                                                                 @Param("subjectId") Integer subjectId);
 
 
     /**
     /**
      * @describe 根据部门和声部获取教师列表
      * @describe 根据部门和声部获取教师列表

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExtendTeacherBasicDto.java

@@ -0,0 +1,18 @@
+package com.ym.mec.biz.dal.dto;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/2/9
+ */
+public class ExtendTeacherBasicDto extends TeacherBasicDto {
+
+    int isSupportExtraPracticeLesson = 0;
+
+    public int getIsSupportExtraPracticeLesson() {
+        return isSupportExtraPracticeLesson;
+    }
+
+    public void setIsSupportExtraPracticeLesson(int isSupportExtraPracticeLesson) {
+        this.isSupportExtraPracticeLesson = isSupportExtraPracticeLesson;
+    }
+}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/PracticeGroupService.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.PracticeGroupDto;
 import com.ym.mec.biz.dal.dto.PracticeGroupDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.dto.TeacherBasicDto;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
 import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
 import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -56,7 +57,7 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
      * @param subjectId: 声部编号
      * @param subjectId: 声部编号
      * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
      * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
      */
      */
-	List<SimpleUserDto> getEnableApplyTeachers(Integer userId, Integer subjectId);
+	List<TeacherBasicDto> getEnableApplyTeachers(Integer userId, Integer subjectId);
 
 
     /**
     /**
      * @describe 获取指定学员所在分部下的教师空闲时间
      * @describe 获取指定学员所在分部下的教师空闲时间

+ 44 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1,14 +1,10 @@
 package com.ym.mec.biz.service.impl;
 package com.ym.mec.biz.service.impl;
 
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.CourseScheduleDto;
-import com.ym.mec.biz.dal.dto.PracticeGroupDto;
-import com.ym.mec.biz.dal.dto.SimpleUserDto;
-import com.ym.mec.biz.dal.dto.TeacherBasicDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
 import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
@@ -26,7 +22,6 @@ import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.date.DateUtil;
-import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -92,8 +87,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     //沈阳分部编号
     //沈阳分部编号
     private static final Integer SHENYANG_ORGAN_ID = 6;
     private static final Integer SHENYANG_ORGAN_ID = 6;
 
 
-    private static Map<Integer, String> subjectSubjectsMap = new HashMap<>();
-
     private static Date activityStartDate, activityEndDate, applyStartDay, courseExpireDate;
     private static Date activityStartDate, activityEndDate, applyStartDay, courseExpireDate;
 
 
     static {
     static {
@@ -141,17 +134,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         for (Integer schoolId : schoolIds3) {
         for (Integer schoolId : schoolIds3) {
             schoolSubjectTeachersMap.put(schoolId, subjectTeachersMap3);
             schoolSubjectTeachersMap.put(schoolId, subjectTeachersMap3);
         }
         }
-
-        subjectSubjectsMap.put(2, "2");
-        subjectSubjectsMap.put(4, "4,5");
-        subjectSubjectsMap.put(5, "4,5");
-        subjectSubjectsMap.put(12, "12,13");
-        subjectSubjectsMap.put(13, "12,13");
-        subjectSubjectsMap.put(14, "14,15,16,17");
-        subjectSubjectsMap.put(15, "14,15,16,17");
-        subjectSubjectsMap.put(16, "14,15,16,17");
-        subjectSubjectsMap.put(17, "14,15,16,17");
-        subjectSubjectsMap.put(23, "23");
     }
     }
 
 
     @Override
     @Override
@@ -187,7 +169,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             sysUser.setOrganId(SHENYANG_ORGAN_ID);
             sysUser.setOrganId(SHENYANG_ORGAN_ID);
         }
         }
 
 
-        List<TeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject(sysUser.getOrganId(), subjectSubjectsMap.get(practiceGroup.getSubjectId()));
+        List<TeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject(sysUser.getOrganId(), practiceGroup.getSubjectId());
         if (CollectionUtils.isEmpty(organAndSubjectTeachers)) {
         if (CollectionUtils.isEmpty(organAndSubjectTeachers)) {
             return null;
             return null;
         }
         }
@@ -706,7 +688,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
 
 
 
     @Override
     @Override
-    public List<SimpleUserDto> getEnableApplyTeachers(Integer userId, Integer subjectId) {
+    public List<TeacherBasicDto> getEnableApplyTeachers(Integer userId, Integer subjectId) {
         if(Objects.isNull(subjectId)){
         if(Objects.isNull(subjectId)){
             throw new BizException("请选择声部");
             throw new BizException("请选择声部");
         }
         }
@@ -718,7 +700,46 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             throw new BizException("未找到用户分部属性");
             throw new BizException("未找到用户分部属性");
         }
         }
 
 
-        return null;
+        //如果是广州分部的,并且声部满足条件的需要特殊处理
+        if (sysUser.getOrganId().equals(GUANGZHOU_ORGAN_ID) && GUANGZHOU_SUBJECTIDS.contains(subjectId)) {
+            List<MusicGroup> userMusicGroups = musicGroupDao.findUserMusicGroups(userId);
+            if (!CollectionUtils.isEmpty(userMusicGroups)) {
+                Collections.shuffle(userMusicGroups);
+                Integer schoolId = userMusicGroups.get(0).getSchoolId();
+                if (schoolSubjectTeachersMap.containsKey(schoolId)) {
+                    List<Integer> teacherIds = schoolSubjectTeachersMap.get(schoolId).get(subjectId);
+                    if(!CollectionUtils.isEmpty(teacherIds)){
+                        return teacherDao.findTeachers(teacherIds);
+                    }
+                }
+            }
+        } else if (sysUser.getOrganId().equals(DALIAN_ORGAN_ID)) {
+            sysUser.setOrganId(SHENYANG_ORGAN_ID);
+        }
+
+        Set<Integer> includeTeacherIds=new HashSet<>();
+        List<ExtendTeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject1(sysUser.getOrganId(), subjectId);
+        if(CollectionUtils.isEmpty(organAndSubjectTeachers)){
+            return new ArrayList<>();
+        }
+
+        for (ExtendTeacherBasicDto organAndSubjectTeacher : organAndSubjectTeachers) {
+            if(1==organAndSubjectTeacher.getIsSupportExtraPracticeLesson()){
+                includeTeacherIds.add(organAndSubjectTeacher.getId());
+            }
+        }
+
+        List<Integer> allTeacherIds = organAndSubjectTeachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());;
+        List<CourseScheduleTeacherSalary> studentRelateTeachers = courseScheduleTeacherSalaryDao.findStudentRelateTeachers(userId, allTeacherIds);
+        if (!CollectionUtils.isEmpty(studentRelateTeachers)) {
+            for (CourseScheduleTeacherSalary studentRelateTeacher : studentRelateTeachers) {
+                includeTeacherIds.add(studentRelateTeacher.getUserId());
+            }
+        }
+        if(CollectionUtils.isEmpty(new ArrayList<>(includeTeacherIds))){
+            return new ArrayList<>();
+        }
+        return teacherDao.findTeachers(new ArrayList<>(includeTeacherIds));
     }
     }
 
 
     @Override
     @Override
@@ -754,7 +775,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
         }
 
 
         if (CollectionUtils.isEmpty(teacherIds)) {
         if (CollectionUtils.isEmpty(teacherIds)) {
-            List<TeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject(sysUser.getOrganId(), subjectSubjectsMap.get(subjectId));
+            List<TeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject(sysUser.getOrganId(), subjectId);
             if (CollectionUtils.isEmpty(organAndSubjectTeachers)) {
             if (CollectionUtils.isEmpty(organAndSubjectTeachers)) {
                 result.put("teacherFreeDates", new ArrayList<>());
                 result.put("teacherFreeDates", new ArrayList<>());
                 return result;
                 return result;

+ 23 - 1
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -278,6 +278,10 @@
         <result property="realName" column="real_name_"/>
         <result property="realName" column="real_name_"/>
         <result property="organId" column="organ_id_"/>
         <result property="organId" column="organ_id_"/>
     </resultMap>
     </resultMap>
+
+    <resultMap id="ExtendTeacherBasicDto" type="com.ym.mec.biz.dal.dto.ExtendTeacherBasicDto" extends="TeacherBasicDto">
+        <result property="isSupportExtraPracticeLesson" column="is_support_extra_practice_lesson_"/>
+    </resultMap>
     <select id="findTeachers" resultMap="TeacherBasicDto">
     <select id="findTeachers" resultMap="TeacherBasicDto">
         SELECT su.id_,su.username_,su.real_name_,t.organ_id_ FROM sys_user su
         SELECT su.id_,su.username_,su.real_name_,t.organ_id_ FROM sys_user su
         LEFT JOIN teacher t ON su.id_=t.id_
         LEFT JOIN teacher t ON su.id_=t.id_
@@ -300,7 +304,25 @@
             teacher t
             teacher t
             LEFT JOIN sys_user su ON t.id_ = su.id_
             LEFT JOIN sys_user su ON t.id_ = su.id_
         WHERE
         WHERE
-            INTE_ARRAY(#{subjectIds},t.subject_id_)
+            FIND_IN_SET(#{subjectId},t.subject_id_)
+            AND (t.organ_id_=#{organId} OR FIND_IN_SET(#{organId},t.flow_organ_range_))
+            AND t.job_nature_='FULL_TIME'
+            AND su.del_flag_=0 AND su.lock_flag_=0
+            AND t.organ_id_!=36 AND t.organ_id_!=38
+            AND t.organ_id_!=7 AND t.organ_id_!=37
+    </select>
+    <select id="findTeaTeachersByOrganAndSubject1" resultMap="ExtendTeacherBasicDto">
+        SELECT
+            su.id_,
+            su.username_,
+            su.real_name_,
+            t.organ_id_,
+            t.is_support_extra_practice_lesson_
+        FROM
+            teacher t
+            LEFT JOIN sys_user su ON t.id_ = su.id_
+        WHERE
+            FIND_IN_SET(#{subjectId},t.subject_id_)
             AND (t.organ_id_=#{organId} OR FIND_IN_SET(#{organId},t.flow_organ_range_))
             AND (t.organ_id_=#{organId} OR FIND_IN_SET(#{organId},t.flow_organ_range_))
             AND t.job_nature_='FULL_TIME'
             AND t.job_nature_='FULL_TIME'
             AND su.del_flag_=0 AND su.lock_flag_=0
             AND su.del_flag_=0 AND su.lock_flag_=0

+ 10 - 0
mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java

@@ -55,6 +55,16 @@ public class PracticeGroupController extends BaseController {
         return succeed(practiceGroupService.getPracticeApplyParams(sysUser.getId()));
         return succeed(practiceGroupService.getPracticeApplyParams(sysUser.getId()));
     }
     }
 
 
+    @ApiOperation("获取可以预约的教师")
+    @GetMapping(value = "/getEnableApplyTeachers")
+    public Object getEnableApplyTeachers(Integer subjectId){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(practiceGroupService.getEnableApplyTeachers(sysUser.getId(), subjectId));
+    }
+
     @ApiOperation("获取指定学员所在分部下的教师空闲时间")
     @ApiOperation("获取指定学员所在分部下的教师空闲时间")
     @GetMapping(value = "/getTeacherFreeTimes")
     @GetMapping(value = "/getTeacherFreeTimes")
     public Object getTeacherFreeTimes(Integer subjectId, Date firstClassTime){
     public Object getTeacherFreeTimes(Integer subjectId, Date firstClassTime){