Browse Source

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

jelly 3 years ago
parent
commit
c95ba09987
22 changed files with 929 additions and 36 deletions
  1. 100 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/CourseHomeworkController.java
  2. 100 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/CourseScheduleRepliedController.java
  3. 16 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseHomeworkDao.java
  4. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  5. 16 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleRepliedDao.java
  6. 7 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/StudentStarDao.java
  7. 177 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseHomework.java
  8. 163 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseScheduleReplied.java
  9. 21 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseHomeworkService.java
  10. 21 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleRepliedService.java
  11. 0 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentStarService.java
  12. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherService.java
  13. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseHomeworkServiceImpl.java
  14. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleRepliedServiceImpl.java
  15. 0 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentStarServiceImpl.java
  16. 52 9
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  17. 72 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherTotalVo.java
  18. 39 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml
  19. 22 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  20. 40 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleRepliedMapper.xml
  21. 9 7
      cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentStarMapper.xml
  22. 13 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherController.java

+ 100 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/CourseHomeworkController.java

@@ -0,0 +1,100 @@
+package com.yonge.cooleshow.admin.controller;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import com.yonge.cooleshow.biz.dal.support.Condition;
+import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.page.PageInfo;
+import com.yonge.toolset.utils.string.StringUtil;
+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.*;
+
+import javax.validation.Valid;
+
+import com.yonge.cooleshow.biz.dal.entity.CourseHomework;
+import com.yonge.cooleshow.biz.dal.service.CourseHomeworkService;
+
+@RestController
+@RequestMapping("/courseHomework")
+@Api(value = "课程作业表", tags = "课程作业表")
+public class CourseHomeworkController extends BaseController {
+
+    @Autowired
+    private CourseHomeworkService courseHomeworkService;
+
+	/**
+     * 查询单条
+     */
+    @GetMapping("/detail")
+    @ApiOperation(value = "详情", notes = "传入courseHomework")
+    public HttpResponseResult<CourseHomework> detail(CourseHomework courseHomework) {
+		CourseHomework detail = courseHomeworkService.getOne(Condition.getQueryWrapper(courseHomework));
+		return succeed(detail);
+	}
+    
+    
+    /**
+     * 查询集合
+     */
+    @GetMapping("/list")
+    @ApiOperation(value = "查询集合", notes = "传入courseHomework")
+    public HttpResponseResult<List<CourseHomework>> list(CourseHomework courseHomework) {
+		List<CourseHomework> list = courseHomeworkService.list();
+		return succeed(list);
+	}
+    
+    /**
+     * 查询分页
+     */
+    @GetMapping("/page")
+    @ApiOperation(value = "查询分页", notes = "传入courseHomework")
+    public HttpResponseResult<PageInfo<CourseHomework>> page(CourseHomework courseHomework, Query query) {
+		IPage<CourseHomework> pages = courseHomeworkService.selectPage(Condition.getPage(query), courseHomework);
+        return succeed(Condition.pageInfo(pages));
+	}
+    
+    /**
+	 * 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperation(value = "新增", notes = "传入courseHomework")
+	public HttpResponseResult save(@Valid @RequestBody CourseHomework courseHomework) {
+    	return status(courseHomeworkService.save(courseHomework));
+	}
+    
+    /**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperation(value = "修改", notes = "传入courseHomework")
+	public HttpResponseResult update(@Valid @RequestBody CourseHomework courseHomework) {
+        return status(courseHomeworkService.updateById(courseHomework));
+	}
+    
+    /**
+	 * 新增或修改
+	 */
+    @PostMapping("/submit")
+    @ApiOperation(value = "新增或修改", notes = "传入courseHomework")
+	public HttpResponseResult submit(@RequestBody CourseHomework courseHomework) {
+        return status(courseHomeworkService.saveOrUpdate(courseHomework));
+    }
+
+ 	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+        if (StringUtil.isEmpty(ids)) {
+			return failed("参数不能为空");
+		}
+		return status(courseHomeworkService.removeByIds(StringUtil.toLongList(ids)));
+	}
+}

+ 100 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/CourseScheduleRepliedController.java

@@ -0,0 +1,100 @@
+package com.yonge.cooleshow.admin.controller;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import com.yonge.cooleshow.biz.dal.support.Condition;
+import com.yonge.cooleshow.biz.dal.support.Query;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.page.PageInfo;
+import com.yonge.toolset.utils.string.StringUtil;
+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.*;
+
+import javax.validation.Valid;
+
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
+import com.yonge.cooleshow.biz.dal.service.CourseScheduleRepliedService;
+
+@RestController
+@RequestMapping("/courseScheduleReplied")
+@Api(value = "课程点评", tags = "课程点评")
+public class CourseScheduleRepliedController extends BaseController {
+
+    @Autowired
+    private CourseScheduleRepliedService courseScheduleRepliedService;
+
+	/**
+     * 查询单条
+     */
+    @GetMapping("/detail")
+    @ApiOperation(value = "详情", notes = "传入courseScheduleReplied")
+    public HttpResponseResult<CourseScheduleReplied> detail(CourseScheduleReplied courseScheduleReplied) {
+		CourseScheduleReplied detail = courseScheduleRepliedService.getOne(Condition.getQueryWrapper(courseScheduleReplied));
+		return succeed(detail);
+	}
+    
+    
+    /**
+     * 查询集合
+     */
+    @GetMapping("/list")
+    @ApiOperation(value = "查询集合", notes = "传入courseScheduleReplied")
+    public HttpResponseResult<List<CourseScheduleReplied>> list(CourseScheduleReplied courseScheduleReplied) {
+		List<CourseScheduleReplied> list = courseScheduleRepliedService.list();
+		return succeed(list);
+	}
+    
+    /**
+     * 查询分页
+     */
+    @GetMapping("/page")
+    @ApiOperation(value = "查询分页", notes = "传入courseScheduleReplied")
+    public HttpResponseResult<PageInfo<CourseScheduleReplied>> page(CourseScheduleReplied courseScheduleReplied, Query query) {
+		IPage<CourseScheduleReplied> pages = courseScheduleRepliedService.selectPage(Condition.getPage(query), courseScheduleReplied);
+        return succeed(Condition.pageInfo(pages));
+	}
+    
+    /**
+	 * 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperation(value = "新增", notes = "传入courseScheduleReplied")
+	public HttpResponseResult save(@Valid @RequestBody CourseScheduleReplied courseScheduleReplied) {
+    	return status(courseScheduleRepliedService.save(courseScheduleReplied));
+	}
+    
+    /**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperation(value = "修改", notes = "传入courseScheduleReplied")
+	public HttpResponseResult update(@Valid @RequestBody CourseScheduleReplied courseScheduleReplied) {
+        return status(courseScheduleRepliedService.updateById(courseScheduleReplied));
+	}
+    
+    /**
+	 * 新增或修改
+	 */
+    @PostMapping("/submit")
+    @ApiOperation(value = "新增或修改", notes = "传入courseScheduleReplied")
+	public HttpResponseResult submit(@RequestBody CourseScheduleReplied courseScheduleReplied) {
+        return status(courseScheduleRepliedService.saveOrUpdate(courseScheduleReplied));
+    }
+
+ 	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+        if (StringUtil.isEmpty(ids)) {
+			return failed("参数不能为空");
+		}
+		return status(courseScheduleRepliedService.removeByIds(StringUtil.toLongList(ids)));
+	}
+}

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseHomeworkDao.java

@@ -0,0 +1,16 @@
+package com.yonge.cooleshow.biz.dal.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.entity.CourseHomework;
+
+public interface CourseHomeworkDao extends BaseMapper<CourseHomework>{
+
+	/**
+	 * 自定义分页
+	 */
+	List<CourseHomework> selectPage(IPage page, CourseHomework courseHomework);
+	
+}

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

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
+import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -15,6 +16,13 @@ import java.util.List;
 public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     int insertBatch(@Param("entities") List<CourseSchedule> entities);
+    /***
+     * 查询所有老师课时统计
+     * @author liweifan
+     * @updateTime 2022/3/28 10:53
+     * @return: com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo
+     */
+    List<TeacherTotalVo> queryTeacherHomeTotal();
 
 }
 

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleRepliedDao.java

@@ -0,0 +1,16 @@
+package com.yonge.cooleshow.biz.dal.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
+
+public interface CourseScheduleRepliedDao extends BaseMapper<CourseScheduleReplied>{
+
+	/**
+	 * 自定义分页
+	 */
+	List<CourseScheduleReplied> selectPage(IPage page, CourseScheduleReplied courseScheduleReplied);
+	
+}

+ 7 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/StudentStarDao.java

@@ -5,12 +5,14 @@ import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.entity.StudentStar;
+import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
 
 public interface StudentStarDao extends BaseMapper<StudentStar>{
-
-	/**
-	 * 自定义分页
+	/***
+	 * 查询首页所有老师粉丝数
+	 * @author liweifan
+	 * @updateTime 2022/3/28 10:38
+	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo>
 	 */
-	List<StudentStar> selectPage(IPage page, StudentStar studentStar);
-	
+	List<TeacherTotalVo> queryTeacherHomeTotal();
 }

+ 177 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseHomework.java

@@ -0,0 +1,177 @@
+package com.yonge.cooleshow.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * 课程作业表
+ */
+@TableName("course_homework")
+@ApiModel(value = "CourseHomework对象", description = "课程作业表")
+public class CourseHomework implements Serializable {
+	private static final long serialVersionUID = 1L;
+    /** 
+    * 主键; 
+    */
+    @ApiModelProperty("主键; ")
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+    /** 
+    * 课程组编号; 
+    */
+    @ApiModelProperty("课程组编号; ")
+	@TableField(value = "course_group_id_")
+    private Long courseGroupId;
+    /** 
+    * 课程组类型PRACTICE、LIVE; 
+    */
+    @ApiModelProperty("课程组类型PRACTICE、LIVE; ")
+	@TableField(value = "course_group_type_")
+    private String courseGroupType;
+    /** 
+    * 课程编号; 
+    */
+    @ApiModelProperty("课程编号; ")
+	@TableField(value = "course_schedule_id_")
+    private Long courseScheduleId;
+    /** 
+    * 作业标题; 
+    */
+    @ApiModelProperty("作业标题; ")
+	@TableField(value = "title_")
+    private String title;
+    /** 
+    * 作业内容 
+    */
+    @ApiModelProperty("作业内容 ")
+	@TableField(value = "content_")
+    private String content;
+    /** 
+    * 作业附件地址(多个用逗号分隔) 
+    */
+    @ApiModelProperty("作业附件地址(多个用逗号分隔) ")
+	@TableField(value = "attachments_")
+    private String attachments;
+    /** 
+    * 预计提交人数 
+    */
+    @ApiModelProperty("预计提交人数 ")
+	@TableField(value = "expect_num_")
+    private Integer expectNum;
+    /** 
+    * 提交人数 
+    */
+    @ApiModelProperty("提交人数 ")
+	@TableField(value = "completed_num_")
+    private Integer completedNum;
+    /** 
+    * 创建时间; 
+    */
+    @ApiModelProperty("创建时间; ")
+	@TableField(value = "create_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date createTime;
+    /** 
+    * 修改时间; 
+    */
+    @ApiModelProperty("修改时间; ")
+	@TableField(value = "update_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getCourseGroupId() {
+        return courseGroupId;
+    }
+
+    public void setCourseGroupId(Long courseGroupId) {
+        this.courseGroupId = courseGroupId;
+    }
+
+    public String getCourseGroupType() {
+        return courseGroupType;
+    }
+
+    public void setCourseGroupType(String courseGroupType) {
+        this.courseGroupType = courseGroupType;
+    }
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getAttachments() {
+        return attachments;
+    }
+
+    public void setAttachments(String attachments) {
+        this.attachments = attachments;
+    }
+
+    public Integer getExpectNum() {
+        return expectNum;
+    }
+
+    public void setExpectNum(Integer expectNum) {
+        this.expectNum = expectNum;
+    }
+
+    public Integer getCompletedNum() {
+        return completedNum;
+    }
+
+    public void setCompletedNum(Integer completedNum) {
+        this.completedNum = completedNum;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 163 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseScheduleReplied.java

@@ -0,0 +1,163 @@
+package com.yonge.cooleshow.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * 课程点评
+ */
+@TableName("course_schedule_replied")
+@ApiModel(value = "CourseScheduleReplied对象", description = "课程点评")
+public class CourseScheduleReplied implements Serializable {
+	private static final long serialVersionUID = 1L;
+    /** 
+    * 主键 
+    */
+    @ApiModelProperty("主键 ")
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+    /** 
+    * 学生id 
+    */
+    @ApiModelProperty("学生id ")
+	@TableField(value = "student_id_")
+    private Long studentId;
+    /** 
+    * 课程编号 
+    */
+    @ApiModelProperty("课程编号 ")
+	@TableField(value = "course_schedule_id_")
+    private Long courseScheduleId;
+    /** 
+    * 课程组类型PRACTICE、LIVE; 
+    */
+    @ApiModelProperty("课程组类型PRACTICE、LIVE; ")
+	@TableField(value = "course_group_type_")
+    private String courseGroupType;
+    /** 
+    * 课程组编号; 
+    */
+    @ApiModelProperty("课程组编号; ")
+	@TableField(value = "course_group_id_")
+    private String courseGroupId;
+    /** 
+    * 学员评分 
+    */
+    @ApiModelProperty("学员评分 ")
+	@TableField(value = "score_")
+    private Integer score;
+    /** 
+    * 学员课后评价 
+    */
+    @ApiModelProperty("学员课后评价 ")
+	@TableField(value = "student_replied_")
+    private String studentReplied;
+    /** 
+    * 老师课后评价 
+    */
+    @ApiModelProperty("老师课后评价 ")
+	@TableField(value = "teacher_replied_")
+    private String teacherReplied;
+    /** 
+    * 创建时间 
+    */
+    @ApiModelProperty("创建时间 ")
+	@TableField(value = "create_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date createTime;
+    /** 
+    * 修改时间 
+    */
+    @ApiModelProperty("修改时间 ")
+	@TableField(value = "update_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private Date updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Long studentId) {
+        this.studentId = studentId;
+    }
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public String getCourseGroupType() {
+        return courseGroupType;
+    }
+
+    public void setCourseGroupType(String courseGroupType) {
+        this.courseGroupType = courseGroupType;
+    }
+
+    public String getCourseGroupId() {
+        return courseGroupId;
+    }
+
+    public void setCourseGroupId(String courseGroupId) {
+        this.courseGroupId = courseGroupId;
+    }
+
+    public Integer getScore() {
+        return score;
+    }
+
+    public void setScore(Integer score) {
+        this.score = score;
+    }
+
+    public String getStudentReplied() {
+        return studentReplied;
+    }
+
+    public void setStudentReplied(String studentReplied) {
+        this.studentReplied = studentReplied;
+    }
+
+    public String getTeacherReplied() {
+        return teacherReplied;
+    }
+
+    public void setTeacherReplied(String teacherReplied) {
+        this.teacherReplied = teacherReplied;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 21 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseHomeworkService.java

@@ -0,0 +1,21 @@
+package com.yonge.cooleshow.biz.dal.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.biz.dal.entity.CourseHomework;
+
+/**
+ * 课程作业表 服务类
+ * @author liweifan
+ * @date 2022-03-28
+ */
+public interface CourseHomeworkService extends IService<CourseHomework>  {
+
+
+    /**
+     * 自定义分页
+     * @author liweifan
+ 	 * @date 2022-03-28
+     */
+    IPage<CourseHomework> selectPage(IPage<CourseHomework> page, CourseHomework courseHomework);
+}

+ 21 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleRepliedService.java

@@ -0,0 +1,21 @@
+package com.yonge.cooleshow.biz.dal.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
+
+/**
+ * 课程点评 服务类
+ * @author liweifan
+ * @date 2022-03-28
+ */
+public interface CourseScheduleRepliedService extends IService<CourseScheduleReplied>  {
+
+
+    /**
+     * 自定义分页
+     * @author liweifan
+ 	 * @date 2022-03-28
+     */
+    IPage<CourseScheduleReplied> selectPage(IPage<CourseScheduleReplied> page, CourseScheduleReplied courseScheduleReplied);
+}

+ 0 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentStarService.java

@@ -11,11 +11,4 @@ import com.yonge.cooleshow.biz.dal.entity.StudentStar;
  */
 public interface StudentStarService extends IService<StudentStar>  {
 
-
-    /**
-     * 自定义分页
-     * @author liweifan
- 	 * @date 2022-03-23
-     */
-    IPage<StudentStar> selectPage(IPage<StudentStar> page, StudentStar studentStar);
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherService.java

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.biz.dal.dto.req.TeacherSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
+import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.UserSetVo;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -58,4 +59,12 @@ public interface TeacherService extends IService<Teacher>  {
     * @date 2022/3/25 09:37
     */
     List<Subject> querySubject(Long userId);
+
+    /***
+     * 查询所有老师统计数据
+     * @author liweifan
+     * @updateTime 2022/3/28 10:12
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo>
+     */
+    List<TeacherTotalVo> queryTotalList();
 }

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseHomeworkServiceImpl.java

@@ -0,0 +1,22 @@
+package com.yonge.cooleshow.biz.dal.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.yonge.cooleshow.biz.dal.entity.CourseHomework;
+import com.yonge.cooleshow.biz.dal.dao.CourseHomeworkDao;
+import com.yonge.cooleshow.biz.dal.service.CourseHomeworkService;
+
+
+@Service
+public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, CourseHomework> implements CourseHomeworkService {
+
+    /**
+     * 分页查询
+     */
+     @Override
+    public IPage<CourseHomework> selectPage(IPage<CourseHomework> page, CourseHomework courseHomework){
+        return page.setRecords(baseMapper.selectPage(page, courseHomework));
+    }
+	
+}

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleRepliedServiceImpl.java

@@ -0,0 +1,22 @@
+package com.yonge.cooleshow.biz.dal.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
+import com.yonge.cooleshow.biz.dal.dao.CourseScheduleRepliedDao;
+import com.yonge.cooleshow.biz.dal.service.CourseScheduleRepliedService;
+
+
+@Service
+public class CourseScheduleRepliedServiceImpl extends ServiceImpl<CourseScheduleRepliedDao, CourseScheduleReplied> implements CourseScheduleRepliedService {
+
+    /**
+     * 分页查询
+     */
+     @Override
+    public IPage<CourseScheduleReplied> selectPage(IPage<CourseScheduleReplied> page, CourseScheduleReplied courseScheduleReplied){
+        return page.setRecords(baseMapper.selectPage(page, courseScheduleReplied));
+    }
+	
+}

+ 0 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentStarServiceImpl.java

@@ -11,12 +11,4 @@ import com.yonge.cooleshow.biz.dal.service.StudentStarService;
 @Service
 public class StudentStarServiceImpl extends ServiceImpl<StudentStarDao, StudentStar> implements StudentStarService {
 
-    /**
-     * 分页查询
-     */
-     @Override
-    public IPage<StudentStar> selectPage(IPage<StudentStar> page, StudentStar studentStar){
-        return page.setRecords(baseMapper.selectPage(page, studentStar));
-    }
-	
 }

+ 52 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -1,27 +1,26 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.enums.SysUserType;
+import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.dao.EmployeeDao;
-import com.yonge.cooleshow.biz.dal.dto.req.UserSetReq;
+import com.yonge.cooleshow.biz.dal.dao.StudentStarDao;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
-import com.yonge.cooleshow.biz.dal.entity.TeacherAuthEntryRecord;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.TeacherTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
-import com.yonge.cooleshow.biz.dal.service.EmployeeService;
 import com.yonge.cooleshow.biz.dal.service.TeacherAuthEntryRecordService;
 import com.yonge.cooleshow.biz.dal.service.TeacherStyleVideoService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherAuthEntryRecordVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
-import com.yonge.cooleshow.biz.dal.vo.UserSetVo;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
@@ -32,9 +31,10 @@ import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -42,11 +42,15 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     @Autowired
     private TeacherStyleVideoService teacherStyleVideoService;
     @Autowired
-    private EmployeeDao employeeDao;
-    @Autowired
     private SysUserFeignService userFeignService;
     @Autowired
     private TeacherAuthEntryRecordService entryRecordService;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Autowired
+    private StudentStarDao studentStarDao;
+    @Autowired
+    private CourseScheduleDao courseScheduleDao;
 
 
     @Override
@@ -96,6 +100,45 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         return baseMapper.querySubject(userId);
     }
 
+    @Override
+    public List<TeacherTotalVo> queryTotalList() {
+        List<Teacher> teachers = baseMapper.selectList(Wrappers.<Teacher>emptyWrapper()
+                .select("userId"));
+        //查询粉丝数
+        List<TeacherTotalVo> teacherStarTotal = studentStarDao.queryTeacherHomeTotal();
+        Map<Long, TeacherTotalVo> teacherStarMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(teacherStarTotal)) {
+            teacherStarMap = teacherStarTotal.stream().collect(Collectors.toMap(TeacherTotalVo::getUserId, o -> o));
+        }
+        //查询已上未上课时数
+        List<TeacherTotalVo> teacherCourseTotal = courseScheduleDao.queryTeacherHomeTotal();
+        Map<Long, TeacherTotalVo> teacherCourseMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(teacherCourseTotal)) {
+            teacherCourseMap = teacherCourseTotal.stream().collect(Collectors.toMap(TeacherTotalVo::getUserId, o -> o));
+        }
+        List<TeacherTotalVo> resultList = new ArrayList<>();
+        for (Teacher teacher : teachers) {
+            TeacherTotalVo totalVo = new TeacherTotalVo();
+            totalVo.setUserId(teacher.getUserId());
+            TeacherTotalVo fansTotal= teacherStarMap.get(teacher.getUserId());
+            if(null != fansTotal){
+                totalVo.setFansNum(fansTotal.getFansNum());
+            }
+            TeacherTotalVo courseTotal= teacherCourseMap.get(teacher.getUserId());
+            if(null != courseTotal){
+                totalVo.setExpTime(courseTotal.getExpTime());
+                totalVo.setUnExpTime(courseTotal.getUnExpTime());
+                Double starGrade = courseTotal.getStarGrade();
+                if(null != starGrade){
+                    Long round = Math.round(starGrade);
+                    totalVo.setStarGrade(round.doubleValue());
+                }
+            }
+            resultList.add(totalVo);
+        }
+        return resultList;
+    }
+
     private HttpResponseResult<Boolean> doCreate(TeacherSubmitReq teacherSubmitReq) throws BizException {
         //判断手机号
         SysUser sysUser = employeeDao.queryByPhone(teacherSubmitReq.getPhone());

+ 72 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherTotalVo.java

@@ -0,0 +1,72 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022/3/21 18:37
+ */
+@ApiModel(value = "TeacherHomeVo对象", description = "老师主页基本信息返回")
+public class TeacherTotalVo {
+    @ApiModelProperty("对应user表用户编号")
+    private Long userId;
+    @ApiModelProperty("老师昵称")
+    private String username;
+    @ApiModelProperty("星级")
+    private Double starGrade;
+    @ApiModelProperty("粉丝数")
+    private Integer fansNum;
+    @ApiModelProperty("已上课时")
+    private Integer expTime;
+    @ApiModelProperty("未上课时")
+    private Integer unExpTime;
+
+    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 Integer getFansNum() {
+        return fansNum;
+    }
+
+    public void setFansNum(Integer fansNum) {
+        this.fansNum = fansNum;
+    }
+
+    public Integer getExpTime() {
+        return expTime;
+    }
+
+    public void setExpTime(Integer expTime) {
+        this.expTime = expTime;
+    }
+
+    public Integer getUnExpTime() {
+        return unExpTime;
+    }
+
+    public void setUnExpTime(Integer unExpTime) {
+        this.unExpTime = unExpTime;
+    }
+
+    public Double getStarGrade() {
+        return starGrade;
+    }
+
+    public void setStarGrade(Double starGrade) {
+        this.starGrade = starGrade;
+    }
+}

+ 39 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -0,0 +1,39 @@
+<?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.yonge.cooleshow.biz.dal.dao.CourseHomeworkDao">
+	<resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.CourseHomework">
+            <result column="id_" property="id" />
+	        <result column="course_group_id_" property="courseGroupId" />
+	        <result column="course_group_type_" property="courseGroupType" />
+	        <result column="course_schedule_id_" property="courseScheduleId" />
+	        <result column="title_" property="title" />
+	        <result column="content_" property="content" />
+	        <result column="attachments_" property="attachments" />
+	        <result column="expect_num_" property="expectNum" />
+	        <result column="completed_num_" property="completedNum" />
+	        <result column="create_time_" property="createTime" />
+	        <result column="update_time_" property="updateTime" />
+		</resultMap>  
+    
+    <!-- 表字段 -->
+    <sql id="baseColumns">
+         t.id_ as "id"
+        , t.course_group_id_ as "courseGroupId"
+        , t.course_group_type_ as "courseGroupType"
+        , t.course_schedule_id_ as "courseScheduleId"
+        , t.title_ as "title"
+        , t.content_ as "content"
+        , t.attachments_ as "attachments"
+        , t.expect_num_ as "expectNum"
+        , t.completed_num_ as "completedNum"
+        , t.create_time_ as "createTime"
+        , t.update_time_ as "updateTime"
+        </sql> 
+    
+    <!-- 分页查询 -->
+    <select id="selectPage" resultMap="BaseResultMap">
+		SELECT         
+        	<include refid="baseColumns" />
+		FROM course_homework t
+	</select>
+</mapper>

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

@@ -39,4 +39,26 @@
         </foreach>
     </insert>
 
+    <select id="queryTeacherHomeTotal" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo">
+        select a.*,b.starGrade from (
+            <!-- 统计查询已上课时数,未上课时数 -->
+            select
+                a.teacher_id_ as userId,
+                sum(if(a.end_time_ &lt;= now(),1,0)) as expTime,
+                sum(if(a.end_time_ &gt; now(),1,0)) as unExpTime
+            from course_schedule a
+            where a.lock_ = 0 and a.type_ = 'PRACTICE'
+            group by a.teacher_id_
+        ) a
+        left join (
+            <!-- 统计老师星级评分 -->
+            select
+                a.teacher_id_ as userId,
+                avg (b.score_) as starGrade
+            from course_schedule a
+            join course_schedule_replied b on a.id_ = b.course_schedule_id_
+            where a.lock_ = 0 and type_ = 'PRACTICE' and b.score_ is not null
+            group by a.teacher_id_
+        ) b on a.userId = b.userId
+    </select>
 </mapper>

+ 40 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleRepliedMapper.xml

@@ -0,0 +1,40 @@
+<?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.yonge.cooleshow.biz.dal.dao.CourseScheduleRepliedDao">
+	<resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied">
+            <result column="id_" property="id" />
+	        <result column="student_id_" property="studentId" />
+	        <result column="course_schedule_id_" property="courseScheduleId" />
+	        <result column="course_group_type_" property="courseGroupType" />
+	        <result column="course_group_id_" property="courseGroupId" />
+	        <result column="score_" property="score" />
+	        <result column="student_replied_" property="studentReplied" />
+	        <result column="teacher_replied_" property="teacherReplied" />
+	        <result column="create_time_" property="createTime" />
+	        <result column="update_time_" property="updateTime" />
+		</resultMap>  
+    
+    <!-- 表字段 -->
+    <sql id="baseColumns">
+         t.id_ as "id"
+        , t.student_id_ as "studentId"
+        , t.course_schedule_id_ as "courseScheduleId"
+        , t.course_group_type_ as "courseGroupType"
+        , t.course_group_id_ as "courseGroupId"
+        , t.score_ as "score"
+        , t.student_replied_ as "studentReplied"
+        , t.teacher_replied_ as "teacherReplied"
+        , t.create_time_ as "createTime"
+        , t.update_time_ as "updateTime"
+        </sql> 
+    
+    <!-- 分页查询 -->
+    <select id="selectPage" resultMap="BaseResultMap">
+		SELECT         
+        	<include refid="baseColumns" />
+		FROM course_schedule_replied t
+	</select>
+
+
+
+</mapper>

+ 9 - 7
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentStarMapper.xml

@@ -12,12 +12,14 @@
          t.teacher_id_ as "teacherId"
         , t.student_id_ as "studentId"
         , t.create_time_ as "createTime"
-        </sql> 
-    
-    <!-- 分页查询 -->
-    <select id="selectPage" resultMap="BaseResultMap">
-		SELECT         
-        	<include refid="baseColumns" />
-		FROM student_star t
+        </sql>
+
+	<select id="queryTeacherHomeTotal" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo">
+		select
+			teacher_id_ as userId,
+			count(1) as fansNum
+		from student_star
+		group by teacher_id_
 	</select>
+
 </mapper>

+ 13 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherController.java

@@ -10,6 +10,7 @@ import com.yonge.cooleshow.biz.dal.service.TeacherAuthEntryRecordService;
 import com.yonge.cooleshow.biz.dal.service.TeacherAuthMusicianRecordService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -85,4 +86,16 @@ public class TeacherController extends BaseController {
         }
         return succeed(teacherService.querySubject(user.getId()));
     }
+
+    /***
+     * 查询所有老师统计数据
+     * @author liweifan
+     * @updateTime 2022/3/28 10:12
+     * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.util.List<com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo>>
+     */
+    @GetMapping("/queryTotalList")
+    public HttpResponseResult<List<TeacherTotalVo>> queryTotalList(){
+        return succeed(teacherService.queryTotalList());
+    }
+
 }