Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 years ago
parent
commit
dc6a096a2f
27 changed files with 441 additions and 181 deletions
  1. 1 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysMenu.java
  2. 1 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysRole.java
  3. 1 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java
  4. 1 1
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUserDevice.java
  5. 1 1
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/entity/SysNewsInformation.java
  6. 1 1
      cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/entity/SysNewsType.java
  7. 16 19
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/SubjectController.java
  8. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  9. 24 17
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SubjectDao.java
  10. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicTag.java
  11. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Subject.java
  12. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java
  13. 3 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java
  14. 32 20
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SubjectService.java
  15. 7 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  16. 5 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  17. 61 43
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SubjectServiceImpl.java
  18. 24 14
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java
  19. 104 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseInfoVo.java
  20. 106 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherLiveCourseInfoVo.java
  21. 3 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml
  22. 24 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  23. 1 7
      cooleshow-user/user-biz/src/main/resources/config/mybatis/SubjectMapper.xml
  24. 11 15
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/SubjectController.java
  25. 3 3
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseGroupController.java
  26. 3 2
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseScheduleController.java
  27. 2 18
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SubjectController.java

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysMenu.java

@@ -63,7 +63,7 @@ public class SysMenu {
 
 	/** 逻辑删除标记(0--正常 1--删除) */
 	@ApiModelProperty(value = "逻辑删除标记(0--正常 1--删除)",required = false)
-	private Boolean delFlag;
+	private Boolean delFlag= false;
 
 	private Integer hid;
 	

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysRole.java

@@ -37,7 +37,7 @@ public class SysRole {
 	
 	/** 删除标识(0-正常,1-删除) */
 	@ApiModelProperty(value = "删除标识(0-正常,1-删除)",required = false)
-	private Boolean delFlag;
+	private Boolean delFlag= false;
 
 	@ApiModelProperty(value = "菜单列表",required = false)
 	private List<Long> menuIds;

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java

@@ -55,7 +55,7 @@ public class SysUser implements Serializable{
 
 	/** 0-正常,1-删除 */
 	@ApiModelProperty(value = "0-正常,1-删除",required = false)
-	private Boolean delFlag;
+	private Boolean delFlag= false;
 
 	/** 微信openid */
 	@ApiModelProperty(value = "微信openid",required = false)

+ 1 - 1
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUserDevice.java

@@ -28,7 +28,7 @@ public class SysUserDevice {
 	
 	private String clientId;
 	
-	private Boolean delFlag;
+	private Boolean delFlag= false;
 	
 	private SysUser user;
 	

+ 1 - 1
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/entity/SysNewsInformation.java

@@ -65,7 +65,7 @@ public class SysNewsInformation {
 	@ApiModelProperty(value = "备注", required = false)
 	private String memo;
 
-	private Boolean delFlag;
+	private Boolean delFlag= false;
 
 	private Integer tenantId;
 

+ 1 - 1
cooleshow-cms/src/main/java/com/yonge/cooleshow/cms/dal/entity/SysNewsType.java

@@ -17,7 +17,7 @@ public class SysNewsType {
 	private Long parentId;
 	
 	/**  */
-	private boolean delFlag;
+	private Boolean delFlag= false;
 	
 	/**  */
 	private java.util.Date createTime;

+ 16 - 19
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/SubjectController.java

@@ -31,14 +31,6 @@ public class SubjectController extends BaseController {
 	@Autowired
 	private SubjectService subjectService;
 
-	@ApiOperation(value = "修改、新增科目")
-	@PostMapping("/upset")
-	@PreAuthorize("@pcs.hasPermissions('subject/upset')")
-	public Object update(@RequestBody Subject subject) {
-		subjectService.upSetSubject(subject);
-		return succeed();
-	}
-
 	@ApiOperation(value = "根据科目编号查询科目")
 	@GetMapping("/get/{id}")
 	@PreAuthorize("@pcs.hasPermissions('subject/get')")
@@ -46,14 +38,6 @@ public class SubjectController extends BaseController {
 		return succeed(subjectService.get(id));
 	}
 
-	@ApiOperation(value = "删除指定科目")
-	@PostMapping("/delete/{id}")
-	@PreAuthorize("@pcs.hasPermissions('subject/get')")
-	public HttpResponseResult<Subject> delete(@ApiParam(value = "科目编号", required = true) @PathVariable("id") Long id) {
-		subjectService.deleteById(id);
-		return succeed();
-	}
-
 	@ApiOperation(value = "分页查询科目列表")
 	@GetMapping("/queryPage")
 	@PreAuthorize("@pcs.hasPermissions('subject/queryPage')")
@@ -64,13 +48,10 @@ public class SubjectController extends BaseController {
 				.collect(Collectors.toMap(Subject::getId, t -> t));
 
 		pageInfo.getRows().forEach(row -> {
-
 			if(row.getParentSubjectId() != null && row.getParentSubjectId() > 0) {
 				row.setParentSubjectName(map.get(row.getParentSubjectId()).getName());
 			}
-
 		});
-
 		return succeed(pageInfo);
 	}
 
@@ -80,4 +61,20 @@ public class SubjectController extends BaseController {
 	public HttpResponseResult<PageInfo<Subject>> queryPageTree(SubjectQueryInfo queryInfo) {
 		return succeed(subjectService.queryPageTree(queryInfo));
 	}
+
+	@ApiOperation(value = "修改、新增科目")
+	@PostMapping("/upset")
+	@PreAuthorize("@pcs.hasPermissions('subject/upset')")
+	public Object update(@RequestBody Subject subject) {
+		subjectService.upSetSubject(subject);
+		return succeed();
+	}
+
+	@ApiOperation(value = "删除指定科目")
+	@PostMapping("/delete/{id}")
+	@PreAuthorize("@pcs.hasPermissions('subject/get')")
+	public HttpResponseResult<Subject> delete(@ApiParam(value = "科目编号", required = true) @PathVariable("id") Long id) {
+		subjectService.deleteById(id);
+		return succeed();
+	}
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java

@@ -45,5 +45,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      */
     List<CourseSchedule> queryStudentCourse(@Param("studentId") Long studentId, @Param("classDate") String classDate);
 
+    <T> IPage<T> queryLiveTeacherCourse(Page<T> page, @Param("param") Map<String, Object> param);
+
 }
 

+ 24 - 17
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SubjectDao.java

@@ -10,27 +10,34 @@ import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.common.dal.BaseDAO;
 
 public interface SubjectDao extends BaseDAO<Long, Subject> {
-
-    /**
+    /***
+     * 通过id集合查询声部
+     * @param: subjectIds
+     * @updateTime 2022/4/6 11:37
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
+     */
+    List<Subject> findBySubjectIds(@Param("subjectIds") List<Long> subjectIds);
+    /***
+     * 通过声部id(字符串拼接)查询声部
+     * @param: subjectIdList
+     * @updateTime 2022/4/6 11:35
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
+     */
+    List<Subject> findBySubjectByIdList(@Param("subjectIdList") String subjectIdList);
+    /***
      * 根据父级id查询子级列表
-     *
-     * @param parentId
-     * @return
+     * @param: parentId
+     * @param: delFlag
+     * @updateTime 2022/4/6 11:40
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
      */
     List<Subject> findByParentId(@Param("parentId") Long parentId, @Param("delFlag") YesOrNoEnum delFlag);
-
-    /**
-     * 根据声部编号列表获取声部名称map
-     *
-     * @param subjectIds
-     * @return
+    /***
+     * 通过id删除
+     * @param: id
+     * @updateTime 2022/4/6 11:41
+     * @return: int
      */
-    List<Map<Long, String>> queryNameByIds(@Param("subjectIds") String subjectIds);
-
-    List<Subject> findBySubjectByIdList(@Param("subjectIdList") String subjectIdList);
-
-    List<Subject> findBySubjectIds(@Param("subjectIds") List<Long> subjectIds);
-    
     int deleteById(Long id);
 
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicTag.java

@@ -38,7 +38,7 @@ public class MusicTag implements Serializable {
 
 	@TableField(value = "del_flag_")
     @ApiModelProperty(value = "假删标识(0:正常,1:删除)")
-    private Boolean delFlag;
+    private Boolean delFlag= false;
 
 	@TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Subject.java

@@ -43,7 +43,7 @@ public class Subject {
 	
 	/**  */
 	@ApiModelProperty(value = "是否删除1是,0否",required = false)
-	private Boolean delFlag;
+	private Boolean delFlag= false;
 
 	/**  */
 	@ApiModelProperty(value = "子节点列表",required = false)

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java

@@ -6,7 +6,7 @@ import com.yonge.cooleshow.biz.dal.dto.CheckLiveCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
 import com.yonge.cooleshow.common.page.PageInfo;
 
 import java.util.List;
@@ -31,7 +31,7 @@ public interface CourseGroupService extends IService<CourseGroup> {
      *              <p> - row 条数
      *              <p> - page 页数
      */
-    PageInfo<TeacherCourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param);
+    PageInfo<CourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param);
 
     void addLiveCourse(LiveCourseGroupDto dto);
 

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java

@@ -3,7 +3,8 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.page.PageInfo;
 
 import javax.validation.Valid;
@@ -32,7 +33,7 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
      *              <p> - page 页数
      *              <p> - status 课程状态 NOT_START未开始 ING进行中 COMPLETE已完成
      */
-    PageInfo<TeacherCourseGroupVo> queryTeacherLiveCourse(Map<String, Object> param);
+    PageInfo<TeacherLiveCourseInfoVo> queryTeacherLiveCourse(Map<String, Object> param);
 
     /**
      * 校验该学生大于当前时间并未开始的课程时间和传入时间段有没有交集

+ 32 - 20
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SubjectService.java

@@ -9,24 +9,42 @@ import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.cooleshow.common.service.BaseService;
 
 public interface SubjectService extends BaseService<Long, Subject> {
-
-	/**
-	 * 分页查询科目树状列表
-	 *
-	 * @param queryInfo
-	 * @return
+	/***
+	 * 通过id集合查询声部
+	 * @param: subjectIdList
+	 * @updateTime 2022/4/6 11:27
+	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
+	 */
+	List<Subject> findBySubjectByIdList(List<Long> subjectIdList);
+	/***
+	 * 通过声部id(字符串拼接)查询声部
+	 * @author liweifan
+	 * @param: subjectIdList
+	 * @updateTime 2022/4/6 11:31
+	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.entity.Subject>
+	 */
+	List<Subject> findBySubjectByIdList(String subjectIdList);
+	/***
+	 * 分页查询声部树状列表
+	 * @param: queryInfo
+	 * @updateTime 2022/4/6 11:28
+	 * @return: com.yonge.cooleshow.common.page.PageInfo<com.yonge.cooleshow.biz.dal.entity.Subject>
 	 */
 	PageInfo<Subject> queryPageTree(SubjectQueryInfo queryInfo);
-    
-    int deleteById(Long id);
-
-	/**
-	 * 修改、新增科目树状列表
-	 *
-	 * @param subject
+	/***
+	 * 修改、新增声部树状列表
+	 * @param: subject
+	 * @updateTime 2022/4/6 11:28
 	 */
 	void upSetSubject(Subject subject);
-
+	/***
+	 * 通过id删除声部
+	 * @author liweifan
+	 * @param: id
+	 * @updateTime 2022/4/6 11:29
+	 * @return: int
+	 */
+    int deleteById(Long id);
 	/***
 	 * 查询科目选择框
 	 * @author liweifan
@@ -34,10 +52,4 @@ public interface SubjectService extends BaseService<Long, Subject> {
 	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.SubjectSelectVo>
 	 */
 	List<SubjectSelectVo> subjectSelect();
-
-	List<Subject> findBySubjectByIdList(List<Long> subjectIdList);
-
-	List<Subject> findBySubjectByIdList(String subjectIdList);
-
-
 }

+ 7 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -23,7 +23,8 @@ import com.yonge.cooleshow.biz.dal.service.CoursePlanService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
 import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.toolset.utils.date.DateUtil;
@@ -77,6 +78,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      * @param groupId
      */
     public void queryLiveCourseInfo(Long groupId) {
+        LiveCourseInfoVo result = new LiveCourseInfoVo();
 
     }
 
@@ -89,14 +91,14 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      *              <p> - row 条数
      *              <p> - page 页数
      */
-    public PageInfo<TeacherCourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param) {
+    public PageInfo<CourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param) {
         //查询该月的所有课程
         param.put("teacherId", param.get("teacherId"));
         param.put("groupStatus", param.get("groupStatus"));
         param.put("type", CourseScheduleEnum.LIVE.getCode());
-        Page<TeacherCourseGroupVo> pageInfo = PageUtil.getPageInfo(param);
+        Page<CourseGroupVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setAsc("a.start_time_");
-        IPage<TeacherCourseGroupVo> page = baseMapper.queryTeacherCourseGroup(pageInfo, param);
+        IPage<CourseGroupVo> page = baseMapper.queryTeacherCourseGroup(pageInfo, param);
         return PageUtil.pageInfo(page);
     }
 
@@ -232,6 +234,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      * <p>1.把前面2节课的时间循环+1周直到填满5节课为止
      * <p>2.如果自动排课时的时间和未来课程时间有冲突则继续往后面延续一周
      *
+     * @param teacherId 老师id
      * @param totalCourseNum 总课程数量
      * @param paramTimeList  当前课程的时间段
      * @return 自动排课后的全部课时

+ 5 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -13,7 +13,8 @@ import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.toolset.utils.date.DateUtil;
@@ -67,7 +68,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      *              <p> - status 课程状态 NOT_START未开始 ING进行中 COMPLETE已完成
      *              <p> - subjectId 声部id
      */
-    public PageInfo<TeacherCourseGroupVo> queryTeacherLiveCourse(Map<String, Object> param) {
+    public PageInfo<TeacherLiveCourseInfoVo> queryTeacherLiveCourse(Map<String, Object> param) {
         String status = WrapperUtil.toStr(param, "status", "课程状态不能为空!");
         CourseScheduleEnum.existCourseState(status, "查询条件错误,课程状态不正确");
         Integer year = WrapperUtil.toInt(param, "year", "查询时间年份不能为空!");
@@ -81,9 +82,9 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         param.put("endDate", lastDay.toString());
         param.put("teacherId", getSysUser().getId());
         param.put("type", CourseScheduleEnum.LIVE.getCode());
-        Page<TeacherCourseGroupVo> pageInfo = PageUtil.getPageInfo(param);
+        Page<TeacherLiveCourseInfoVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setAsc("a.start_time_");
-        IPage<TeacherCourseGroupVo> page = courseGroupService.getDao().queryTeacherCourseGroup(pageInfo, param);
+        IPage<TeacherLiveCourseInfoVo> page = baseMapper.queryLiveTeacherCourse(pageInfo, param);
         return PageUtil.pageInfo(page);
     }
 

+ 61 - 43
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SubjectServiceImpl.java

@@ -18,6 +18,7 @@ import com.yonge.cooleshow.biz.dal.service.SubjectService;
 import com.yonge.cooleshow.common.dal.BaseDAO;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.cooleshow.common.service.impl.BaseServiceImpl;
+import org.springframework.util.CollectionUtils;
 
 @Service
 public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implements SubjectService {
@@ -31,6 +32,15 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
     }
 
     @Override
+    public List<Subject> findBySubjectByIdList(List<Long> subjectIdList) {
+        return subjectDao.findBySubjectIds(subjectIdList);
+    }
+    @Override
+    public List<Subject> findBySubjectByIdList(String subjectIdList) {
+        return subjectDao.findBySubjectByIdList(subjectIdList);
+    }
+
+    @Override
     public PageInfo<Subject> queryPageTree(SubjectQueryInfo queryInfo) {
         PageInfo<Subject> pageInfo = queryPage(queryInfo);
         for (Subject subject : pageInfo.getRows()) {
@@ -59,46 +69,6 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
         }
     }
 
-    private Long upset(Subject subject, Long parentId) {
-        if (parentId != null) {
-            subject.setParentSubjectId(parentId);
-        }
-        if (subject.getId() != null) {
-            subject.setUpdateTime(new Date());
-            subjectDao.update(subject);
-        } else {
-            subjectDao.insert(subject);
-        }
-        return subject.getId();
-    }
-
-
-    private Subject getTree(Subject sub, YesOrNoEnum yesOrNoEnum) {
-        //得到根节点对象
-        //获取子节点list
-        List<Subject> subjects = subjectDao.findByParentId(sub.getId(), yesOrNoEnum);
-        //如果存在子节点
-        if (subjects != null && subjects.size() > 0) {
-            //将子节点list放入父节点对象
-            sub.setSubjects(subjects);
-            //遍历子节点....
-            for (Subject subject : subjects) {
-                getTree(subject, yesOrNoEnum);
-            }
-        }
-        return sub;
-    }
-
-    @Override
-    public List<Subject> findBySubjectByIdList(List<Long> subjectIdList) {
-        return subjectDao.findBySubjectByIdList(StringUtils.join(subjectIdList, ","));
-    }
-
-    @Override
-    public List<Subject> findBySubjectByIdList(String subjectIdList) {
-        return subjectDao.findBySubjectByIdList(subjectIdList);
-    }
-
     @Override
     public List<SubjectSelectVo> subjectSelect() {
         List<Subject> allList = subjectDao.findAll(new HashMap<>());
@@ -114,11 +84,11 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
         });
 
         List<SubjectSelectVo> parents = allListVo.stream()
-                .filter(o -> (!o.getParentSubjectId().equals(0) && null != o.getParentSubjectId()))
+                .filter(o -> (null == o.getParentSubjectId() || o.getParentSubjectId().equals(0L) ))
                 .collect(Collectors.toList());
 
         List<SubjectSelectVo> subjects = allListVo.stream()
-                .filter(o -> (null == o.getParentSubjectId() || o.getParentSubjectId().equals(0)))
+                .filter(o -> !(null == o.getParentSubjectId() || o.getParentSubjectId().equals(0L)))
                 .collect(Collectors.toList());
 
         for (SubjectSelectVo parent : parents) {
@@ -130,10 +100,58 @@ public class SubjectServiceImpl extends BaseServiceImpl<Long, Subject> implement
                     continue;
                 }
                 if (subject.getParentSubjectId().equals(parent.getId())) {
-                    parent.getChildren().add(subject);
+                    List<SubjectSelectVo> children = parent.getChildren();
+                    if(CollectionUtils.isEmpty(children)){
+                        children = new ArrayList<>();
+                    }
+                    children.add(subject);
+                    parent.setChildren(children);
                 }
             }
         }
         return parents;
     }
+
+
+    /***
+     * 新增、修改声部
+     * @param: subject
+     * @param: parentId
+     * @updateTime 2022/4/6 11:33
+     * @return: java.lang.Long
+     */
+    private Long upset(Subject subject, Long parentId) {
+        if (parentId != null) {
+            subject.setParentSubjectId(parentId);
+        }
+        if (subject.getId() != null) {
+            subject.setUpdateTime(new Date());
+            subjectDao.update(subject);
+        } else {
+            subjectDao.insert(subject);
+        }
+        return subject.getId();
+    }
+    /***
+     * 查询声部树
+     * @param: sub
+     * @param: yesOrNoEnum
+     * @updateTime 2022/4/6 11:33
+     * @return: com.yonge.cooleshow.biz.dal.entity.Subject
+     */
+    private Subject getTree(Subject sub, YesOrNoEnum yesOrNoEnum) {
+        //得到根节点对象
+        //获取子节点list
+        List<Subject> subjects = subjectDao.findByParentId(sub.getId(), yesOrNoEnum);
+        //如果存在子节点
+        if (subjects != null && subjects.size() > 0) {
+            //将子节点list放入父节点对象
+            sub.setSubjects(subjects);
+            //遍历子节点....
+            for (Subject subject : subjects) {
+                getTree(subject, yesOrNoEnum);
+            }
+        }
+        return sub;
+    }
 }

+ 24 - 14
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherCourseGroupVo.java → cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java

@@ -14,7 +14,7 @@ import java.util.Date;
  * Created by 2022-03-29
  */
 @ApiModel(value = "TeacherCourseGroupVo", description = "课程组信息")
-public class TeacherCourseGroupVo implements Serializable {
+public class CourseGroupVo implements Serializable {
 
     @ApiModelProperty(value = "课程组id")
     private Long courseGroupId;
@@ -26,12 +26,11 @@ public class TeacherCourseGroupVo implements Serializable {
     private String subjectName;
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "开始时间")
-    private Date startTime;
+    @ApiModelProperty(value = "第一节课开始时间")
+    private Date courseStartTime;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "结束时间")
-    private Date endTime;
+    @ApiModelProperty(value = "单节课时长")
+    private Integer singleCourseMinutes;
 
     @ApiModelProperty(value = "课程状态 NOT_START未开始 ING进行中 COMPLETE已完成 CANCEL已取消")
     private String status;
@@ -54,6 +53,9 @@ public class TeacherCourseGroupVo implements Serializable {
     @ApiModelProperty(value = "课程数")
     private Integer courseNum;
 
+    @ApiModelProperty(value = "课程介绍")
+    private String courseIntroduce;
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }
@@ -78,20 +80,20 @@ public class TeacherCourseGroupVo implements Serializable {
         this.subjectName = subjectName;
     }
 
-    public Date getStartTime() {
-        return startTime;
+    public Date getCourseStartTime() {
+        return courseStartTime;
     }
 
-    public void setStartTime(Date startTime) {
-        this.startTime = startTime;
+    public void setCourseStartTime(Date courseStartTime) {
+        this.courseStartTime = courseStartTime;
     }
 
-    public Date getEndTime() {
-        return endTime;
+    public Integer getSingleCourseMinutes() {
+        return singleCourseMinutes;
     }
 
-    public void setEndTime(Date endTime) {
-        this.endTime = endTime;
+    public void setSingleCourseMinutes(Integer singleCourseMinutes) {
+        this.singleCourseMinutes = singleCourseMinutes;
     }
 
     public String getStatus() {
@@ -149,4 +151,12 @@ public class TeacherCourseGroupVo implements Serializable {
     public void setCourseNum(Integer courseNum) {
         this.courseNum = courseNum;
     }
+
+    public String getCourseIntroduce() {
+        return courseIntroduce;
+    }
+
+    public void setCourseIntroduce(String courseIntroduce) {
+        this.courseIntroduce = courseIntroduce;
+    }
 }

+ 104 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseInfoVo.java

@@ -0,0 +1,104 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author hgw
+ * Created by 2022-04-06
+ */
+@ApiModel(value = "LiveCourseInfoVo", description = "直播课详情")
+public class LiveCourseInfoVo extends CourseGroupVo implements Serializable {
+
+    @ApiModelProperty(value = "教学计划")
+    private List<PlanVo> planList;
+
+    @ApiModelProperty(value = "学员列表")
+    private List<CourseBuyStudentVo> studentList;
+
+    @ApiModel(value = "PlanVo", description = "教学计划")
+    public static class PlanVo extends CourseTimeEntity implements Serializable {
+
+        @ApiModelProperty(value = "课堂编号-第几堂课")
+        private Integer classNum;
+
+        @ApiModelProperty(value = "教学计划/最多200字")
+        private String plan;
+
+        public Integer getClassNum() {
+            return classNum;
+        }
+
+        public void setClassNum(Integer classNum) {
+            this.classNum = classNum;
+        }
+
+        public String getPlan() {
+            return plan;
+        }
+
+        public void setPlan(String plan) {
+            this.plan = plan;
+        }
+    }
+
+    @ApiModel(value = "CourseBuyStudentVo", description = "学员列表")
+    public static class CourseBuyStudentVo implements Serializable {
+
+        @ApiModelProperty(value = "学员id")
+        private Long studentId;
+
+        @ApiModelProperty(value = "学员名称")
+        private String studentName;
+
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @ApiModelProperty(value = "购买时间")
+        private Date createTime;
+
+        public Long getStudentId() {
+            return studentId;
+        }
+
+        public void setStudentId(Long studentId) {
+            this.studentId = studentId;
+        }
+
+        public String getStudentName() {
+            return studentName;
+        }
+
+        public void setStudentName(String studentName) {
+            this.studentName = studentName;
+        }
+
+        public Date getCreateTime() {
+            return createTime;
+        }
+
+        public void setCreateTime(Date createTime) {
+            this.createTime = createTime;
+        }
+    }
+
+    public List<PlanVo> getPlanList() {
+        return planList;
+    }
+
+    public void setPlanList(List<PlanVo> planList) {
+        this.planList = planList;
+    }
+
+    public List<CourseBuyStudentVo> getStudentList() {
+        return studentList;
+    }
+
+    public void setStudentList(List<CourseBuyStudentVo> studentList) {
+        this.studentList = studentList;
+    }
+}

+ 106 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherLiveCourseInfoVo.java

@@ -0,0 +1,106 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author hgw
+ * Created by 2022-04-06
+ */
+@ApiModel(value = "TeacherLiveCourseInfoVo", description = "老师直播课课程")
+public class TeacherLiveCourseInfoVo implements Serializable {
+
+    @ApiModelProperty(value = "课程组id")
+    private Long courseGroupId;
+
+    @ApiModelProperty(value = "名称")
+    private String courseGroupName;
+
+    @ApiModelProperty(value = "声部名称")
+    private String subjectName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
+
+    @ApiModelProperty(value = "课程状态 NOT_START未开始 ING进行中 COMPLETE已完成 CANCEL已取消")
+    private String status;
+
+    @ApiModelProperty(value = "课程人数")
+    private Integer studentCount;
+
+    @ApiModelProperty(value = "课程图片")
+    private String backgroundPic;
+
+    public Long getCourseGroupId() {
+        return courseGroupId;
+    }
+
+    public void setCourseGroupId(Long courseGroupId) {
+        this.courseGroupId = courseGroupId;
+    }
+
+    public String getCourseGroupName() {
+        return courseGroupName;
+    }
+
+    public void setCourseGroupName(String courseGroupName) {
+        this.courseGroupName = courseGroupName;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public Integer getStudentCount() {
+        return studentCount;
+    }
+
+    public void setStudentCount(Integer studentCount) {
+        this.studentCount = studentCount;
+    }
+
+    public String getBackgroundPic() {
+        return backgroundPic;
+    }
+
+    public void setBackgroundPic(String backgroundPic) {
+        this.backgroundPic = backgroundPic;
+    }
+}

+ 3 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -43,15 +43,15 @@
         </foreach>
     </insert>
 
-    <select id="queryTeacherCourseGroup" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo">
+    <select id="queryTeacherCourseGroup" resultType="com.yonge.cooleshow.biz.dal.vo.CourseGroupVo">
         select
         b.id_                         as courseGroupId,
         b.name_                       as courseGroupName,
         s.name_                       as subjectName,
         a.teacher_id_                 as teacherId,
         u.real_name_                  as teacherName,
-        a.start_time_                 as startTime,
-        a.end_time_                   as endTime,
+        b.course_start_time_          as courseStartTime,
+        b.single_course_minutes_      as singleCourseMinutes,
         a.status_                     as `status`,
         ifnull(a.pre_student_num_, 0) as studentCount,
         b.background_pic_             as backgroundPic,

+ 24 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -100,4 +100,28 @@
         order by b.start_time_ desc
     </select>
 
+    <select id="queryLiveTeacherCourse" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo">
+        select
+        b.id_ as courseGroupId,
+        b.name_ as courseGroupName,
+        s.name_ as subjectName,
+        a.start_time_ as startTime,
+        a.end_time_ as endTime,
+        a.status_ as `status`,
+        a.pre_student_num_ as studentCount,
+        b.background_pic_ as backgroundPic
+        from course_schedule as a
+        left join course_group as b on a.course_group_id_ = b.id_
+        left join subject as s on b.subject_id_ = s.id_
+        where b.teacher_id_ = #{param.teacherId}
+        and a.lock_ = 0
+        and a.status_ = #{param.status}
+        and a.type_ = #{param.type}
+        <![CDATA[ AND a.class_date_  >= #{param.startDate} ]]>
+        <![CDATA[ AND a.class_date_  <= #{param.endDate} ]]>
+        <if test="param.subjectId != null">
+            AND b.subject_id_ = #{param.subjectId}
+        </if>
+    </select>
+
 </mapper>

+ 1 - 7
cooleshow-user/user-biz/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -93,10 +93,6 @@
         </where>
     </select>
 
-    <select id="queryNameByIds" resultType="java.util.Map">
-        select id_ `key`,name_ `value` FROM `subject` s WHERE FIND_IN_SET(s.id_,#{subjectIds}) AND s.del_flag_ = 0
-    </select>
-
     <sql id="querySubPageSql">
         <where>
             <if test="parentId != null">
@@ -126,8 +122,6 @@
     </select>
 
 	<delete id="deleteById">
-		update subject set del_flag_ = 1 where id_ = #{id};
-		update subject set del_flag_ = 1 where parent_subject_id_ = #{id};
+		update subject set del_flag_ = 1 where id_ = #{id} or parent_subject_id_ = #{id}
 	</delete>
-
 </mapper>

+ 11 - 15
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/SubjectController.java

@@ -1,18 +1,19 @@
 package com.yonge.cooleshow.student.controller;
 
+import com.yonge.cooleshow.biz.dal.service.SubjectService;
+import com.yonge.cooleshow.biz.dal.vo.SubjectSelectVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.yonge.cooleshow.biz.dal.queryInfo.SubjectQueryInfo;
-import com.yonge.cooleshow.biz.dal.service.SubjectService;
-import com.yonge.cooleshow.common.controller.BaseController;
+import java.util.List;
 
 @RequestMapping("subject")
 @Api(tags = "科目服务")
@@ -28,15 +29,10 @@ public class SubjectController extends BaseController {
 		return succeed(subjectService.get(id));
 	}
 
-	@ApiOperation(value = "分页查询科目列表")
-	@GetMapping("/queryPage")
-	public Object queryPage(SubjectQueryInfo queryInfo) {
-		return succeed(subjectService.queryPage(queryInfo));
-	}
-
-	@ApiOperation(value = "分页查询科目树状列表")
-	@GetMapping("/queryPageTree")
-	public Object queryPageTree(SubjectQueryInfo queryInfo) {
-		return succeed(subjectService.queryPageTree(queryInfo));
-	}
+	@ApiOperation(value = "获取科目")
+	@GetMapping("/subjectSelect")
+    public HttpResponseResult<List<SubjectSelectVo>> subjectSelect(){
+        List<SubjectSelectVo> subjectSelect = subjectService.subjectSelect();
+        return succeed(subjectSelect);
+    }
 }

+ 3 - 3
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseGroupController.java

@@ -5,7 +5,7 @@ import com.yonge.cooleshow.biz.dal.dto.CheckLiveCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -42,9 +42,9 @@ public class CourseGroupController extends BaseController {
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
     })
-    @ApiOperation("分页查询课程组列表")
+    @ApiOperation("分页查询直播课课程组列表")
     @PostMapping("/queryPageCourseGroup")
-    public HttpResponseResult<PageInfo<TeacherCourseGroupVo>> queryPageLiveCourseGroup(@RequestBody Map<String, Object> param) {
+    public HttpResponseResult<PageInfo<CourseGroupVo>> queryPageLiveCourseGroup(@RequestBody Map<String, Object> param) {
         return succeed(courseGroupService.queryPageLiveCourseGroup(param));
     }
 

+ 3 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseScheduleController.java

@@ -2,7 +2,8 @@ package com.yonge.cooleshow.teacher.controller;
 
 
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -44,7 +45,7 @@ public class CourseScheduleController extends BaseController {
     })
     @ApiOperation("老师端-首页-我的课程-直播课")
     @PostMapping("/queryTeacherLiveCourse")
-    public HttpResponseResult<PageInfo<TeacherCourseGroupVo>> queryTeacherLiveCourse(@RequestBody Map<String, Object> param) {
+    public HttpResponseResult<PageInfo<TeacherLiveCourseInfoVo>> queryTeacherLiveCourse(@RequestBody Map<String, Object> param) {
         return succeed(courseScheduleService.queryTeacherLiveCourse(param));
     }
 

+ 2 - 18
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SubjectController.java

@@ -32,24 +32,8 @@ public class SubjectController extends BaseController {
 		return succeed(subjectService.get(id));
 	}
 
-	@ApiOperation(value = "分页查询科目列表")
-	@GetMapping("/queryPage")
-	public Object queryPage(SubjectQueryInfo queryInfo) {
-		return succeed(subjectService.queryPage(queryInfo));
-	}
-
-	@ApiOperation(value = "分页查询科目树状列表")
-	@GetMapping("/queryPageTree")
-	public Object queryPageTree(SubjectQueryInfo queryInfo) {
-		return succeed(subjectService.queryPageTree(queryInfo));
-	}
-
-/***
-     * 获取科目
-     * @author liweifan
-     * @updateTime 2022/3/21 17:21
-     * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.util.List<com.yonge.cooleshow.biz.dal.vo.SubjectSelectVo>>
-     */
+	@ApiOperation(value = "获取科目")
+	@GetMapping("/subjectSelect")
     public HttpResponseResult<List<SubjectSelectVo>> subjectSelect(){
         List<SubjectSelectVo> subjectSelect = subjectService.subjectSelect();
         return succeed(subjectSelect);