Joburgess 5 years ago
parent
commit
44a6db4460

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

@@ -354,14 +354,14 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * @param month:
-     * @param organIdList:
+     * @param classGroupIds:
      * @return java.util.List<java.util.Date>
      * @describe 获取当月有课的日期
      * @author Joburgess
      * @date 2019/10/18
      */
     List<Date> getCourseScheduleDate(@Param("month") Date month,
-                                     @Param("organIdList") String organIdList,
+                                     @Param("classGroupIds") List<Integer> classGroupIds,
                                      @Param("type") String type);
 
     /**

+ 22 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -779,7 +779,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
     @Override
     public List<Date> getCourseScheduleDates(Date month, String organIdList, String type) {
-        return courseScheduleDao.getCourseScheduleDate(month, organIdList,type);
+		Map<String, Object> params = new HashMap<>();
+		params.put("organIdList", organIdList);
+
+		List<Group> groups = groupDao.searchGroups(params);
+		List<Integer> classGroupIds=new ArrayList<>();
+		if(!CollectionUtils.isEmpty(groups)){
+			Map<GroupType, List<Group>> groupTypeGroupsMap = groups.stream().collect(Collectors.groupingBy(Group::getGroupType));
+			for (Map.Entry<GroupType, List<Group>> groupTypeListEntry : groupTypeGroupsMap.entrySet()) {
+				List<String> groupIds = groupTypeListEntry.getValue().stream().map(Group::getId).collect(Collectors.toList());
+				List<ClassGroup> classGroups = classGroupDao.findByMusicGroupsAndType(groupIds, groupTypeListEntry.getKey().getCode());
+				if(!CollectionUtils.isEmpty(classGroups)){
+					List<Integer> tempClassGroupIds=classGroups.stream().map(ClassGroup::getId).collect(Collectors.toList());
+					classGroupIds.addAll(tempClassGroupIds);
+				}
+			}
+			if(CollectionUtils.isEmpty(classGroupIds)){
+				return Collections.EMPTY_LIST;
+			}
+		}else{
+			return Collections.EMPTY_LIST;
+		}
+        return courseScheduleDao.getCourseScheduleDate(month, classGroupIds,type);
     }
 
     @Override

+ 4 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -960,7 +960,10 @@
             LEFT JOIN teacher t ON cs.actual_teacher_id_=t.id_
         WHERE
             (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-            AND (FIND_IN_SET(t.organ_id_, #{organIdList}) OR INTE_ARRAY( t.flow_organ_range_, #{organIdList}) )
+            AND cs.class_group_id_ IN
+            <foreach collection="classGroupIds" item="classGroupId" separator="," open="(" close=")">
+                #{classGroupId}
+            </foreach>
             <if test="month==null">
                 AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
             </if>