|
@@ -12,10 +12,12 @@ import com.ym.mec.biz.service.*;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.page.PageInfo;
|
|
import com.ym.mec.common.page.PageInfo;
|
|
|
|
+import com.ym.mec.common.redis.service.RedisCache;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
import com.ym.mec.util.date.DateUtil;
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
|
+
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -52,6 +54,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
@Autowired
|
|
@Autowired
|
|
private SubjectDao subjectDao;
|
|
private SubjectDao subjectDao;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private RedisCache<String,Object> redisCache;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public BaseDAO<Long, TeacherAttendance> getDAO() {
|
|
public BaseDAO<Long, TeacherAttendance> getDAO() {
|
|
return teacherAttendanceDao;
|
|
return teacherAttendanceDao;
|
|
@@ -101,7 +106,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
if(courseSchedule == null){
|
|
if(courseSchedule == null){
|
|
throw new BizException("课程信息不存在");
|
|
throw new BizException("课程信息不存在");
|
|
}
|
|
}
|
|
- teacherAttendance.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(teacherAttendance.getClassGroupId()) + 1);
|
|
|
|
String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
String endClassTime = DateUtil.format(courseSchedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
String endClassTime = DateUtil.format(courseSchedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
@@ -112,6 +116,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
Date add20Minutes = DateUtil.addMinutes(classStartDateTime, advanceSignMinutes * -1);
|
|
Date add20Minutes = DateUtil.addMinutes(classStartDateTime, advanceSignMinutes * -1);
|
|
Date add60Minutes = DateUtil.addMinutes(classStartDateTime, -60);
|
|
Date add60Minutes = DateUtil.addMinutes(classStartDateTime, -60);
|
|
if(teacherAttendance.getSignInTime() == null && teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_IN.getCode())){
|
|
if(teacherAttendance.getSignInTime() == null && teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_IN.getCode())){
|
|
|
|
+ teacherAttendance.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(teacherAttendance.getClassGroupId(),courseSchedule.getStartClassTime()) + 1);
|
|
|
|
|
|
if (currentCourseDetail.getEndClassTime().before(date)){
|
|
if (currentCourseDetail.getEndClassTime().before(date)){
|
|
throw new BizException("该课程已结束,不能进行签到!");
|
|
throw new BizException("该课程已结束,不能进行签到!");
|
|
@@ -149,7 +154,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
}else if(teacherAttendance.getSignOutTime() == null && teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_OUT.getCode())){
|
|
}else if(teacherAttendance.getSignOutTime() == null && teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_OUT.getCode())){
|
|
//正常签退范围(结束后1小时内)
|
|
//正常签退范围(结束后1小时内)
|
|
teacherAttendance.setSignOutTime(date);
|
|
teacherAttendance.setSignOutTime(date);
|
|
- if(DateUtil.minutesBetween(classEndDateTime,date) > 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) > 0){
|
|
|
|
|
|
+ if(DateUtil.minutesBetween(classEndDateTime,date) >= 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) >= 0){
|
|
teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
|
|
teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
|
|
result.put("signInStatus",0);
|
|
result.put("signInStatus",0);
|
|
}else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0){
|
|
}else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0){
|
|
@@ -321,8 +326,14 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
|
|
Map<Integer, String> receivers = new HashMap<Integer, String>();
|
|
Map<Integer, String> receivers = new HashMap<Integer, String>();
|
|
Integer userId = (Integer) mapper.getKey();
|
|
Integer userId = (Integer) mapper.getKey();
|
|
receivers.put(userId, userId + "");
|
|
receivers.put(userId, userId + "");
|
|
|
|
+
|
|
|
|
+ String key = "SignOut_" + userId + "_" + mapper.getCourseScheduleId();
|
|
|
|
|
|
- sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,"5?courseScheduleId=" + mapper.getCourseScheduleId(), mapper.getValue());
|
|
|
|
|
|
+ if (!redisCache.exists(key)) {
|
|
|
|
+ sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,
|
|
|
|
+ "5?courseScheduleId=" + mapper.getCourseScheduleId(), mapper.getValue());
|
|
|
|
+ redisCache.put(key, 1, (int) DateUtil.getTomorrowZeroSeconds());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|