yangdamao преди 3 години
родител
ревизия
a5f6f30278

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSectionWatchPerServiceImpl.java

@@ -118,6 +118,7 @@ public class CourseSectionWatchPerServiceImpl extends ServiceImpl<CourseSectionW
                 .eq(CourseSectionWatchPer::getCourseId, bo.getCourseId())
                 .eq(CourseSectionWatchPer::getGoodsId, bo.getGoodsId())
                 .eq(CourseSectionWatchPer::getSectionId, bo.getSectionId())
+                .eq(CourseSectionWatchPer::getStatus, 1)
                 .last("LIMIT 1"));
         if (ObjectUtils.isNull(watchPer) || watchPer.getWatchPer() == 1){
             //没有配观看权限或者观看权限为开通课程的学员

+ 30 - 11
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -673,23 +673,42 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
                 Map<Integer, List<UserStudyRecord>> buyMap = recordList.stream().filter(x -> ObjectUtils.isNotNull(x.getBuyCourse())).collect(Collectors.groupingBy(UserStudyRecord::getBuyCourse));
                 if (CollectionUtils.isNotEmpty(buyMap)){
                     //开通课程
-                    Map<Long, List<UserStudyRecord>> records = buyMap.get(1).stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
-                    Set<Long> buyCourseUserIds = records.keySet();
-                    item.setBuyCourseNumber(buyCourseUserIds.size());
-                    //未开通课程
-                    Map<Long, List<UserStudyRecord>> collect = buyMap.get(0).stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
-                    List<Long> unBuyCourseUserIds = collect.keySet().stream().filter(x -> !buyCourseUserIds.contains(x)).collect(Collectors.toList());
-                    item.setUnBuyCourseNumber(CollectionUtils.isNotEmpty(unBuyCourseUserIds)?unBuyCourseUserIds.size():0);
+                    List<UserStudyRecord> records1 = buyMap.get(1);
+                    Set<Long> buyCourseUserIds = new HashSet<>();
+                    if (CollectionUtils.isNotEmpty(records1)){
+                        Map<Long, List<UserStudyRecord>> records = records1.stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
+                         buyCourseUserIds = records.keySet();
+                        item.setBuyCourseNumber(buyCourseUserIds.size());
+                    }
 
+                    //未开通课程
+                    List<UserStudyRecord> records = buyMap.get(0);
+                    if (CollectionUtils.isNotEmpty(records)){
+                        Map<Long, List<UserStudyRecord>> collect = records.stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
+                        List<Long> unBuyCourseUserIds = new ArrayList<>();
+                        for (Long id : collect.keySet()) {
+                            if (CollectionUtils.isNotEmpty(buyCourseUserIds) && !buyCourseUserIds.contains(id)){
+                                unBuyCourseUserIds.add(id);
+                            }
+                        }
+                        item.setUnBuyCourseNumber(CollectionUtils.isNotEmpty(unBuyCourseUserIds)?unBuyCourseUserIds.size():0);
+                    }
                 }
                 Map<String, List<UserStudyRecord>> collect = recordList.stream().filter(x -> ObjectUtils.isNotNull(x.getFromPlat())).collect(Collectors.groupingBy(UserStudyRecord::getFromPlat));
                 if (CollectionUtils.isNotEmpty(collect)) {
                     //小程序
-                    Map<Long, List<UserStudyRecord>> rListMap = collect.get("1").stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
-                    item.setAppWatchNumber(rListMap.keySet().size());
+                    List<UserStudyRecord> records1 = collect.get("1");
+                    if (CollectionUtils.isNotEmpty(records1)){
+                        Map<Long, List<UserStudyRecord>> rListMap = records1.stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
+                        item.setAppWatchNumber(rListMap.keySet().size());
+                    }
                     //PC
-                    Map<Long, List<UserStudyRecord>> records = collect.get("2").stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
-                    item.setAdminWatchNumber(records.keySet().size());
+                    List<UserStudyRecord> records2 = collect.get("2");
+                    if (CollectionUtils.isNotEmpty(records2)){
+                        Map<Long, List<UserStudyRecord>> records = records2.stream().filter(x -> ObjectUtils.isNotNull(x.getUserId())).collect(Collectors.groupingBy(UserStudyRecord::getUserId));
+                        item.setAdminWatchNumber(records.keySet().size());
+                    }
+
                 }
             }
         });