Sfoglia il codice sorgente

专辑购买记录

liujunchi 2 anni fa
parent
commit
e0dfd058b0

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

@@ -8,11 +8,19 @@ import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetSortDto;
 import com.yonge.cooleshow.biz.dal.dto.AdjustModel;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicAlbumSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
+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.service.MusicAlbumService;
+import com.yonge.cooleshow.biz.dal.vo.StudentMusicAlbumOrderVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentMusicSheetOrderVo;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.base.page.QueryInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
@@ -237,6 +245,15 @@ public class MusicAlbumController extends BaseController {
         return succeed();
     }
 
+    /**
+     * 学生详情-乐谱
+     */
+    @PostMapping(value = "/student", consumes="application/json", produces="application/json")
+    @ApiOperation(value = "学生详情-乐谱", httpMethod="POST", consumes="application/json", produces="application/json")
+    @PreAuthorize("@pcs.hasPermissions('music/sheet/student')")
+    public HttpResponseResult<PageInfo<StudentMusicAlbumOrderVo>> student(@Valid @RequestBody StudentMusicSheetOrderSearch query) {
+        return succeed(PageUtil.pageInfo(musicAlbumService.selectStudentOrderPage(PageUtil.getPage(query),query)));
+    }
 
 
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicAlbumDao.java

@@ -3,11 +3,13 @@ package com.yonge.cooleshow.biz.dal.dao;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicAlbumSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentMusicAlbumOrderVo;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -74,4 +76,7 @@ public interface MusicAlbumDao extends BaseMapper<MusicAlbum> {
      * @return List<StatGroupWrapper>
      */
     List<StatGroupWrapper> selectAlbumMusicSheetStatInfo(@Param("albumId") Long albumId, @Param("paymentType") ChargeTypeEnum paymentType);
+
+    List<StudentMusicAlbumOrderVo> selectStudentOrderPage(@Param("page") IPage<StudentMusicAlbumOrderVo> page, @Param(
+            "param") StudentMusicSheetOrderSearch query);
 }

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentMusicSheetOrderSearch.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import com.yonge.toolset.base.util.StringUtil;

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java

@@ -8,12 +8,15 @@ import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetSortDto;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicAlbumSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentMusicAlbumOrderVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentMusicSheetOrderVo;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 
 import java.util.List;
@@ -147,4 +150,6 @@ public interface MusicAlbumService extends IService<MusicAlbum> {
      * 专辑分享分润
      */
     ShareProfitVo albumShareProfit(SysUser sysUser, Long albumId);
+
+    IPage<StudentMusicAlbumOrderVo>  selectStudentOrderPage(IPage<StudentMusicAlbumOrderVo> page, StudentMusicSheetOrderSearch query);
 }

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

@@ -9,6 +9,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
@@ -21,6 +22,7 @@ import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetPurchaseRecordService;
+import com.yonge.cooleshow.biz.dal.vo.StudentMusicAlbumOrderVo;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.common.enums.ActivityShareEnum;
 import org.apache.commons.collections.CollectionUtils;
@@ -406,6 +408,11 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         return shareProfitVo;
     }
 
+    @Override
+    public IPage<StudentMusicAlbumOrderVo>  selectStudentOrderPage(IPage<StudentMusicAlbumOrderVo> page, StudentMusicSheetOrderSearch query) {
+        return page.setRecords(baseMapper.selectStudentOrderPage(page, query));
+    }
+
     private boolean checkNameRepeat(String albumName, Long id) {
         LambdaQueryChainWrapper<MusicAlbum> eq = this.lambdaQuery()
                                                      .eq(MusicAlbum::getDelFlag,0)

+ 92 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentMusicAlbumOrderVo.java

@@ -0,0 +1,92 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * Description 学生曲目订单展示
+ *
+ * @author liujunchi
+ * @date 2022-04-02
+ */
+public class StudentMusicAlbumOrderVo {
+
+    @ApiModelProperty(value = "曲谱id")
+    private Long  musicAlbumId;
+
+    @ApiModelProperty(value = "曲谱名称")
+    private String musicAlbumName;  //曲谱名称
+
+    @ApiModelProperty(value = "封面图")
+    private String titleImg;  //曲谱名称
+
+    @ApiModelProperty("曲目分类名")
+    private String TagNames;
+
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal purchasePrice;
+
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "购买时间")
+    private Date purchaseTime;
+
+    public Long getMusicAlbumId() {
+        return musicAlbumId;
+    }
+
+    public void setMusicAlbumId(Long musicAlbumId) {
+        this.musicAlbumId = musicAlbumId;
+    }
+
+    public String getMusicAlbumName() {
+        return musicAlbumName;
+    }
+
+    public void setMusicAlbumName(String musicAlbumName) {
+        this.musicAlbumName = musicAlbumName;
+    }
+
+    public String getTitleImg() {
+        return titleImg;
+    }
+
+    public void setTitleImg(String titleImg) {
+        this.titleImg = titleImg;
+    }
+
+    public String getTagNames() {
+        return TagNames;
+    }
+
+    public void setTagNames(String tagNames) {
+        TagNames = tagNames;
+    }
+
+    public BigDecimal getPurchasePrice() {
+        return purchasePrice;
+    }
+
+    public void setPurchasePrice(BigDecimal purchasePrice) {
+        this.purchasePrice = purchasePrice;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public Date getPurchaseTime() {
+        return purchaseTime;
+    }
+
+    public void setPurchaseTime(Date purchaseTime) {
+        this.purchaseTime = purchaseTime;
+    }
+}

+ 38 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml

@@ -288,5 +288,42 @@
         GROUP BY t1.album_id_
     </select>
     <!--专辑曲目付费方式统计-->
-
+    <select id="selectStudentOrderPage" resultType="com.yonge.cooleshow.biz.dal.vo.StudentMusicAlbumOrderVo">
+        select mspr.music_sheet_id_ as musicAlbumId
+        ,ms.album_name_ as musicAlbumName
+        ,ms.album_cover_url_ as titleImg
+        ,(select group_concat(mt.name_) from music_tag mt
+        where find_in_set(mt.id_,ms.album_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as TagNames
+        ,mspr.purchase_price_ as purchasePrice
+        ,mspr.order_no_ as orderNo
+        ,mspr.purchase_time_ as purchaseTime
+        from music_sheet_purchase_record mspr
+        left join music_album ms on mspr.music_sheet_id_ = ms.id_
+        <where>
+            mspr.order_status_ = 'PAID' and mspr.purchase_type_ = 'ALBUM'
+            <if test="param.idAndName != null and param.idAndName != ''">
+                and (ms.id_ like concat('%',#{param.idAndName} ,'%')
+                or ms.album_name_ like concat('%',#{param.idAndName},'%'))
+            </if>
+            <if test="param.studentId != null">
+                and mspr.student_id_ = #{param.studentId}
+            </if>
+            <if test="param.orderNo != null and param.orderNo != ''">
+                and mspr.order_no_ = #{param.orderNo}
+            </if>
+            <if test="param.musicTagList != null and param.musicTagList.size() != 0">
+                and
+                <foreach collection="param.musicTagList" separator="or" item="item"  open="(" close=")" >
+                    find_in_set(#{item},ms.album_tag_)
+                </foreach>
+            </if>
+            <if test="param.startTime != null">
+                and mspr.purchase_time_ &gt; #{param.startTime}
+            </if>
+            <if test="param.endTime != null">
+                and mspr.purchase_time_ &lt; #{param.endTime}
+            </if>
+        </where>
+        order by mspr.id_ desc
+    </select>
 </mapper>

+ 1 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -459,7 +459,7 @@
         from music_sheet_purchase_record mspr
         left join music_sheet ms on mspr.music_sheet_id_ = ms.id_
         <where>
-            mspr.order_status_ = 'PAID'
+            mspr.order_status_ = 'PAID' and mspr.purchase_type_ = 'MUSIC'
             <if test="param.idAndName != null and param.idAndName != ''">
                 and (ms.id_ like concat('%',#{param.idAndName} ,'%')
                     or ms.music_sheet_name_ like concat('%',#{param.idAndName},'%'))
@@ -482,9 +482,6 @@
             <if test="param.endTime != null">
                 and mspr.purchase_time_ &lt; #{param.endTime}
             </if>
-            <if test="param.delFlag != null">
-                and ms.del_flag_ = #{param.delFlag}
-            </if>
         </where>
         order by mspr.id_ desc
     </select>

+ 2 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupLogMapper.xml

@@ -49,8 +49,8 @@
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO
 		video_lesson_group_log
-		(id_,video_lesson_group_id_,lesson_name_,lesson_subject_,lesson_desc_,lesson_price_,lesson_cover_url_,teacher_id_,lesson_count_,sort_number_,lesson_tag_,top_flag_,hot_flag_,shelves_flag_,shelves_time_,shelves_reason_,shelves_id_,modifier_id_,remarks,audit_version_,create_time_,update_time_,version_,video_detail_json_)
-		VALUES(#{id},#{videoLessonGroupId},#{lessonName},#{lessonSubject},#{lessonDesc},#{lessonPrice},#{lessonCoverUrl},#{teacherId},#{lessonCount},#{sortNumber},#{lessonTag},#{topFlag},#{hotFlag},#{shelvesFlag},#{shelvesTime},#{shelvesReason},#{shelvesId},#{modifierId},#{remarks},#{auditVersion},#{createTime},#{updateTime},#{version},#{videoDetailJson})
+		(id_,video_lesson_group_id_,lesson_name_,lesson_subject_,lesson_desc_,lesson_price_,lesson_cover_url_,teacher_id_,lesson_count_,sort_number_,lesson_tag_,top_flag_,hot_flag_,shelves_flag_,shelves_time_,shelves_reason_,shelves_id_,modifier_id_,remarks,audit_version_,create_time_,update_time_,version_,video_detail_json_,draft_flag_,relation_type_)
+		VALUES(#{id},#{videoLessonGroupId},#{lessonName},#{lessonSubject},#{lessonDesc},#{lessonPrice},#{lessonCoverUrl},#{teacherId},#{lessonCount},#{sortNumber},#{lessonTag},#{topFlag},#{hotFlag},#{shelvesFlag},#{shelvesTime},#{shelvesReason},#{shelvesId},#{modifierId},#{remarks},#{auditVersion},#{createTime},#{updateTime},#{version},#{videoDetailJson},#{draftFlag},#{relationType})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->