Browse Source

fix:教学课程管理

caozixuan 2 năm trước cách đây
mục cha
commit
395a37bb7d

+ 14 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TeachCourseMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
 import com.qmth.distributed.print.business.entity.TeachCourse;
+import com.qmth.teachcloud.common.bean.result.TeacherTeamResult;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -27,4 +28,17 @@ public interface TeachCourseMapper extends BaseMapper<TeachCourse> {
                                                  @Param("courseName") String courseName,
                                                  @Param("userId") Long userId,
                                                  @Param("schoolId") Long schoolId);
+
+    /**
+     * 教师团队分页查询
+     *
+     * @param iPage         分页参数
+     * @param userInfo      用户信息(姓名||工号)
+     * @param basicCourseId 基础课程id
+     * @return 分页结果
+     */
+    IPage<TeacherTeamResult> findTeacherTeamPage(@Param("iPage") Page<TeacherTeamResult> iPage,
+                                                 @Param("userInfo") String userInfo,
+                                                 @Param("basicCourseId") Long basicCourseId,
+                                                 @Param("schoolId") Long schoolId);
 }

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

@@ -7,6 +7,7 @@ import com.qmth.distributed.print.business.bean.params.TeacherTeamParam;
 import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
 import com.qmth.distributed.print.business.entity.TeachCourse;
+import com.qmth.teachcloud.common.bean.result.TeacherTeamResult;
 import com.qmth.teachcloud.common.entity.SysUser;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -97,4 +98,15 @@ public interface TeachCourseService extends IService<TeachCourse> {
      * @param requestUser   请求的用户
      */
     void importTeacherTeam(MultipartFile file, Long basicCourseId, SysUser requestUser) throws IOException, NoSuchFieldException, IllegalAccessException;
+
+    /**
+     * 分页查询教师团队
+     *
+     * @param userInfo      用户姓名或工号
+     * @param basicCourseId 基础课程id
+     * @param pageNumber    分页页数
+     * @param pageSize      分页容量
+     * @return 分页结果
+     */
+    IPage<TeacherTeamResult> findTeacherTeamPage(String userInfo, Long basicCourseId, int pageNumber, int pageSize);
 }

+ 23 - 21
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -12,14 +12,14 @@ import com.qmth.distributed.print.business.bean.params.TeachCourseParams;
 import com.qmth.distributed.print.business.bean.params.TeacherTeamParam;
 import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
-import com.qmth.distributed.print.business.entity.TeachClazz;
 import com.qmth.distributed.print.business.entity.TeachCourse;
 import com.qmth.distributed.print.business.mapper.TeachCourseMapper;
-import com.qmth.distributed.print.business.service.TeachClazzService;
 import com.qmth.distributed.print.business.service.TeachCourseService;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
+import com.qmth.teachcloud.common.bean.result.TeacherTeamResult;
+import com.qmth.teachcloud.common.bean.result.UserRoleNameResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.SysRole;
@@ -60,8 +60,6 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
     @Resource
     private SysOrgService sysOrgService;
     @Resource
-    private TeachClazzService teachClazzService;
-    @Resource
     private SysUserService sysUserService;
     @Resource
     private SysRoleService sysRoleService;
@@ -215,23 +213,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void deleteTeachCourseBatch(List<Long> idList) {
-        List<Long> basicCourseIdList = this.listByIds(idList).stream().map(TeachCourse::getBasicCourseId).distinct().collect(Collectors.toList());
-        if (CollectionUtils.isNotEmpty(basicCourseIdList)) {
-            List<TeachClazz> teachClazzList = teachClazzService.list(new QueryWrapper<TeachClazz>()
-                    .lambda()
-                    .in(TeachClazz::getBasicCourseId, basicCourseIdList));
-            if (CollectionUtils.isNotEmpty(teachClazzList)) {
-                // 教学课程下有教学班不能删除
-                String msg = "";
-                List<Long> existCourseIdList = teachClazzList.stream().map(TeachClazz::getBasicCourseId).distinct().collect(Collectors.toList());
-                msg = basicCourseService.listByIds(existCourseIdList)
-                        .stream()
-                        .map(e -> e.getName() + "(" + e.getCode() + ")")
-                        .collect(Collectors.joining(","));
-                throw ExceptionResultEnum.ERROR.exception("教学课程:【" + msg + "】下存在教学班级不能删除");
-            }
-            this.removeByIds(idList);
-        }
+        this.removeByIds(idList);
     }
 
     @Transactional
@@ -353,10 +335,30 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
                         TeacherTeamParam teacherTeamParam = new TeacherTeamParam();
                         teacherTeamParam.setTeacherCode(teacherTeamDto.getCode());
                         teacherTeamParam.setTeacherName(teacherTeamDto.getName());
+                        teacherTeamParam.setBasicCourseId(basicCourseId);
                         this.manualCreateTeacher(teacherTeamParam, requestUser);
                     }
                 }
             }
         }
     }
+
+    @Override
+    public IPage<TeacherTeamResult> findTeacherTeamPage(String userInfo, Long basicCourseId, int pageNumber, int pageSize) {
+        Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
+        if (SystemConstant.strNotNull(userInfo)) {
+            userInfo = SystemConstant.translateSpecificSign(userInfo);
+        }
+        IPage<TeacherTeamResult> page = this.baseMapper.findTeacherTeamPage(new Page<>(pageNumber, pageSize), userInfo, basicCourseId, schoolId);
+        page.getRecords().forEach(e -> {
+            Long userId = e.getUserId();
+            List<Long> userIdList = new ArrayList<>();
+            userIdList.add(userId);
+            List<UserRoleNameResult> roleNameList = sysUserService.selectRoleNames(userIdList);
+            if (roleNameList.size() == 1) {
+                e.setRoleName(roleNameList.get(0).getRoleNames());
+            }
+        });
+        return page;
+    }
 }

+ 33 - 1
distributed-print-business/src/main/resources/db/3.2.3更新脚本-增量.sql

@@ -1152,4 +1152,36 @@ ALTER TABLE `teach_clazz`
     ADD UNIQUE INDEX `teach_clazz_unique` (`school_id` ASC, `basic_course_id` ASC, `teach_clazz_name` ASC) INVISIBLE;
 ;
 ALTER TABLE `teach_student`
-    CHANGE COLUMN `teach_course_id` `basic_course_id` BIGINT NOT NULL COMMENT '基础课程id(冗余)' ;
+    CHANGE COLUMN `teach_course_id` `basic_course_id` BIGINT NOT NULL COMMENT '基础课程id(冗余)' ;
+
+delete from sys_privilege where parent_id in (576,585,586) and id > 0;
+-- 教学课程url
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('830', '教学课程-分页查询', '/api/admin/teach/course/page', 'URL', '576', '1', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('831', '教学课程-手动添加', '/api/admin/teach/course/manual_create', 'URL', '576', '2', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('832', '教学课程-课程表选择并添加', '/api/admin/teach/course/select_create', 'URL', '576', '3', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('833', '教学课程-批量导入', '/api/admin/teach/course/import', 'URL', '576', '4', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('834', '教学课程-批量删除', '/api/admin/teach/course/delete', 'URL', '576', '5', 'AUTH', '1', '1', '1');
+-- 教学课程element
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('835', '教学课程-列表', 'List', 'LIST', '576', '1', 'AUTH', '830', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('836', '教学课程-查询', 'Select', 'BUTTON', '576', '2', 'AUTH', '830', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('837', '教学课程-删除', 'Delete', 'LINK', '576', '3', 'AUTH', '834', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('838', '教学课程-查询条件', 'Condition', 'CONDITION', '576', '4', 'AUTH', '830', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('840', '教学课程-添加课程', 'AddCourse', 'BUTTON', '576', '5', 'AUTH', '831,832,833,839', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('841', '教学课程-管理', 'Link', 'LINK', '576', '6', 'AUTH', '1', '0', '1');
+-- 基础课程url
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('839', '基础课程-根据学院查询课程', '/api/admin/basic/course/list_by_org', 'URL', '13', '7', 'AUTH', '1', '1', '1');
+-- 教学班url
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('842', '教学班-分页查询', '/api/admin/teach/clazz/find_teach_course', 'URL', '841', '1', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('843', '教学班-编辑', '/api/admin/teach/clazz/edit', 'URL', '841', '2', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('844', '教学班-删除', '/api/admin/teach/clazz/delete', 'URL', '841', '3', 'AUTH', '1', '1', '1');
+-- 教师团队url
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('845', '教师团队-分页查询', '/api/admin/teach/course/teacher_team_page', 'URL', '841', '4', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('846', '教师团队-手动添加', '/api/admin/teach/course/manual_create_teacher', 'URL', '841', '5', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('847', '教师团队-教师库添加', '/api/admin/teach/course/select_create_teacher', 'URL', '841', '6', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('848', '教师团队-批量导入教师', '/api/admin/teach/course/import_teacher', 'URL', '841', '7', 'AUTH', '1', '1', '1');
+-- 教学学生url
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('849', '教学学生-创建教学学生', '/api/admin/teach/student/create', 'URL', '841', '8', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('850', '教学学生-查询', '/api/admin/teach/student/page', 'URL', '841', '9', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('851', '教学学生-从课程班级批量添加学生', '/api/admin/teach/student/create_batch', 'URL', '841', '10', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('852', '教学学生-批量导入', '/api/admin/teach/student/import', 'URL', '841', '11', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('853', '教学学生-批量删除', '/api/admin/teach/student/delete', 'URL', '841', '12', 'AUTH', '1', '1', '1');

+ 26 - 0
distributed-print-business/src/main/resources/mapper/TeachCourseMapper.xml

@@ -27,6 +27,32 @@
         </where>
         ORDER BY tc.create_time DESC
     </select>
+    <select id="findTeacherTeamPage" resultType="com.qmth.teachcloud.common.bean.result.TeacherTeamResult">
+        SELECT
+            tc.id,
+            tc.basic_course_id as basicCourseId,
+            tc.user_id as userId,
+            su.real_name as userName,
+            su.code as userCode,
+            so.name as orgName
+        FROM
+            teach_course tc
+                LEFT JOIN
+            sys_user su ON tc.user_id = su.id
+                LEFT JOIN
+            sys_org so ON su.org_id = so.id
+        <where>
+            <if test="schoolId != null">
+                AND tc.school_id = #{schoolId}
+            </if>
+            <if test="userInfo != null and userInfo != ''">
+                AND (su.real_name LIKE CONCAT('%',#{userInfo},'%') OR su.code LIKE CONCAT('%',#{userInfo},'%'))
+            </if>
+            <if test="basicCourseId != null">
+                AND tc.basic_course_id = #{basicCourseId}
+            </if>
+        </where>
+    </select>
 </mapper>
 
 

+ 2 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java

@@ -151,9 +151,8 @@ public class BasicCourseController {
     @RequestMapping(value = "/list_by_org", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
-    public Result findBasicCourseListByOrg(@ApiParam(value = "所属机构id") @RequestParam(required = false) String belongOrgId) {
-        // TODO: 2023/3/16 根据机构查课程 
-        return null;
+    public Result findBasicCourseListByOrg(@ApiParam(value = "所属机构id", required = true) @RequestParam String belongOrgId) {
+        return ResultUtil.ok(basicCourseService.listByOrgId(SystemConstant.convertIdToLong(belongOrgId)));
     }
 }
 

+ 14 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachCourseController.java

@@ -138,4 +138,18 @@ public class TeachCourseController {
         teachCourseService.importTeacherTeam(file, basicCourseId, requestUser);
         return ResultUtil.ok();
     }
+
+    @ApiOperation(value = "教师团队-分页查询")
+    @RequestMapping(value = "/teacher_team_page", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+//    @OperationLogDetail(detail = "根据查询条件课程名称[{{courseName}}]模糊查询教学课程,查询第[{{pageNumber}}]页,每页查[{{pageSize}}]个", operationType = OperationTypeEnum.SELECT, operationUnit = OperationUnitEnum.TEACH_COURSE,customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    public Result findTeachTeamPage(@ApiParam(value = "用户姓名工号(模糊查询)") @RequestParam(required = false) String userInfo,
+                                    @ApiParam(value = "基础课程id", required = true) @RequestParam String basicCourseId,
+                                    @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                                    @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        return ResultUtil.ok(teachCourseService.findTeacherTeamPage(userInfo, SystemConstant.convertIdToLong(basicCourseId), pageNumber, pageSize));
+    }
+
+
 }

+ 57 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/TeachCourseSelectResult.java

@@ -0,0 +1,57 @@
+package com.qmth.teachcloud.common.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description:
+ * @Author: CaoZixuan
+ * @Date:
+ */
+public class TeachCourseSelectResult {
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "基础课程id")
+    private Long basicCourseId;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "课程编号")
+    private String courseCode;
+
+    @ApiModelProperty(value = "开课学院名称")
+    private String teachCollegeName;
+
+    public Long getBasicCourseId() {
+        return basicCourseId;
+    }
+
+    public void setBasicCourseId(Long basicCourseId) {
+        this.basicCourseId = basicCourseId;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getTeachCollegeName() {
+        return teachCollegeName;
+    }
+
+    public void setTeachCollegeName(String teachCollegeName) {
+        this.teachCollegeName = teachCollegeName;
+    }
+}

+ 92 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/TeacherTeamResult.java

@@ -0,0 +1,92 @@
+package com.qmth.teachcloud.common.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 教师团队查询结果
+ * @Author: CaoZixuan
+ * @Date: 2023-03-17
+ */
+public class TeacherTeamResult {
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "教师团队id")
+    private Long id;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "基础课程id")
+    private Long basicCourseId;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "教师id")
+    private Long userId;
+
+    @ApiModelProperty(value = "教师名")
+    private String userName;
+
+    @ApiModelProperty(value = "教师编号")
+    private String userCode;
+
+    @ApiModelProperty(value = "角色名称")
+    private String roleName;
+
+    @ApiModelProperty(value = "机构名称")
+    private String orgName;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getBasicCourseId() {
+        return basicCourseId;
+    }
+
+    public void setBasicCourseId(Long basicCourseId) {
+        this.basicCourseId = basicCourseId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserCode() {
+        return userCode;
+    }
+
+    public void setUserCode(String userCode) {
+        this.userCode = userCode;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+}

+ 8 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicCourseService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
 import com.qmth.teachcloud.common.bean.result.BasicCourseResult;
+import com.qmth.teachcloud.common.bean.result.TeachCourseSelectResult;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.SysUser;
 import org.springframework.util.LinkedMultiValueMap;
@@ -113,4 +114,11 @@ public interface BasicCourseService extends IService<BasicCourse> {
     List<BasicCourse> findBySchoolIdAndCourseCode(Long schoolId, List<String> courseCodes);
 
     void exportData(HttpServletResponse response, Long belongOrgId, String courseName, Long startCreateTime, Long endCreateTime) throws Exception;
+
+    /**
+     * 根据机构id选择老师
+     * @param orgId 机构id
+     * @return 基础课程结果
+     */
+    List<TeachCourseSelectResult> listByOrgId(Long orgId);
 }

+ 17 - 0
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.TeachCourseSelectResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -34,6 +35,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * <p>
@@ -393,6 +395,21 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
         ExcelUtil.excelExport("课程数据", BasicCourseExportDto.class, courseExportDtos, response);
     }
 
+    @Override
+    public List<TeachCourseSelectResult> listByOrgId(Long orgId) {
+        return this.list(new QueryWrapper<BasicCourse>()
+                        .lambda()
+                        .eq(BasicCourse::getTeachingRoomId, orgId))
+                .stream().flatMap(e -> {
+                    TeachCourseSelectResult teachCourseSelectResult = new TeachCourseSelectResult();
+                    teachCourseSelectResult.setBasicCourseId(e.getId());
+                    teachCourseSelectResult.setCourseName(e.getName());
+                    teachCourseSelectResult.setCourseCode(e.getCode());
+                    teachCourseSelectResult.setTeachCollegeName(sysOrgService.findCollegeLevelOrgByOrgId(orgId).getName());
+                    return Stream.of(teachCourseSelectResult);
+                }).collect(Collectors.toList());
+    }
+
     private List<BasicCourse> editEntityHelp(List<BasicCourseParams> basicCourseParamsList, SysUser sysUser) {
         Long schoolId = sysUser.getSchoolId();
         List<BasicCourse> basicCourseList = new ArrayList<>();