|
@@ -447,26 +447,34 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
|
|
|
public List<CloudTeacherOrderWrapper.StudentMemberDetail> getEffectiveCloudTeacherOrder(List<Integer> userIds) {
|
|
|
//获取生效中的会员
|
|
|
List<CloudTeacherOrderWrapper.StudentMemberDetail> studentMemberDetails = new ArrayList<>();
|
|
|
- List<CloudTeacherOrder> activeCloudTeachers = cloudTeacherOrderDao.queryByUserIds(userIds,2);
|
|
|
- if (CollectionUtils.isNotEmpty(activeCloudTeachers)) {
|
|
|
+ List<StudentMemberTime> studentMemberTimes = studentMemberTimeService.queryByUserId(userIds);
|
|
|
+ if (CollectionUtils.isNotEmpty(studentMemberTimes)) {
|
|
|
//获取所有的会员列表
|
|
|
- List<Integer> memberRankIds = activeCloudTeachers.stream().map(CloudTeacherOrder::getLevel).distinct().collect(Collectors.toList());
|
|
|
+ List<Integer> memberRankIds = studentMemberTimes.stream().map(StudentMemberTime::getMemberRankId).distinct().collect(Collectors.toList());
|
|
|
Map<Integer, String> memberNameMap = memberRankSettingService.queryMemberName(memberRankIds);
|
|
|
//按学员分组
|
|
|
- Map<Integer, List<CloudTeacherOrder>> cloudTeacherOrderMap = activeCloudTeachers.stream().collect(Collectors.groupingBy(CloudTeacherOrder::getStudentId));
|
|
|
+ Map<Integer, List<StudentMemberTime>> cloudTeacherOrderMap = studentMemberTimes.stream().collect(Collectors.groupingBy(StudentMemberTime::getStudentId));
|
|
|
cloudTeacherOrderMap.forEach((k, v) -> {
|
|
|
//按会员等级分组,同一个级别的会员,去最大的截止时间
|
|
|
- Map<Integer, List<CloudTeacherOrder>> memberRankMap = v.stream().collect(Collectors.groupingBy(CloudTeacherOrder::getLevel));
|
|
|
+ Map<Integer, List<StudentMemberTime>> memberRankMap = v.stream().collect(Collectors.groupingBy(StudentMemberTime::getMemberRankId));
|
|
|
memberRankMap.forEach((key, value) -> {
|
|
|
CloudTeacherOrderWrapper.StudentMemberDetail studentMemberDetail = new CloudTeacherOrderWrapper.StudentMemberDetail();
|
|
|
studentMemberDetail.setStudentId(k);
|
|
|
//会员名称
|
|
|
studentMemberDetail.setMemberRankName(memberNameMap.get(key));
|
|
|
//获取最大的截止时间
|
|
|
- Date maxTime = value.stream().map(CloudTeacherOrder::getEndTime).max(Date::compareTo).get();
|
|
|
+ Date maxTime = value.stream().map(StudentMemberTime::getEndTime).max(Date::compareTo).get();
|
|
|
studentMemberDetail.setEndTime(maxTime);
|
|
|
//剩余天数
|
|
|
- studentMemberDetail.setRemainingDays(DateUtil.daysBetween(new Date(), maxTime));
|
|
|
+ if (maxTime.compareTo(new Date()) < 0) {
|
|
|
+ studentMemberDetail.setRemainingDays(0);
|
|
|
+ } else {
|
|
|
+ int i = DateUtil.daysBetween(new Date(), maxTime);
|
|
|
+ if (i <= 0) {
|
|
|
+ i = 1;
|
|
|
+ }
|
|
|
+ studentMemberDetail.setRemainingDays(i);
|
|
|
+ }
|
|
|
studentMemberDetail.setMemberRankId(key);
|
|
|
studentMemberDetails.add(studentMemberDetail);
|
|
|
});
|