Browse Source

1、批量调整bug修复

Joburgess 5 years ago
parent
commit
bcabd3dbb1

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java

@@ -153,4 +153,13 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
      * @return
      */
     List<StudentAttendance> queryNoSignStudentRecord(Integer courseScheduleId);
+
+    /**
+     * @describe 根据课程编号统计学生正常签到的记录数
+     * @author Joburgess
+     * @date 2019/12/11
+     * @param courseScheduleId: 课程编号
+     * @return int
+     */
+    int countStudentAttendenceNum(@Param("courseScheduleId") Integer courseScheduleId);
 }

+ 8 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -857,7 +857,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 		Date courseCreateStartTime = vipGroupCourseAdjustInfo.getCourseCreateStartTime();
 		Date now = new Date();
-		if(courseCreateStartTime.before(now)){
+		Date today = DateUtil.stringToDate(DateUtil.dateToString(now, DateUtil.ISO_EXPANDED_DATE_FORMAT),
+						DateUtil.ISO_EXPANDED_DATE_FORMAT);
+		if(courseCreateStartTime.before(today)){
 			throw new BizException("排课起始时间不能小于当前时间");
 		}
 
@@ -877,15 +879,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		//所有的课程
 		List<CourseSchedule> courseSchedules = courseScheduleDao.findByCourseScheduleIds(courseScheduleIds);
 
+		courseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
+
 		if(courseScheduleIds.size()!=courseScheduleIds.size()){
 			throw new BizException("部分课程不存在");
 		}
 
-		//课程对应的签到列表
-		List<TeacherAttendance> teacherAttendances = teacherAttendanceDao.findTeacherIdByCourseSchedule(courseScheduleIds);
-		Map<Long, List<TeacherAttendance>> teacherAttendanceCourseMap = teacherAttendances.stream()
-				.collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
-
 		Calendar calendar = Calendar.getInstance();
 		calendar.setTime(courseCreateStartTime);
 		List<Date> courseStartDates = new ArrayList<>();
@@ -929,13 +928,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					courseSchedules.get(courseStartDates.size()-1).setClassDate(courseStartTime);
 					courseSchedules.get(courseStartDates.size()-1).setStartClassTime(courseStartTime);
 					courseSchedules.get(courseStartDates.size()-1).setEndClassTime(courseEndTime);
-					List<TeacherAttendance> tempTeacherAttendances=teacherAttendanceCourseMap.get(courseSchedules.get(courseStartDates.size()-1).getId());
-					if(!CollectionUtils.isEmpty(tempTeacherAttendances)){
-						TeacherAttendance teacherAttendance=tempTeacherAttendances.get(0);
-						if(Objects.nonNull(teacherAttendance.getSignInTime())
-								||Objects.nonNull(teacherAttendance.getSignOutTime())){
-							throw new BizException("选择的课程中存在已经签到的课程");
-						}
+					int num=studentAttendanceDao.countStudentAttendenceNum(courseSchedules.get(courseStartDates.size()-1).getId().intValue());
+					if(num>0){
+						throw new BizException("选择的课程中存在已经点名的课程");
 					}
 				}
 				if(courseStartDates.size()==courseScheduleIds.size()){

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

@@ -1603,7 +1603,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//更新vip课
 		oldVipGroupInfo.setUpdateTime(now);
 		vipGroupDao.update(oldVipGroupInfo);
-		courseScheduleDao.updateCourseScheduleSchool(GroupType.VIP.getCode(),oldVipGroupInfo.getId().toString(), oldVipGroupInfo.getTeacherSchoolId());
+		courseScheduleDao.updateCourseSchoolByGroup(oldVipGroupInfo.getId().toString(), GroupType.VIP.getCode(), oldVipGroupInfo.getTeacherSchoolId());
 	}
 
 	@Override

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

@@ -959,8 +959,8 @@
         AND cs.group_type_ = 'MUSIC' AND NOW() &lt; CONCAT(cs.class_date_," ",cs.start_class_time_);
     </update>
     <update id="updateCourseSchoolByGroup">
-        UPDATE course_schedule cs SET cs.schoole_id_ = #{schoolId},,update_time_ = NOW()
-        WHERE cs.music_group_id_ = #{groupType}
+        UPDATE course_schedule cs SET cs.schoole_id_ = #{schoolId},update_time_ = NOW()
+        WHERE cs.music_group_id_ = #{groupId}
         AND cs.group_type_ = #{groupType} AND NOW() &lt; CONCAT(cs.class_date_," ",cs.start_class_time_);
     </update>
 

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -355,4 +355,7 @@
         (SELECT DISTINCT sa.user_id_ FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId})
         AND cssp.course_schedule_id_ = #{courseScheduleId}
     </select>
+    <select id="countStudentAttendenceNum" resultType="int">
+        SELECT COUNT(*) FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId} AND status_='NORMAL'
+    </select>
 </mapper>