刘俊驰 5 ماه پیش
والد
کامیت
2d7540f3b9

+ 24 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/TenantAlbumSheetController.java

@@ -12,6 +12,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
@@ -37,6 +38,7 @@ import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -144,4 +146,26 @@ public class TenantAlbumSheetController extends BaseController {
 
     }
 
+
+
+    @ApiOperation(value = "关联课程类型")
+    @PostMapping("/refLevel")
+    public HttpResponseResult<List<LessonCoursewareDetailWrapper.RefLevelDetailInfo>> refLevel(@RequestBody LessonCoursewareDetailWrapper.RefLevelQuery query) {
+
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+
+        Student student = studentService.getById(user.getId());
+
+        query.setClientType(ClientEnum.STUDENT);
+        query.setUserId(user.getId());
+        query.setTenantId(Optional.ofNullable(student.getTenantId()).orElse(-1L));
+        List<LessonCoursewareDetailWrapper.RefLevelDetailInfo> result = tenantAlbumMusicService.refLevel(query);
+
+        return HttpResponseResult.succeed(result);
+    }
+
+
 }

+ 2 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TenantAlbumSheetController.java

@@ -140,6 +140,8 @@ public class TenantAlbumSheetController extends BaseController {
         }
 
         Teacher teacher = teacherService.getById(user.getId());
+        query.setClientType(ClientEnum.TEACHER);
+        query.setUserId(user.getId());
         query.setTenantId(Optional.ofNullable(teacher.getTenantId()).orElse(-1L));
         List<LessonCoursewareDetailWrapper.RefLevelDetailInfo> result = tenantAlbumMusicService.refLevel(query);
 

+ 22 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumMusicServiceImpl.java

@@ -529,19 +529,32 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
         if (query.getTenantId() == null) {
             return new ArrayList<>();
         }
-
+        List<Long> courseIds = new ArrayList<>();
         List<LessonCoursewareDetailWrapper.RefLevelDetailInfo> result = new ArrayList<>();
-        // 查询出机构下的所有可用教材
-        List<TenantAlbumMusic> detail = tenantAlbumMusicService.lambdaQuery()
-            .eq(TenantAlbumMusic::getTenantId, query.getTenantId())
-            .eq(TenantAlbumMusic::getSubjectType, SubjectTypeEnum.COURSEWARE)
-            .eq(TenantAlbumMusic::getDelFlag, false)
-            .list();
-        if (CollectionUtils.isEmpty(detail)) {
+        if (query.getClientType() == ClientEnum.TEACHER) {
+            // 查询出机构下的所有可用教材
+            List<TenantAlbumMusic> detail = tenantAlbumMusicService.lambdaQuery()
+                .eq(TenantAlbumMusic::getTenantId, query.getTenantId())
+                .eq(TenantAlbumMusic::getSubjectType, SubjectTypeEnum.COURSEWARE)
+                .eq(TenantAlbumMusic::getDelFlag, false)
+                .list();
+            if (CollectionUtils.isEmpty(detail)) {
+                return new ArrayList<>();
+            }
+            courseIds = detail.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
+        } else {
+            List<Long> useAlbumIdsByUserId = userTenantAlbumRecordService.getUseAlbumIdsByUserId(query.getUserId(), query.getClientType());
+            if (CollectionUtils.isNotEmpty(useAlbumIdsByUserId)) {
+                courseIds = tenantAlbumMusicService.getTenantAlbumMusicIdsByIds(useAlbumIdsByUserId, Collections.singletonList(SubjectTypeEnum.COURSEWARE));
+            }
+        }
+        if (CollectionUtils.isEmpty(courseIds)) {
             return new ArrayList<>();
         }
 
 
+
+
         // 根据机构,查询机构可以查看的所有课件,然后根据课件查询对应的课程类型
         List<CbsLessonCoursewareDetailWrapper.Entity> entities = coursewareFeignService.lessonCoursewareDetailLambdaQuery(CbsLessonCoursewareDetailWrapper.LambdaQuery.builder()
             .id(query.getLessonCoursewareDetailId())
@@ -562,7 +575,7 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
         CbsLessonCoursewareWrapper.LessonCoursewareQuery cbsQuery = new CbsLessonCoursewareWrapper.LessonCoursewareQuery();
         cbsQuery.setEnableFlag(true);
 //        cbsQuery.setOrchestraType(lessonCourseware.getOrchestraType());
-        cbsQuery.setLessonCoursewareIds(detail.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList()));
+        cbsQuery.setLessonCoursewareIds(courseIds);
         cbsQuery.setPage(1);
         cbsQuery.setRows(9999);
         cbsQuery.setLevel(lessonCourseware.getLevel());

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/LessonCoursewareDetailWrapper.java

@@ -4,6 +4,7 @@ import com.dayaedu.cbs.common.enums.school.EKnowledgeType;
 import com.dayaedu.cbs.common.enums.school.EMaterialRefType;
 import com.dayaedu.cbs.common.enums.school.EMaterialType;
 import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsMaterialRefWrapper;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -161,5 +162,11 @@ public class LessonCoursewareDetailWrapper {
 
         @ApiModelProperty(value = "机构ID",hidden = true)
         private Long tenantId;
+
+        @ApiModelProperty("用户类型")
+        private ClientEnum clientType;
+
+        @ApiModelProperty("用户ID")
+        private Long userId;
     }
 }