Browse Source

Merge branch 'dev_v1.3.7_20221020'

Eric 3 years ago
parent
commit
3cda78d333

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

@@ -950,6 +950,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         musicSheetPurchaseRecord.setOrderStatus(OrderStatusEnum.PAID);
         musicSheetPurchaseRecord.setOrderStatus(OrderStatusEnum.PAID);
         musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
         musicSheetPurchaseRecord.setStudentId(userOrderDetailVo.getUserId());
         musicSheetPurchaseRecord.setPurchaseType(PurchaseRecordTypeEnum.valueOf(userOrderDetailVo.getGoodType().getCode()));
         musicSheetPurchaseRecord.setPurchaseType(PurchaseRecordTypeEnum.valueOf(userOrderDetailVo.getGoodType().getCode()));
+        musicSheetPurchaseRecord.setCourseMusicAlbumId(0L);
         musicSheetPurchaseRecordService.saveOrUpdate(musicSheetPurchaseRecord);
         musicSheetPurchaseRecordService.saveOrUpdate(musicSheetPurchaseRecord);
     }
     }
 
 

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

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.Lists;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
@@ -12,15 +13,20 @@ import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.dao.VideoLessonPurchaseRecordDao;
 import com.yonge.cooleshow.biz.dal.dao.VideoLessonPurchaseRecordDao;
 import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.enums.*;
+import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseRelationWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.enums.EStatus;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
 import com.yonge.cooleshow.common.enums.PostStatusEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.utils.obj.ObjectUtil;
 import com.yonge.toolset.utils.obj.ObjectUtil;
+import org.apache.commons.collections.CollectionUtils;
+import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -60,6 +66,10 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
     private SysMessageService sysMessageService;
     private SysMessageService sysMessageService;
     @Autowired
     @Autowired
     private UserOrderService userOrderService;
     private UserOrderService userOrderService;
+    @Autowired
+    private CourseRelationMusicAlbumService courseRelationMusicAlbumService;
+    @Autowired
+    private MusicSheetPurchaseRecordService musicSheetPurchaseRecordService;
 
 
     public VideoLessonPurchaseRecordDao getDao() {
     public VideoLessonPurchaseRecordDao getDao() {
         return videoLessonPurchaseRecordDao;
         return videoLessonPurchaseRecordDao;
@@ -148,6 +158,42 @@ public class VideoLessonPurchaseRecordServiceImpl extends ServiceImpl<VideoLesso
         //记录流水
         //记录流水
         addTeacherAccount(orderParam, lessonGroup);
         addTeacherAccount(orderParam, lessonGroup);
         videoSend(lessonGroup.getTeacherId(), purchaseRecord.getStudentId(), lessonGroup);
         videoSend(lessonGroup.getTeacherId(), purchaseRecord.getStudentId(), lessonGroup);
+
+        // 赠品曲目、专辑插入用户曲目购买记录表
+        List<CourseRelationMusicAlbum> musicAlbums = courseRelationMusicAlbumService.lambdaQuery()
+                .eq(CourseRelationMusicAlbum::getCourseGroupId, lessonGroup.getId())
+                .eq(CourseRelationMusicAlbum::getDelFlog, EStatus.ENABLE.getValue())
+                .list();
+
+        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())
+                    .build());
+        }
+
+        if (CollectionUtils.isNotEmpty(musicAlbumRecords)) {
+
+            List<MusicSheetPurchaseRecord> records = JSON.parseArray(JSON.toJSONString(musicAlbums),
+                    MusicSheetPurchaseRecord.class);
+
+            // 批量插入课程赠送曲目、专辑数据
+            musicSheetPurchaseRecordService.saveBatch(records, 30);
+        }
+
     }
     }
 
 
     /**
     /**

+ 53 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/course/CourseRelationWrapper.java

@@ -1,9 +1,10 @@
 package com.yonge.cooleshow.biz.dal.wrapper.course;
 package com.yonge.cooleshow.biz.dal.wrapper.course;
 
 
-import com.baomidou.mybatisplus.annotation.TableField;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.course.RelationMusicAlbumEnum;
 import com.yonge.cooleshow.biz.dal.enums.course.RelationMusicAlbumEnum;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Builder;
@@ -11,6 +12,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 
 /**
 /**
  * 课程关联曲目、专辑信息
  * 课程关联曲目、专辑信息
@@ -62,4 +64,53 @@ public class CourseRelationWrapper {
             return this;
             return this;
         }
         }
     }
     }
+
+    /**
+     * 课程赠送曲目、专辑信息
+     */
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class MusicAlbumRecord implements Serializable {
+
+        @ApiModelProperty(value = "主键id")
+        private Long id;  //主键ID
+
+        @ApiModelProperty(value = "曲谱ID")
+        private Long musicSheetId;  //曲谱ID
+
+        @ApiModelProperty(value = "老师ID")
+        private Long teacherId;  //老师ID
+
+        @ApiModelProperty(value = "订单流水号")
+        private String orderNo;  //订单流水号
+
+        @ApiModelProperty(value = "用户类型 TEACHER:老师,STUDENT:学生")
+        private ClientEnum clientType;
+
+        @ApiModelProperty(value = "学生ID")
+        private Long studentId;  //学生ID
+
+        @ApiModelProperty(value = "购买时间")
+        private java.util.Date purchaseTime;  //购买时间
+
+        @ApiModelProperty(value = "购买价格")
+        private java.math.BigDecimal purchasePrice;  //购买价格
+
+        @ApiModelProperty(value = "原价")
+        private BigDecimal originalPrice;
+
+        @ApiModelProperty("服务费")
+        private BigDecimal musicSheetServiceFee;
+
+        @ApiModelProperty(value = "订单状态(WAIT_PAY:待支付;PAYING:支付中,PAID:已付款)")
+        private OrderStatusEnum orderStatus;  //订单状态(1:已完成;0:取消)
+
+        @ApiModelProperty(value = "课程关联曲目专辑ID")
+        private  Long courseMusicAlbumId;
+
+        @ApiModelProperty("购买类型 ")
+        private PurchaseRecordTypeEnum purchaseType;
+    }
 }
 }

+ 1 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml

@@ -337,6 +337,7 @@
 			u.real_name_ AS realName,
 			u.real_name_ AS realName,
 			u.avatar_ AS avatar,
 			u.avatar_ AS avatar,
 			g.audit_version_ as auditVersion,
 			g.audit_version_ as auditVersion,
+			g.relation_type_ as relationType,
 			(SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.video_lesson_group_id_ AND r.order_status_='PAID') AS countStudent
 			(SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.video_lesson_group_id_ AND r.order_status_='PAID') AS countStudent
 		FROM video_lesson_purchase_record pr
 		FROM video_lesson_purchase_record pr
 		left join (
 		left join (

+ 1 - 1
service.md

@@ -7,7 +7,7 @@
 - [ ] task-server
 - [ ] task-server
 - [ ] websocket-server
 - [ ] websocket-server
 - [ ] audio-analysis
 - [ ] audio-analysis
-- [x] bbs-server
+- [ ] bbs-server
 - [ ] classroom-server
 - [ ] classroom-server
 - [ ] cms-server
 - [ ] cms-server
 - [ ] mall-admin
 - [ ] mall-admin