Browse Source

1、课程顺延
2、点名无教学点兼容
3、乐团详情 课表详情null
4、vip课新增指定学员

Joburgess 5 years ago
parent
commit
cfa35aa150

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -118,6 +118,17 @@ public class VipGroup {
 
 	private String courseSchedulesJson;
 
+	@ApiModelProperty(value = "指定学员列表")
+	private String studentIdList;
+
+	public String getStudentIdList() {
+		return studentIdList;
+	}
+
+	public void setStudentIdList(String studentIdList) {
+		this.studentIdList = studentIdList;
+	}
+
 	public String getCourseSchedulesJson() {
 		return courseSchedulesJson;
 	}

+ 18 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1904,31 +1904,37 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 //            Map<Integer, String> classGroupNames = MapUtil.convertMybatisMap(classGroupDao.findNameById(mixClassGroupIdsStr));
 
             //主教老师
-            List<CourseScheduleTeacherSalary> bishopTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "BISHOP");
-            Map<Long, List<CourseScheduleTeacherSalary>> courseScheduleBishopTeacherMaps = bishopTeachers.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+            Map<Long, List<CourseScheduleTeacherSalary>> courseScheduleBishopTeacherMaps=new HashMap<>();
 
             //助教老师
-            List<CourseScheduleTeacherSalary> teachingTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "TEACHING");
-            Map<Long, List<CourseScheduleTeacherSalary>> courseScheduleTeachingTeacherMaps = teachingTeachers.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+            Map<Long, List<CourseScheduleTeacherSalary>> courseScheduleTeachingTeacherMaps=new HashMap<>();
+            if(!CollectionUtils.isEmpty(couseScheduleIds)){
+                List<CourseScheduleTeacherSalary> bishopTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "BISHOP");
+                courseScheduleBishopTeacherMaps = bishopTeachers.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+
+                //助教老师
+                List<CourseScheduleTeacherSalary> teachingTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "TEACHING");
+                courseScheduleTeachingTeacherMaps = teachingTeachers.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+            }
 
-            dataList.forEach(e -> {
+            for(int i=0;i<dataList.size();i++){
 //                e.setMixClassGroupName(classGroupNames.get(e.getMixClassGroupId()));
-                List<CourseScheduleTeacherSalary> currentBishopTeacher = courseScheduleBishopTeacherMaps.get(e.getCourseScheduleId().longValue());
+                List<CourseScheduleTeacherSalary> currentBishopTeacher = courseScheduleBishopTeacherMaps.get(dataList.get(i).getCourseScheduleId().longValue());
                 List<CourseScheduleTeacherSalary> TeachingTeachers = new ArrayList<>();
                 if (!Objects.isNull(currentBishopTeacher) && !CollectionUtils.isEmpty(currentBishopTeacher)) {
-                    e.setMasterTeacherId(currentBishopTeacher.get(0).getUserId());
-                    e.setMasterTeacherName(currentBishopTeacher.get(0).getUserName());
+                    dataList.get(i).setMasterTeacherId(currentBishopTeacher.get(0).getUserId());
+                    dataList.get(i).setMasterTeacherName(currentBishopTeacher.get(0).getUserName());
                 } else {
                     currentBishopTeacher = new ArrayList<>();
                 }
                 TeachingTeachers.addAll(currentBishopTeacher);
-                List<CourseScheduleTeacherSalary> currentCourseTeachingTeachers = courseScheduleTeachingTeacherMaps.get(e.getCourseScheduleId().longValue());
+                List<CourseScheduleTeacherSalary> currentCourseTeachingTeachers = courseScheduleTeachingTeacherMaps.get(dataList.get(i).getCourseScheduleId().longValue());
                 if (Objects.isNull(currentCourseTeachingTeachers) || CollectionUtils.isEmpty(currentCourseTeachingTeachers)) {
                     currentCourseTeachingTeachers = new ArrayList<>();
                 }
                 TeachingTeachers.addAll(currentCourseTeachingTeachers);
-                e.setTeachingTeachers(TeachingTeachers);
-                e.setTeacherNum(TeachingTeachers.size());
+                dataList.get(i).setTeachingTeachers(TeachingTeachers);
+                dataList.get(i).setTeacherNum(TeachingTeachers.size());
                 /*if (CollectionUtils.isEmpty(currentCourseTeachingTeachers) && !CollectionUtils.isEmpty(currentBishopTeacher)) {
                     currentCourseTeachingTeachers = new ArrayList<>();
                     if (currentBishopTeacher != null) {
@@ -1942,7 +1948,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     }
                     e.setTeachingTeachers(currentCourseTeachingTeachers);
                 }*/
-            });
+            }
         }
         if (count == 0) {
             dataList = new ArrayList<>();

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

@@ -148,7 +148,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Integer classGroupId = null;
         if (!CollectionUtils.isEmpty(courseScheduleIds)) {
             CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleIds.get(0));
-            classGroupId = courseSchedule.getClassGroupId();
+            if(Objects.nonNull(courseSchedule)){
+                classGroupId = courseSchedule.getClassGroupId();
+            }
         }
         List<Long> enableDeleteIds = courseScheduleDao.filterNotStartCourseIdsWithIds(courseScheduleIds);
         if (!CollectionUtils.isEmpty(enableDeleteIds)) {
@@ -1101,6 +1103,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         int betweenDays = DateUtil.daysBetween(coursePostPoneInfo.getPauseDate(), coursePostPoneInfo.getRecoveryDate());
         List<CourseSchedule> classGroupCourseSchedulesWithDate = courseScheduleDao.findClassGroupCourseSchedulesWithDate(coursePostPoneInfo.getClassGroupIds(), coursePostPoneInfo.getPauseDate());
 
+        if(CollectionUtils.isEmpty(classGroupCourseSchedulesWithDate)){
+            throw new BizException("选择的班级上在指定日期之后不存在需要调整的课程");
+        }
+
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(coursePostPoneInfo.getRecoveryDate());
 
@@ -1122,7 +1128,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 continue;
             }
             classGroupCourseSchedulesWithDate.get(i).setClassDate(calendar.getTime());
+            classGroupCourseSchedulesWithDate.get(i).setSchoolId(null);
         }
+        checkNewCourseSchedules(classGroupCourseSchedulesWithDate,false);
         courseScheduleDao.batchUpdate(classGroupCourseSchedulesWithDate);
     }
 

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -461,7 +461,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		List dataList = null;
 		int count = vipGroupDao.countVipGorups(params);
 		if (count > 0) {
-
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = vipGroupDao.findVipGroups(params);

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

@@ -1927,9 +1927,29 @@
         WHERE real_name_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
     </select>
     <select id="findClassGroupCourseSchedulesWithDate" resultMap="CourseSchedule">
-        SELECT * FROM course_schedule
-        WHERE FIND_IN_SET(class_group_id_,#{classGroupIds})
-        AND CONCAT(class_date_,' ',start_class_time_)&gt;NOW()
-        AND class_date_&gt;=DATE_FORMAT(#{fromDate},"%Y-%m-%d")
+        SELECT
+            cs.class_group_id_,
+            cs.status_,
+            cs.subsidy_,
+            cs.class_date_,
+            CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
+            CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
+            cs.start_class_time_ start_class_time_str_,
+            cs.end_class_time_ end_class_time_str_,
+            cs.teacher_id_,
+            cs.actual_teacher_id_,
+            cs.create_time_,
+            cs.update_time_,
+            cs.teach_mode_,
+            cs.type_,
+            cs.name_,
+            cs.student_num_,
+            cs.leave_student_num_,
+            cs.schoole_id_
+        FROM course_schedule cs
+        WHERE FIND_IN_SET(cs.class_group_id_,#{classGroupIds})
+        AND CONCAT(cs.class_date_,' ',cs.start_class_time_)&gt;NOW()
+        AND cs.class_date_&gt;=DATE_FORMAT(#{fromDate},"%Y-%m-%d")
+        AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
     </select>
 </mapper>

+ 10 - 2
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -37,6 +37,7 @@
         <result column="stop_reason_" property="stopReason"/>
         <result column="courses_start_date" property="courseStartDate"/>
         <result column="course_schedules_json_" property="courseSchedulesJson"/>
+        <result column="student_id_list_" property="studentIdList"/>
 
         <result column="organ_name_" property="organName" />
         <result column="school_name_" property="schoolName" />
@@ -206,8 +207,8 @@
         </selectKey>
         -->
         INSERT INTO vip_group
-        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,audit_status_,courses_start_date,course_schedules_json_)
-        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{organId},#{stopReason},#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseStartDate},#{courseSchedulesJson})
+        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,audit_status_,courses_start_date,course_schedules_json_,student_id_list_)
+        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{organId},#{stopReason},#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseStartDate},#{courseSchedulesJson},#{studentIdList})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -280,6 +281,9 @@
             <if test="courseSchedulesJson!=null">
                 course_schedules_json_=#{courseSchedulesJson},
             </if>
+            <if test="studentIdList!=null">
+                student_id_list_=#{studentIdList},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>
@@ -312,6 +316,7 @@
             AND vg.courses_start_date &gt; NOW()
             AND (select count(1) as num from student_payment_order where vg.id_ = music_group_id_ AND user_id_=#{userId} AND status_='SUCCESS') = 0
             AND vg.organ_id_ = #{organId}
+            AND (vg.student_id_list_ IS NULL or FIND_IN_SET(#{userId}, vg.student_id_list_))
             <if test="subjectId!=null">
                AND FIND_IN_SET(#{subjectId},cg.subject_id_list_)
             </if>
@@ -878,6 +883,9 @@
 	            <if test="item.courseSchedulesJson!=null">
 	                course_schedules_json_=#{item.courseSchedulesJson},
 	            </if>
+	            <if test="item.studentIdList!=null">
+                    student_id_list_=#{item.studentIdList},
+	            </if>
 	        </set>
 	        WHERE id_ = #{item.id}
         </foreach>