|
@@ -2,6 +2,9 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.yonge.cooleshow.biz.dal.dao.TeacherAttendanceDao;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.TeacherAttendance;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.StudentAttendance;
|
|
@@ -9,14 +12,22 @@ import com.yonge.cooleshow.biz.dal.vo.StudentAttendanceVo;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.StudentAttendanceSearch;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.StudentAttendanceDao;
|
|
|
import com.yonge.cooleshow.biz.dal.service.StudentAttendanceService;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
|
|
|
@Service
|
|
|
public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceDao, StudentAttendance> implements StudentAttendanceService {
|
|
|
|
|
|
+ @Override
|
|
|
+ public StudentAttendanceDao getDao() {
|
|
|
+ return this.baseMapper;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public StudentAttendanceVo detail(Long id) {
|
|
|
StudentAttendanceVo detail = baseMapper.detail(id);
|
|
@@ -40,4 +51,52 @@ public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceD
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public StudentAttendance signIn(Long userId, CourseSchedule courseSchedule) {
|
|
|
+ //查询是否已经签到
|
|
|
+ //如果存在则跳过,如果不存在则新增
|
|
|
+ StudentAttendance studentAttendance = getDao().findByUserIdAndCourseId(userId, courseSchedule.getId());
|
|
|
+ if (Objects.nonNull(studentAttendance)) {
|
|
|
+ if(Objects.isNull(studentAttendance.getSignInTime())){
|
|
|
+ studentAttendance.setSignInTime(new Date());
|
|
|
+ getDao().updateById(studentAttendance);
|
|
|
+ }
|
|
|
+ return studentAttendance;
|
|
|
+ }
|
|
|
+ Date now = new Date();
|
|
|
+ studentAttendance = createAttendance(userId, courseSchedule, now);
|
|
|
+ getDao().insert(studentAttendance);
|
|
|
+ return studentAttendance;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void signOut(Long userId, CourseSchedule courseSchedule) {
|
|
|
+ //更新签到记录
|
|
|
+ StudentAttendance studentAttendance = getDao().findByUserIdAndCourseId(userId, courseSchedule.getId());
|
|
|
+ Date now = new Date();
|
|
|
+ if (Objects.isNull(studentAttendance)) {
|
|
|
+ studentAttendance = createAttendance(userId, courseSchedule,now);
|
|
|
+ studentAttendance.setSignOutTime(now);
|
|
|
+ studentAttendance.setSignInTime(courseSchedule.getStartTime());
|
|
|
+ getDao().insert(studentAttendance);
|
|
|
+ }else {
|
|
|
+ studentAttendance.setSignOutTime(now);
|
|
|
+ studentAttendance.setUpdateTime(now);
|
|
|
+ getDao().updateById(studentAttendance);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private StudentAttendance createAttendance(Long userId, CourseSchedule courseSchedule,Date now) {
|
|
|
+ StudentAttendance studentAttendance = new StudentAttendance();
|
|
|
+ studentAttendance.setCourseScheduleId(courseSchedule.getId());
|
|
|
+ studentAttendance.setStudentId(userId);
|
|
|
+ studentAttendance.setSignInTime(now);
|
|
|
+ studentAttendance.setCourseGroupId(courseSchedule.getCourseGroupId());
|
|
|
+ studentAttendance.setCourseGroupType(courseSchedule.getType());
|
|
|
+ studentAttendance.setCreateTime(now);
|
|
|
+ studentAttendance.setUpdateTime(now);
|
|
|
+ return studentAttendance;
|
|
|
+ }
|
|
|
+
|
|
|
}
|