소스 검색

Merge branch 'dev_v1.3.5_20220929' of http://git.dayaedu.com/yonge/cooleshow into dev_v1.3.5_20220929

Eric 2 년 전
부모
커밋
e956edb322

+ 2 - 2
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicAlbumController.java

@@ -127,7 +127,7 @@ public class MusicAlbumController extends BaseController {
     public HttpResponseResult<AlbumDetailVo> detail(@Valid @RequestBody MusicAlbumDetailSearch query) {
 
         query.setType(2);
-        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query),query);
+        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query, null, null);
         return succeed(albumDetailVo);
     }
 
@@ -142,7 +142,7 @@ public class MusicAlbumController extends BaseController {
 
         query.setType(1);
         query.setState(YesOrNoEnum.YES);
-        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query),query);
+        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query, null, null);
         return succeed(albumDetailVo);
     }
 

+ 4 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetDto;
 import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetSortDto;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch;
@@ -46,9 +47,11 @@ public interface MusicAlbumService extends IService<MusicAlbum> {
      *
      * @param page 分页信息
      * @param query 查询条件
+     * @param sysUser
+     * @param student
      * @return AlbumDetailVo
      */
-    AlbumDetailVo detail(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query);
+    AlbumDetailVo detail(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query, SysUser sysUser, ClientEnum client);
 
     /**
      * 删除专辑详情关联曲目

+ 18 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java

@@ -6,19 +6,17 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Optional;
 import java.util.stream.Collectors;
 
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.google.common.collect.Lists;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.AlbumMusicRelateDao;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetPurchaseRecordDao;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetPurchaseRecord;
 import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
+import com.yonge.cooleshow.biz.dal.service.MusicSheetPurchaseRecordService;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import org.apache.commons.collections.CollectionUtils;
 import org.slf4j.Logger;
@@ -84,6 +82,8 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
     @Autowired
     private AlbumMusicRelateDao albumMusicRelateMapper;
 
+    @Autowired
+    private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService;
 
     public MusicAlbumDao getDao() {
         return musicAlbumDao;
@@ -110,7 +110,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
     }
 
     @Override
-    public AlbumDetailVo detail(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query) {
+    public AlbumDetailVo detail(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query, SysUser sysUser, ClientEnum client) {
         MusicAlbumVo musicAlbum = baseMapper.selectMusicAlbumById(query.getId());
         if (musicAlbum == null) {
             throw  new BizException("未找到专辑信息");
@@ -158,6 +158,19 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         albumDetailVo.setMusicSheetList(PageUtil.pageInfo(musicSheetVoIPage));
 
         albumDetailVo.setMusicSheetCount((int) musicSheetVoIPage.getTotal());
+
+        if (sysUser == null) {
+            return albumDetailVo;
+        }
+
+        // 查询购买信息
+        MusicSheetPurchaseRecord purchaseRecord = musicSheetPurchaseRecordService.checkPurchase(
+                sysUser.getId(), query.getId(), client, PurchaseRecordTypeEnum.ALBUM);
+        if (purchaseRecord != null) {
+            albumDetailVo.setOrderStatus(purchaseRecord.getOrderStatus());
+            albumDetailVo.setOrderNo(purchaseRecord.getOrderNo());
+        }
+
         return albumDetailVo;
     }
 

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

@@ -318,6 +318,38 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 }
             }
         }
+
+        if (detail.getPlay().equals(YesOrNoEnum.YES)) {
+            return;
+        }
+
+        // 判断专辑购买
+
+        // 1 查询曲目所在的专辑
+        List<AlbumMusicRelate> albumMusicRelateList = albumMusicRelateService.lambdaQuery()
+                                                             .eq(AlbumMusicRelate::getMusicSheetId, detail.getId())
+                                                             .list();
+        if (CollectionUtils.isEmpty(albumMusicRelateList)) {
+            return;
+        }
+        List<Long> albumIdList = albumMusicRelateList.stream()
+                                                 .map(AlbumMusicRelate::getAlbumId)
+                                                 .collect(Collectors.toList());
+
+        // 2 检查是否购买过专辑
+        Integer count = musicSheetPurchaseRecordService.lambdaQuery()
+                                                       .eq(MusicSheetPurchaseRecord::getClientType, userType)
+                                                       .eq(MusicSheetPurchaseRecord::getOrderStatus,
+                                                           OrderStatusEnum.PAID)
+                                                       .in(MusicSheetPurchaseRecord::getMusicSheetId, albumIdList)
+                                                       .eq(MusicSheetPurchaseRecord::getPurchaseType,
+                                                           PurchaseRecordTypeEnum.ALBUM)
+                                                       .eq(MusicSheetPurchaseRecord::getStudentId, studentId)
+                                                       .count();
+        if (count >0) {
+            detail.setPlay(YesOrNoEnum.YES);
+        }
+
     }
 
     @Override

+ 11 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserBindingTeacherServiceImpl.java

@@ -132,18 +132,23 @@ public class UserBindingTeacherServiceImpl extends ServiceImpl<UserBindingTeache
             record.setSubjectName(userIdSubjectMap.get(record.getUserId()));
 
             List<UserBindingTeacherWrapper.CourseNum> courseNums = userIdCourseStatusMap.get(record.getUserId());
-            record.setCourseNum(courseNums.size());
+
             Integer endCourseNum = 0;
             Integer noStartCourseNum = 0;
-            for (UserBindingTeacherWrapper.CourseNum courseNum : courseNums) {
-                if (courseNum.getStatus().equals("COMPLETE")) {
-                    endCourseNum ++;
-                } else {
-                    noStartCourseNum ++;
+            record.setCourseNum(0);
+            if (!CollectionUtils.isEmpty(courseNums)) {
+                record.setCourseNum(courseNums.size());
+                for (UserBindingTeacherWrapper.CourseNum courseNum : courseNums) {
+                    if (courseNum.getStatus().equals("COMPLETE")) {
+                        endCourseNum++;
+                    } else {
+                        noStartCourseNum++;
+                    }
                 }
             }
             record.setEndCourseNum(endCourseNum);
             record.setNoStartCourseNum(noStartCourseNum);
+
         }
         bindingUserPage.setRecords(records);
         return bindingUserPage;

+ 23 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/AlbumDetailVo.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.PageInfo;
 import io.swagger.annotations.ApiModelProperty;
@@ -66,6 +67,28 @@ public class AlbumDetailVo {
     private List<String> musicPaymentTypes;
 
 
+    @ApiModelProperty("订单状态(WAIT_PAY:待支付;PAYING:支付中,PAID:已付款)")
+    private OrderStatusEnum orderStatus;
+
+    @ApiModelProperty("支付订单号")
+    private String orderNo;
+
+    public OrderStatusEnum getOrderStatus() {
+        return orderStatus;
+    }
+
+    public void setOrderStatus(OrderStatusEnum orderStatus) {
+        this.orderStatus = orderStatus;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
     public String getSubjectId() {
         return subjectId;
     }

+ 1 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicAlbumController.java

@@ -104,7 +104,7 @@ public class MusicAlbumController extends BaseController {
         query.setType(2);
         query.setState(YesOrNoEnum.YES);
         YesOrNoEnum yesOrNoEnum = musicAlbumService.checkFavorite(sysUser.getId(),query.getId(), ClientEnum.STUDENT);
-        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query);
+        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query,sysUser,ClientEnum.STUDENT);
         albumDetailVo.setFavorite(yesOrNoEnum);
 
         // 相关专辑

+ 1 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicAlbumController.java

@@ -111,7 +111,7 @@ public class MusicAlbumController extends BaseController {
         query.setType(2);
         query.setState(YesOrNoEnum.YES);
         YesOrNoEnum yesOrNoEnum = musicAlbumService.checkFavorite(sysUser.getId(),query.getId(), ClientEnum.TEACHER);
-        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query);
+        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query, sysUser,  ClientEnum.TEACHER);
         albumDetailVo.setFavorite(yesOrNoEnum);
 
         // 相关专辑

+ 1 - 1
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenMusicAlbumController.java

@@ -116,7 +116,7 @@ public class OpenMusicAlbumController extends BaseController {
         }
         query.setType(2);
         query.setState(YesOrNoEnum.YES);
-        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query);
+        AlbumDetailVo albumDetailVo = musicAlbumService.detail(PageUtil.getPage(query), query, null, null);
         albumDetailVo.setFavorite(favorite);
 
         // 热门专辑