浏览代码

管乐迷课件新增老师和学员的课件权限配置

zouxuan 1 年之前
父节点
当前提交
853e34d879
共有 16 个文件被更改,包括 338 次插入21 次删除
  1. 4 0
      mec-application/src/main/java/com/ym/mec/student/controller/LessonCoursewareController.java
  2. 5 1
      mec-application/src/main/java/com/ym/mec/teacher/controller/LessonCoursewareController.java
  3. 42 1
      mec-application/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java
  4. 16 2
      mec-application/src/main/java/com/ym/mec/web/controller/LessonCoursewareController.java
  5. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  6. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LessonCourseware.java
  7. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LessonCoursewareUserMapper.java
  8. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/LessonCoursewareUserMapperMapper.java
  9. 57 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/LessonCoursewareWrapper.java
  10. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/LessonCoursewareService.java
  11. 13 0
      mec-biz/src/main/java/com/ym/mec/biz/service/LessonCoursewareUserMapperService.java
  12. 1 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  13. 88 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/LessonCoursewareServiceImpl.java
  14. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/LessonCoursewareUserMapperServiceImpl.java
  15. 11 3
      mec-biz/src/main/resources/config/mybatis/LessonCoursewareMapper.xml
  16. 5 0
      mec-biz/src/main/resources/config/mybatis/LessonCoursewareUserMapperMapper.xml

+ 4 - 0
mec-application/src/main/java/com/ym/mec/student/controller/LessonCoursewareController.java

@@ -9,6 +9,7 @@ import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
 import com.ym.mec.biz.service.LessonCoursewareService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
@@ -31,11 +32,14 @@ public class LessonCoursewareController extends BaseController {
 	private CoursewareFeignService coursewareFeignService;
 	@Resource
 	private LessonCoursewareService lessonCoursewareService;
+	@Resource
+	private SysUserService sysUserService;
 
 	@ApiOperation(value = "分页查询已添加的课件")
 	@PostMapping("/queryLessonCourseware")
 	public HttpResponseResult<PageInfo<LessonCoursewareWrapper.LessonCoursewareDto>> queryLessonCourseware(@RequestBody LessonCoursewareWrapper.LessonCoursewareQuery query){
 		query.setEnable(true);
+		query.setStudentId(sysUserService.getUserId());
 		IPage<LessonCoursewareWrapper.LessonCoursewareDto> pages = lessonCoursewareService.selectPage(QueryInfo.getPage(query), query);
 		return succeed(PageUtil.pageInfo(pages));
 	}

+ 5 - 1
mec-application/src/main/java/com/ym/mec/teacher/controller/LessonCoursewareController.java

@@ -9,6 +9,7 @@ import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
 import com.ym.mec.biz.service.LessonCoursewareService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
@@ -28,15 +29,18 @@ import java.util.List;
 @RestController
 public class LessonCoursewareController extends BaseController {
 
-	@Autowired
+	@Resource
 	private CoursewareFeignService coursewareFeignService;
 	@Resource
+	private SysUserService sysUserService;
+	@Resource
 	private LessonCoursewareService lessonCoursewareService;
 
 	@ApiOperation(value = "分页查询已添加的课件")
 	@PostMapping("/queryLessonCourseware")
 	public HttpResponseResult<PageInfo<LessonCoursewareWrapper.LessonCoursewareDto>> queryLessonCourseware(@RequestBody LessonCoursewareWrapper.LessonCoursewareQuery query){
 		query.setEnable(true);
+		query.setTeacherId(sysUserService.getUserId());
 		IPage<LessonCoursewareWrapper.LessonCoursewareDto> pages = lessonCoursewareService.selectPage(QueryInfo.getPage(query), query);
 		return succeed(PageUtil.pageInfo(pages));
 	}

+ 42 - 1
mec-application/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -1,13 +1,19 @@
 package com.ym.mec.teacher.controller;
 
+import com.dayaedu.cbs.openfeign.client.CoursewareFeignService;
+import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareDetailWrapper;
+import com.microsvc.toolkit.common.response.template.R;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
 import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.LessonCourseware;
+import com.ym.mec.biz.dal.entity.LessonCoursewareUserMapper;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.dal.vo.CourseScheduleWrapper;
 import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
@@ -22,13 +28,14 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.*;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -56,6 +63,12 @@ public class TeacherCourseScheduleController extends BaseController {
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
     @Autowired
     private SubjectService subjectService;
+    @Resource
+    private CoursewareFeignService coursewareFeignService;
+    @Resource
+    private LessonCoursewareUserMapperService lessonCoursewareUserMapperService;
+    @Resource
+    private LessonCoursewareService lessonCoursewareService;
 
     @ApiOperation(value = "根据月份获取该月有课的日期")
     @GetMapping("/getCourseScheduleDateByMonth")
@@ -84,6 +97,34 @@ public class TeacherCourseScheduleController extends BaseController {
         String courseAfterBufferTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_AFTER_BUFFER_TIME, user.getTenantId());
         List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherCourseSchedulesWithDate(user.getId(),date,type,user.getTenantId());
         Map<String,Object> result = new HashMap<>(7);
+        if (CollectionUtils.isNotEmpty(teacherCourseSchedulesWithDate)){
+            for (CourseScheduleDto courseScheduleDto : teacherCourseSchedulesWithDate) {
+                if(courseScheduleDto.getTeachMode() == TeachModeEnum.OFFLINE
+                        && StringUtils.isNotEmpty(courseScheduleDto.getCoursewareDetailId())){
+                    //获取课件详情列表
+                    R<CbsLessonCoursewareDetailWrapper.LessonCoursewareDetail> voR = coursewareFeignService.lessonCoursewareDetailDetail(Long.parseLong(courseScheduleDto.getCoursewareDetailId()));
+                    if (!voR.getCode().equals(200)){
+                        LessonCourseware lessonCourseware = lessonCoursewareService.lambdaQuery()
+                                .eq(LessonCourseware::getLessonCourseId, voR.getData().getLessonCoursewareId()).last("LIMIT 1").one();
+                        if (Objects.isNull(lessonCourseware)){
+                            courseScheduleDto.setCoursewareEnable(false);
+                            continue;
+                        }
+                        if(StringUtils.equals(lessonCourseware.getTeacherRangeType(),"ALL")){
+                            courseScheduleDto.setCoursewareEnable(true);
+                            continue;
+                        }
+                        LessonCoursewareUserMapper lessonCoursewareUserMapper = lessonCoursewareUserMapperService.lambdaQuery()
+                                .eq(LessonCoursewareUserMapper::getLessonCoursewareId, lessonCourseware.getId())
+                                .eq(LessonCoursewareUserMapper::getUserType, "TEACHER")
+                                .eq(LessonCoursewareUserMapper::getUserId, user.getId()).last("LIMIT 1").one();
+                        if(Objects.nonNull(lessonCoursewareUserMapper)){
+                            courseScheduleDto.setCoursewareEnable(true);
+                        }
+                    }
+                }
+            }
+        }
         result.put("rows",teacherCourseSchedulesWithDate);
         result.put("appealHoursRange",4);
         result.put("offlineSignInEarlyForwardTime", StringUtils.isEmpty(offlineSignInEarlyForwardTime)?60:Integer.parseInt(offlineSignInEarlyForwardTime));

+ 16 - 2
mec-application/src/main/java/com/ym/mec/web/controller/LessonCoursewareController.java

@@ -15,7 +15,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
@@ -29,7 +28,7 @@ import java.util.List;
 @RestController
 public class LessonCoursewareController extends BaseController {
 
-	@Autowired
+	@Resource
 	private CoursewareFeignService coursewareFeignService;
 	@Resource
 	private LessonCoursewareService lessonCoursewareService;
@@ -111,4 +110,19 @@ public class LessonCoursewareController extends BaseController {
 				.update();
 		return succeed();
 	}
+
+	@ApiOperation(value = "修改适用范围")
+	@PostMapping("/updateRangeType")
+	@PreAuthorize("@pcs.hasPermissions('lessonCourseware/updateRangeType')")
+	public HttpResponseResult updateRangeType(@RequestBody LessonCoursewareWrapper.UpdateRange updateRange){
+		lessonCoursewareService.updateRangeType(updateRange);
+		return succeed();
+	}
+
+	@ApiOperation(value = "获取课件适用范围详情")
+	@GetMapping("/getRangeType")
+	@PreAuthorize("@pcs.hasPermissions('lessonCourseware/getRangeType')")
+	public HttpResponseResult<LessonCoursewareWrapper.UpdateRangeDetail> getRangeType(Integer lessonCoursewareId){
+		return succeed(lessonCoursewareService.getRangeType(lessonCoursewareId));
+	}
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -251,6 +251,14 @@ public class CourseSchedule  extends BaseEntity{
 	@ApiModelProperty("课件编号")
 	private String coursewareDetailId;
 
+	@Getter
+	@ApiModelProperty("课件是否可以使用")
+	private Boolean coursewareEnable = false;
+
+	public void setCoursewareEnable(Boolean coursewareEnable) {
+		this.coursewareEnable = coursewareEnable;
+	}
+
 	public void setCoursewareDetailId(String coursewareDetailId) {
 		this.coursewareDetailId = coursewareDetailId;
 	}

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LessonCourseware.java

@@ -24,6 +24,14 @@ public class LessonCourseware{
 	@TableField(value = "lesson_course_id_")
 	private Long lessonCourseId;
 
+	@ApiModelProperty(value = "学员适用范围")
+	@TableField(value = "student_range_type_")
+	private String studentRangeType;
+
+	@ApiModelProperty(value = "老师适用范围")
+	@TableField(value = "teacher_range_type_")
+	private String teacherRangeType;
+
 	@ApiModelProperty(value = "是否启用")
 	@TableField(value = "enable_")
 	private Boolean enable = false;

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/LessonCoursewareUserMapper.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class LessonCoursewareUserMapper {
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "课件id")
+    @TableField(value = "lesson_courseware_id_")
+    private Integer lessonCoursewareId;
+
+    @ApiModelProperty(value = "用户类型")
+    @TableField(value = "user_type_")
+    private String userType;
+
+    @ApiModelProperty(value = "用户id")
+    @TableField(value = "user_id_")
+    private Integer userId;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(value = "update_time_")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time_")
+    private Date createTime;
+}

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/LessonCoursewareUserMapperMapper.java

@@ -0,0 +1,15 @@
+package com.ym.mec.biz.dal.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ym.mec.biz.dal.entity.LessonCourseware;
+import com.ym.mec.biz.dal.entity.LessonCoursewareUserMapper;
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface LessonCoursewareUserMapperMapper extends BaseMapper<LessonCoursewareUserMapper> {
+
+}

+ 57 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/LessonCoursewareWrapper.java

@@ -1,9 +1,13 @@
 package com.ym.mec.biz.dal.wrapper;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareDetailWrapper;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.dto.im.BasicUserInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -32,6 +36,10 @@ public class LessonCoursewareWrapper {
 
         @ApiModelProperty("启用状态")
         private Boolean enable;
+
+        private Integer teacherId;
+
+        private Integer studentId;
     }
 
     @Data
@@ -96,4 +104,53 @@ public class LessonCoursewareWrapper {
 
     }
 
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel("updateRangeTypeDto-修改适用范围")
+    public static class UpdateRange{
+
+        @ApiModelProperty(value = "课件编号")
+        private Integer lessonCoursewareId;
+
+        @ApiModelProperty(value = "学员适用范围")
+        private String studentRangeType;
+
+        @ApiModelProperty(value = "学员编号")
+        private List<Integer> studentIds;
+
+        @ApiModelProperty(value = "老师适用范围")
+        private String teacherRangeType;
+
+        @ApiModelProperty(value = "老师编号")
+        private List<Integer> teacherIds;
+    }
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel("updateRangeTypeDto-修改适用范围")
+    public static class UpdateRangeDetail{
+
+        @ApiModelProperty(value = "课件编号")
+        private Integer lessonCoursewareId;
+
+        @ApiModelProperty(value = "课件名称")
+        private String name;
+
+        @ApiModelProperty(value = "学员适用范围")
+        private String studentRangeType;
+
+        @ApiModelProperty(value = "老师适用范围")
+        private String teacherRangeType;
+
+        @ApiModelProperty(value = "适用学员列表")
+        private List<SimpleUserDto> studentList;
+
+        @ApiModelProperty(value = "适用老师列表")
+        private List<SimpleUserDto> teacherList;
+    }
+
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/LessonCoursewareService.java

@@ -12,5 +12,11 @@ public interface LessonCoursewareService extends IService<LessonCourseware> {
 
     //分页查询已添加的课件
     IPage<LessonCoursewareWrapper.LessonCoursewareDto> selectPage(IPage<LessonCoursewareWrapper.LessonCoursewareDto> page, LessonCoursewareWrapper.LessonCoursewareQuery query);
+
+    //修改课件适用范围
+    void updateRangeType(LessonCoursewareWrapper.UpdateRange updateRange);
+
+    //获取课件适用范围
+    LessonCoursewareWrapper.UpdateRangeDetail getRangeType(Integer lessonCoursewareId);
 }
 

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/LessonCoursewareUserMapperService.java

@@ -0,0 +1,13 @@
+package com.ym.mec.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.biz.dal.entity.LessonCoursewareUserMapper;
+import com.ym.mec.biz.dal.mapper.LessonCoursewareMapper;
+import com.ym.mec.biz.dal.mapper.LessonCoursewareUserMapperMapper;
+
+public interface LessonCoursewareUserMapperService extends IService<LessonCoursewareUserMapper> {
+
+    LessonCoursewareUserMapperMapper getDao();
+
+}
+

+ 1 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1422,21 +1422,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
         Set<Long> homeworkCourseIds = studentServeService.getTeacherHomeworkCourseIdsWithMonday(userId, classDate);
 
-        for (CourseScheduleDto courseScheduleDto : teacherCourseSchedulesWithDate) {
+		for (CourseScheduleDto courseScheduleDto : teacherCourseSchedulesWithDate) {
             Long studentNum = studentNumCourseMap.get(courseScheduleDto.getId());
             if (Objects.nonNull(studentNum)) {
                 courseScheduleDto.setStudentAttendanceIsFirstTime(studentNum > 0 ? 0 : 1);
             } else {
                 courseScheduleDto.setStudentAttendanceIsFirstTime(1);
             }
-
-//            if (now.before(courseScheduleDto.getStartClassTime())) {
-//            courseScheduleDto.setStatus(CourseStatusEnum.NOT_START);
-//            } else if (now.after(courseScheduleDto.getEndClassTime())) {
-//            courseScheduleDto.setStatus(CourseStatusEnum.OVER);
-//            } else {
-//            courseScheduleDto.setStatus(CourseStatusEnum.UNDERWAY);
-//            }
             if (Objects.nonNull(courseScheduleDto.getClassGroupId())) {
                 //                String[] studentNames = classGroupStudentMapperDao.findCourseStudentName(courseScheduleDto.getId().intValue());
                 List<StudentNameAndPhoneDto> courseStudentNameAndPhone = classGroupStudentMapperDao.findCourseStudentNameAndPhone(courseScheduleDto.getId().intValue());

+ 88 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LessonCoursewareServiceImpl.java

@@ -4,19 +4,24 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayaedu.cbs.openfeign.client.CoursewareFeignService;
 import com.dayaedu.cbs.openfeign.wrapper.courseware.CbsLessonCoursewareWrapper;
+import com.microsvc.toolkit.common.response.template.R;
 import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.mapper.LessonCoursewareMapper;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.LessonCourseware;
+import com.ym.mec.biz.dal.entity.LessonCoursewareUserMapper;
+import com.ym.mec.biz.dal.mapper.LessonCoursewareMapper;
 import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
 import com.ym.mec.biz.service.LessonCoursewareService;
-import com.ym.mec.biz.service.SubjectService;
+import com.ym.mec.biz.service.LessonCoursewareUserMapperService;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -34,11 +39,14 @@ public class LessonCoursewareServiceImpl extends ServiceImpl<LessonCoursewareMap
     public LessonCoursewareMapper getDao() {
         return this.baseMapper;
     }
-
-    @Autowired
+    @Resource
     private CoursewareFeignService coursewareFeignService;
     @Resource
+    private LessonCoursewareUserMapperService lessonCoursewareUserMapperService;
+    @Resource
     private SubjectDao subjectDao;
+    @Resource
+    private TeacherDao teacherDao;
 
     @Override
     public IPage<LessonCoursewareWrapper.LessonCoursewareDto> selectPage(IPage<LessonCoursewareWrapper.LessonCoursewareDto> page, LessonCoursewareWrapper.LessonCoursewareQuery query) {
@@ -74,5 +82,80 @@ public class LessonCoursewareServiceImpl extends ServiceImpl<LessonCoursewareMap
         return page.setRecords(dtos);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateRangeType(LessonCoursewareWrapper.UpdateRange updateRange) {
+        LessonCourseware lessonCourseware = this.getById(updateRange.getLessonCoursewareId());
+        if (Objects.isNull(lessonCourseware)) {
+            throw new RuntimeException("课件不存在");
+        }
+        lessonCourseware.setStudentRangeType(updateRange.getStudentRangeType());
+        lessonCourseware.setTeacherRangeType(updateRange.getTeacherRangeType());
+        this.updateById(lessonCourseware);
+        lessonCoursewareUserMapperService.lambdaUpdate()
+                .eq(LessonCoursewareUserMapper::getLessonCoursewareId, updateRange.getLessonCoursewareId()).remove();
+        if(!StringUtils.equals(updateRange.getStudentRangeType(), "ALL") && CollectionUtils.isNotEmpty(updateRange.getStudentIds())){
+            List<LessonCoursewareUserMapper> list = updateRange.getStudentIds().stream().map(e -> {
+                LessonCoursewareUserMapper mapper = new LessonCoursewareUserMapper();
+                mapper.setLessonCoursewareId(updateRange.getLessonCoursewareId());
+                mapper.setUserId(e);
+                mapper.setUserType("STUDENT");
+                return mapper;
+            }).collect(Collectors.toList());
+            lessonCoursewareUserMapperService.saveBatch(list);
+        }
+        if(!StringUtils.equals(updateRange.getTeacherRangeType(), "ALL") && CollectionUtils.isNotEmpty(updateRange.getTeacherIds())){
+            List<LessonCoursewareUserMapper> list = updateRange.getTeacherIds().stream().map(e -> {
+                LessonCoursewareUserMapper mapper = new LessonCoursewareUserMapper();
+                mapper.setLessonCoursewareId(updateRange.getLessonCoursewareId());
+                mapper.setUserId(e);
+                mapper.setUserType("TEACHER");
+                return mapper;
+            }).collect(Collectors.toList());
+            lessonCoursewareUserMapperService.saveBatch(list);
+        }
+    }
+
+    @Override
+    public LessonCoursewareWrapper.UpdateRangeDetail getRangeType(Integer lessonCoursewareId) {
+        LessonCourseware lessonCourseware = this.getById(lessonCoursewareId);
+        if (Objects.isNull(lessonCourseware)) {
+            throw new RuntimeException("课件不存在");
+        }
+        R<CbsLessonCoursewareWrapper.LessonCourseware> lessonCoursewareR = coursewareFeignService.lessonCoursewareDetail(lessonCourseware.getLessonCourseId());
+        if (!lessonCoursewareR.getCode().equals(200)) {
+            throw new BizException("获取课件详情失败 {}", lessonCoursewareR.getMessage());
+        }
+        LessonCoursewareWrapper.UpdateRangeDetail detail = new LessonCoursewareWrapper.UpdateRangeDetail();
+        detail.setName(lessonCoursewareR.getData().getName());
+        detail.setLessonCoursewareId(lessonCoursewareId);
+        if(!lessonCourseware.getStudentRangeType().equals("ALL")){
+            List<LessonCoursewareUserMapper> studentList = lessonCoursewareUserMapperService.lambdaQuery()
+                    .eq(LessonCoursewareUserMapper::getLessonCoursewareId, lessonCoursewareId)
+                    .eq(LessonCoursewareUserMapper::getUserType, "STUDENT").list();
+            if(CollectionUtils.isNotEmpty(studentList)){
+                List<Integer> studentIds = studentList.stream().map(LessonCoursewareUserMapper::getUserId).collect(Collectors.toList());
+                List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(studentIds);
+                if (CollectionUtils.isNotEmpty(userDtoList)) {
+                    for (SimpleUserDto userDto : userDtoList) {
+                        userDto.setUserName(userDto.getNickName());
+                    }
+                }
+                detail.setStudentList(userDtoList);
+            }
+        }
+        if(!lessonCourseware.getTeacherRangeType().equals("ALL")){
+            List<LessonCoursewareUserMapper> teacherList = lessonCoursewareUserMapperService.lambdaQuery()
+                    .eq(LessonCoursewareUserMapper::getLessonCoursewareId, lessonCoursewareId)
+                    .eq(LessonCoursewareUserMapper::getUserType, "TEACHER").list();
+            if(CollectionUtils.isNotEmpty(teacherList)){
+                List<Integer> teacherIds = teacherList.stream().map(LessonCoursewareUserMapper::getUserId).collect(Collectors.toList());
+                List<SimpleUserDto> userDtoList = teacherDao.getUsersSimpleInfo(teacherIds);
+                detail.setTeacherList(userDtoList);
+            }
+        }
+        return detail;
+    }
+
 }
 

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LessonCoursewareUserMapperServiceImpl.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.biz.dal.entity.LessonCoursewareUserMapper;
+import com.ym.mec.biz.dal.mapper.LessonCoursewareUserMapperMapper;
+import com.ym.mec.biz.service.LessonCoursewareUserMapperService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+@Service
+public class LessonCoursewareUserMapperServiceImpl extends ServiceImpl<LessonCoursewareUserMapperMapper, LessonCoursewareUserMapper> implements LessonCoursewareUserMapperService {
+
+    private final static Logger log = LoggerFactory.getLogger(LessonCoursewareUserMapperServiceImpl.class);
+
+
+    @Override
+    public LessonCoursewareUserMapperMapper getDao() {
+        return this.baseMapper;
+    }
+
+}
+

+ 11 - 3
mec-biz/src/main/resources/config/mybatis/LessonCoursewareMapper.xml

@@ -3,15 +3,23 @@
 <mapper namespace="com.ym.mec.biz.dal.mapper.LessonCoursewareMapper">
     
     <select id="selectPage" resultType="com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper$LessonCoursewareDto">
-        select id_ id, subject_id_ subjectId, lesson_course_id_ lessonCoursewareId, enable_ enable from lesson_courseware
+        select lc.id_ id, lc.subject_id_ subjectId, lc.lesson_course_id_ lessonCoursewareId, lc.enable_ enable from lesson_courseware lc
+        left join lesson_courseware_user_mapper lcum ON lcum.lesson_courseware_id_ = lc.id_
         <where>
+            <if test="param.studentId != null">
+                AND (lc.student_range_type_ == 'ALL' OR (lcum.user_id_ = #{param.studentId} AND lcum.user_type_ = 'STUDENT'))
+            </if>
+            <if test="param.teacherId != null">
+                AND (lc.teacher_range_type_ == 'ALL' OR (lcum.user_id_ = #{param.teacherId} AND lcum.user_type_ = 'TEACHER'))
+            </if>
             <if test="param.subjectId != null">
-                and subject_id_ = #{param.subjectId}
+                and .id_subject_id_ = #{param.subjectId}
             </if>
             <if test="param.enable != null">
-                and enable_ = #{param.enable}
+                and .id_enable_ = #{param.enable}
             </if>
         </where>
+        GROUP BY lc.id_
         order by create_time_ desc
 	</select>
     <select id="getLessonCoursewareSubjectList" resultMap="com.ym.mec.biz.dal.dao.SubjectDao.Subject">

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/LessonCoursewareUserMapperMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE  mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ym.mec.biz.dal.mapper.LessonCoursewareUserMapperMapper">
+
+</mapper>