浏览代码

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父节点
当前提交
47927ef5ee

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

@@ -137,4 +137,13 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 	 * @return
 	 */
 	int deleteByMusicGroupId(@Param("musicGroupId")String musicGroupId, @Param("groupType")GroupType groupType);
+
+	/**
+	 * @describe 清空指定课程教师签到信息
+	 * @author Joburgess
+	 * @date 2020/1/9
+	 * @param courseScheduleId: 课程编号
+	 * @return int
+	 */
+	int cleanCourseTeacherSignInfo(@Param("courseScheduleId") Long courseScheduleId);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1389,6 +1389,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 throw new BizException("不能调整今天及以前的课程");
             }
 
+            if (newCourseSchedule.getStartClassTime().after(now)){
+                teacherAttendanceDao.cleanCourseTeacherSignInfo(newCourseSchedule.getId());
+            }
+
             boolean courseTimeIsChange = false;
             int newCourseTime = DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), newCourseSchedule.getEndClassTime());
             int oldCourseTime = DateUtil.minutesBetween(oldCourseSchedule.getStartClassTime(), oldCourseSchedule.getEndClassTime());

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -12,6 +12,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
@@ -140,6 +141,7 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
     }
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void createCourseScheduleStudentPaymentByCourseSchedules(List<CourseSchedule> courseSchedules) {
 		if(CollectionUtils.isEmpty(courseSchedules)){
 			return;

+ 12 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -189,14 +189,21 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			return;
 		}
 
+		YesOrNoEnum yesOrNoEnum = YesOrNoEnum.NO;
+		if(Objects.nonNull(courseSchedule.getSchoolId())){
+			yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(courseSchedule.getStartClassTime(),
+					sysUser.getId().longValue(),
+					true,
+					courseSchedule.getSchoolId().intValue());
+		}
+		teacherAttendance.setSignInTime(date);
+		teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
+		teacherAttendance.setSignOutTime(date);
+		teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
+		teacherAttendance.setCurrentClassTimes(classTimes + 1);
 		if(Objects.nonNull(teacherAttendance.getId())){
 			teacherAttendanceDao.update(teacherAttendance);
 		}else{
-			teacherAttendance.setSignInTime(date);
-			teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
-			teacherAttendance.setSignOutTime(date);
-			teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
-			teacherAttendance.setCurrentClassTimes(classTimes + 1);
 			teacherAttendanceDao.insert(teacherAttendance);
 		}
 	}

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

@@ -310,7 +310,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			//正常签退范围(课程结束前10分钟,1小时内)
 			if(DateUtil.minutesBetween(classEndDateCut10Minutes,date) > 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) > 0){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
-			}else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0){
+				//异常签退时间段,并且没有签退状态
+			}else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0 && teacherAttendance.getSignOutStatus() == null){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
 			}else {
 				return;

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

@@ -1422,6 +1422,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			if(!CollectionUtils.isEmpty(courseScheduleIds)){
 				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
 				courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+				teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
 			}
 			vipGroupDao.update(vipGroup);
 		}
@@ -1435,6 +1436,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(studentRecoverInfo.getVipGroupId())||Objects.isNull(studentRecoverInfo.getUserId())){
 			throw new BizException("请指定小课与学生");
 		}
+		Date now=new Date();
 		VipGroup vipGroup=vipGroupDao.get(studentRecoverInfo.getVipGroupId().longValue());
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("指定的课程不存在");
@@ -1492,6 +1494,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			studentRecoverInfo.setCourseCount(teachModeSequence1.length);
 			List<CourseSchedule> newCourseSchedules = courseScheduleService.createCourses(studentRecoverInfo);
 			for(int i=0;i<newCourseSchedules.size();i++){
+				if(newCourseSchedules.get(i).getStartClassTime().before(now)){
+					throw new BizException("排课起始时间不得小于当前时间");
+				}
 				newCourseSchedules.get(i).setGroupType(GroupType.VIP);
 				newCourseSchedules.get(i).setMusicGroupId(vipGroup.getId().toString());
 				newCourseSchedules.get(i).setClassGroupId(classGroup.getId());
@@ -1519,8 +1524,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		BigDecimal surplusCourseFee = new BigDecimal(0);
 
-		Date now=new Date();
-
 		List<CourseSchedule> surplusCourseWithGroup = courseScheduleDao.findSurplusCourseWithGroup(GroupType.VIP, studentRecoverInfo.getVipGroupId().toString());
 		surplusCourseWithGroup.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 

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

@@ -340,8 +340,13 @@
     	update teacher_attendance set sign_out_status_ = 1,sign_out_time_= now()
     	where FIND_IN_SET(course_schedule_id_,#{courseScheduleIdList}) and sign_in_status_ = 1
     </update>
-	
-	<delete id="deleteByMusicGroupId" parameterType="map" >
+    <update id="cleanCourseTeacherSignInfo">
+        update teacher_attendance
+        set sign_in_time_=null,sign_in_status_=null,sign_out_status_ = null,sign_out_time_= null
+    	where course_schedule_id_=#{courseScheduleId}
+    </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>
 </mapper>

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/controller/BaseController.java

@@ -69,7 +69,7 @@ public class BaseController {
 		if (e == null) {
 			e = ex;
 		}
-		logger.error("System Error", e);
+		logger.error("System Error", ex);
 //		return failed(e.getMessage());
 		if(e instanceof BizException || e instanceof ThirdpartyException){
 			return failed(e.getMessage());

+ 3 - 1
mec-web/src/main/java/com/ym/mec/web/controller/SysMessageController.java

@@ -43,7 +43,9 @@ public class SysMessageController extends BaseController {
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
-		queryInfo.setUserId(sysUser.getId());
+		if(!sysUser.getIsSuperAdmin()){
+			queryInfo.setUserId(sysUser.getId());
+		}
 		queryInfo.setType(MessageSendMode.SEO.getCode());
 		PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
 		return succeed(pageInfo);