Explorar o código

Merge remote-tracking branch 'origin/dev_1_2_20220802' into dev_1_2_20220802

liweifan %!s(int64=3) %!d(string=hai) anos
pai
achega
64a8db63db
Modificáronse 16 ficheiros con 128 adicións e 21 borrados
  1. 4 3
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicAlbumController.java
  2. 38 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicAlbumSheetDto.java
  3. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java
  4. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java
  5. 4 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuthStatusEnum.java
  6. 3 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/AlbumMusicRelateService.java
  7. 5 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java
  8. 10 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/AlbumMusicRelateServiceImpl.java
  9. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  10. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java
  11. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  12. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java
  13. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupVo.java
  14. 8 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml
  15. 2 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  16. 4 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

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

@@ -17,6 +17,7 @@ import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.util.StringUtil;
 import io.swagger.annotations.*;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -176,10 +177,10 @@ public class MusicAlbumController extends BaseController {
         if (StringUtil.isEmpty(query.getAlbumId())) {
             return failed("专辑编号ID不能为空");
         }
-        if (StringUtil.isEmpty(query.getMusicSheetIds())) {
-            return failed("曲目编号不能为空");
+        if (CollectionUtils.isEmpty(query.getAlbumMusicList())) {
+            return failed("曲目不能为空");
         }
-        return status(musicAlbumService.addMusicSheet(query.getAlbumId(),query.getMusicSheetIds(),sysUser.getId()));
+        return status(musicAlbumService.addMusicSheet(query.getAlbumId(),query.getAlbumMusicList(),sysUser.getId()));
     }
 
 }

+ 38 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicAlbumSheetDto.java

@@ -3,6 +3,8 @@ package com.yonge.cooleshow.biz.dal.dto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.List;
+
 /**
  * Description 专辑新增或删除曲目
  *
@@ -15,9 +17,12 @@ public class MusicAlbumSheetDto {
     @ApiModelProperty("专辑id")
     private Long albumId;
 
-    @ApiModelProperty("曲目id,多个逗号隔开")
+    @ApiModelProperty("曲目id,多个逗号隔开 (删除专辑内的曲目使用)")
     private String musicSheetIds;
 
+    @ApiModelProperty("曲目id,多个逗号隔开 (添加专辑内的曲目使用)")
+    private List<AlbumMusic> albumMusicList;
+
 
     public Long getAlbumId() {
         return albumId;
@@ -34,4 +39,36 @@ public class MusicAlbumSheetDto {
     public void setMusicSheetIds(String musicSheetIds) {
         this.musicSheetIds = musicSheetIds;
     }
+
+    public List<AlbumMusic> getAlbumMusicList() {
+        return albumMusicList;
+    }
+
+    public void setAlbumMusicList(List<AlbumMusic> albumMusicList) {
+        this.albumMusicList = albumMusicList;
+    }
+
+    public static class AlbumMusic{
+        @ApiModelProperty("曲目id")
+        private Long musicSheetId;
+
+        @ApiModelProperty("排序")
+        private Integer sortNumber;
+
+        public Long getMusicSheetId() {
+            return musicSheetId;
+        }
+
+        public void setMusicSheetId(Long musicSheetId) {
+            this.musicSheetId = musicSheetId;
+        }
+
+        public Integer getSortNumber() {
+            return sortNumber;
+        }
+
+        public void setSortNumber(Integer sortNumber) {
+            this.sortNumber = sortNumber;
+        }
+    }
 }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java

@@ -64,6 +64,10 @@ public class CourseGroup implements Serializable {
     @ApiModelProperty(value = "课程组状态 ING进行中 COMPLETE已完成 DISSOLVE-未成课(解散课程) CANCEL已取消-未开始报名前可取消 APPLY报名中 NOT_SALE未开售")
     private String status;
 
+    @TableField("reason_")
+    @ApiModelProperty(value = "曲目停用原因")
+    private String reason;
+
     @TableField("sales_start_date_")
     @ApiModelProperty(value = "课程组售卖开始日期")
     private Date salesStartDate;
@@ -112,6 +116,14 @@ public class CourseGroup implements Serializable {
     @ApiModelProperty(value = "更新时间")
     private Date updatedTime;
 
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
     public Long getId() {
         return id;
     }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java

@@ -93,6 +93,10 @@ public class MusicSheet implements Serializable {
 	@ApiModelProperty(value = "曲目状态(0:停用,1:启用)")
 	private YesOrNoEnum state;
 
+	@TableField("reason_")
+	@ApiModelProperty(value = "曲目停用原因")
+	private String reason;
+
     @TableField("audit_status_")
     @ApiModelProperty(value = "审核状态(DOING:待审核;PASS:通过;UNPASS:未通过)")
     private AuthStatusEnum auditStatus;
@@ -179,6 +183,14 @@ public class MusicSheet implements Serializable {
 	@ApiModelProperty(value = "假删除标识 0:未删除 1:已删除")
 	private Boolean delFlag;
 
+	public String getReason() {
+		return reason;
+	}
+
+	public void setReason(String reason) {
+		this.reason = reason;
+	}
+
 	public String getExtConfigJson() {
 		return extConfigJson;
 	}

+ 4 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/AuthStatusEnum.java

@@ -13,7 +13,10 @@ public enum AuthStatusEnum implements BaseEnum<String, AuthStatusEnum> {
     UNPAALY("未申请"),
     DOING("审核中"),
     PASS("通过"),
-    UNPASS("不通过");
+    UNPASS("不通过"),
+    OUT_SALE("下架"), // 曲目前台传参,转换
+
+    ;
     @EnumValue
     private String code;
     private String name;

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/AlbumMusicRelateService.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetDto;
 import com.yonge.cooleshow.biz.dal.entity.AlbumMusicRelate;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -26,11 +27,11 @@ public interface AlbumMusicRelateService extends IService<AlbumMusicRelate> {
      * 添加专辑关联曲目关系
      *
      * @param albumId 专辑第
-     * @param musicSheetIdList 曲目id集合
+     * @param albumMusicList 曲目集合
      * @param userId 操作用户id
      * @return boolean
      */
-    boolean addMusicSheet(Long albumId, List<Long> musicSheetIdList, Long userId);
+    boolean addMusicSheet(Long albumId, List<MusicAlbumSheetDto.AlbumMusic> albumMusicList, Long userId);
 
     /**
      * 删除曲目与专辑关联

+ 5 - 2
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.biz.dal.dto.MusicAlbumSheetDto;
 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;
@@ -11,6 +12,8 @@ import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 
+import java.util.List;
+
 /**
  * MusicAlbumService服务类
  * @author yzp
@@ -58,11 +61,11 @@ public interface MusicAlbumService extends IService<MusicAlbum> {
      * 添加专辑详情关联曲目
      *
      * @param albumId 专辑id
-     * @param musicSheetIds 曲目id
+     * @param albumMusicList 曲目
      * @param userId 操作用户id
      * @return boolean
      */
-    boolean addMusicSheet(Long albumId, String musicSheetIds, Long userId);
+    boolean addMusicSheet(Long albumId, List<MusicAlbumSheetDto.AlbumMusic> albumMusicList, Long userId);
 
     /**
      * 创建专辑

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

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.AlbumMusicRelateDao;
+import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetDto;
 import com.yonge.cooleshow.biz.dal.entity.AlbumMusicRelate;
 import com.yonge.cooleshow.biz.dal.service.AlbumMusicRelateService;
 import org.slf4j.Logger;
@@ -49,7 +50,10 @@ public class AlbumMusicRelateServiceImpl extends ServiceImpl<AlbumMusicRelateDao
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean addMusicSheet(Long albumId, List<Long> musicSheetIdList, Long userId) {
+    public boolean addMusicSheet(Long albumId, List<MusicAlbumSheetDto.AlbumMusic> albumMusicList, Long userId) {
+        List<Long> musicSheetIdList = albumMusicList.stream()
+                                           .map(MusicAlbumSheetDto.AlbumMusic::getMusicSheetId)
+                                           .collect(Collectors.toList());
         List<AlbumMusicRelate> list = this.lambdaQuery()
                                           .eq(AlbumMusicRelate::getAlbumId, albumId)
                                           .in(AlbumMusicRelate::getMusicSheetId, musicSheetIdList)
@@ -57,12 +61,13 @@ public class AlbumMusicRelateServiceImpl extends ServiceImpl<AlbumMusicRelateDao
         List<Long> musicSheetIds = list.stream().map(AlbumMusicRelate::getMusicSheetId).collect(Collectors.toList());
 
         // 去除已有的曲目
-        List<AlbumMusicRelate> albumMusicRelateList = musicSheetIdList.stream()
-                                                                      .filter(id -> !musicSheetIds.contains(id))
-                                                                      .map(id -> {
+        List<AlbumMusicRelate> albumMusicRelateList = albumMusicList.stream()
+                                                                      .filter(albumMusic -> !musicSheetIds.contains(albumMusic.getMusicSheetId()))
+                                                                      .map(albumMusic -> {
             AlbumMusicRelate albumMusicRelate = new AlbumMusicRelate();
             albumMusicRelate.setAlbumId(albumId);
-            albumMusicRelate.setMusicSheetId(id);
+            albumMusicRelate.setMusicSheetId(albumMusic.getMusicSheetId());
+            albumMusicRelate.setSortNumber(albumMusic.getSortNumber());
             albumMusicRelate.setCreateTime(new Date());
             albumMusicRelate.setCreateBy(userId);
             return albumMusicRelate;

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

@@ -1299,7 +1299,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         } else {
             liveCourseGroupVo.setStatus(CourseGroupEnum.APPLY.getCode());
         }
-
+        liveCourseGroupVo.setReason(dto.getReason());
 
         return this.updateById(liveCourseGroupVo);
     }

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.MusicAlbumDao;
+import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetDto;
 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;
@@ -118,13 +119,12 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean addMusicSheet(Long albumId, String musicSheetIds, Long userId) {
+    public boolean addMusicSheet(Long albumId, List<MusicAlbumSheetDto.AlbumMusic> albumMusicList, Long userId) {
         MusicAlbum musicAlbum = this.getById(albumId);
         if (musicAlbum == null) {
             throw  new BizException("未找到专辑信息");
         }
-        List<Long> musicSheetIdList = StringUtil.toLongList(musicSheetIds);
-        return albumMusicRelateService.addMusicSheet(albumId,musicSheetIdList,userId);
+        return albumMusicRelateService.addMusicSheet(albumId,albumMusicList,userId);
     }
 
     @Override

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

@@ -152,6 +152,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             sendOutSaleMessage(reason, musicSheet);
 
         }
+        musicSheet.setReason(reason);
         return this.updateById(musicSheet);
 
     }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java

@@ -79,6 +79,17 @@ public class CourseGroupVo implements Serializable {
     @ApiModelProperty(value = "当前学生有没有购买该课程组   0没有购买    1已经购买过 ")
     private Integer existBuy;
 
+    @ApiModelProperty("下架原因")
+    private String reason;
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupVo.java

@@ -63,6 +63,16 @@ public class LiveCourseGroupVo {
     @ApiModelProperty(value = "类型 practice陪练课 live直播课")
     private String type;
 
+    @ApiModelProperty("下架原因")
+    private String reason;
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
     public String getType() {
         return type;
     }

+ 8 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -24,25 +24,26 @@
         <result column="updated_time_" jdbcType="TIMESTAMP" property="updatedTime"/>
         <result column="pre_student_num_" jdbcType="INTEGER" property="preStudentNum"/>
         <result column="im_group_id_" jdbcType="VARCHAR" property="imGroupId"/>
+        <result column="reason_" jdbcType="VARCHAR" property="reason"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id_
-        , type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_, complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_, sales_end_date_, background_pic_, mix_student_num_,pre_student_num_, im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_
+        , type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_, complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_, sales_end_date_, background_pic_, mix_student_num_,pre_student_num_, im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_,reason_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.CourseGroup">
         insert into course_group(type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_,
         complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_, sales_end_date_, background_pic_,
-        mix_student_num_,pre_student_num_,im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_)
+        mix_student_num_,pre_student_num_,im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_,reason_)
         values
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.type}, #{entity.teacherId}, #{entity.name}, #{entity.subjectId}, #{entity.singleCourseMinutes},
             #{entity.courseNum}, #{entity.completeCourseNum}, #{entity.courseIntroduce}, #{entity.coursePrice}, #{entity.status},
             #{entity.salesStartDate}, #{entity.salesEndDate}, #{entity.backgroundPic}, #{entity.mixStudentNum},
             #{entity.preStudentNum},#{entity.imGroupId},#{entity.courseStartTime}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedBy},
-            #{entity.updatedTime})
+            #{entity.updatedTime},#{entity.reason})
         </foreach>
     </insert>
 
@@ -65,6 +66,7 @@
         b.sales_end_date_             as salesEndDate,
         b.mix_student_num_            as mixStudentNum,
         b.im_group_id_              as imGroupId,
+        b.reason_ as                   reason,
         0  as existBuy
         from course_group as b
         left join subject as s on b.subject_id_ = s.id_
@@ -111,6 +113,7 @@
                         b.sales_end_date_             as salesEndDate,
                         b.mix_student_num_            as mixStudentNum,
                         b.im_group_id_                as imGroupId,
+                        b.reason_ as                   reason,
                         if(y.status_ = 'PAID', 1, 0)  as existBuy
         from course_group as b
                  left join subject as s on b.subject_id_ = s.id_
@@ -150,6 +153,8 @@
     <select id="selectAdminLivePage" resultType="com.yonge.cooleshow.biz.dal.vo.LiveCourseGroupVo">
         select distinct
         cg.id_ as courseGroupId,
+
+        cg.reason_ as                   reason,
         cg.name_ as name,
         cg.complete_course_num_ as endCourseNum,
         if(cg.complete_course_num_ = 0 ,cg.course_num_,cg.course_num_ - cg.complete_course_num_) as noStartCourseNum,

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

@@ -62,6 +62,7 @@
         t.source_type_ as sourceType,
         t.submit_audit_time_ as submitAuditTime,
         t.remark_ as remark,
+        t.reason_ as reason,
         t.notation_ as notation
     </sql>
 
@@ -238,6 +239,7 @@
         <result column="userName" jdbcType="VARCHAR" property="userName"/>
         <result column="auditVersion" jdbcType="VARCHAR" property="auditVersion"/>
         <result column="code" jdbcType="VARCHAR" property="code"/>
+        <result column="reason" jdbcType="VARCHAR" property="reason"/>
         <result column="notation" jdbcType="VARCHAR" property="notation"/>
         <collection property="background" ofType="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
             <id column="accompanimentId" jdbcType="BIGINT" property="id"/>

+ 4 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

@@ -130,6 +130,10 @@ public class MusicSheetController extends BaseController {
             if (query.getAuditStatus() != null && AuthStatusEnum.PASS.getCode().equals(query.getAuditStatus().getCode())) {
                 query.setState(YesOrNoEnum.YES);
             }
+            if (query.getAuditStatus() != null && AuthStatusEnum.OUT_SALE.getCode().equals(query.getAuditStatus().getCode())) {
+                query.setState(YesOrNoEnum.NO);
+                query.setAuditStatus(AuthStatusEnum.PASS);
+            }
             query.setSourceType(SourceTypeEnum.TEACHER);
             query.setMyself(true);
         } else {