Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
eb58783943

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

@@ -13,6 +13,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -134,6 +135,16 @@ public class CourseSchedule {
 
 	private String classGroupType;
 
+	private java.util.Date coursesExpireDate;
+
+	public Date getCoursesExpireDate() {
+		return coursesExpireDate;
+	}
+
+	public void setCoursesExpireDate(Date coursesExpireDate) {
+		this.coursesExpireDate = coursesExpireDate;
+	}
+
 	public String getTeacherName() {
 		return teacherName;
 	}

+ 24 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -2527,6 +2527,27 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if(!oldCourseSchedule.getGroupType().equals(GroupType.PRACTICE)){
             throw new BizException("请选择陪练课");
         }
+        //已结算的课酬不能调整
+        CourseScheduleTeacherSalary teacherSalary = courseScheduleTeacherSalaryDao.queryByCourseScheduleIdAndUserId(oldCourseSchedule.getId(), oldCourseSchedule.getActualTeacherId());
+        if(teacherSalary != null && teacherSalary.getSettlementTime() != null){
+            throw new BizException("调整失败: 课程已结算");
+        }
+        PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(oldCourseSchedule.getMusicGroupId()));
+        String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
+        String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+        Date startDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+        Date endDateTime = DateUtil.addMinutes(startDateTime,practiceGroup.getSingleClassMinutes());
+        if(DateUtil.minutesBetween(practiceGroup.getCoursesExpireDate(),endDateTime) > 0){
+            throw new BizException("调整失败: 截止时间超过课程有效期");
+        }
+        Date date = new Date();
+        if(DateUtil.minutesBetween(endDateTime,date) > 0){
+            oldCourseSchedule.setStatus(CourseStatusEnum.OVER);
+        }else if(DateUtil.minutesBetween(date,startDateTime) > 0){
+            oldCourseSchedule.setStatus(CourseStatusEnum.NOT_START);
+        }else {
+            oldCourseSchedule.setStatus(CourseStatusEnum.UNDERWAY);
+        }
         Integer practiceCourseMinutes=25;
         SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
         if(Objects.nonNull(practiceCourseMinutesConfig)){
@@ -2535,11 +2556,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         oldCourseSchedule.setClassDate(courseSchedule.getStartClassTime());
         oldCourseSchedule.setStartClassTime(courseSchedule.getStartClassTime());
         oldCourseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(),practiceCourseMinutes));
-        oldCourseSchedule.setStatus(CourseStatusEnum.NOT_START);
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(oldCourseSchedule);
         checkNewCourseSchedules(courseSchedules,false);
-        teacherAttendanceDao.batchUpdateTeacher(courseSchedules.stream().map(e->e.getId()).collect(Collectors.toSet()),oldCourseSchedule.getActualTeacherId());
+        if(oldCourseSchedule.getStatus() == CourseStatusEnum.NOT_START){
+            teacherAttendanceDao.batchUpdateTeacher(courseSchedules.stream().map(e->e.getId()).collect(Collectors.toSet()),oldCourseSchedule.getActualTeacherId());
+        }
         courseScheduleDao.update(oldCourseSchedule);
     }
 

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

@@ -2183,6 +2183,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             //获取课程实际上课老师姓名
             Map<Long, String> teacherNames = MapUtil.convertIntegerMap(courseScheduleDao.queryTeacherName(courseScheduleIds));
             dataList.forEach(e -> {
+                e.setCoursesExpireDate(practiceGroup.getCoursesExpireDate());
                 Long isSettlement = courseSettlementMap.get(e.getId().longValue());
                 e.setTeacherName(teacherNames.get(e.getId()));
                 if (Objects.isNull(isSettlement) || isSettlement <= 0) {

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ResourceRespositoryServiceImpl.java

@@ -24,11 +24,10 @@ public class ResourceRespositoryServiceImpl extends BaseServiceImpl<Integer, Res
 
 	@Override
 	public List<ResourceRespository> queryTree(MenuQueryInfo menuQueryInfo) {
-		if(menuQueryInfo.getSubjectId() != null && menuQueryInfo.getSubjectId() == 5){
-			menuQueryInfo.setSubjectId(6);
-		}
-		if(menuQueryInfo.getSubjectId() != null && menuQueryInfo.getSubjectId() == 23){
-			menuQueryInfo.setSubjectId(18);
+		if(menuQueryInfo.getSubjectId() != null){
+			Integer subjectId = menuQueryInfo.getSubjectId();
+			menuQueryInfo.setSubjectId(subjectId == 5?6:subjectId == 23?18:subjectId == 3?2:subjectId == 16?15:subjectId == 20?18:subjectId == 50?18:subjectId == 53?18
+					:subjectId == 54?18:subjectId == 55?18:subjectId == 56?18:subjectId == 60?18:subjectId == 8?4:subjectId);
 		}
 		List<ResourceRespository> resourceRespositories = resourceRespositoryDao.findList(menuQueryInfo.getParentId(),menuQueryInfo.getDelFlag(),menuQueryInfo.getSubjectId());
 		for (ResourceRespository repository:resourceRespositories) {

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

@@ -251,7 +251,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			teacherAttendance.setTeacherId(userId);
 			teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
 			teacherAttendance.setClassGroupId(classGroup.getId());
-			teacherAttendance.setClassGroupId(courseScheduleId);
 			teacherAttendance.setTeacherId(userId);
 			teacherAttendanceDao.insert(teacherAttendance);
 		}else {

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

@@ -222,7 +222,7 @@
     </select>
     
     <select id="findByTeacherAttendanceInfo" resultMap="TeacherAttendance">
-        SELECT * FROM teacher_attendance WHERE teacher_id_=#{teacherId} AND course_schedule_id_=#{courseScheduleId} LIMIT 1
+        SELECT * FROM teacher_attendance WHERE teacher_id_ = #{teacherId} AND course_schedule_id_ = #{courseScheduleId} LIMIT 1
     </select>
 
     <resultMap id="TeacherAbnormalAttendanceInfoDto" type="com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto">
@@ -370,6 +370,7 @@
     </update>
 
     <delete id="deleteByMusicGroupId" parameterType="map" >
-		DELETE ta FROM teacher_attendance ta LEFT JOIN course_schedule cs ON ta.course_schedule_id_ = cs.id_ WHERE ta.music_group_id_=#{musicGroupId} AND ta.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cs.status_ = 'NOT_START'
+		DELETE ta FROM teacher_attendance ta LEFT JOIN course_schedule cs ON ta.course_schedule_id_ = cs.id_
+		WHERE ta.music_group_id_=#{musicGroupId} AND ta.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cs.status_ = 'NOT_START'
 	</delete>
 </mapper>

+ 0 - 1
mec-im/src/main/java/com/ym/dao/RoomDao.java

@@ -16,7 +16,6 @@ import java.util.List;
  */
 @Repository
 public interface RoomDao extends JpaRepository<Room, Long> {
-    @Lock(value = LockModeType.PESSIMISTIC_WRITE)
     public List<Room> findByRid(String rid);
 
     @Transactional

+ 7 - 2
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -20,6 +20,7 @@ import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.service.StudentAttendanceService;
 import com.ym.mec.biz.service.TeacherAttendanceService;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.security.SecurityUtils;
 import com.ym.mec.im.IMHelper;
 import com.ym.mec.im.message.*;
@@ -100,7 +101,7 @@ public class RoomServiceImpl implements RoomService {
         CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
         try {
             if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
-                teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), SignStatusEnum.SIGN_IN,true);
+                teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),courseSchedule.getActualTeacherId(), SignStatusEnum.SIGN_IN,true);
             }else {
                 studentAttendanceService.addStudentAttendanceRecord(Integer.parseInt(roomId),Integer.parseInt(userId), StudentAttendanceStatusEnum.NORMAL);
             }
@@ -224,7 +225,11 @@ public class RoomServiceImpl implements RoomService {
         room.setCreateDt(createTime);
         room.setDisplay(display);
         room.setWhiteboardNameIndex(0);
-        roomDao.save(room);
+        try {
+            roomDao.save(room);
+        }catch (Exception e){
+            throw new BizException("当前线上课人数较多,请稍后重试");
+        }
     }
 
     private void saveRoomMember(String userId, String userName, String roomId, int role, boolean cameraOn, Date joinTime) {