Browse Source

曲目详情添加课件信息

liujunchi 2 years ago
parent
commit
960ac891d9

+ 4 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/CourseCoursewareController.java

@@ -4,6 +4,7 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 
@@ -51,6 +52,9 @@ public class CourseCoursewareController extends BaseController {
 			courseCourseware.setUpdateTime(new Date());
 			courseCourseware.setCreateTime(new Date());
 		}
+		if (courseCourseware.getUserId() == null) {
+			throw new BizException("用户id不能为空");
+		}
 		courseCourseware.setClientType(ClientEnum.TEACHER);
         return status(courseCoursewareService.submit(courseCourseware));
     }

+ 0 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseCourseware.java

@@ -29,7 +29,6 @@ public class CourseCourseware implements Serializable {
 
     @ApiModelProperty("用户id ")
     @TableField(value = "user_id_")
-    @NotNull(message = "用户id不能为空")
     private Long userId;
 
     @ApiModelProperty("用户类型 STUDENT,TEACHER ")

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

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.CourseCoursewareSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCourseware;
 
 import java.io.Serializable;
+import java.util.Collection;
 
 /**
  * 课件表 服务类
@@ -36,4 +37,8 @@ public interface CourseCoursewareService extends IService<CourseCourseware>  {
 	 * 保存课件数据
 	 */
 	Boolean submit(CourseCourseware courseCourseware);
+
+
+	@Override
+	boolean removeByIds(Collection<? extends Serializable> idList);
 }

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

@@ -1,12 +1,16 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.biz.dal.dao.CourseCoursewareDao;
+import com.yonge.cooleshow.biz.dal.dao.MusicSheetAccompanimentDao;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import com.yonge.cooleshow.biz.dal.dto.search.CourseCoursewareSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCourseware;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.yonge.cooleshow.biz.dal.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.enums.AudioTypeEnum;
@@ -24,6 +28,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
@@ -47,6 +53,9 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
     private SysUserFeignService sysUserFeignService;
 
     @Autowired
+    private MusicSheetAccompanimentDao musicSheetAccompanimentDao;
+
+    @Autowired
     private TeacherDao teacherDao;
 
 	@Override
@@ -72,6 +81,24 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
             record.setUsername(userIdUsernameMap.get(record.getUserId()));
         }
 
+        // 设置原音
+        List<Long> musicSheetIdList = records.stream().map(CourseCoursewareVo::getMusicSheetId).collect(Collectors.toList());
+        List<MusicSheetAccompaniment> musicSheetAccompanimentList = musicSheetAccompanimentDao.selectList(
+                Wrappers.<MusicSheetAccompaniment>lambdaQuery()
+                        .in(MusicSheetAccompaniment::getMusicSheetId, musicSheetIdList));
+        if (CollectionUtils.isNotEmpty(musicSheetAccompanimentList)) {
+            Map<Long, String> map = musicSheetAccompanimentList.stream()
+                                                       .collect(Collectors.toMap(
+                                                           MusicSheetAccompaniment::getMusicSheetId,
+                                                           MusicSheetAccompaniment::getAudioFileUrl));
+            for (CourseCoursewareVo record : records) {
+                record.setMp3url(map.get(record.getMusicSheetId()));
+            }
+        }
+
+
+
+        // 查询有效直接返回
         if (query.getStatus() != null && query.getStatus().equals(YesOrNoEnum.YES)) {
             records = records.stream()
                    .peek(record -> record.setStatus(YesOrNoEnum.YES)).collect(Collectors.toList());
@@ -131,10 +158,11 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
 
     @Override
     public boolean removeById(Serializable id) {
-        CourseCourseware courseCourseware = new CourseCourseware();
-        courseCourseware.setId((Long) id);
-        courseCourseware.setDelFlag(true);
-        return updateById(courseCourseware);
+        return super.removeById(id);
+        // CourseCourseware courseCourseware = new CourseCourseware();
+        // courseCourseware.setId((Long) id);
+        // courseCourseware.setDelFlag(true);
+        // return updateById(courseCourseware);
     }
 
     @Override
@@ -181,4 +209,17 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
         }
         return this.saveOrUpdate(courseCourseware);
     }
+
+    @Override
+    public boolean removeByIds(Collection<? extends Serializable> idList) {
+        return removeByIds(idList);
+        // List<CourseCourseware> list = new ArrayList<>();
+        // for (Serializable id : idList) {
+        //     CourseCourseware courseCourseware = new CourseCourseware();
+        //     courseCourseware.setId((Long) id);
+        //     courseCourseware.setDelFlag(true);
+        //     list.add(courseCourseware);
+        // }
+        // return updateBatchById(list);
+    }
 }

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

@@ -116,6 +116,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     @Autowired
     private TeacherService teacherService;
 
+    @Autowired
+    private CourseCoursewareService courseCoursewareService;
 
     @Autowired
     private StudentStarService studentStarService;
@@ -269,6 +271,19 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             return detail;
         }
 
+        // 设置课件
+        List<CourseCourseware> list = courseCoursewareService.lambdaQuery()
+                                                             .eq(CourseCourseware::getClientType, userType)
+                                                             .eq(CourseCourseware::getMusicSheetId, id)
+                                                             .eq(CourseCourseware::getUserId, sysUser.getId())
+                                                             .eq(CourseCourseware::getDelFlag, false)
+                                                             .list();
+        if (CollectionUtils.isNotEmpty(list)) {
+            detail.setCoursewareStatus(YesOrNoEnum.YES);
+            detail.setCoursewareId(list.get(0).getId());
+        }
+
+
         // 收藏
         YesOrNoEnum favorite = musicFavoriteService.checkFavorite(id,sysUser.getId(),userType);
         detail.setFavorite(favorite);

+ 25 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseCoursewareVo.java

@@ -32,9 +32,34 @@ public class CourseCoursewareVo extends CourseCourseware{
 	@ApiModelProperty(hidden = true)
 	private String paymentType;
 
+
+	@ApiModelProperty("曲目图片 多个逗号隔开")
+	private String musicImg;
+
+	@ApiModelProperty("原音地址")
+	private String mp3url;
+
+
 	@ApiModelProperty(value = "曲目是否启用 0:未启用, 1:启用",hidden = true)
 	private YesOrNoEnum musicStatus;
 
+
+	public String getMusicImg() {
+		return musicImg;
+	}
+
+	public void setMusicImg(String musicImg) {
+		this.musicImg = musicImg;
+	}
+
+	public String getMp3url() {
+		return mp3url;
+	}
+
+	public void setMp3url(String mp3url) {
+		this.mp3url = mp3url;
+	}
+
 	public YesOrNoEnum getMusicStatus() {
 		return musicStatus;
 	}

+ 21 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MusicSheetDetailVo.java

@@ -69,6 +69,27 @@ public class MusicSheetDetailVo extends MusicSheet {
     @ApiModelProperty("审核理由")
     private String auditReason;
 
+    @ApiModelProperty("是否为课件")
+    private YesOrNoEnum coursewareStatus = YesOrNoEnum.NO;
+
+    @ApiModelProperty("课件id")
+    private Long coursewareId;
+
+    public YesOrNoEnum getCoursewareStatus() {
+        return coursewareStatus;
+    }
+
+    public void setCoursewareStatus(YesOrNoEnum coursewareStatus) {
+        this.coursewareStatus = coursewareStatus;
+    }
+
+    public Long getCoursewareId() {
+        return coursewareId;
+    }
+
+    public void setCoursewareId(Long coursewareId) {
+        this.coursewareId = coursewareId;
+    }
 
     public YesOrNoEnum getFavorite() {
         return favorite;

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

@@ -33,6 +33,7 @@
         ,ms.music_sheet_name_ as musicSheetName
         ,ms.state_ as musicStatus
         ,ms.payment_type_ as paymentType
+        ,ms.music_img_ as musicImg
 		FROM course_courseware t
         left join music_sheet ms on t.music_sheet_id_ = ms.id_
         <where>

+ 13 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseCoursewareController.java

@@ -1,9 +1,12 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 
@@ -29,6 +32,10 @@ public class CourseCoursewareController extends BaseController {
 	@Autowired
 	private CourseCoursewareService courseCoursewareService;
 
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
 	/**
 	 * 查询分页
 	 */
@@ -45,6 +52,12 @@ public class CourseCoursewareController extends BaseController {
 	@PostMapping("/submit")
 	@ApiOperation(value = "新增或修改", notes = "传入courseCourseware")
 	public HttpResponseResult submit(@Valid @RequestBody CourseCourseware courseCourseware) {
+
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (user == null) {
+			throw new BizException("请重新登录");
+		}
+
 		if (courseCourseware.getId() != null) {
 			courseCourseware.setUpdateTime(new Date());
 		} else {