|  | @@ -884,7 +884,14 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
 | 
	
		
			
				|  |  |              return BaseController.failed(HttpStatus.EXPECTATION_FAILED, "两次课程的时间需安排在七天内");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        SysUser sysUser = sysUserFeignService.queryUserById(practiceGroupBuyParams.getStudentId());
 | 
	
		
			
				|  |  | +        studentDao.lockUser(practiceGroupBuyParams.getStudentId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        int studentTrialPracticeNum = practiceGroupDao.countStudentTrialPractices(practiceGroupBuyParams.getStudentId());
 | 
	
		
			
				|  |  | +        if(studentTrialPracticeNum>=3){
 | 
	
		
			
				|  |  | +            return BaseController.failed(HttpStatus.EXPECTATION_FAILED, "指定的学生已存在三组试听课");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        SysUser student = teacherDao.getUser(practiceGroupBuyParams.getStudentId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          Subject subject = subjectDao.get(practiceGroupBuyParams.getSubjectId());
 | 
	
		
			
				|  |  |          if (Objects.isNull(subject)) {
 | 
	
	
		
			
				|  | @@ -909,14 +916,16 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
 | 
	
		
			
				|  |  |              throw new BizException("课程开始时间不得小于当前时间");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        practiceGroupBuyParams.setName(subject.getName() + "•" + sysUser.getUsername());
 | 
	
		
			
				|  |  | +        practiceGroupBuyParams.setName(subject.getName() + "•" + student.getUsername());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          TeacherFreeTime teacherFreeTime = teacherFreeTimeDao.findTeacherFreeTime(practiceGroupBuyParams.getUserId());
 | 
	
		
			
				|  |  |          if (Objects.isNull(teacherFreeTime)) {
 | 
	
		
			
				|  |  |              return BaseController.failed(HttpStatus.MULTIPLE_CHOICES,"抱歉啦,当前所选时段组合,「" + teacher.getRealName() + "」老师已被预约,请重新选择时段或更换老师后重试。");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        practiceGroupBuyParams.setOrganId(sysUser.getOrganId());
 | 
	
		
			
				|  |  | +        practiceGroupBuyParams.setCoursesStartDate(courseDates.get(0));
 | 
	
		
			
				|  |  | +        practiceGroupBuyParams.setCoursesExpireDate(DateUtil.addMinutes(courseDates.get(1),practiceCourseMinutes));
 | 
	
		
			
				|  |  | +        practiceGroupBuyParams.setOrganId(student.getOrganId());
 | 
	
		
			
				|  |  |          practiceGroupBuyParams.setSingleClassMinutes(practiceCourseMinutes);
 | 
	
		
			
				|  |  |          practiceGroupBuyParams.setGroupStatus(GroupStatusEnum.NORMAL);
 | 
	
		
			
				|  |  |          practiceGroupBuyParams.setType(PracticeGroupType.TRIAL);
 | 
	
	
		
			
				|  | @@ -1058,6 +1067,46 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              return BaseController.failed(HttpStatus.FOUND, errMessage);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        try{
 | 
	
		
			
				|  |  | +            DateTimeFormatter mmdd = DateTimeFormatter.ofPattern("M月d日");
 | 
	
		
			
				|  |  | +            DateTimeFormatter hhmm = DateTimeFormatter.ofPattern("H:mm");
 | 
	
		
			
				|  |  | +            LocalDateTime oneCourseStartTime = LocalDateTime.ofInstant(courseDates.get(0).toInstant(), DateUtil.zoneId);
 | 
	
		
			
				|  |  | +            String oneCourseMMdd=mmdd.format(oneCourseStartTime);
 | 
	
		
			
				|  |  | +            String oneCourseHHmm=hhmm.format(oneCourseStartTime);
 | 
	
		
			
				|  |  | +            String oneCourseStartTimeDayOfWeekName = DateUtil.weekNumNormalWeekNameMap.get(oneCourseStartTime.getDayOfWeek().getValue());
 | 
	
		
			
				|  |  | +            String oneCourseTimeStr = oneCourseMMdd + "(" + oneCourseStartTimeDayOfWeekName + ")" + oneCourseHHmm;
 | 
	
		
			
				|  |  | +            LocalDateTime twoCourseStartTime = LocalDateTime.ofInstant(courseDates.get(1).toInstant(), DateUtil.zoneId);
 | 
	
		
			
				|  |  | +            String twoCourseMMdd=mmdd.format(twoCourseStartTime);
 | 
	
		
			
				|  |  | +            String twoCourseHHmm=hhmm.format(twoCourseStartTime);
 | 
	
		
			
				|  |  | +            String twoCourseStartTimeDayOfWeekName = DateUtil.weekNumNormalWeekNameMap.get(twoCourseStartTime.getDayOfWeek().getValue());
 | 
	
		
			
				|  |  | +            String twoCourseTimeStr = twoCourseMMdd + "(" + twoCourseStartTimeDayOfWeekName + ")" + twoCourseHHmm;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            Map<Integer, String> userMap = new HashMap<>();
 | 
	
		
			
				|  |  | +            userMap.put(practiceGroupBuyParams.getStudentId(), practiceGroupBuyParams.getStudentId().toString());
 | 
	
		
			
				|  |  | +            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TRIAL_PRACTICE_CREATE_STUDENT_PUSH,
 | 
	
		
			
				|  |  | +                    userMap, null, 0, null, "STUDENT", student.getUsername(), teacher.getRealName(),
 | 
	
		
			
				|  |  | +                    oneCourseTimeStr, twoCourseTimeStr);
 | 
	
		
			
				|  |  | +//            Map<Integer, String> userPhoneMap = new HashMap<>();
 | 
	
		
			
				|  |  | +//            userPhoneMap.put(practiceGroupBuyParams.getStudentId(), student.getPhone());
 | 
	
		
			
				|  |  | +//            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.TRIAL_PRACTICE_CREATE_STUDENT_PUSH,
 | 
	
		
			
				|  |  | +//                    userPhoneMap, null, 0, null, "STUDENT", student.getUsername(), teacher.getRealName(),
 | 
	
		
			
				|  |  | +//                    oneCourseTimeStr, twoCourseTimeStr);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            Map<Integer, String> teacherMap = new HashMap<>();
 | 
	
		
			
				|  |  | +            teacherMap.put(practiceGroupBuyParams.getUserId(), practiceGroupBuyParams.getUserId().toString());
 | 
	
		
			
				|  |  | +            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TRIAL_PRACTICE_CREATE_TEACHER_PUSH,
 | 
	
		
			
				|  |  | +                    teacherMap, null, 0, null, "TEACHER", teacher.getRealName(), practiceGroupBuyParams.getName(),
 | 
	
		
			
				|  |  | +                    oneCourseTimeStr, twoCourseTimeStr);
 | 
	
		
			
				|  |  | +//            Map<Integer, String> teacherPhoneMap = new HashMap<>();
 | 
	
		
			
				|  |  | +//            teacherPhoneMap.put(practiceGroupBuyParams.getUserId(), teacher.getPhone());
 | 
	
		
			
				|  |  | +//            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.TRIAL_PRACTICE_CREATE_TEACHER_PUSH,
 | 
	
		
			
				|  |  | +//                    teacherPhoneMap, null, 0, null, "TEACHER", teacher.getRealName(), practiceGroupBuyParams.getName(),
 | 
	
		
			
				|  |  | +//                    oneCourseTimeStr, twoCourseTimeStr);
 | 
	
		
			
				|  |  | +        }catch (Exception e){
 | 
	
		
			
				|  |  | +            e.printStackTrace();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          return BaseController.succeed();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |