|  | @@ -5,9 +5,7 @@ import com.ym.mec.biz.dal.dao.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.BasicUserDto;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.PageInfoDegree;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.StudentVisitDto;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.MusicGroup;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.StudentRegistration;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.entity.StudentVisit;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.page.StudentVisitQueryInfo;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.StudentVisitService;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.dal.BaseDAO;
 | 
	
	
		
			
				|  | @@ -18,6 +16,7 @@ import com.ym.mec.util.collection.MapUtil;
 | 
	
		
			
				|  |  |  import com.ym.mec.util.date.DateUtil;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | +import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
	
		
			
				|  | @@ -35,6 +34,10 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
 | 
	
		
			
				|  |  |      private StudentRepairDao studentRepairDao;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private TeacherDao teacherDao;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private StudentAttendanceDao studentAttendanceDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
	
		
			
				|  | @@ -43,10 +46,33 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | +    @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public StudentVisit addVisit(StudentVisit studentVisit) {
 | 
	
		
			
				|  |  | +        Date now = new Date();
 | 
	
		
			
				|  |  |          SysUser user = teacherDao.getUser(studentVisit.getStudentId());
 | 
	
		
			
				|  |  |          studentVisit.setOrganId(user.getOrganId());
 | 
	
		
			
				|  |  | -        studentVisit.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +        studentVisit.setCreateTime(now);
 | 
	
		
			
				|  |  | +        if(Objects.nonNull(studentVisit.getObjectId())){
 | 
	
		
			
				|  |  | +            CourseScheduleStudentPayment courseScheduleStudentPayment = courseScheduleStudentPaymentDao.get(studentVisit.getObjectId());
 | 
	
		
			
				|  |  | +            if(Objects.isNull(courseScheduleStudentPayment)){
 | 
	
		
			
				|  |  | +                throw new BizException("学员课程信息不存在");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            StudentAttendance studentAttendance = studentAttendanceDao.findByStatusAndCourseScheduleId(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getCourseScheduleId().intValue());
 | 
	
		
			
				|  |  | +            if (studentAttendance == null) {
 | 
	
		
			
				|  |  | +                studentAttendance = new StudentAttendance();
 | 
	
		
			
				|  |  | +                studentAttendance.setClassGroupId(courseScheduleStudentPayment.getClassGroupId());
 | 
	
		
			
				|  |  | +                studentAttendance.setCourseScheduleId(courseScheduleStudentPayment.getCourseScheduleId());
 | 
	
		
			
				|  |  | +                studentAttendance.setGroupType(courseScheduleStudentPayment.getGroupType());
 | 
	
		
			
				|  |  | +                studentAttendance.setMusicGroupId(courseScheduleStudentPayment.getMusicGroupId());
 | 
	
		
			
				|  |  | +                studentAttendance.setUserId(courseScheduleStudentPayment.getUserId());
 | 
	
		
			
				|  |  | +                studentAttendance.setCreateTime(now);
 | 
	
		
			
				|  |  | +                studentAttendance.setUpdateTime(now);
 | 
	
		
			
				|  |  | +                studentAttendanceDao.insert(studentAttendance);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                studentAttendance.setUpdateTime(now);
 | 
	
		
			
				|  |  | +                studentAttendanceDao.update(studentAttendance);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          studentVisitDao.insert(studentVisit);
 | 
	
		
			
				|  |  |          return studentVisit;
 | 
	
		
			
				|  |  |      }
 |