|  | @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.common.enums.PostStatusEnum;
 | 
	
		
			
				|  |  | -import com.yonge.cooleshow.common.enums.SysUserType;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.dto.MusicSheetDto;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.dto.MusicSheetExport;
 | 
	
	
		
			
				|  | @@ -31,7 +30,6 @@ import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 | 
	
		
			
				|  |  |  import com.yonge.toolset.utils.easyexcel.ErrMsg;
 | 
	
		
			
				|  |  |  import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;
 | 
	
		
			
				|  |  |  import com.yonge.toolset.utils.easyexcel.ExcelException;
 | 
	
		
			
				|  |  | -import feign.Client;
 | 
	
		
			
				|  |  |  import org.slf4j.Logger;
 | 
	
		
			
				|  |  |  import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  |  import org.springframework.beans.BeanUtils;
 | 
	
	
		
			
				|  | @@ -182,7 +180,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    public MusicSheetDetailVo detail(Long id, SysUser sysUser,SysUserType userType) {
 | 
	
		
			
				|  |  | +    public MusicSheetDetailVo detail(Long id, SysUser sysUser,ClientEnum userType) {
 | 
	
		
			
				|  |  |          MusicSheetDetailVo detail = baseMapper.detail(id);
 | 
	
		
			
				|  |  |          if (detail == null) {
 | 
	
		
			
				|  |  |              throw new BizException("未找到曲目信息");
 | 
	
	
		
			
				|  | @@ -197,10 +195,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |          if (ChargeTypeEnum.FREE.getCode().equals(detail.getChargeType().getCode())) {
 | 
	
		
			
				|  |  |              detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        }  else if (SysUserType.STUDENT.getCode().equals(userType.getCode())
 | 
	
		
			
				|  |  | -                || SysUserType.TEACHER.getCode().equals(userType.getCode())) {
 | 
	
		
			
				|  |  | +        }  else if (ClientEnum.STUDENT.getCode().equals(userType.getCode())
 | 
	
		
			
				|  |  | +                || ClientEnum.TEACHER.getCode().equals(userType.getCode())) {
 | 
	
		
			
				|  |  |              // 2022 7 20  老师也能购买曲目
 | 
	
		
			
				|  |  | -            if (SysUserType.TEACHER.getCode().equals(userType.getCode()) && detail.getUserId().equals(sysUser.getId())) {
 | 
	
		
			
				|  |  | +            if (ClientEnum.TEACHER.getCode().equals(userType.getCode()) && detail.getUserId().equals(sysUser.getId())) {
 | 
	
		
			
				|  |  |                  detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  setMusicSheetPlay(sysUser.getId(), detail,userType);
 | 
	
	
		
			
				|  | @@ -208,7 +206,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (SysUserType.STUDENT.getCode().equals(userType.getCode())) {
 | 
	
		
			
				|  |  | +        if (ClientEnum.STUDENT.getCode().equals(userType.getCode())) {
 | 
	
		
			
				|  |  |              // 学生进入小酷Ai练习,添加一条练习记录
 | 
	
		
			
				|  |  |              musicSheetPracticeRecordService.addRecord(id, sysUser.getId());
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -223,13 +221,13 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |       * @param detail 曲目详情
 | 
	
		
			
				|  |  |       * @param userType 用户类型
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  | -    private void setMusicSheetPlay(Long studentId, MusicSheetDetailVo detail, SysUserType userType) {
 | 
	
		
			
				|  |  | +    private void setMusicSheetPlay(Long studentId, MusicSheetDetailVo detail, ClientEnum userType) {
 | 
	
		
			
				|  |  |          detail.setPlay(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  |          // 单曲购买 判断购买记录,有记录课播放
 | 
	
		
			
				|  |  |          if (ChargeTypeEnum.CHARGE.getCode().equals(detail.getChargeType().getCode())) {
 | 
	
		
			
				|  |  |              // 学生须判断是否能播放曲目
 | 
	
		
			
				|  |  |              MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService.checkPurchase(
 | 
	
		
			
				|  |  | -                    studentId, detail.getId());
 | 
	
		
			
				|  |  | +                    studentId, detail.getId(),userType);
 | 
	
		
			
				|  |  |              if (musicSheetPurchaseRecord != null) {
 | 
	
		
			
				|  |  |                  detail.setOrderStatus(musicSheetPurchaseRecord.getOrderStatus());
 | 
	
		
			
				|  |  |                  detail.setOrderNo(musicSheetPurchaseRecord.getOrderNo());
 | 
	
	
		
			
				|  | @@ -240,12 +238,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |          } else if (ChargeTypeEnum.VIP.getCode().equals(detail.getChargeType().getCode())) {
 | 
	
		
			
				|  |  |              // 会员 判断是否为会员, 会员可播放
 | 
	
		
			
				|  |  |              // todo 老师会员判断
 | 
	
		
			
				|  |  | -            if (userType.equals(SysUserType.STUDENT)) {
 | 
	
		
			
				|  |  | +            if (userType.equals(ClientEnum.STUDENT)) {
 | 
	
		
			
				|  |  |                  StudentVo studentVo = studentService.detail(studentId);
 | 
	
		
			
				|  |  |                  if (studentVo != null && YesOrNoEnum.YES.getCode().equals(studentVo.getIsVip().getCode())) {
 | 
	
		
			
				|  |  |                      detail.setPlay(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -            } else if (userType.equals(SysUserType.TEACHER)) {
 | 
	
		
			
				|  |  | +            } else if (userType.equals(ClientEnum.TEACHER)) {
 | 
	
		
			
				|  |  |                  TeacherVo teacher= teacherService.detail(studentId);
 | 
	
		
			
				|  |  |                  if (teacher != null && YesOrNoEnum.YES.getCode().equals(teacher.getIsVip().getCode())) {
 | 
	
		
			
				|  |  |                      detail.setPlay(YesOrNoEnum.YES);
 | 
	
	
		
			
				|  | @@ -478,7 +476,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 检查已经购买
 | 
	
		
			
				|  |  | -        checkoutPay(orderReqInfo.getUserId(), musicSheetPayDto.getMusicSheetId());
 | 
	
		
			
				|  |  | +        checkoutPay(orderReqInfo.getUserId(), musicSheetPayDto.getMusicSheetId(),musicSheetPayDto.getClientType());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          orderCreateRes.setRes(true);
 | 
	
	
		
			
				|  | @@ -494,15 +492,16 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 检查是否已购买当前曲目
 | 
	
		
			
				|  |  | -     *
 | 
	
		
			
				|  |  | -     * @param userId       用户id
 | 
	
		
			
				|  |  | +     *  @param userId       用户id
 | 
	
		
			
				|  |  |       * @param musicSheetId 曲目id
 | 
	
		
			
				|  |  | +     * @param clientType
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  | -    private void checkoutPay(Long userId, Long musicSheetId) {
 | 
	
		
			
				|  |  | +    private void checkoutPay(Long userId, Long musicSheetId, String clientType) {
 | 
	
		
			
				|  |  |          List<MusicSheetPurchaseRecord> list = musicSheetPurchaseRecordService
 | 
	
		
			
				|  |  |                  .lambdaQuery()
 | 
	
		
			
				|  |  |                  .eq(MusicSheetPurchaseRecord::getMusicSheetId, musicSheetId)
 | 
	
		
			
				|  |  |                  .eq(MusicSheetPurchaseRecord::getStudentId, userId)
 | 
	
		
			
				|  |  | +                .eq(MusicSheetPurchaseRecord::getClientType, clientType)
 | 
	
		
			
				|  |  |                  .eq(MusicSheetPurchaseRecord::getOrderStatus, OrderStatusEnum.PAID)
 | 
	
		
			
				|  |  |                  .list();
 | 
	
		
			
				|  |  |          if (!CollectionUtils.isEmpty(list)) {
 | 
	
	
		
			
				|  | @@ -594,10 +593,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      private void addMusicSheetPurchaseRecord(UserOrderDetailVo userOrderDetailVo, BigDecimal actualPrice, BigDecimal serviceFeeAmount) {
 | 
	
		
			
				|  |  |          MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
 | 
	
		
			
				|  |  | -                .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId());
 | 
	
		
			
				|  |  | +                .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId(),userOrderDetailVo.getOrderClient());
 | 
	
		
			
				|  |  |          if (musicSheetPurchaseRecord == null) {
 | 
	
		
			
				|  |  |              musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        musicSheetPurchaseRecord.setClientType(userOrderDetailVo.getOrderClient());
 | 
	
		
			
				|  |  |          musicSheetPurchaseRecord.setMusicSheetId(userOrderDetailVo.getBizId());
 | 
	
		
			
				|  |  |          musicSheetPurchaseRecord.setOrderNo(userOrderDetailVo.getOrderNo());
 | 
	
		
			
				|  |  |          musicSheetPurchaseRecord.setPurchasePrice(actualPrice);
 | 
	
	
		
			
				|  | @@ -661,7 +661,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |      public void orderAfterSheet(UserOrderDetailVo userOrderDetailVo) {
 | 
	
		
			
				|  |  |          // 保存购买记录
 | 
	
		
			
				|  |  |          MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
 | 
	
		
			
				|  |  | -                .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId());
 | 
	
		
			
				|  |  | +                .checkPurchase(userOrderDetailVo.getUserId(),userOrderDetailVo.getBizId(),userOrderDetailVo.getOrderClient());
 | 
	
		
			
				|  |  |          if (musicSheetPurchaseRecord == null) {
 | 
	
		
			
				|  |  |              musicSheetPurchaseRecord = new MusicSheetPurchaseRecord();
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -678,7 +678,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public void buyMusicSheetCancel(UserOrderDetailVo userOrderDetailVo) {
 | 
	
		
			
				|  |  |          MusicSheetPurchaseRecord musicSheetPurchaseRecord = musicSheetPurchaseRecordService
 | 
	
		
			
				|  |  | -                .checkPurchase(userOrderDetailVo.getUserId(), userOrderDetailVo.getBizId());
 | 
	
		
			
				|  |  | +                .checkPurchase(userOrderDetailVo.getUserId(),userOrderDetailVo.getBizId(),userOrderDetailVo.getOrderClient());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          if (musicSheetPurchaseRecord == null) return;
 | 
	
		
			
				|  |  |          musicSheetPurchaseRecordService.removeById(musicSheetPurchaseRecord.getId());
 | 
	
		
			
				|  |  |      }
 |