Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

liweifan 3 gadi atpakaļ
vecāks
revīzija
8598230fa1
16 mainītis faili ar 224 papildinājumiem un 31 dzēšanām
  1. 0 6
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java
  2. 28 3
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/OmsPortalOrderController.java
  3. 26 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicAlbumSearch.java
  4. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicAlbum.java
  5. 50 18
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  6. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java
  7. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  8. 23 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/AlbumDetailVo.java
  9. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MusicAlbumVo.java
  10. 28 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml
  11. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  12. 4 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml
  13. 11 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicAlbumController.java
  14. 20 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java
  15. 1 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java
  16. 3 1
      toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/util/DistributedLock.java

+ 0 - 6
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java

@@ -140,12 +140,6 @@ public interface SysConfigConstant {
      * @updateTime 2022/4/20 11:43
      */
     String GOOD_LOGO_PIANO_ROOM = "good_logo_piano_room";
-    /***
-     * 陪练课&直播课老师课程结算日期(天)
-     * @author cy
-     * @updateTime 2022/5/24 10:03
-     */
-    String COURSE_SALARY_SETTLEMENT_DAY = "course_salary_settlement_day";
 
     /**
      * 琴房学员解绑未上课天数

+ 28 - 3
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/OmsPortalOrderController.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.portal.domain.ConfirmOrderResult;
 import com.yonge.cooleshow.portal.domain.OmsOrderDetail;
 import com.yonge.cooleshow.portal.domain.OrderParam;
 import com.yonge.cooleshow.portal.service.OmsPortalOrderService;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.payment.util.DistributedLock;
 import io.swagger.annotations.Api;
@@ -159,15 +160,39 @@ public class OmsPortalOrderController {
     @RequestMapping(value = "/paySuccess/test", method = RequestMethod.GET)
     @ResponseBody
     public CommonResult paySuccessTest(@RequestParam Long orderId,@RequestParam Integer payType) {
-        Integer count = portalOrderService.paySuccess(orderId,payType);
-        return CommonResult.success(count, "支付成功");
+        OmsOrder omsOrder = portalOrderService.getOrderById(orderId);
+        if (omsOrder == null) {
+            return CommonResult.failed("未找到订单");
+        }
+
+        DistributedLock.of(redissonClient)
+                       .runIfLockCanGet(OrderCacheEnum.LOCK_ORDER_NO_MALL.getRedisKey(omsOrder.getOrderSn())
+                               , () -> {
+                                       if (omsOrder.getStatus() == 0 || omsOrder.getStatus() == 6) {
+                                           portalOrderService.paySuccess(orderId, payType);
+
+                                       } else {
+                                           throw new BizException("订单已支付或已取消");
+                                       }
+                               }, 60L, TimeUnit.SECONDS);
+        return CommonResult.success("支付成功");
     }
 
     @ApiOperation("用户取消订单")
     @GetMapping(value = "/cancelUserOrder/test")
     @ResponseBody
     public CommonResult cancelUserOrderTest(@RequestParam Long orderId) {
-        portalOrderService.cancelOrder(orderId, "用户取消订单", null);
+
+        OmsOrder omsOrder = portalOrderService.getOrderById(orderId);
+        if (omsOrder == null) {
+            return CommonResult.failed("未找到订单");
+        }
+
+        DistributedLock.of(redissonClient)
+                       .runIfLockCanGet(OrderCacheEnum.LOCK_ORDER_NO_MALL.getRedisKey(omsOrder.getOrderSn())
+                               , () -> {
+                                   portalOrderService.cancelOrder(orderId, "用户取消订单", null);
+                               }, 60L, TimeUnit.SECONDS);
         return CommonResult.success(null);
     }
 }

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

@@ -43,6 +43,32 @@ public class MusicAlbumSearch extends QueryInfo{
     @ApiModelProperty(value = "平台")
     private String platform;
 
+    @ApiModelProperty("声部id,多个逗号隔开")
+    private String subjectIds;
+
+    @ApiModelProperty(hidden = true)
+    private List<Long> subjectIdList;
+
+
+    public String getSubjectIds() {
+        return subjectIds;
+    }
+
+    public void setSubjectIds(String subjectIds) {
+        this.subjectIds = subjectIds;
+        if (StringUtils.isNotBlank(subjectIds)) {
+            this.subjectIdList = StringUtil.toLongList(subjectIds);
+        }
+    }
+
+    public List<Long> getSubjectIdList() {
+        return subjectIdList;
+    }
+
+    public void setSubjectIdList(List<Long> subjectIdList) {
+        this.subjectIdList = subjectIdList;
+    }
+
     public String getVersion() {
         return version;
     }

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicAlbum.java

@@ -39,6 +39,11 @@ public class MusicAlbum extends BaseEntity {
     @ApiModelProperty(value = "专辑标签(多个标签以逗号分开)",required = true)
     private String albumTag;  //专辑标签(多个标签以逗号分开)
 
+	@TableField("subject_id_")
+	@NotBlank(message = "专辑声部不能为空 ")
+	@ApiModelProperty(value = "专辑声部(多个标签以逗号分开)",required = true)
+	private String subjectId;  //专辑标签(多个标签以逗号分开)
+
     @TableField("album_cover_url_")
 	@NotBlank(message = "专辑封面图片不能为空 ")
     @ApiModelProperty(value = "专辑封面图片URL",required = true)
@@ -85,6 +90,14 @@ public class MusicAlbum extends BaseEntity {
 	@ApiModelProperty("假删除标识 0:未删除 1:已删除")
 	private Boolean delFlag;
 
+	public String getSubjectId() {
+		return subjectId;
+	}
+
+	public void setSubjectId(String subjectId) {
+		this.subjectId = subjectId;
+	}
+
 	public MusicAlbum setId(Long id) {
 	    this.id = id;
 	    return this;

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

@@ -51,6 +51,7 @@ import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.time.Instant;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
@@ -59,6 +60,7 @@ import java.util.function.BiConsumer;
 import java.util.function.BiFunction;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static com.yonge.cooleshow.biz.dal.support.WrapperUtil.inInterSection;
 
@@ -1610,12 +1612,40 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      */
     @Transactional(rollbackFor = Exception.class)
     public void scheduleTask() {
-        //课程开始(开课时间 ≤ NOW ≤ 结束时间)
-        List<CourseSchedule> courseStart = baseMapper.selectList(Wrappers.<CourseSchedule>lambdaQuery()
+        //查询房间配置时间
+        LocalDateTime liveMinute = LocalDateTime.now().plusMinutes(Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_LIVE_ROOM_MINUTE)));
+        LocalDateTime practiceMinute = LocalDateTime.now().plusMinutes(Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_PRACTICE_ROOM_MINUTE)));
+        LocalDateTime pianoMinute = LocalDateTime.now().plusMinutes(Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.PRE_CREATE_PIANO_ROOM_MINUTE)));
+
+        //课程开始(开课时间 ≤ (NOW + 提前进入房间时间(分)) && NOW ≤ 结束时间)
+        List<CourseSchedule> liveStart = baseMapper.selectList(Wrappers.<CourseSchedule>lambdaQuery()
+                .eq(CourseSchedule::getLock, 0)
+                .eq(CourseSchedule::getStatus, CourseScheduleEnum.NOT_START)
+                .eq(CourseSchedule::getType, CourseScheduleEnum.LIVE)
+                .le(CourseSchedule::getStartTime, liveMinute)
+                .ge(CourseSchedule::getEndTime, LocalDateTime.now()));
+        List<CourseSchedule> practiceStart = baseMapper.selectList(Wrappers.<CourseSchedule>lambdaQuery()
+                .eq(CourseSchedule::getLock, 0)
+                .eq(CourseSchedule::getStatus, CourseScheduleEnum.NOT_START)
+                .eq(CourseSchedule::getType, CourseScheduleEnum.PRACTICE)
+                .le(CourseSchedule::getStartTime, practiceMinute)
+                .ge(CourseSchedule::getEndTime, LocalDateTime.now()));
+        List<CourseSchedule> pianoStart = baseMapper.selectList(Wrappers.<CourseSchedule>lambdaQuery()
                 .eq(CourseSchedule::getLock, 0)
                 .eq(CourseSchedule::getStatus, CourseScheduleEnum.NOT_START)
-                .le(CourseSchedule::getStartTime, new Date())
-                .ge(CourseSchedule::getEndTime, new Date()));
+                .eq(CourseSchedule::getType, CourseScheduleEnum.PIANO_ROOM_CLASS)
+                .le(CourseSchedule::getStartTime, pianoMinute)
+                .ge(CourseSchedule::getEndTime, LocalDateTime.now()));
+        if (CollectionUtils.isEmpty(liveStart)) {
+            liveStart = new ArrayList<>();
+        }
+        if (CollectionUtils.isEmpty(practiceStart)) {
+            practiceStart = new ArrayList<>();
+        }
+        if (CollectionUtils.isEmpty(pianoStart)) {
+            pianoStart = new ArrayList<>();
+        }
+        List<CourseSchedule> courseStart = Stream.of(liveStart, practiceStart, pianoStart).flatMap(Collection::stream).collect(Collectors.toList());
         if (CollectionUtils.isNotEmpty(courseStart)) {
             //课程状态更新为ING
             baseMapper.updateStartTime(courseStart);
@@ -1634,19 +1664,21 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                     practiceList = practiceList.stream().filter(s -> !courseIds.contains(s.getCourseId())).collect(Collectors.toList());
                 }
                 //创建课程评论
-                repliedDao.insertBatch(practiceList);
-
-                //老师课酬状态改为已完成
-                courseScheduleTeacherSalaryService.update(null, Wrappers.<CourseScheduleTeacherSalary>lambdaUpdate()
-                        .set(CourseScheduleTeacherSalary::getStatus, TeacherSalaryEnum.WAIT.getCode())
-                        .in(CourseScheduleTeacherSalary::getCourseScheduleId, practiceList.stream().map(CourseScheduleStudentVo::getCourseId).collect(Collectors.toList())));
-
-                //清除缓存
-                for (CourseScheduleStudentVo practice : practiceList) {
-                    //清除学生统计缓存
-                    redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(practice.getStudentId())).delete();
-                    //清除老师统计缓存
-                    redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(practice.getTeacherId())).delete();
+                if (CollectionUtils.isNotEmpty(practiceList)) {
+                    repliedDao.insertBatch(practiceList);
+
+                    //老师课酬状态改为已完成
+                    courseScheduleTeacherSalaryService.update(null, Wrappers.<CourseScheduleTeacherSalary>lambdaUpdate()
+                            .set(CourseScheduleTeacherSalary::getStatus, TeacherSalaryEnum.WAIT.getCode())
+                            .in(CourseScheduleTeacherSalary::getCourseScheduleId, practiceList.stream().map(CourseScheduleStudentVo::getCourseId).collect(Collectors.toList())));
+
+                    //清除缓存
+                    for (CourseScheduleStudentVo practice : practiceList) {
+                        //清除学生统计缓存
+                        redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(practice.getStudentId())).delete();
+                        //清除老师统计缓存
+                        redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(practice.getTeacherId())).delete();
+                    }
                 }
             }
 
@@ -1716,7 +1748,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
     @Transactional(rollbackFor = Exception.class)
     public void teacherSalaryTask() {
         //课程结算日期(天)
-        Integer settlementDay = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.COURSE_SALARY_SETTLEMENT_DAY));
+        Integer settlementDay = Integer.valueOf(sysConfigService.findConfigValue(SysConfigConstant.COURSE_SETTLEMENT_TIME_DAY));
         //获取n天前日期
         String day = DateUtil.getDayAgoOrAftString(-settlementDay);
 

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

@@ -94,6 +94,10 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         albumDetailVo.setAlbumFavoriteCount(musicAlbum.getAlbumFavoriteCount());
         albumDetailVo.setMusicTagNames(musicTagService.getMusicTagNames(StringUtil.toLongList(musicAlbum.getAlbumTag())));
 
+        if(query.getType() == 1) {
+            query.setSubjectIds(musicAlbum.getSubjectId());
+        }
+
         IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectAlbumDetailPage(page,query);
         albumDetailVo.setMusicSheetList(PageUtil.pageInfo(musicSheetVoIPage));
 

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

@@ -158,6 +158,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
         query.setAuditStatus(AuthStatusEnum.PASS);
         query.setState(YesOrNoEnum.YES);
         query.setDelFlag(false);
+        query.setSourceType(SourceTypeEnum.TEACHER);
         // 只查3条
         query.setRows(3);
         IPage<MusicSheetVo> musicSheetVoIPage = selectPage(PageUtil.getPage(query), query);
@@ -375,6 +376,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
                 .eq(MusicSheet::getCreateBy,sysUser.getId())
                 .eq(MusicSheet::getState,YesOrNoEnum.YES)
                 .eq(MusicSheet::getDelFlag,YesOrNoEnum.NO)
+                .eq(MusicSheet::getSourceType,SourceTypeEnum.TEACHER.getCode())
                 .count();
     }
 

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

@@ -38,6 +38,12 @@ public class AlbumDetailVo {
     @ApiModelProperty("教材标签")
     private String musicTagNames;
 
+    @ApiModelProperty("专辑声部id")
+    private String subjectId;
+
+    @ApiModelProperty("声部")
+    private String subjectNames;
+
     @ApiModelProperty("曲目数量")
     private Integer musicSheetCount;
 
@@ -50,6 +56,23 @@ public class AlbumDetailVo {
     @ApiModelProperty("相关专辑")
     private List<MusicAlbumVo> relatedMusicAlbum;
 
+
+    public String getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public String getSubjectNames() {
+        return subjectNames;
+    }
+
+    public void setSubjectNames(String subjectNames) {
+        this.subjectNames = subjectNames;
+    }
+
     public List<MusicAlbumVo> getHotMusicAlbum() {
         return hotMusicAlbum;
     }

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

@@ -20,6 +20,16 @@ public class MusicAlbumVo extends MusicAlbum {
     @ApiModelProperty("收藏数量")
     private Integer albumFavoriteCount;
 
+    @ApiModelProperty("专辑声部")
+    private String subjectNames;
+
+    public String getSubjectNames() {
+        return subjectNames;
+    }
+
+    public void setSubjectNames(String subjectNames) {
+        this.subjectNames = subjectNames;
+    }
 
     public String getMusicTagNames() {
         return musicTagNames;

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

@@ -7,6 +7,7 @@
         <result column="album_name_" jdbcType="VARCHAR" property="albumName"/>
         <result column="album_desc_" jdbcType="VARCHAR" property="albumDesc"/>
         <result column="album_tag_" jdbcType="VARCHAR" property="albumTag"/>
+        <result column="subject_id_" jdbcType="VARCHAR" property="subjectId"/>
         <result column="album_cover_url_" jdbcType="VARCHAR" property="albumCoverUrl"/>
         <result column="album_status_" jdbcType="TINYINT" property="albumStatus"/>
         <result column="sort_number_" jdbcType="INTEGER" property="sortNumber"/>
@@ -24,6 +25,7 @@
         t.album_name_,
         t.album_desc_,
         t.album_tag_,
+        t.subject_id_,
         t.album_cover_url_,
         t.album_status_,
         t.sort_number_,
@@ -40,6 +42,8 @@
         select <include refid="Base_Column_List"/>
         ,(select group_concat(mt.name_) from music_tag mt
             where find_in_set(mt.id_,t.album_tag_) and mt.del_flag_ = 0 and mt.state_ = 1) as musicTagNames
+        ,(select group_concat(s.name_) from subject s
+        where find_in_set(s.id_,t.subject_id_) and s.del_flag_ = 0 ) as subjectNames
         , t1.num as musicSheetCount
         ,t2.num as albumFavoriteCount
         from music_album t
@@ -57,6 +61,12 @@
                     find_in_set(#{item},t.album_tag_)
                 </foreach>
             </if>
+            <if test="query.subjectIdList != null and query.subjectIdList.size() != 0">
+                and
+                <foreach collection="query.subjectIdList"  open="(" close=")"  separator="or" item="item">
+                    find_in_set(#{item},t.subject_id_)
+                </foreach>
+            </if>
             <if test="query.albumStatus != null">
                 and t.album_status_ = #{query.albumStatus}
             </if>
@@ -80,6 +90,8 @@
         select <include refid="Base_Column_List"/>
         ,(select group_concat(mt.name_) from music_tag mt
         where find_in_set(mt.id_,t.album_tag_) and mt.del_flag_ = 0 and mt.state_ = 1) as musicTagNames
+        ,(select group_concat(s.name_) from subject s
+        where find_in_set(s.id_,t.subject_id_) and s.del_flag_ = 0 ) as subjectNames
         from music_album t
         left join album_favorite af2 on af2.album_id_ = t.id_
         <where>
@@ -97,7 +109,12 @@
                     find_in_set(#{item},t.album_tag_)
                 </foreach>
             </if>
-
+            <if test="query.subjectIdList != null and query.subjectIdList.size() != 0">
+                and
+                <foreach collection="query.subjectIdList"  open="(" close=")"  separator="or" item="item">
+                    find_in_set(#{item},t.subject_id_)
+                </foreach>
+            </if>
             <if test="query.auditVersion != null">
                 and t.audit_version_ = #{query.auditVersion}
             </if>
@@ -141,6 +158,8 @@
         select <include refid="Base_Column_List"/>
         ,(select group_concat(mt.name_) from music_tag mt
         where find_in_set(mt.id_,t.album_tag_) and mt.del_flag_ = 0 and mt.state_ = 1) as musicTagNames
+        ,(select group_concat(s.name_) from subject s
+        where find_in_set(s.id_,t.subject_id_) and s.del_flag_ = 0 ) as subjectNames
         , t1.num as musicSheetCount
         ,t2.num as albumFavoriteCount
         from music_album t
@@ -153,6 +172,8 @@
         select <include refid="Base_Column_List"/>
         ,(select group_concat(mt.name_) from music_tag mt
         where find_in_set(mt.id_,t.album_tag_) and mt.del_flag_ = 0 and mt.state_ = 1) as musicTagNames
+        ,(select group_concat(s.name_) from subject s
+        where find_in_set(s.id_,t.subject_id_) and s.del_flag_ = 0 ) as subjectNames
         ,if( t1.num>0,t1.num,0) as musicSheetCount
         ,if(t2.num >0,t2.num,0) as albumFavoriteCount
         from music_album t
@@ -174,6 +195,12 @@
                     find_in_set(#{item},t.album_tag_)
                 </foreach>
             </if>
+            <if test="query.subjectIdList != null and query.subjectIdList.size() != 0">
+                and
+                <foreach collection="query.subjectIdList"  open="(" close=")"  separator="or" item="item">
+                    find_in_set(#{item},t.subject_id_)
+                </foreach>
+            </if>
             <if test="query.albumStatus != null">
                 and t.album_status_ = #{query.albumStatus}
             </if>

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

@@ -483,7 +483,7 @@
         select count(1)
         from music_sheet
         where user_id_ = #{userId}
-        and state_ = 1 and audit_status_ = 'PASS' and del_flag_ = 0
+        and state_ = 1 and audit_status_ = 'PASS' and del_flag_ = 0 and source_type_ = 'TEACHER'
     </select>
 
     <select id="selectMusicNum" resultType="com.yonge.cooleshow.biz.dal.vo.HomeMusicSheetVo">

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

@@ -259,7 +259,10 @@
 				AND g.teacher_id_ = #{param.teacherId}
 			</if>
 			<if test="param.auditVersion != null">
-				and g.audit_version_ = #{param.auditVersion}
+				AND g.audit_version_ = #{param.auditVersion}
+			</if>
+			<if test="param.lessonSubject != null">
+				AND s.id_ = #{param.lessonSubject}
 			</if>
 		</where>
 		ORDER BY g.create_time_ DESC

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

@@ -6,9 +6,11 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 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.entity.Student;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
+import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -41,6 +43,9 @@ public class MusicAlbumController extends BaseController {
 	private MusicAlbumService musicAlbumService;
 
     @Autowired
+    private StudentService studentService;
+
+    @Autowired
     private AppVersionInfoService appVersionInfoService;
 
     @ApiOperation(value = "分页查询", httpMethod="POST", consumes="application/json", produces="application/json")
@@ -51,10 +56,16 @@ public class MusicAlbumController extends BaseController {
             return failed("用户信息获取失败");
         }
 
+        Student student = studentService.getById(sysUser.getId());
+        if (student == null) {
+            return failed("用户信息获取失败");
+        }
+
         // 检查app版本
         query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(),query.getVersion()));
 
 
+        query.setSubjectIds(student.getSubjectId());
         query.setAlbumStatus(YesOrNoEnum.YES);
         query.setSortBy(1);
         IPage<MusicAlbumVo> iPage = musicAlbumService.selectStudentPage(PageUtil.getPage(query),query);

+ 20 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.common.enums.SysUserType;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
@@ -50,6 +52,10 @@ public class MusicSheetController extends BaseController {
     @Autowired
     private AppVersionInfoService appVersionInfoService;
 
+    @Autowired
+    private StudentService studentService;
+
+
     /**
      * 查询单条
      */
@@ -70,10 +76,16 @@ public class MusicSheetController extends BaseController {
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
         }
+        Student student = studentService.getById(sysUser.getId());
+        if (student == null) {
+            return failed("用户信息获取失败");
+        }
         // 检查app版本
         query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(),query.getVersion()));
 
 
+        query.setSubjectIds(student.getSubjectId());
+
         // 学生 只能看通过审核 并且 启用的 曲目
         query.setState(YesOrNoEnum.YES);
         query.setAuditStatus(AuthStatusEnum.PASS);
@@ -91,6 +103,11 @@ public class MusicSheetController extends BaseController {
             return failed("用户信息获取失败");
         }
 
+        Student student = studentService.getById(sysUser.getId());
+        if (student == null) {
+            return failed("用户信息获取失败");
+        }
+
         // 检查app版本
         YesOrNoEnum appAuditVersion = appVersionInfoService.getAppAuditVersion(query.getPlatform(), query.getVersion());
         // 学生 只能看通过审核 并且 启用的 曲目
@@ -98,6 +115,8 @@ public class MusicSheetController extends BaseController {
         query.setAuditVersion(appAuditVersion);
         query.setAuditStatus(AuthStatusEnum.PASS);
         query.setStudentId(sysUser.getId());
+
+        query.setSubjectIds(student.getSubjectId());
         query.setRows(query.getSheetRow());
         IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectStudentPage(PageUtil.getPage(query), query);
 
@@ -108,6 +127,7 @@ public class MusicSheetController extends BaseController {
         musicAlbumSearch.setAuditVersion(appAuditVersion);
         musicAlbumSearch.setAlbumTagIds(query.getMusicTagIds());
         musicAlbumSearch.setPage(query.getPage());
+        musicAlbumSearch.setSubjectIds(student.getSubjectId());
         musicAlbumSearch.setRows(query.getAlbumRow());
         IPage<MusicAlbumVo> musicAlbumVoIPage = musicAlbumService.selectPage(PageUtil.getPage(musicAlbumSearch), musicAlbumSearch);
 

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

@@ -121,6 +121,7 @@ public class MusicSheetController extends BaseController {
         if (query.getAuditStatus() != null && AuthStatusEnum.PASS.getCode().equals(query.getAuditStatus().getCode())) {
             query.setState(YesOrNoEnum.YES);
         }
+        query.setSourceType(SourceTypeEnum.TEACHER);
 
         IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(musicSheetVoIPage));

+ 3 - 1
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/util/DistributedLock.java

@@ -68,7 +68,9 @@ public class DistributedLock {
             } else {
                 return false;
             }
-        } catch (Exception e) {
+        } catch (BizException e) {
+            throw e;
+        }  catch (Exception e) {
             log.error("runIfLockCanGet error lockName : {}", lockName, e);
             throw new RuntimeException("runIfLockCanGet error lockName :" + lockName, e);
         } finally {