Ver código fonte

已购买视频课虚拟数据

liujunchi 2 anos atrás
pai
commit
59fc7dc308

+ 7 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupDetailServiceImpl.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import java.math.BigDecimal;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -225,7 +226,12 @@ public class VideoLessonGroupDetailServiceImpl extends ServiceImpl<VideoLessonGr
         }
         
         List<VideoLessonPurchaseRecord> videoLessonPurchaseRecordList = videoLessonPurchaseRecordDao.queryByVideoLessonGroupId(videoLessonGroupLog.getVideoLessonGroupId(), OrderStatusEnum.PAID.getCode());
-        videoLessonGroupVo.setCountStudent(videoLessonPurchaseRecordList.size());
+        if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) {
+            VideoLessonGroup videoLessonGroup = videoLessonGroupDao.selectById(videoLessonGroupVo.getId());
+            videoLessonGroupVo.setCountStudent(videoLessonPurchaseRecordList.size() + videoLessonGroup.getVirtualNumber());
+        } else {
+            videoLessonGroupVo.setCountStudent(videoLessonPurchaseRecordList.size());
+        }
 
         Teacher teacher = teacherService.getById(videoLessonGroupVo.getTeacherId());
         if (teacher != null) {

+ 15 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java

@@ -805,8 +805,21 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
      */
     @Override
     public IPage<LessonGroupVo> selectLessonGroupById(IPage<LessonGroupVo> page, VideoLessonGroupSearch query) {
-
-        return page.setRecords(baseMapper.queryMyLessonGroup(page, query));
+        List<LessonGroupVo> lessonGroupVos = baseMapper.queryMyLessonGroup(page, query);
+        if (CollectionUtils.isEmpty(lessonGroupVos)) {
+            return page.setRecords(lessonGroupVos);
+        }
+        List<Long> idList = lessonGroupVos.stream().map(LessonGroupVo::getId).collect(Collectors.toList());
+        Map<Long, Integer> idMap = videoLessonGroupDao.selectBatchIds(idList)
+                                                        .stream()
+                                                        .collect(Collectors.toMap(VideoLessonGroup::getId,
+                                                                                  VideoLessonGroup::getVirtualNumber));
+        for (LessonGroupVo videoLessonGroupVo : lessonGroupVos) {
+            if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) {
+                videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + idMap.get(videoLessonGroupVo.getId()));
+            }
+        }
+        return page.setRecords(lessonGroupVos);
     }
 
     /**