|
@@ -1,5 +1,6 @@
|
|
|
package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
+import java.text.MessageFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -130,7 +131,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
|
|
|
query.setSubjectIds(musicAlbum.getSubjectId());
|
|
|
|
|
|
// 判断专辑收费类型;非免费类型,只能添加平台曲目
|
|
|
- if (!ChargeTypeEnum.FREE.match(musicAlbum.getPaymentType())) {
|
|
|
+ /*if (!ChargeTypeEnum.FREE.match(musicAlbum.getPaymentType())) {
|
|
|
|
|
|
// 曲目来源
|
|
|
query.setSourceType(SourceTypeEnum.PLATFORM);
|
|
@@ -143,7 +144,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
|
|
|
query.setChargeType(ChargeTypeEnum.valueOf(musicAlbum.getPaymentType()));
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectAlbumDetailPage(page,query);
|
|
@@ -162,7 +163,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
|
|
|
}
|
|
|
|
|
|
// 付费专辑,需要校验是否已存在购买记录
|
|
|
- if (!ChargeTypeEnum.VIP.match(musicAlbum.getPaymentType())) {
|
|
|
+ /*if (!ChargeTypeEnum.VIP.match(musicAlbum.getPaymentType())) {
|
|
|
|
|
|
// 统计付费专辑的购买数量
|
|
|
Integer count = musicSheetPurchaseRecordMapper.selectCount(Wrappers.<MusicSheetPurchaseRecord>lambdaQuery()
|
|
@@ -172,7 +173,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
|
|
|
if (Optional.ofNullable(count).orElse(0) > 0) {
|
|
|
throw new BizException("当前专辑已有购买记录");
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
List<Long> musicSheetIdList = StringUtil.toLongList(musicSheetIds);
|
|
|
return albumMusicRelateService.delMusicSheet(albumId,musicSheetIdList);
|
|
@@ -238,14 +239,20 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
|
|
|
|
|
|
// 非付费类型,已添加曲目或者已购买,不允许修改付费方式
|
|
|
MusicAlbum album = getById(musicAlbum.getId());
|
|
|
+ if (Objects.isNull(album)) {
|
|
|
+ throw new BizException("无效的专辑ID");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 专辑从免费修改为付费方式,需要判断当前免费单曲数量
|
|
|
if (Objects.nonNull(musicAlbum.getPaymentType())
|
|
|
+ && ChargeTypeEnum.FREE.match(album.getPaymentType())
|
|
|
&& !album.getPaymentType().equals(musicAlbum.getPaymentType())) {
|
|
|
|
|
|
- Integer count = albumMusicRelateMapper.selectCount(Wrappers.<AlbumMusicRelate>lambdaQuery()
|
|
|
- .eq(AlbumMusicRelate::getAlbumId, musicAlbum.getId()));
|
|
|
+ Map<Long, Integer> collect = getBaseMapper().selectAlbumMusicSheetStatInfo(album.getId(), ChargeTypeEnum.FREE).stream()
|
|
|
+ .collect(Collectors.toMap(StatGroupWrapper::getId, StatGroupWrapper::getTotal, (o, n) -> n));
|
|
|
|
|
|
- if (Optional.ofNullable(count).orElse(0) > 0) {
|
|
|
- throw new BizException("当前专辑已添加曲目");
|
|
|
+ if (collect.getOrDefault(album.getId(), 0) > 2) {
|
|
|
+ throw new BizException(MessageFormat.format("当前专辑免费单曲数为 {0}, 已超过免费数量", collect.get(album.getId())));
|
|
|
}
|
|
|
}
|
|
|
|