Ver Fonte

基础课程管理加入授课老师

wangliang há 2 anos atrás
pai
commit
0554f9371e
15 ficheiros alterados com 348 adições e 21 exclusões
  1. 14 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TeachCourse.java
  2. 9 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TeachCourseService.java
  3. 27 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java
  4. 12 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java
  5. 13 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/BasicCourseExportDto.java
  6. 12 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicCourseParams.java
  7. 13 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/BasicCourseResult.java
  8. 14 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/SysUserResult.java
  9. 95 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicTeachCourse.java
  10. 1 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/userPush/SpecialPrivilegeEnum.java
  11. 16 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicTeachCourseMapper.java
  12. 25 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicTeachCourseService.java
  13. 41 16
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java
  14. 51 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicTeachCourseServiceImpl.java
  15. 5 0
      teachcloud-common/src/main/resources/mapper/BasicTeachCourseMapper.xml

+ 14 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TeachCourse.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.entity;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.entity.SysUser;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -33,6 +34,19 @@ public class TeachCourse extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "是否删除")
     private Boolean enable;
 
+    public TeachCourse(){
+
+    }
+
+    public TeachCourse(SysUser sysUser, Long basicCourseId, Long teachId){
+        setSchoolId(sysUser.getSchoolId());
+        setBasicCourseId(basicCourseId);
+        setUserId(teachId);
+        insertInfo(sysUser.getId());
+        updateInfo(sysUser.getId());
+        this.enable = true;
+    }
+
     public Long getSchoolId() {
         return schoolId;
     }

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TeachCourseService.java

@@ -15,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Set;
 
 /**
  * @Description: 教学课程服务类
@@ -121,4 +122,12 @@ public interface TeachCourseService extends IService<TeachCourse> {
     List<TeacherSelectResult> findUserByOrgId(Long orgId);
 
     List<BasicCourse> findTeachCourseByUserId(Long userId);
+
+    /**
+     * 插入老师和课程关联表
+     *
+     * @param basicCourseId
+     * @param teachIdSet
+     */
+    public void updateByCourseIdAndTeacherList(Long basicCourseId, Set<Long> teachIdSet);
 }

+ 27 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -56,12 +56,16 @@ import java.util.stream.Stream;
  */
 @Service
 public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, TeachCourse> implements TeachCourseService {
+
     @Resource
     private BasicCourseService basicCourseService;
+
     @Resource
     private SysOrgService sysOrgService;
+
     @Resource
     private SysUserService sysUserService;
+
     @Resource
     private SysRoleService sysRoleService;
 
@@ -376,4 +380,27 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
     public List<BasicCourse> findTeachCourseByUserId(Long userId) {
         return this.baseMapper.findTeachCourseByUserId(userId);
     }
+
+    /**
+     * 插入老师和课程关联表
+     *
+     * @param basicCourseId
+     * @param teachIdSet
+     */
+    @Override
+    @Transactional
+    public void updateByCourseIdAndTeacherList(Long basicCourseId, Set<Long> teachIdSet) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        List<TeachCourse> teachCourseList = null;
+        // 删除原有的全部
+        this.remove(new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getBasicCourseId, basicCourseId).gt(TeachCourse::getId, 0));
+        // 新增
+        if (!CollectionUtils.isEmpty(teachIdSet)) {
+            teachCourseList = new ArrayList<>();
+            for (Long teachId : teachIdSet) {
+                teachCourseList.add(new TeachCourse(sysUser, basicCourseId, teachId));
+            }
+            this.saveBatch(teachCourseList);
+        }
+    }
 }

+ 12 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.api;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.service.PrintCommonService;
+import com.qmth.distributed.print.business.service.TeachCourseService;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -17,6 +18,8 @@ import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -49,9 +52,12 @@ public class BasicCourseController {
 
     @Resource
     private PrintCommonService printCommonService;
+
     @Resource
     private BasicCourseService basicCourseService;
 
+    @Resource
+    TeachCourseService teachCourseService;
 
     @ApiOperation(value = "模糊查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
@@ -92,12 +98,17 @@ public class BasicCourseController {
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
+    @Transactional
     public Result saveBasicCourse(@Valid @RequestBody BasicCourseParams basicCourseParams, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(basicCourseService.saveBasicCourse(basicCourseParams, sysUser));
+        Long l = basicCourseService.saveBasicCourse(basicCourseParams, sysUser);
+        if (!CollectionUtils.isEmpty(basicCourseParams.getTeachIdSet())) {
+            teachCourseService.updateByCourseIdAndTeacherList(basicCourseParams.getId(), basicCourseParams.getTeachIdSet());
+        }
+        return ResultUtil.ok(l);
     }
 
     @ApiOperation(value = "课程管理-批量删除")

+ 13 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/BasicCourseExportDto.java

@@ -30,13 +30,24 @@ public class BasicCourseExportDto {
     private List<ClazzDatasourceResult> clazzList;
 
     @ExcelProperty(name = "授课班级", width = 20, index = 4)
-    private String clazzName;
+    private String clazzName = "";
+
+    @ExcelProperty(name = "授课老师", width = 20, index = 5)
+    private String teachName = "";
 
     private Boolean enable;
 
-    @ExcelProperty(name = "状态", width = 15, index = 5)
+    @ExcelProperty(name = "状态", width = 15, index = 6)
     private String enableName;
 
+    public String getTeachName() {
+        return teachName;
+    }
+
+    public void setTeachName(String teachName) {
+        this.teachName = teachName;
+    }
+
     public Long getId() {
         return id;
     }

+ 12 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicCourseParams.java

@@ -7,7 +7,6 @@ import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Range;
 
-import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.util.Set;
 
@@ -43,10 +42,22 @@ public class BasicCourseParams {
     @ApiModelProperty(value = "授课班级集合")
     private Set<Long> clazzIdSet;
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "授课老师集合")
+    private Set<Long> teachIdSet;
+
     public Long getId() {
         return id;
     }
 
+    public Set<Long> getTeachIdSet() {
+        return teachIdSet;
+    }
+
+    public void setTeachIdSet(Set<Long> teachIdSet) {
+        this.teachIdSet = teachIdSet;
+    }
+
     public void setId(Long id) {
         this.id = id;
     }

+ 13 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/BasicCourseResult.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -36,7 +37,10 @@ public class BasicCourseResult {
     private String clazzIds;
 
     @ApiModelProperty(value = "班级信息集合")
-    private List<ClazzDatasourceResult> clazzList;
+    private List<ClazzDatasourceResult> clazzList = new ArrayList<>();
+
+    @ApiModelProperty(value = "老师信息集合")
+    private List<SysUserResult> teachList = new ArrayList<>();
 
     @ApiModelProperty(value = "是否被逻辑删除")
     private Boolean enable;
@@ -48,6 +52,14 @@ public class BasicCourseResult {
     @ApiModelProperty(value = "创建人id")
     private Long createId;
 
+    public List<SysUserResult> getTeachList() {
+        return teachList;
+    }
+
+    public void setTeachList(List<SysUserResult> teachList) {
+        this.teachList = teachList;
+    }
+
     public Long getId() {
         return id;
     }

+ 14 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/SysUserResult.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.entity.SysUser;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -50,6 +51,19 @@ public class SysUserResult implements Serializable {
     @ApiModelProperty(value = "机构编码")
     private String orgCode;
 
+    public SysUserResult(){
+
+    }
+
+    public SysUserResult(SysUser sysUser){
+        this.id = sysUser.getId();
+        this.loginName = sysUser.getLoginName();
+        this.realName = sysUser.getRealName();
+        this.name = sysUser.getRealName();
+        this.mobileNumber = sysUser.getMobileNumber();
+        this.orgId = sysUser.getOrgId();
+    }
+
     public String getName() {
         return name;
     }

+ 95 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicTeachCourse.java

@@ -0,0 +1,95 @@
+package com.qmth.teachcloud.common.entity;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.base.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 老师和课程关联表
+ * </p>
+ *
+ * @author wangliang
+ * @since 2023-04-24
+ */
+@ApiModel(value = "BasicTeachCourse对象", description = "老师和课程关联表")
+public class BasicTeachCourse extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long schoolId;
+
+    @ApiModelProperty(value = "机构id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long orgId;
+
+    @ApiModelProperty(value = "用户ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty(value = "课程ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long courseId;
+
+    @ApiModelProperty(value = "是否启用?1-是 ;0-否")
+    private Boolean enable = true;
+
+    public BasicTeachCourse() {
+
+    }
+
+    public BasicTeachCourse(SysUser sysUser,Long courseId, Long teachId) {
+        setSchoolId(sysUser.getSchoolId());
+        setOrgId(sysUser.getOrgId());
+        setCourseId(courseId);
+        setUserId(teachId);
+        insertInfo(sysUser.getId());
+        updateInfo(sysUser.getId());
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Long courseId) {
+        this.courseId = courseId;
+    }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+}

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/userPush/SpecialPrivilegeEnum.java

@@ -9,6 +9,7 @@ public enum SpecialPrivilegeEnum {
     SUBJECT_HEADER("科组长权限", "SubjectHeader", "S_", 4, "6"),
     MARKER("评卷员权限", "Marker", "M_", 5, "5"),
     COMPOSITE("复合权限", "Composite", null, 0, "5,6"),
+    TEACHER("内置老师权限", "teacher", null, 0, "10"),
     UNIDENTIFIED("无特殊权限", "Unidentified", null, 0, null);
 
     SpecialPrivilegeEnum(String title, String id, String prefix, int value, String roleId) {

+ 16 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicTeachCourseMapper.java

@@ -0,0 +1,16 @@
+package com.qmth.teachcloud.common.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.common.entity.BasicTeachCourse;
+
+/**
+ * <p>
+ * 老师和课程关联表 Mapper 接口
+ * </p>
+ *
+ * @author wangliang
+ * @since 2023-04-24
+ */
+public interface BasicTeachCourseMapper extends BaseMapper<BasicTeachCourse> {
+
+}

+ 25 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicTeachCourseService.java

@@ -0,0 +1,25 @@
+package com.qmth.teachcloud.common.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.teachcloud.common.entity.BasicTeachCourse;
+
+import java.util.Set;
+
+/**
+ * <p>
+ * 老师和课程关联表 服务类
+ * </p>
+ *
+ * @author wangliang
+ * @since 2023-04-24
+ */
+public interface BasicTeachCourseService extends IService<BasicTeachCourse> {
+
+    /**
+     * 插入老师和课程关联表
+     *
+     * @param courseId
+     * @param teachIdSet
+     */
+    public void updateByCourseIdAndTeacherList(Long courseId, Set<Long> teachIdSet);
+}

+ 41 - 16
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -14,6 +14,7 @@ import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
 import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
 import com.qmth.teachcloud.common.bean.result.BasicCourseResult;
 import com.qmth.teachcloud.common.bean.result.ClazzDatasourceResult;
+import com.qmth.teachcloud.common.bean.result.SysUserResult;
 import com.qmth.teachcloud.common.bean.result.TeachCourseSelectResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
@@ -26,6 +27,7 @@ import com.qmth.teachcloud.common.util.excel.ExcelError;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -51,9 +53,6 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     @Resource
     private BasicCourseMapper basicCourseMapper;
 
-    @Resource
-    private TeachcloudCommonService teachcloudCommonService;
-
     @Resource
     private SysOrgService sysOrgService;
 
@@ -66,8 +65,11 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     @Resource
     private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
-//    @Resource
-//    private SysUserService sysUserService;
+    @Resource
+    BasicTeachCourseService basicTeachCourseService;
+
+    @Resource
+    private SysUserService sysUserService;
 
     @Override
     public List<BasicCourse> listCoursesByUserId(Long userId) {
@@ -147,8 +149,17 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
                     clazzDatasourceResultList.add(clazzDatasourceResult);
                 }
                 basicCourseResult.setClazzList(clazzDatasourceResultList);
-            } else {
-                basicCourseResult.setClazzList(new ArrayList<>());
+            }
+
+            List<BasicTeachCourse> basicTeachCourseList = basicTeachCourseService.list(new QueryWrapper<BasicTeachCourse>().lambda().eq(BasicTeachCourse::getCourseId, courseId));
+            if (!CollectionUtils.isEmpty(basicTeachCourseList)) {
+                List<SysUserResult> sysUserResultList = new ArrayList<>();
+                Set<Long> teachIdSet = basicTeachCourseList.stream().map(s -> s.getUserId()).collect(Collectors.toSet());
+                List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().in(SysUser::getId, teachIdSet));
+                for (SysUser sysUser : sysUserList) {
+                    sysUserResultList.add(new SysUserResult(sysUser));
+                }
+                basicCourseResult.setTeachList(sysUserResultList);
             }
         }
         return iPage;
@@ -194,6 +205,10 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
                 .in(BasicUserCourse::getCourseId, idList)
                 .eq(BasicUserCourse::getSchoolId, sysUser.getSchoolId()));
 
+        // 老师批量删除
+        basicTeachCourseService.remove(new QueryWrapper<BasicTeachCourse>().lambda()
+                .in(BasicTeachCourse::getCourseId, idList)
+                .eq(BasicTeachCourse::getSchoolId, sysUser.getSchoolId()));
         return this.removeByIds(idList);
     }
 
@@ -381,14 +396,20 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
             Set<Long> clazzIdSet = basicUserCourseList.stream().map(BasicUserCourse::getClazzId).collect(Collectors.toSet());
             if (clazzIdSet.size() > 0) {
                 List<BasicClazz> clazzList = basicClazzService.list(new QueryWrapper<BasicClazz>().lambda().in(BasicClazz::getId, clazzIdSet).orderByAsc(BasicClazz::getCreateTime));
-                if (clazzList.isEmpty()) {
-                    basicCourseExportDto.setClazzName("");
-                } else {
+                if (!clazzList.isEmpty()) {
                     List<String> clazzNameList = clazzList.stream().map(BasicClazz::getClazzName).collect(Collectors.toList());
                     basicCourseExportDto.setClazzName(String.join(",", clazzNameList));
                 }
-            } else {
-                basicCourseExportDto.setClazzName("");
+            }
+
+            List<BasicTeachCourse> basicTeachCourseList = basicTeachCourseService.list(new QueryWrapper<BasicTeachCourse>().lambda().eq(BasicTeachCourse::getCourseId, courseId));
+            Set<Long> teachIdSet = basicTeachCourseList.stream().map(BasicTeachCourse::getUserId).collect(Collectors.toSet());
+            if (!CollectionUtils.isEmpty(teachIdSet)) {
+                List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().in(SysUser::getId, teachIdSet));
+                if (!sysUserList.isEmpty()) {
+                    List<String> teachNameList = sysUserList.stream().map(SysUser::getRealName).collect(Collectors.toList());
+                    basicCourseExportDto.setTeachName(String.join(",", teachNameList));
+                }
             }
             basicCourseExportDto.setEnableName(basicCourseExportDto.getEnable() ? "启用" : "禁用");
         }
@@ -396,7 +417,7 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     }
 
     @Override
-    public List<TeachCourseSelectResult> listByOrgId(Long orgId,Long schoolId) {
+    public List<TeachCourseSelectResult> listByOrgId(Long orgId, Long schoolId) {
         List<Long> temp = new ArrayList<>();
         temp.add(orgId);
 
@@ -406,10 +427,10 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
             // 全校学院级机构map
             Map<Long, String> collegeMap = new HashMap<>();
             for (Long teachRoomId : orgIdSet) {
-                if (!collegeMap.containsKey(teachRoomId)){
+                if (!collegeMap.containsKey(teachRoomId)) {
                     SysOrg sysOrg = sysOrgService.findCollegeLevelOrgByOrgId(teachRoomId);
-                    if (Objects.nonNull(sysOrg)){
-                        collegeMap.put(teachRoomId,sysOrg.getName());
+                    if (Objects.nonNull(sysOrg)) {
+                        collegeMap.put(teachRoomId, sysOrg.getName());
                     }
                 }
             }
@@ -485,10 +506,14 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
                 basicCourse.setId(id);
                 basicCourse.setUpdateId(sysUser.getId());
             }
+            basicCourseParams.setId(basicCourse.getId());
             basicCourse.setOrgId(orgId);
 
             // 根据课程id和授课班级集合更新'basic_user_course'表
             basicUserCourseService.updateByCourseIdAndClazzList(id, clazzIdSet, sysUser, orgId);
+            if (!CollectionUtils.isEmpty(basicCourseParams.getTeachIdSet())) {
+                basicTeachCourseService.updateByCourseIdAndTeacherList(id, basicCourseParams.getTeachIdSet());
+            }
 
             basicCourseList.add(basicCourse);
         }

+ 51 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicTeachCourseServiceImpl.java

@@ -0,0 +1,51 @@
+package com.qmth.teachcloud.common.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.teachcloud.common.entity.BasicTeachCourse;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.mapper.BasicTeachCourseMapper;
+import com.qmth.teachcloud.common.service.BasicTeachCourseService;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <p>
+ * 老师和课程关联表 服务实现类
+ * </p>
+ *
+ * @author wangliang
+ * @since 2023-04-24
+ */
+@Service
+public class BasicTeachCourseServiceImpl extends ServiceImpl<BasicTeachCourseMapper, BasicTeachCourse> implements BasicTeachCourseService {
+
+    /**
+     * 插入老师和课程关联表
+     *
+     * @param courseId
+     * @param teachIdSet
+     */
+    @Override
+    @Transactional
+    public void updateByCourseIdAndTeacherList(Long courseId, Set<Long> teachIdSet) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        List<BasicTeachCourse> basicTeachCourseList = null;
+        // 删除原有的全部
+        this.remove(new QueryWrapper<BasicTeachCourse>().lambda().eq(BasicTeachCourse::getCourseId, courseId).gt(BasicTeachCourse::getId, 0));
+        // 新增
+        if (!CollectionUtils.isEmpty(teachIdSet)) {
+            basicTeachCourseList = new ArrayList<>();
+            for (Long teachId : teachIdSet) {
+                basicTeachCourseList.add(new BasicTeachCourse(sysUser, courseId, teachId));
+            }
+            this.saveBatch(basicTeachCourseList);
+        }
+    }
+}

+ 5 - 0
teachcloud-common/src/main/resources/mapper/BasicTeachCourseMapper.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.qmth.distributed.print.mapper.BasicTeachCourseMapper">
+
+</mapper>