Browse Source

1、作业消息推送

Joburgess 5 years ago
parent
commit
91d0f4bc97

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CoursesGroupDao.java

@@ -26,6 +26,9 @@ public interface CoursesGroupDao extends BaseDAO<Long, CoursesGroup> {
     List<CourseGroupExtendDto> findTeacherCourseGroupsWithWeb(Map<String, Object> params);
     int countTeacherGroupsWithWeb(Map<String,Object> params);
 
+    List<CourseGroupExtendDto> findStudentCourseGroupsWithWeb(Map<String, Object> params);
+    int countStudentGroupsWithWeb(Map<String,Object> params);
+
     /**
      * @describe 获取指定教师的课程组列表
      * @author Joburgess

+ 57 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GroupDao.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.BaseMapDto;
 import com.ym.mec.biz.dal.entity.Group;
+import com.ym.mec.biz.dal.enums.GroupType;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -34,4 +36,59 @@ public interface GroupDao {
      */
     List<Group> findByClassGroupIds(@Param("classGroupIds") List<Integer> classGroupIds);
 
+    /**
+     * @describe 统计团体学生数量
+     * @author Joburgess
+     * @date 2020/4/6
+     * @param groupIds:
+     * @param groupType:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
+     */
+    List<BaseMapDto<String, Long>> countGroupStudentNum(@Param("groupIds") List<String> groupIds,
+                                          @Param("groupType") GroupType groupType);
+
+    /**
+     * @describe 统计团体的总课次
+     * @author Joburgess
+     * @date 2020/4/6
+     * @param groupIds:
+     * @param groupType:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
+     */
+    List<BaseMapDto<String, Long>> countGroupTotalClassesTimes(@Param("groupIds") List<String> groupIds,
+                                                 @Param("groupType") GroupType groupType);
+
+    /**
+     * @describe 统计团体已上课次
+     * @author Joburgess
+     * @date 2020/4/6
+     * @param groupIds:
+     * @param groupType:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
+     */
+    List<BaseMapDto<String, Long>> countGroupFinishedClassesTimes(@Param("groupIds") List<String> groupIds,
+                                                  @Param("groupType") GroupType groupType);
+
+    /**
+     * @describe 获取团体第一节课的时间
+     * @author Joburgess
+     * @date 2020/4/6
+     * @param groupIds:
+     * @param groupType:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
+     */
+    List<BaseMapDto<String, String>> findGroupsFirstClassesTime(@Param("groupIds") List<String> groupIds,
+                                                              @Param("groupType") GroupType groupType);
+
+    /**
+     * @describe 获取团体最后一节课的时间
+     * @author Joburgess
+     * @date 2020/4/6
+     * @param groupIds:
+     * @param groupType:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
+     */
+    List<BaseMapDto<String, String>> findGroupsLastClassesTime(@Param("groupIds") List<String> groupIds,
+                                                @Param("groupType") GroupType groupType);
+
 }

+ 28 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/BaseMapDto.java

@@ -0,0 +1,28 @@
+package com.ym.mec.biz.dal.dto;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/4/6
+ */
+public class BaseMapDto<K, V> {
+
+    private K key;
+
+    private V value;
+
+    public K getKey() {
+        return key;
+    }
+
+    public void setKey(K key) {
+        this.key = key;
+    }
+
+    public V getValue() {
+        return value;
+    }
+
+    public void setValue(V value) {
+        this.value = value;
+    }
+}

+ 25 - 15
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseGroupExtendDto.java

@@ -10,57 +10,67 @@ import java.util.Date;
  */
 public class CourseGroupExtendDto extends CoursesGroup {
 
-    private int studentNum;
+    private Integer studentNum;
 
-    private int groupClassesTotalDuration;
+    private Integer groupClassesTotalDuration;
 
-    private int groupClassesConsumeDuration;
+    private Integer groupClassesConsumeDuration;
 
-    private int totalClassTimes;
+    private Integer totalClassTimes;
 
-    private int currentClassTimes;
+    private Integer currentClassTimes;
 
     private Date firstClassesStartTime;
 
     private Date lastClassesEndTime;
 
-    public int getStudentNum() {
+    private String teacherName;
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public Integer getStudentNum() {
         return studentNum;
     }
 
-    public void setStudentNum(int studentNum) {
+    public void setStudentNum(Integer studentNum) {
         this.studentNum = studentNum;
     }
 
-    public int getGroupClassesTotalDuration() {
+    public Integer getGroupClassesTotalDuration() {
         return groupClassesTotalDuration;
     }
 
-    public void setGroupClassesTotalDuration(int groupClassesTotalDuration) {
+    public void setGroupClassesTotalDuration(Integer groupClassesTotalDuration) {
         this.groupClassesTotalDuration = groupClassesTotalDuration;
     }
 
-    public int getGroupClassesConsumeDuration() {
+    public Integer getGroupClassesConsumeDuration() {
         return groupClassesConsumeDuration;
     }
 
-    public void setGroupClassesConsumeDuration(int groupClassesConsumeDuration) {
+    public void setGroupClassesConsumeDuration(Integer groupClassesConsumeDuration) {
         this.groupClassesConsumeDuration = groupClassesConsumeDuration;
     }
 
-    public int getTotalClassTimes() {
+    public Integer getTotalClassTimes() {
         return totalClassTimes;
     }
 
-    public void setTotalClassTimes(int totalClassTimes) {
+    public void setTotalClassTimes(Integer totalClassTimes) {
         this.totalClassTimes = totalClassTimes;
     }
 
-    public int getCurrentClassTimes() {
+    public Integer getCurrentClassTimes() {
         return currentClassTimes;
     }
 
-    public void setCurrentClassTimes(int currentClassTimes) {
+    public void setCurrentClassTimes(Integer currentClassTimes) {
         this.currentClassTimes = currentClassTimes;
     }
 

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/GroupQueryInfo.java

@@ -12,10 +12,20 @@ public class GroupQueryInfo extends QueryInfo {
 
     private Integer teacherId;
 
+    private Integer studentId;
+
     private GroupType groupType;
 
     private GroupStatusEnum groupStatus;
 
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+
     public Integer getTeacherId() {
         return teacherId;
     }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CoursesGroupService.java

@@ -42,6 +42,15 @@ public interface CoursesGroupService extends BaseService<Long, CoursesGroup> {
     PageInfo findTeacherCourseGroupsWithWeb(GroupQueryInfo queryInfo);
 
     /**
+     * @describe
+     * @author Joburgess
+     * @date 2020/4/6
+     * @param queryInfo:
+     * @return com.ym.mec.common.page.PageInfo
+     */
+    PageInfo findStudentCourseGroupsWithWeb(GroupQueryInfo queryInfo);
+
+    /**
      * @describe 获取课程对应班级头部信息
      * @author Joburgess
      * @date 2020/3/10

+ 97 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -87,6 +87,8 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
     private StudentDao studentDao;
     @Autowired
     private SysMessageService sysMessageService;
+    @Autowired
+    private GroupDao groupDao;
 
     private static final Logger LOGGER = LoggerFactory
             .getLogger(PracticeGroupService.class);
@@ -321,13 +323,105 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
-        List<CoursesGroup> teacherCourseGroups=new ArrayList<>();
-        int count = coursesGroupDao.countTeacherGroups(params);
+        List<CourseGroupExtendDto> teacherCourseGroups=new ArrayList<>();
+        int count = coursesGroupDao.countTeacherGroupsWithWeb(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            teacherCourseGroups = coursesGroupDao.findTeacherCourseGroupsWithWeb(params);
+            List<String> groupIds = teacherCourseGroups.stream().map(e -> String.valueOf(e.getId())).collect(Collectors.toList());
+            List<BaseMapDto<String, Long>> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
+            Map<String, Long> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
+            List<BaseMapDto<String, Long>> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
+            Map<String, Long> groupTotalClassesTimesMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
+            List<BaseMapDto<String, Long>> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
+            Map<String, Long> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
+            List<BaseMapDto<String, String>> groupsFirstClassesTimes = groupDao.findGroupsFirstClassesTime(groupIds, GroupType.COMM);
+            Map<String, String> groupsFirstClassesTimeMap = groupsFirstClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
+            List<BaseMapDto<String, String>> groupsLastClassesTimes = groupDao.findGroupsLastClassesTime(groupIds, GroupType.COMM);
+            Map<String, String> groupsLastClassesTimeMap = groupsLastClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
+            for (CourseGroupExtendDto teacherCourseGroup : teacherCourseGroups) {
+                if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
+                    teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
+                }
+                if(Objects.nonNull(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
+                    teacherCourseGroup.setTotalClassTimes(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
+                }
+                if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
+                    teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
+                }
+                if(Objects.nonNull(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
+                    teacherCourseGroup.setFirstClassesStartTime(DateUtil.stringToDate(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
+                }
+                if(Objects.nonNull(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
+                    teacherCourseGroup.setLastClassesEndTime(DateUtil.stringToDate(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
+                }
+                if(Objects.nonNull(teacherCourseGroup.getTotalClassTimes())){
+                    teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getTotalClassTimes());
+                }
+                if(Objects.nonNull(teacherCourseGroup.getCurrentClassTimes())){
+                    teacherCourseGroup.setGroupClassesConsumeDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getCurrentClassTimes());
+                }
+            }
+        }
+        pageInfo.setRows(teacherCourseGroups);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo findStudentCourseGroupsWithWeb(GroupQueryInfo queryInfo) {
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<CourseGroupExtendDto> teacherCourseGroups=new ArrayList<>();
+        int count = coursesGroupDao.countStudentGroupsWithWeb(params);
         if (count > 0) {
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
-            teacherCourseGroups = coursesGroupDao.findTeacherCourseGroups(params);
+            teacherCourseGroups = coursesGroupDao.findStudentCourseGroupsWithWeb(params);
+            List<Integer> teacherIds = teacherCourseGroups.stream().map(CourseGroupExtendDto::getTeacherId).collect(Collectors.toList());
+            List<String> groupIds = teacherCourseGroups.stream().map(e -> String.valueOf(e.getId())).collect(Collectors.toList());
+            List<BaseMapDto<String, Long>> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
+            Map<String, Long> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
+            List<BaseMapDto<String, Long>> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
+            Map<String, Long> groupTotalClassesTimesMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
+            List<BaseMapDto<String, Long>> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
+            Map<String, Long> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
+            List<BaseMapDto<String, String>> groupsFirstClassesTimes = groupDao.findGroupsFirstClassesTime(groupIds, GroupType.COMM);
+            Map<String, String> groupsFirstClassesTimeMap = groupsFirstClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
+            List<BaseMapDto<String, String>> groupsLastClassesTimes = groupDao.findGroupsLastClassesTime(groupIds, GroupType.COMM);
+            Map<String, String> groupsLastClassesTimeMap = groupsLastClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
+
+            List<SimpleUserDto> teachers = teacherDao.findSimpleTeachers(teacherIds);
+            Map<Integer, String> idNameMap = teachers.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, SimpleUserDto::getUserName));
+
+            for (CourseGroupExtendDto teacherCourseGroup : teacherCourseGroups) {
+                if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
+                    teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
+                }
+                if(Objects.nonNull(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
+                    teacherCourseGroup.setTotalClassTimes(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
+                }
+                if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
+                    teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
+                }
+                if(Objects.nonNull(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
+                    teacherCourseGroup.setFirstClassesStartTime(DateUtil.stringToDate(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
+                }
+                if(Objects.nonNull(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
+                    teacherCourseGroup.setLastClassesEndTime(DateUtil.stringToDate(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
+                }
+                if(Objects.nonNull(teacherCourseGroup.getTotalClassTimes())){
+                    teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getTotalClassTimes());
+                }
+                if(Objects.nonNull(teacherCourseGroup.getCurrentClassTimes())){
+                    teacherCourseGroup.setGroupClassesConsumeDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getCurrentClassTimes());
+                }
+                teacherCourseGroup.setTeacherName(idNameMap.get(teacherCourseGroup.getTeacherId()));
+            }
         }
+        pageInfo.setRows(teacherCourseGroups);
         return pageInfo;
     }
 

+ 23 - 1
mec-biz/src/main/resources/config/mybatis/CoursesGroupMapper.xml

@@ -29,7 +29,7 @@
 		<result column="educational_teacher_id_" property="educationalTeacherId" />
 	</resultMap>
 
-	<resultMap id="CourseGroupExtendDto" type="com.ym.mec.biz.dal.dto.CourseGroupExtendDto">
+	<resultMap id="CourseGroupExtendDto" type="com.ym.mec.biz.dal.dto.CourseGroupExtendDto" extends="CoursesGroup">
 
 	</resultMap>
 	
@@ -244,4 +244,26 @@
 			HAVING
 			COUNT( cs.id_ ) &lt;=0
 	</select>
+	<select id="findStudentCourseGroupsWithWeb" resultMap="CourseGroupExtendDto">
+		SELECT csg.* FROM class_group_student_mapper cgsm LEFT JOIN courses_group csg ON csg.id_=cgsm.music_group_id_
+		WHERE cgsm.user_id_=#{studentId} AND cgsm.group_type_='COMM'
+		<if test="search!=null">
+			AND (name_ LIKE CONCAT('%', #{search}, '%') OR id_ LIKE CONCAT('%', #{search}, '%'))
+		</if>
+		<if test="groupStatus!=null">
+			AND status_ = #{groupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+		</if>
+		ORDER BY id_ DESC
+		<include refid="global.limit"/>
+	</select>
+	<select id="countStudentGroupsWithWeb" resultType="int">
+		SELECT COUNT(csg.id_) FROM class_group_student_mapper cgsm LEFT JOIN courses_group csg ON csg.id_=cgsm.music_group_id_
+		WHERE cgsm.user_id_=#{studentId} AND cgsm.group_type_='COMM'
+		<if test="search!=null">
+			AND (name_ LIKE CONCAT('%', #{search}, '%') OR id_ LIKE CONCAT('%', #{search}, '%'))
+		</if>
+		<if test="groupStatus!=null">
+			AND status_ = #{groupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+		</if>
+	</select>
 </mapper>

+ 53 - 0
mec-biz/src/main/resources/config/mybatis/GroupMapper.xml

@@ -160,4 +160,57 @@
         </foreach>
     </select>
 
+    <select id="countGroupTotalClassesTimes" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
+        SELECT music_group_id_ 'key',COUNT(id_) 'value' FROM course_schedule
+        WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND music_group_id_ IN
+        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+            #{groupId}
+        </foreach>
+        GROUP BY music_group_id_;
+    </select>
+
+    <select id="countGroupFinishedClassesTimes" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
+        SELECT music_group_id_ 'key',COUNT(id_) 'value' FROM course_schedule
+        WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND music_group_id_ IN
+        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+            #{groupId}
+        </foreach>
+        AND CONCAT(class_date_, ' ', start_class_time_)&lt;NOW()
+        GROUP BY music_group_id_;
+    </select>
+
+    <select id="findGroupsFirstClassesTime" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
+        SELECT music_group_id_ 'key',MIN(CONCAT(class_date_, ' ', start_class_time_)) 'value' FROM course_schedule
+        WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND music_group_id_ IN
+        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+            #{groupId}
+        </foreach>
+        GROUP BY music_group_id_;
+    </select>
+
+    <select id="findGroupsLastClassesTime" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
+        SELECT music_group_id_ 'key',MAX(CONCAT(class_date_, ' ', end_class_time_)) 'value' FROM course_schedule
+        WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND music_group_id_ IN
+        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+            #{groupId}
+        </foreach>
+        GROUP BY music_group_id_;
+    </select>
+
+    <select id="countGroupStudentNum" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
+        SELECT  music_group_id_ 'key',COUNT(id_) 'value'
+        FROM class_group_student_mapper
+        WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND status_='NORMAL'
+        AND music_group_id_ IN
+        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+            #{groupId}
+        </foreach>
+        GROUP BY music_group_id_;
+    </select>
+
 </mapper>

+ 41 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CoursesGroupController.java

@@ -0,0 +1,41 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.biz.dal.page.GroupQueryInfo;
+import com.ym.mec.biz.service.CoursesGroupService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+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.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/4/6
+ */
+@RequestMapping("coursesGroupController")
+@Api(tags = "对外课程组服务")
+@RestController
+public class CoursesGroupController extends BaseController {
+
+    @Autowired
+    private CoursesGroupService coursesGroupService;
+
+    @ApiOperation(value = "获取老师对外课程组")
+    @GetMapping("/findTeacherCourseGroupsWithWeb")
+    @PreAuthorize("@pcs.hasPermissions('coursesGroupController/findTeacherCourseGroupsWithWeb')")
+    public HttpResponseResult findTeacherCourseGroupsWithWeb(GroupQueryInfo queryInfo){
+        return succeed(coursesGroupService.findTeacherCourseGroupsWithWeb(queryInfo));
+    }
+
+    @ApiOperation(value = "获取学生对外课程组")
+    @GetMapping("/findStudentCourseGroupsWithWeb")
+    @PreAuthorize("@pcs.hasPermissions('coursesGroupController/findStudentCourseGroupsWithWeb')")
+    public HttpResponseResult findStudentCourseGroupsWithWeb(GroupQueryInfo queryInfo){
+        return succeed(coursesGroupService.findStudentCourseGroupsWithWeb(queryInfo));
+    }
+
+}