|
@@ -1,5 +1,6 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Collection;
|
|
@@ -15,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.CourseMusicAlbumRelationDto;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.CourseRelationMusicAlbum;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.MusicTag;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.course.CourseRelationTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
|
|
@@ -123,13 +125,6 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
|
|
|
@Autowired
|
|
|
private CourseRelationMusicAlbumService courseRelationMusicAlbumService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService;
|
|
|
-
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private VideoLessonPurchaseRecordService videoLessonPurchaseRecordService;
|
|
|
-
|
|
|
public VideoLessonGroupDao getDao() {
|
|
|
return videoLessonGroupDao;
|
|
|
}
|
|
@@ -156,13 +151,24 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return page.setRecords(baseMapper.selectPage(page, query));
|
|
|
+ List<VideoLessonGroupVo> videoLessonGroupVos = baseMapper.selectPage(page, query);
|
|
|
+ for (VideoLessonGroupVo videoLessonGroupVo : videoLessonGroupVos) {
|
|
|
+ if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return page.setRecords(videoLessonGroupVos);
|
|
|
}
|
|
|
|
|
|
public List<VideoLessonGroupVo> selectPage(VideoLessonGroupSearch query) {
|
|
|
List<VideoLessonGroupVo> list = baseMapper.selectPage(null, query);
|
|
|
List<VideoLessonGroupVo> collect = list.stream().filter(videoLessonGroupVo -> !videoLessonGroupVo.getId().equals(query.getVideoLessonGroupId()))
|
|
|
.sorted(Comparator.comparing(VideoLessonGroupVo::getCountStudent, Comparator.reverseOrder())).limit(2).collect(Collectors.toList());
|
|
|
+ for (VideoLessonGroupVo videoLessonGroupVo : collect) {
|
|
|
+ if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber());
|
|
|
+ }
|
|
|
+ }
|
|
|
return collect;
|
|
|
}
|
|
|
|
|
@@ -495,7 +501,13 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
|
|
|
*/
|
|
|
@Override
|
|
|
public IPage<VideoLessonTeacherVo> selectTeacherPage(IPage<VideoLessonTeacherVo> page, VideoLessonSearch search) {
|
|
|
- return page.setRecords(baseMapper.selectTeacherPage(page, search));
|
|
|
+ List<VideoLessonTeacherVo> videoLessonTeacherVos = baseMapper.selectTeacherPage(page, search);
|
|
|
+ for (VideoLessonTeacherVo videoLessonGroupVo : videoLessonTeacherVos) {
|
|
|
+ if (new BigDecimal(videoLessonGroupVo.getLessonPrice()).compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return page.setRecords(videoLessonTeacherVos);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -556,7 +568,11 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
|
|
|
if (CollectionUtils.isEmpty(lessonGroup)) {
|
|
|
return null;
|
|
|
}
|
|
|
- return lessonGroup.get(0);
|
|
|
+ VideoLessonGroupVo videoLessonGroupVo = lessonGroup.get(0);
|
|
|
+ if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber());
|
|
|
+ }
|
|
|
+ return videoLessonGroupVo;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -679,7 +695,13 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
|
|
|
public IPage<LessonGroupVo> selectLessonGroup(IPage<LessonGroupVo> page, VideoLessonGroupSearch query) {
|
|
|
query.setAuditStatus(AuthStatusEnum.PASS.getCode());
|
|
|
query.setShelvesFlag(1);
|
|
|
- return page.setRecords(baseMapper.selectLessonGroup(page, query));
|
|
|
+ List<LessonGroupVo> lessonGroupVos = baseMapper.selectLessonGroup(page, query);
|
|
|
+ for (LessonGroupVo videoLessonGroupVo : lessonGroupVos) {
|
|
|
+ if (videoLessonGroupVo.getLessonPrice().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ videoLessonGroupVo.setCountStudent(videoLessonGroupVo.getCountStudent() + videoLessonGroupVo.getVirtualNumber());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return page.setRecords(lessonGroupVos);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -783,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);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -886,5 +921,32 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void setVirtualNumber() {
|
|
|
+
|
|
|
+ List<VideoLessonGroup> videoLessonGroups = this.lambdaQuery()
|
|
|
+ .select(VideoLessonGroup::getId,VideoLessonGroup::getVirtualNumber)
|
|
|
+ .eq(VideoLessonGroup::getAuditStatus, AuthStatusEnum.PASS)
|
|
|
+ .eq(VideoLessonGroup::getDraftFlag, 0)
|
|
|
+ .eq(VideoLessonGroup::getLessonPrice, BigDecimal.ZERO)
|
|
|
+ .eq(VideoLessonGroup::getAuditVersion, 0)
|
|
|
+ .eq(VideoLessonGroup::getShelvesFlag, 1)
|
|
|
+ .list();
|
|
|
+ if (CollectionUtils.isEmpty(videoLessonGroups)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //给每个曲目设置增长值
|
|
|
+ String value = sysConfigService.findConfigValue(SysConfigConstant.VIDEO_VIRTUAL_NUMBER);
|
|
|
+ for (VideoLessonGroup videoLessonGroup : videoLessonGroups) {
|
|
|
+ int i = (int) (Math.random() * Integer.parseInt(value));
|
|
|
+ videoLessonGroup.setVirtualNumber(i +videoLessonGroup.getVirtualNumber());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存虚拟人数
|
|
|
+ this.updateBatchById(videoLessonGroups,100);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|