瀏覽代碼

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父節點
當前提交
cdaf4125a4

+ 3 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -39,14 +39,13 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @describe 判断该课程是否只能进行正常签到
 	 * @author Joburgess
 	 * @date 2019/11/5
-	 * @param teacherAttendanceDto: 教师签到信息
+	 * @param startClassTime: 课程开始时间
 	 * @param userId: 教师编号
 	 * @param checkSchool: 是否判断教学点
+	 * @param schoolId: 学校编号
 	 * @return com.ym.mec.biz.dal.enums.YesOrNoEnum
 	 */
-	YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto,
-										   Long userId,
-										   boolean checkSchool);
+	YesOrNoEnum enableOnlyNormalAttendance(Date startClassTime,Long userId,boolean checkSchool,Integer schoolId);
 
 	/**
 	 * @Author: Joburgess

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

@@ -85,7 +85,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		    throw new BizException("课程不存在");
         }
 
-		currentCourseDetail.setOnlyNormal(enableOnlyNormalAttendance(currentCourseDetail, user.getId().longValue(),true));
+		currentCourseDetail.setOnlyNormal(enableOnlyNormalAttendance(currentCourseDetail.getStartClassTime(),
+				user.getId().longValue(),
+				true,
+				currentCourseDetail.getSchoolId().intValue()));
 
 		currentCourseDetail.setCurrentTime(new Date());
 		currentCourseDetail.setAdvanceSignInMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES)));
@@ -102,15 +105,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public YesOrNoEnum enableOnlyNormalAttendance(TeacherAttendanceDto teacherAttendanceDto,Long userId,boolean checkSchool){
-		Date endTime=teacherAttendanceDto.getStartClassTime();
+	public YesOrNoEnum enableOnlyNormalAttendance(Date startClassTime,Long userId,boolean checkSchool,Integer schoolId){
+		Date endTime=startClassTime;
 		Date startTime=DateUtil.addHours(endTime,-1);
 		TeacherAttendanceDto teacherCourseByDateSpeed = courseScheduleDao.getTeacherCourseByDateSpeed(startTime, endTime, userId);
 		if(Objects.isNull(teacherCourseByDateSpeed)){
 			return YesOrNoEnum.NO;
 		}else{
 			int i = studentAttendanceDao.countByCourseSchedule(teacherCourseByDateSpeed.getCourseScheduleId());
-			if(i>0&&checkSchool&&teacherAttendanceDto.getSchoolId().equals(teacherCourseByDateSpeed.getSchoolId())){
+			if(i>0&&checkSchool&&schoolId.equals(teacherCourseByDateSpeed.getSchoolId())){
 				return YesOrNoEnum.YES;
 			}else{
 				return YesOrNoEnum.NO;
@@ -688,6 +691,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		CourseScheduleDto courseSchedules = courseScheduleDao.getCourseSchedules(courseScheduleComplaints.getCourseScheduleId());
 		Date now=new Date();
+		if(!courseSchedules.getStatus().equals(CourseStatusEnum.OVER)){
+			throw new BizException("该课程还未结束");
+		}
 		int i = DateUtil.daysBetween(courseSchedules.getEndClassTime(), now);
 		if(i>Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.VIP_APPEAL_DAYS_RANGE))){
 			throw new BizException("该课程已超过可申诉时间范围!");

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

@@ -96,7 +96,10 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				throw new BizException("该课程已结束,不能进行签到!");
 			}
 
-			YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(currentCourseDetail, user.getId().longValue(),true);
+			YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(currentCourseDetail.getStartClassTime(),
+					user.getId().longValue(),
+					true,
+					currentCourseDetail.getSchoolId().intValue());
 
 			if(yesOrNoEnum==YesOrNoEnum.YES){
 				teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
@@ -181,10 +184,16 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 
 		int timeGap = DateUtil.minutesBetween(now, courseSchedule.getStartClassTime());
 
+		YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(courseSchedule.getStartClassTime(),
+				userId.longValue(),
+				false,
+				null);
+
+
 		switch (signStatus){
 			case SIGN_IN:
 				teacherAttendance.setSignInTime(now);
-				if(advanceSignInMinutes<=timeGap&&timeGap<=60){
+				if(yesOrNoEnum.equals(YesOrNoEnum.YES)||advanceSignInMinutes<=timeGap&&timeGap<=60){
 					teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
 				}else{
 					teacherAttendance.setSignInStatus(YesOrNoEnum.NO);

+ 46 - 43
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -743,17 +743,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("您已购买过此课程");
 		}
 
-		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
-				user.getId(),
-				DealStatusEnum.ING.getMsg());
-
-		if(Objects.nonNull(byStudentVipGroup)){
-			byStudentVipGroup.setStatus(DealStatusEnum.CLOSE);
-			studentPaymentOrderDao.update(byStudentVipGroup);
-			//更新班级人数,如果订单支付失败则减少
-			updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
-		}
-
 		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
 
 		if(Objects.isNull(vipGroupClassGroupMapper)){
@@ -768,6 +757,18 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("该课程人数已达上限");
 		}
 
+		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
+				user.getId(),
+				DealStatusEnum.ING.getCode());
+
+		if(Objects.nonNull(byStudentVipGroup)){
+			byStudentVipGroup.setStatus(DealStatusEnum.CLOSE);
+			studentPaymentOrderDao.update(byStudentVipGroup);
+		}else{
+			//更新班级人数,如果订单支付失败则减少
+			updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
+		}
+
 //		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
 		StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
 		studentPaymentOrder.setUserId(user.getId());
@@ -797,13 +798,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map payMap = payService.getPayMap(
 				vipGroup.getTotalPrice(),
 				orderNo,
-				"http://mstudev.dayaedu.com/api-student/studentOrder/notify",
+				"https://dyme.utools.club/api-student/studentOrder/notify",
 				"http://mstudev.dayaedu.com/#/paymentresult?orderNo="+orderNo,
 				"vip课购买",
 				vipGroup.getName());
-		//将学员加入vip班级群组
-		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(user.getId().toString())};
-		imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 
 		return payMap;
 
@@ -825,36 +823,37 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//将学生加入到班级,更新班级报名状态及人数信息
 		if(!isOk){
 			updateVipGroupStudentNumAndStatus(vipGroupId,-1,false);
-		}else{
-			updateVipGroupStudentNumAndStatus(vipGroupId,0,true);
-			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
-			//插入缴费明细
-			//收入
-			SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
-			sysUserIncomeCashAccountDetail.setUserId(userId);
-			sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
-			sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-			sysUserIncomeCashAccountDetail.setAmount(order.getActualAmount());
-			sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getActualAmount()));
-			sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
-
-			//支出
-			SysUserCashAccountDetail sysUserExpendCashAccountDetail = new SysUserCashAccountDetail();
-			sysUserExpendCashAccountDetail.setUserId(userId);
-			sysUserExpendCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
-			sysUserExpendCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-			sysUserExpendCashAccountDetail.setAmount(order.getActualAmount().negate());
-			sysUserExpendCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
-			sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
-
-			sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
-			sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
-			Map<Integer,String> map = new HashMap<>(1);
-			map.put(userId,userId.toString());
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_VIP_BUY, map, null, 0, "",
-					vipGroup.getName());
+			return;
 		}
 
+		updateVipGroupStudentNumAndStatus(vipGroupId,0,true);
+		SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
+		//插入缴费明细
+		//收入
+		SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
+		sysUserIncomeCashAccountDetail.setUserId(userId);
+		sysUserIncomeCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
+		sysUserIncomeCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+		sysUserIncomeCashAccountDetail.setAmount(order.getActualAmount());
+		sysUserIncomeCashAccountDetail.setBalance(sysUserCashAccount.getBalance().add(order.getActualAmount()));
+		sysUserIncomeCashAccountDetail.setAttribute(order.getTransNo());
+
+		//支出
+		SysUserCashAccountDetail sysUserExpendCashAccountDetail = new SysUserCashAccountDetail();
+		sysUserExpendCashAccountDetail.setUserId(userId);
+		sysUserExpendCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
+		sysUserExpendCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+		sysUserExpendCashAccountDetail.setAmount(order.getActualAmount().negate());
+		sysUserExpendCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
+		sysUserExpendCashAccountDetail.setAttribute(order.getTransNo());
+
+		sysUserCashAccountDetailService.insert(sysUserIncomeCashAccountDetail);
+		sysUserCashAccountDetailService.insert(sysUserExpendCashAccountDetail);
+		Map<Integer,String> map = new HashMap<>(1);
+		map.put(userId,userId.toString());
+		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_VIP_BUY, map, null, 0, "",
+				vipGroup.getName());
+
 		//生成学生单课缴费信息
 		courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroupId,userId);
 
@@ -864,6 +863,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroupStudentMapper.setMusicGroupId(vipGroupId.toString());
 		classGroupStudentMapperDao.insert(classGroupStudentMapper);
 
+		//将学员加入vip班级群组
+		ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(userId.toString())};
+		imFeignService.groupJoin(new ImGroupModel(vipGroupClassGroupMapper.getClassGroupId().toString(), imGroupMembers, null));
+
 		//更新所属分部列表
 		List<Integer> organIds = classGroupDao.findStudentOrganIdsByClassGroup(vipGroupClassGroupMapper.getClassGroupId().longValue());
 		organIds.add(vipGroup.getOrganId());