Browse Source

课程名称创建

Joburgess 5 years ago
parent
commit
c57329f78d

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

@@ -116,6 +116,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * @Author: Joburgess
+     * @Date: 2019/9/29
+     * 获取班级的声部
+     */
+    String[] findClassSubjects(List<Integer> ids);
+
+    /**
+     * @Author: Joburgess
      * @Date: 2019/9/24
      * 根据id批量获取课程
      */

+ 16 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -47,6 +47,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	@Override
 	public void batchAddCourseSchedule(List<CourseSchedule> courseSchedules) {
 		checkCourseSchedule(courseSchedules);
+        createCourseScheduleName(courseSchedules);
 		courseScheduleDao.batchAddCourseSchedules(courseSchedules);
 	}
 
@@ -145,16 +146,25 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	/**
 	 * @Author: Joburgess
 	 * @Date: 2019/9/29
-	 * 创建课程名
+	 * 生成课程名
 	 */
 	private void createCourseScheduleName(List<CourseSchedule> courseSchedules){
+        List<Integer> classGroupIds = courseSchedules.stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
+        HashSet<Integer> temp=new HashSet<>(classGroupIds);
+        classGroupIds=new ArrayList<>(temp);
+        Map<Integer,String> classIdSubjectNameMap=convertToMap(courseScheduleDao.findClassSubjects(classGroupIds));
+        courseSchedules.forEach(courseSchedule -> {
+            StringBuilder className=new StringBuilder(classIdSubjectNameMap.get(courseSchedule.getClassGroupId()));
+            className.append("-");
+            className.append(courseSchedule.getType().getMsg());
+            courseSchedule.setName(className.toString());
+        });
+    }
 
-	}
-
-	private Map<Integer,Integer> convertToMap(String[] result){
-		Map<Integer,Integer> map=new HashMap<>();
+	private Map<Integer,String> convertToMap(String[] result){
+		Map<Integer,String> map=new HashMap<>();
 		for(String s:result){
-			map.put(Integer.valueOf(s.split(",")[0]),Integer.valueOf(s.split(",")[1]));
+			map.put(Integer.valueOf(s.split("-")[0]),s.split("-")[1].replace(",","/"));
 		}
 		return map;
 	}

+ 10 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java

@@ -24,6 +24,9 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
+/**
+ * @author Joburgess
+ */
 @Service
 public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  implements DemoGroupService {
 	
@@ -126,10 +129,15 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 
 		//创建课程
 		DemoGroupCoursesPlan demoGroupCoursesPlan=demoGroupCoursesPlanDao.get(coursePlanId);
-		courseScheduleDao.batchAddCourseSchedules(demoGroupDao.createCourseScheduleByDemoGroup(
+		List<CourseSchedule> courseScheduleByDemoGroup = demoGroupDao.createCourseScheduleByDemoGroup(
 				demoGroup,
 				demoGroupCoursesPlan.getCoursesStartTime(),
-				classGroup.getId().longValue()));
+				classGroup.getId().longValue());
+		String[] classSubjects = courseScheduleDao.findClassSubjects(Arrays.asList(new Integer[]{classGroup.getId()}));
+		StringBuilder className=new StringBuilder(classSubjects[0].split("-")[1]);
+		className.append("-");
+		className.append(CourseSchedule.CourseScheduleType.DEMO.getMsg());
+		courseScheduleDao.batchAddCourseSchedules(courseScheduleByDemoGroup);
 
 		//更新所属分部列表
 		List<Integer> organIds = demoGroupDao.organIdListByDemoGroupId(demoGroup.getId());

+ 12 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -400,4 +400,16 @@
         GROUP BY
         cs.class_date_
     </select>
+    <select id="findClassSubjects" resultType="string">
+        SELECT
+            CONCAT(cg.id_,'-',IF(GROUP_CONCAT(s.name_) IS NULL,'',GROUP_CONCAT(s.name_)))
+        FROM
+            class_group cg
+            LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
+        WHERE cg.id_ IN
+        <foreach collection="list" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+        GROUP BY cg.id_
+    </select>
 </mapper>