浏览代码

Merge branch 'dev_v1.3.7_20221020' of http://git.dayaedu.com/yonge/cooleshow into dev_v1.3.7_20221020

liujunchi 2 年之前
父节点
当前提交
2cc7278bd7

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

@@ -202,7 +202,8 @@ public class CourseRelationMusicAlbumServiceImpl extends ServiceImpl<CourseRelat
                 // 补录用户购买赠送曲目、专辑
                 for (CourseRelationMusicAlbum item : entry.getValue()) {
 
-                    musicAlbumRecords.add(CourseRelationWrapper.MusicAlbumRecord.builder()
+                    musicAlbumRecords.add(CourseRelationWrapper.MusicAlbumRecord
+                            .builder()
                             .clientType(record.getOrderClient())
                             .musicSheetId(item.getMusicAlbumId())
                             .orderNo(record.getOrderNo())

+ 32 - 13
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonPurchaseRecordServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
@@ -37,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * VideoLessonPurchaseRecordService服务实现类
@@ -165,23 +167,40 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
                 .eq(CourseRelationMusicAlbum::getDelFlog, EStatus.ENABLE.getValue())
                 .list();
 
+        List<Long> giftIds = musicAlbums.stream()
+                .map(CourseRelationMusicAlbum::getId).distinct().collect(Collectors.toList());
+
+        Map<Long, Long> purchaseIdMap = Maps.newHashMap();
+        if (CollectionUtils.isNotEmpty(giftIds)) {
+
+            // 查询用户购买记录
+            purchaseIdMap = musicSheetPurchaseRecordService.lambdaQuery()
+                    .eq(MusicSheetPurchaseRecord::getStudentId, orderParam.getUserId())
+                    .eq(MusicSheetPurchaseRecord::getOrderStatus, OrderStatusEnum.PAID)
+                    .in(MusicSheetPurchaseRecord::getCourseMusicAlbumId, giftIds)
+                    .list().stream()
+                    .collect(Collectors.toMap(MusicSheetPurchaseRecord::getCourseMusicAlbumId, MusicSheetPurchaseRecord::getId, (o, n) -> n));
+        }
+
         List<CourseRelationWrapper.MusicAlbumRecord> musicAlbumRecords = Lists.newArrayList();
 
         for (CourseRelationMusicAlbum item : musicAlbums) {
 
-            musicAlbumRecords.add(CourseRelationWrapper.MusicAlbumRecord.builder()
-                            .clientType(orderParam.getOrderClient())
-                            .musicSheetId(item.getMusicAlbumId())
-                            .orderNo(orderParam.getOrderNo())
-                            .purchasePrice(BigDecimal.ZERO)
-                            .purchaseTime(DateTime.now().toDate())
-                            .teacherId(orderParam.getMerchId())
-                            .originalPrice(BigDecimal.ZERO)
-                            .musicSheetServiceFee(BigDecimal.ZERO)
-                            .orderStatus(OrderStatusEnum.PAID)
-                            .studentId(orderParam.getUserId())
-                            .purchaseType(PurchaseRecordTypeEnum.valueOf(item.getRelationType().getCode()))
-                            .courseMusicAlbumId(item.getId())
+            musicAlbumRecords.add(CourseRelationWrapper.MusicAlbumRecord
+                    .builder()
+                    .clientType(orderParam.getOrderClient())
+                    .musicSheetId(item.getMusicAlbumId())
+                    .orderNo(orderParam.getOrderNo())
+                    .purchasePrice(BigDecimal.ZERO)
+                    .purchaseTime(DateTime.now().toDate())
+                    .teacherId(orderParam.getMerchId())
+                    .originalPrice(BigDecimal.ZERO)
+                    .musicSheetServiceFee(BigDecimal.ZERO)
+                    .orderStatus(OrderStatusEnum.PAID)
+                    .studentId(orderParam.getUserId())
+                    .purchaseType(PurchaseRecordTypeEnum.valueOf(item.getRelationType().getCode()))
+                    .id(purchaseIdMap.get(item.getId()))
+                    .courseMusicAlbumId(item.getId())
                     .build());
         }