Forráskód Böngészése

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 4 éve
szülő
commit
65e5f7b1dc

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentRecoverInfoDto.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
+import java.time.LocalDate;
+
 /**
  * @Author Joburgess
  * @Date 2019/12/24
@@ -18,6 +20,16 @@ public class StudentRecoverInfoDto {
 
     private int giveCourseTimes;
 
+    private LocalDate expireDate;
+
+    public LocalDate getExpireDate() {
+        return expireDate;
+    }
+
+    public void setExpireDate(LocalDate expireDate) {
+        this.expireDate = expireDate;
+    }
+
     public Integer getVipGroupId() {
         return vipGroupId;
     }

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

@@ -393,16 +393,6 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findAllByClassGroup(classGroupId);
 
-        //线上基础技能班,原始分班人数不能小于3人大于6人
-//        if (classGroupStudents.size() <= 0 && classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
-//            if (studentIds.size() < 3) {
-//                throw new BizException("线上基础技能班人数不能小于3人");
-//            }
-//            if (studentIds.size() > 6) {
-//                throw new BizException("线上基础技能班人数不能大于6人");
-//            }
-//        }
-
         Set<Integer> allStudentIds = new HashSet<>();
         Set<Integer> oldStudentIds = new HashSet<>();
         Set<Integer> oldNormalStudentIds = new HashSet<>();
@@ -418,6 +408,16 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
             oldNormalStudentIds = classGroupStudents.stream().filter(s -> ClassGroupStudentStatusEnum.NORMAL.equals(s.getStatus())).map(ClassGroupStudentMapper::getUserId).collect(Collectors.toSet());
         }
 
+        //线上基础技能班,原始分班人数不能小于3人大于6人
+        if (classGroupStudents.size() <= 0 && classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
+            if (studentIds.size() < 3 && oldNormalStudentIds.size() > 0) {
+                throw new BizException("线上基础技能班人数不能小于3人");
+            }
+            if (studentIds.size() > 6) {
+                throw new BizException("线上基础技能班人数不能大于6人");
+            }
+        }
+
         Set<Integer> repeatStudentIds = allStudentIds.stream().filter(oldNormalStudentIds::contains).collect(Collectors.toSet());
         addStudentIds = allStudentIds.stream().filter(id -> !repeatStudentIds.contains(id)).collect(Collectors.toSet());
         removeStudentIds = oldNormalStudentIds.stream().filter(id -> !repeatStudentIds.contains(id)).collect(Collectors.toSet());

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -4338,6 +4338,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 }
                 if (courseTime.getDayOfWeek() == i) {
                     String dateYmdStr = DateUtil.dateToString(calendar.getTime(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+                    if(StringUtils.isBlank(courseTime.getStartClassTime())){
+                    	throw new BizException("排课循环周期错误");
+					}
                     dateYmdStr = dateYmdStr + " " + courseTime.getStartClassTime();
                     Date courseStartTime = DateUtil.stringToDate(dateYmdStr, "yyyy-MM-dd HH:mm");
                     if(excludePastCourse&&courseStartTime.before(now)){

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -858,6 +858,11 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_DETAIL, receivers, null, 0,
 						null, null, calenderPushDto.getMusicGroupName(), calenderPushDto.getPaymentValidStartDate(), calenderPushDto.getPaymentValidEndDate(),
 						maps.get(e));
+				Map<Integer, String> receivers1 = new HashMap<>(1);
+				receivers1.put(calenderPushDto.getTeacherId(), calenderPushDto.getTeacherId().toString());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.SMS_PAYMENT_DETAIL, receivers, null, 0,
+						null, "SYSTEM", calenderPushDto.getMusicGroupName(), calenderPushDto.getPaymentValidStartDate(), calenderPushDto.getPaymentValidEndDate(),
+						maps.get(e));
 			});
 		}
 		// 获取离截止还有指定时间的缴费项,并发送推送消息给指定老师
@@ -872,6 +877,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				receivers.put(calenderPushDto.getTeacherId(), calenderPushDto.getTeacherPhone());
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_CREATE, receivers, null, 0,
 						null, null, calenderPushDto.getMusicGroupName(), calenderPushDto.getPaymentValidStartDate(), calenderPushDto.getPaymentValidEndDate());
+				Map<Integer, String> receivers1 = new HashMap<>(1);
+				receivers1.put(calenderPushDto.getTeacherId(), calenderPushDto.getTeacherId().toString());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.SMS_PAYMENT_CREATE, receivers, null, 0,
+						null, "SYSTEM", calenderPushDto.getMusicGroupName(), calenderPushDto.getPaymentValidStartDate(), calenderPushDto.getPaymentValidEndDate());
 			});
 		}
 
@@ -883,6 +892,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				receivers.put(e.getTeacherId(), e.getTeacherPhone());
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_CREATE, receivers, null, 0,
 						null, null, e.getMusicGroupName(), e.getPaymentValidStartDate(), e.getPaymentValidEndDate());
+				Map<Integer, String> receivers1 = new HashMap<>(1);
+				receivers1.put(e.getTeacherId(), e.getTeacherId().toString());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.SMS_PAYMENT_CREATE, receivers, null, 0,
+						null, "SYSTEM", e.getMusicGroupName(), e.getPaymentValidStartDate(), e.getPaymentValidEndDate());
 			});
 		}
 	}

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -41,6 +41,9 @@ import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -1906,6 +1909,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map<String, Object> pauseInfos = new HashMap<>();
 		//学生剩余课时
         List<StudentCourseInfoDto> userSurplusCourseInfoByGroup = courseScheduleDao.findUserSurplusCourseInfoByGroup(GroupType.VIP, vipGroupId.toString(), studentId);
+
+		int days = 0;
+        if(!CollectionUtils.isEmpty(userSurplusCourseInfoByGroup)){
+        	LocalDate nowDate = LocalDate.now(DateUtil.zoneId);
+			StudentCourseInfoDto studentCourseInfoDto = userSurplusCourseInfoByGroup.stream().max(Comparator.comparing(StudentCourseInfoDto::getClassDate)).get();
+			days = (int) nowDate
+					.until((LocalDateTime.ofInstant(studentCourseInfoDto.getClassDate().toInstant(), DateUtil.zoneId).toLocalDate()), ChronoUnit.DAYS);
+		}
         int[] teachModeSequence=new int[userSurplusCourseInfoByGroup.size()];
         List<BigDecimal> coursePrices = new ArrayList<>();
         List<Long> courseScheduleIds=new ArrayList<>();
@@ -1916,6 +1927,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         }
         pauseInfos.put("teaChModeSequence", teachModeSequence);
         pauseInfos.put("coursePriceInfo",coursePrices);
+        pauseInfos.put("days", days);
 
         StudentPauseInfo  studentPauseInfo=new StudentPauseInfo();
 		studentPauseInfo.setUserId(studentId);
@@ -2051,6 +2063,17 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				}
 				newCourseSchedules.get(i).setOrganId(vipGroup.getOrganId());
 			}
+
+			if(courseInfo1.containsKey("days")){
+				int surplusDays = Integer.valueOf(courseInfo1.get("days").toString());
+				LocalDate nowDate = LocalDate.now();
+				CourseSchedule courseSchedule = newCourseSchedules.stream().max(Comparator.comparing(CourseSchedule::getClassDate)).get();
+				int days = (int) nowDate.until(LocalDateTime.ofInstant(courseSchedule.getClassDate().toInstant(), DateUtil.zoneId), ChronoUnit.DAYS);
+				if(days>surplusDays){
+					throw new BizException("您必须在{}天内完成剩余课程", surplusDays);
+				}
+			}
+
 			courseScheduleService.batchAddCourseSchedule(newCourseSchedules);
 
 			ClassGroupTeacherMapper oldClassGroupTeacherMapper = classGroupTeacherMapperDao.findByClassGroupAndTeacher(classGroup.getId(),oldTeacherId);
@@ -2152,6 +2175,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map<BigDecimal, Long> collect = coursePrices.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
 		studentRecoverInfoDto.setGiveCourseTimes(Objects.isNull(collect.get(new BigDecimal("0.00")))?0:collect.get(new BigDecimal("0.00")).intValue());
 		studentRecoverInfoDto.setTotalCourseTimes(coursePrices.size()-studentRecoverInfoDto.getGiveCourseTimes());
+
+		if(courseInfo.containsKey("days")){
+			int surplusDays = Integer.valueOf(courseInfo.get("days").toString());
+			studentRecoverInfoDto.setExpireDate(LocalDate.now().plusDays(surplusDays));
+		}
 		return studentRecoverInfoDto;
     }
 

+ 9 - 1
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/JiguangPushPlugin.java

@@ -127,7 +127,7 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 				base64_auth_string = encryptBASE64(this.teacherAppKey + ":" + this.teacherMasterSecret);
 				break;
 			default:
-				base64_auth_string = encryptBASE64(this.systemAppKey + ":" + this.systemMasterSecret);
+				base64_auth_string = encryptBASE64(this.studentAppKey + ":" + this.studentMasterSecret);
 				break;
 		}
 		String authorization = "Basic " + base64_auth_string;
@@ -215,10 +215,18 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 		this.teacherMasterSecret = teacherMasterSecret;
 	}
 
+	public String getSystemAppKey() {
+		return systemAppKey;
+	}
+
 	public void setSystemAppKey(String systemAppKey) {
 		this.systemAppKey = systemAppKey;
 	}
 
+	public String getSystemMasterSecret() {
+		return systemMasterSecret;
+	}
+
 	public void setSystemMasterSecret(String systemMasterSecret) {
 		this.systemMasterSecret = systemMasterSecret;
 	}