浏览代码

老师统计,学生统计修改

weifanli 3 年之前
父节点
当前提交
d4da8aee6c
共有 38 个文件被更改,包括 603 次插入308 次删除
  1. 2 2
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/StudentFeignService.java
  2. 2 2
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/TeacherFeignService.java
  3. 1 1
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/fallback/StudentFeignServiceFallback.java
  4. 1 1
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/fallback/TeacherFeignServiceFallback.java
  5. 2 2
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/QueryStudentTotalTask.java
  6. 2 2
      cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/QueryTeacherTotalTask.java
  7. 9 9
      cooleshow-task/src/main/resources/config/mybatis/TaskMapper.xml
  8. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  9. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/StudentStarDao.java
  10. 30 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/StudentTotalDao.java
  11. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherStyleVideoDao.java
  12. 30 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherTotalDao.java
  13. 24 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/TeacherTotalDto.java
  14. 14 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentTotalSearch.java
  15. 43 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherStyleSearch.java
  16. 14 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherTotalSearch.java
  17. 100 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherTotal.java
  18. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CacheNameEnum.java
  19. 1 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentService.java
  20. 1 15
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherService.java
  21. 12 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherStyleVideoService.java
  22. 48 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherTotalService.java
  23. 1 48
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  24. 2 56
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  25. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherStyleVideoServiceImpl.java
  26. 104 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherTotalServiceImpl.java
  27. 17 77
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentTotalVo.java
  28. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherStyleVideoVo.java
  29. 17 60
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherTotalVo.java
  30. 2 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  31. 2 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentStarMapper.xml
  32. 30 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherStyleVideoMapper.xml
  33. 37 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherTotalMapper.xml
  34. 2 1
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/config/ResourceServerConfig.java
  35. 12 4
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/TeacherController.java
  36. 6 4
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/task/TaskController.java
  37. 1 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/config/ResourceServerConfig.java
  38. 7 6
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/task/TaskController.java

+ 2 - 2
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/StudentFeignService.java

@@ -14,6 +14,6 @@ public interface StudentFeignService {
      * @updateTime 2022/3/28 15:34
      * @return: java.lang.Object
      */
-    @GetMapping(value = "/task/queryStudentHomeTotal")
-    Object queryStudentHomeTotal();
+    @GetMapping(value = "/task/queryStudentTotal")
+    Object queryStudentTotal();
 }

+ 2 - 2
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/TeacherFeignService.java

@@ -14,6 +14,6 @@ public interface TeacherFeignService {
      * @updateTime 2022/3/28 15:34
      * @return: java.lang.Object
      */
-    @GetMapping(value = "/task/queryTeacherHomeTotal")
-    Object queryTeacherHomeTotal();
+    @GetMapping(value = "/task/queryTeacherTotal")
+    Object queryTeacherTotal();
 }

+ 1 - 1
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/fallback/StudentFeignServiceFallback.java

@@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
 public class StudentFeignServiceFallback implements StudentFeignService {
 
     @Override
-    public Object queryStudentHomeTotal() {
+    public Object queryStudentTotal() {
         return null;
     }
 }

+ 1 - 1
cooleshow-task/src/main/java/com/yonge/cooleshow/task/feign/fallback/TeacherFeignServiceFallback.java

@@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
 public class TeacherFeignServiceFallback implements TeacherFeignService {
 
     @Override
-    public Object queryTeacherHomeTotal() {
+    public Object queryTeacherTotal() {
         return null;
     }
 }

+ 2 - 2
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/QueryStudentHomeTotalTask.java → cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/QueryStudentTotalTask.java

@@ -11,12 +11,12 @@ import org.springframework.stereotype.Service;
  * @Data: 2022/3/28 15:55
  */
 @Service
-public class QueryStudentHomeTotalTask extends BaseTask {
+public class QueryStudentTotalTask extends BaseTask {
     @Autowired
     private StudentFeignService studentFeignService;
 
     @Override
     public void execute() throws TaskException {
-        studentFeignService.queryStudentHomeTotal();
+        Object o = studentFeignService.queryStudentTotal();
     }
 }

+ 2 - 2
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/QueryTeacherHomeTotalTask.java → cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/QueryTeacherTotalTask.java

@@ -11,12 +11,12 @@ import org.springframework.stereotype.Service;
  * @Data: 2022/3/28 15:55
  */
 @Service
-public class QueryTeacherHomeTotalTask extends BaseTask {
+public class QueryTeacherTotalTask extends BaseTask {
     @Autowired
     private TeacherFeignService teacherFeignService;
 
     @Override
     public void execute() throws TaskException {
-        teacherFeignService.queryTeacherHomeTotal();
+        Object o = teacherFeignService.queryTeacherTotal();
     }
 }

+ 9 - 9
cooleshow-task/src/main/resources/config/mybatis/TaskMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.yonge.cooleshow.task.dal.dao.TaskDao" >
   <resultMap id="TaskResultMap" type="com.yonge.cooleshow.task.dal.model.Task" >
-    <id column="id_" property="id" jdbcType="INTEGER" />
+    <id column="id_" property="id" jdbcType="BIGINT" />
     <result column="name_" property="name" jdbcType="VARCHAR" />
     <result column="group_" property="group" jdbcType="VARCHAR" />
     <result column="job_class_" property="jobClass" jdbcType="VARCHAR" />
@@ -28,16 +28,16 @@
   	</where>
   </sql>
   
-  <select id="get" resultMap="TaskResultMap" parameterType="java.lang.Integer" >
+  <select id="get" resultMap="TaskResultMap" parameterType="java.lang.Long" >
     select 
     <include refid="Base_Column_List" />
     from sys_task
-    where id_ = #{id,jdbcType=INTEGER}
+    where id_ = #{id}
   </select>
   
-  <delete id="delete" parameterType="java.lang.Integer" >
+  <delete id="delete" parameterType="java.lang.Long" >
     delete from sys_task
-    where id_ = #{id,jdbcType=INTEGER}
+    where id_ = #{id}
   </delete>
   
   <insert id="insert" parameterType="com.yonge.cooleshow.task.dal.model.Task" >
@@ -45,7 +45,7 @@
       job_class_, time_exp_, status_, 
       description_, create_on_, modify_on_
       )
-    values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{group,jdbcType=VARCHAR}, 
+    values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{group,jdbcType=VARCHAR},
       #{jobClass,jdbcType=VARCHAR}, #{timeExp,jdbcType=VARCHAR}, #{status,jdbcType=TINYINT}, 
       #{description,jdbcType=VARCHAR}, #{createOn,jdbcType=TIMESTAMP}, #{modifyOn,jdbcType=TIMESTAMP}
       )
@@ -61,7 +61,7 @@
       description_ = #{description,jdbcType=VARCHAR},
       create_on_ = #{createOn,jdbcType=TIMESTAMP},
       modify_on_ = #{modifyOn,jdbcType=TIMESTAMP}
-    where id_ = #{id,jdbcType=INTEGER}
+    where id_ = #{id,jdbcType=BIGINT}
   </update>
   
   <select id="queryAvailableTasks" resultMap="TaskResultMap">
@@ -92,10 +92,10 @@
    <include refid="global.limit"/>
   </select>
 
-	<select id="getLocked" resultMap="TaskResultMap" parameterType="java.lang.Integer">
+	<select id="getLocked" resultMap="TaskResultMap" parameterType="java.lang.Long">
 		select
 		<include refid="Base_Column_List" />
 		from sys_task
-		where id_ = #{id,jdbcType=INTEGER} for update
+		where id_ = #{id} for update
 	</select>
 </mapper>

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

@@ -27,7 +27,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      * @updateTime 2022/3/28 10:53
      * @return: com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo
      */
-    List<TeacherTotalVo> queryTeacherHomeTotal();
+    List<TeacherTotalVo> queryTeacherTotal();
 
     /***
      * 查询所有学生课时统计
@@ -35,7 +35,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      * @updateTime 2022/3/28 10:53
      * @return: com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo
      */
-    List<StudentTotalVo> queryStudentHomeTotal();
+    List<StudentTotalVo> queryStudentTotal();
 
     /**
      * 根据学生id查询大于当前时间并未开始的课程

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

@@ -15,12 +15,12 @@ public interface StudentStarDao extends BaseMapper<StudentStar>{
 	 * @updateTime 2022/3/28 10:38
 	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo>
 	 */
-	List<TeacherTotalVo> queryTeacherHomeTotal();
+	List<TeacherTotalVo> queryTeacherTotal();
 	/***
 	 * 查询首页学生关注老师数
 	 * @author liweifan
 	 * @updateTime 2022/3/28 10:38
 	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo>
 	 */
-	List<StudentTotalVo> queryStudentHomeTotal();
+	List<StudentTotalVo> queryStudentTotal();
 }

+ 30 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/StudentTotalDao.java

@@ -0,0 +1,30 @@
+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 org.apache.ibatis.annotations.Param;
+import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
+import com.yonge.cooleshow.biz.dal.vo.StudentTotalVo;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentTotalSearch;
+
+
+public interface StudentTotalDao extends BaseMapper<StudentTotal>{
+	/**
+	 * 查询详情
+     * @author liweifan
+     * @date 2022-04-11 17:10:23
+     * @return: com.yonge.cooleshow.biz.dal.vo.StudentTotalVo
+	 */
+	StudentTotalVo detail(@Param("id") Long id);
+
+	/**
+	 * 分页查询
+     * @author liweifan
+     * @date 2022-04-11 17:10:23
+     * @return: com.yonge.cooleshow.biz.dal.vo.StudentTotalVo
+	 */
+	List<StudentTotalVo> selectPage(@Param("page") IPage page, @Param("param") StudentTotalSearch studentTotal);
+	
+}

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherStyleVideoDao.java

@@ -4,7 +4,11 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleSearch;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
+import com.yonge.cooleshow.biz.dal.vo.StudentVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
 import org.apache.ibatis.annotations.Param;
 
 public interface TeacherStyleVideoDao extends BaseMapper<TeacherStyleVideo>{
@@ -25,4 +29,13 @@ public interface TeacherStyleVideoDao extends BaseMapper<TeacherStyleVideo>{
      * @return: java.lang.Integer
      */
     Integer removeByUserIdAndOldIds(@Param("userId")Long userId,@Param("oldIds") List<Long> oldIds);
+    /***
+     * 老师风采查询分页
+     * @author liweifan
+     * @param: page
+     * @param: query
+     * @updateTime 2022/4/11 15:24
+     * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo>
+     */
+    List<TeacherStyleVideoVo> stylePage(@Param("page") IPage page,@Param("param") TeacherStyleSearch query);
 }

+ 30 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherTotalDao.java

@@ -0,0 +1,30 @@
+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 org.apache.ibatis.annotations.Param;
+import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
+import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherTotalSearch;
+
+
+public interface TeacherTotalDao extends BaseMapper<TeacherTotal>{
+	/**
+	 * 查询详情
+     * @author liweifan
+     * @date 2022-04-11 16:30:25
+     * @return: com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo
+	 */
+	TeacherTotalVo detail(@Param("id") Long id);
+
+	/**
+	 * 分页查询
+     * @author liweifan
+     * @date 2022-04-11 16:30:25
+     * @return: com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo
+	 */
+	List<TeacherTotalVo> selectPage(@Param("page") IPage page, @Param("param") TeacherTotalSearch teacherTotal);
+	
+}

+ 24 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/TeacherTotalDto.java

@@ -0,0 +1,24 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
+import io.swagger.annotations.ApiModel;
+import org.apache.commons.beanutils.BeanUtils;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022-04-11 16:30:25
+ */
+@ApiModel(value = "TeacherTotalDto对象", description = "教师统计总表数据传输对象")
+public class TeacherTotalDto extends TeacherTotal{
+	private static final long serialVersionUID = 1L;
+    
+    public TeacherTotalDto buildDto(TeacherTotal teacherTotal){
+        try {
+            BeanUtils.copyProperties(this,teacherTotal);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return this;
+    }
+
+}

+ 14 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentTotalSearch.java

@@ -0,0 +1,14 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import com.yonge.cooleshow.common.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022-04-11 17:10:23
+ */
+@ApiModel(value = "StudentTotalSearch对象", description = "学生统计总表查询对象")
+public class StudentTotalSearch extends QueryInfo{
+	private static final long serialVersionUID = 1L;
+
+}

+ 43 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherStyleSearch.java

@@ -0,0 +1,43 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import com.yonge.cooleshow.common.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022/4/11 15:12
+ */
+@ApiModel(value = "TeacherStyleSearch", description = "老师风采查询")
+public class TeacherStyleSearch extends QueryInfo{
+    @ApiModelProperty(value = "老师名称")
+    private String username;
+    @ApiModelProperty("声部id(支持多个,用逗号分隔) ")
+    private String subjectId;
+
+    private Long studentId;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Long getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Long studentId) {
+        this.studentId = studentId;
+    }
+}

+ 14 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherTotalSearch.java

@@ -0,0 +1,14 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import com.yonge.cooleshow.common.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * @Author: liweifan
+ * @Data: 2022-04-11 16:30:25
+ */
+@ApiModel(value = "TeacherTotalSearch对象", description = "教师统计总表查询对象")
+public class TeacherTotalSearch extends QueryInfo{
+	private static final long serialVersionUID = 1L;
+
+}

+ 100 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TeacherTotal.java

@@ -0,0 +1,100 @@
+package com.yonge.cooleshow.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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("teacher_total")
+@ApiModel(value = "TeacherTotal对象", description = "教师统计总表")
+public class TeacherTotal implements Serializable {
+	private static final long serialVersionUID = 1L;
+    @ApiModelProperty("对应user表用户编号 ")
+    @TableId(value = "user_id_")
+    private Long userId;
+    @ApiModelProperty("星级 ")
+	@TableField(value = "star_grade_")
+    private Double starGrade;
+    @ApiModelProperty("粉丝数 ")
+	@TableField(value = "fans_num_")
+    private Integer fansNum;
+    @ApiModelProperty("已上课时 ")
+	@TableField(value = "exp_time_")
+    private Integer expTime;
+    @ApiModelProperty("未上课时 ")
+	@TableField(value = "un_exp_time_")
+    private Integer unExpTime;
+    @ApiModelProperty("是否在直播 ")
+	@TableField(value = "live_flag_")
+    private String liveFlag;
+	@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 getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+    
+	public Double getStarGrade() {
+        return starGrade;
+    }
+
+    public void setStarGrade(Double starGrade) {
+        this.starGrade = starGrade;
+    }
+    
+	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 String getLiveFlag() {
+        return liveFlag;
+    }
+
+    public void setLiveFlag(String liveFlag) {
+        this.liveFlag = liveFlag;
+    }
+    
+	public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+    
+}

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/CacheNameEnum.java

@@ -13,8 +13,8 @@ import java.time.Duration;
  * @Data: 2022/3/28 16:24
  */
 public enum CacheNameEnum implements BaseEnum<String, CacheNameEnum> {
-    TEACHER_HOME_TOTAL("老师首页统计缓存"),
-    STUDENT_HOME_TOTAL("学生首页统计缓存"),
+    TEACHER_TOTAL("老师统计缓存"),
+    STUDENT_TOTAL("学生统计缓存"),
 
     LOCK_EXECUTE_ORDER("用户下单锁"),
     LOCK_PAY_ORDER("用户付款锁"),

+ 1 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentService.java

@@ -31,13 +31,7 @@ public interface StudentService extends IService<Student>  {
  	 * @date 2022-03-23
      */
     IPage<StudentVo> selectPage(IPage<StudentVo> page, StudentSearch studentSearch);
-    /***
-     * 查询所有学生首页统计数据
-     * @author liweifan
-     * @updateTime 2022/3/29 10:53
-     * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.StudentTotalVo>
-     */
-    List<StudentTotalVo> queryStudentHomeTotal();
+
     /***
      * 查询学生端首页用户信息
      * @author liweifan

+ 1 - 15
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherService.java

@@ -71,21 +71,7 @@ public interface TeacherService extends IService<Teacher>  {
     */
     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> queryTeacherHomeTotal();
-    /***
-     * 通过redis key查询
-     * @author liweifan
-     * @param: key
-     * @updateTime 2022/3/29 10:41
-     * @return: java.lang.Object
-     */
-    Object getRedisValueByKey(String key);
+
 
     /***
      * 设置声部

+ 12 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherStyleVideoService.java

@@ -2,7 +2,9 @@ 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.dto.search.TeacherStyleSearch;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -14,7 +16,7 @@ import java.util.List;
  */
 public interface TeacherStyleVideoService extends IService<TeacherStyleVideo>  {
     /***
-     *
+     * 查询用户的风采视频
      * @author liweifan
      * @param: userId
      * @updateTime 2022/3/24 14:34
@@ -38,4 +40,13 @@ public interface TeacherStyleVideoService extends IService<TeacherStyleVideo>  {
      * @return: java.lang.Integer
      */
     boolean batchAddStyleVideo(List<TeacherStyleVideo> createList);
+    /***
+     * 老师风采分页查询-学生端
+     * @author liweifan
+     * @param: page
+     * @param: query
+     * @updateTime 2022/4/11 15:21
+     * @return: com.baomidou.mybatisplus.core.metadata.IPage<com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo>
+     */
+    IPage<TeacherStyleVideoVo> stylePage(IPage<TeacherStyleVideoVo> page, TeacherStyleSearch query);
 }

+ 48 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TeacherTotalService.java

@@ -0,0 +1,48 @@
+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.vo.TeacherTotalVo;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherTotalSearch;
+import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
+
+import java.util.List;
+
+/**
+ * 教师统计总表 服务类
+ * @author liweifan
+ * @date 2022-04-11
+ */
+public interface TeacherTotalService extends IService<TeacherTotal>  {
+
+	/**
+     * 查询详情
+     * @author liweifan
+ 	 * @date 2022-04-11
+     */
+	TeacherTotalVo detail(Long id);
+
+    /**
+     * 分页查询
+     * @author liweifan
+ 	 * @date 2022-04-11
+     */
+    IPage<TeacherTotalVo> selectPage(IPage<TeacherTotalVo> page, TeacherTotalSearch query);
+
+	/***
+	 * 查询所有老师统计数据
+	 * @author liweifan
+	 * @updateTime 2022/3/28 10:12
+	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo>
+	 */
+	List<TeacherTotal> queryTeacherTotal();
+
+	/***
+	 * 通过redis key查询
+	 * @author liweifan
+	 * @param: key
+	 * @updateTime 2022/3/29 10:41
+	 * @return: java.lang.Object
+	 */
+	Object getRedisValueByKey(String key);
+}

+ 1 - 48
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java

@@ -4,16 +4,13 @@ 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.entity.SysUser;
-import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.dao.StudentStarDao;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.enums.CacheNameEnum;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.vo.*;
-import com.yonge.cooleshow.common.enums.UserGenderEnum;
 import com.yonge.toolset.utils.date.DateUtil;
-import com.yonge.toolset.utils.string.StringUtil;
 import org.apache.commons.beanutils.BeanUtils;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,12 +28,6 @@ import java.util.stream.Collectors;
 @Service
 public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> implements StudentService {
     @Autowired
-    private StudentStarDao studentStarDao;
-    @Autowired
-    private CourseScheduleDao courseScheduleDao;
-    @Autowired
-    private SysConfigService sysConfigService;
-    @Autowired
     private RedissonClient redissonClient;
 
     @Override
@@ -50,44 +41,6 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     }
 
     @Override
-    public List<StudentTotalVo> queryStudentHomeTotal() {
-        List<Student> students = baseMapper.selectList(Wrappers.<Student>emptyWrapper()
-                .select("userId"));
-        //查询关注老师数
-        List<StudentTotalVo> studentStarTotal = studentStarDao.queryStudentHomeTotal();
-        Map<Long, StudentTotalVo> studentStarMap = new HashMap<>();
-        if (!CollectionUtils.isEmpty(studentStarTotal)) {
-            studentStarMap = studentStarTotal.stream().collect(Collectors.toMap(StudentTotalVo::getUserId, o -> o));
-        }
-
-        //查询已上未上课时数
-        List<StudentTotalVo> studentCourseTotal = courseScheduleDao.queryStudentHomeTotal();
-        Map<Long, StudentTotalVo> studentCourseMap = new HashMap<>();
-        if (!CollectionUtils.isEmpty(studentCourseTotal)) {
-            studentCourseMap = studentCourseTotal.stream().collect(Collectors.toMap(StudentTotalVo::getUserId, o -> o));
-        }
-        List<StudentTotalVo> resultList = new ArrayList<>();
-        for (Student student : students) {
-            StudentTotalVo totalVo = new StudentTotalVo();
-            totalVo.setUserId(student.getUserId());
-            StudentTotalVo starTotal = studentStarMap.get(student.getUserId());
-            if (null != starTotal) {
-                totalVo.setStarTeacherNum(starTotal.getStarTeacherNum());
-            }
-            StudentTotalVo courseTotal = studentCourseMap.get(student.getUserId());
-            if (null != courseTotal) {
-                totalVo.setFinshClassHours(courseTotal.getFinshClassHours());
-                totalVo.setUnfinshClassHours(courseTotal.getUnfinshClassHours());
-            }
-            //todo 缺少累计练习天数 累计练习时长 累计评测次数
-            resultList.add(totalVo);
-            redissonClient.getBucket(CacheNameEnum.STUDENT_HOME_TOTAL.getRedisKey(totalVo.getUserId()))
-                    .set(totalVo);
-        }
-        return resultList;
-    }
-
-    @Override
     public StudentHomeVo queryUserInfo(SysUser user) {
         Student student = getById(user.getId());
         StudentHomeVo studentHomeVo = new StudentHomeVo();
@@ -102,7 +55,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         studentHomeVo.setUsername(user.getUsername());
         int num = DateUtil.daysBetween(new Date(), student.getMembershipEndTime());
         studentHomeVo.setMembershipDays(num < 0 ? 0 : num);
-        StudentTotalVo totalVo = (StudentTotalVo) redissonClient.getBucket(CacheNameEnum.STUDENT_HOME_TOTAL.getRedisKey(user.getId()))
+        StudentTotalVo totalVo = (StudentTotalVo) redissonClient.getBucket(CacheNameEnum.STUDENT_TOTAL.getRedisKey(user.getId()))
                 .get();
         if (null == totalVo) {
             totalVo = new StudentTotalVo();

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

@@ -1,16 +1,13 @@
 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.common.constant.SysConfigConstant;
-import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.dao.EmployeeDao;
-import com.yonge.cooleshow.biz.dal.dao.StudentStarDao;
 import com.yonge.cooleshow.biz.dal.dto.TeacherDto;
 import com.yonge.cooleshow.biz.dal.dto.req.TeacherSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
@@ -36,7 +33,6 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -54,10 +50,6 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     @Autowired
     private EmployeeDao employeeDao;
     @Autowired
-    private StudentStarDao studentStarDao;
-    @Autowired
-    private CourseScheduleDao courseScheduleDao;
-    @Autowired
     private RedissonClient redissonClient;
     @Autowired
     private SysConfigService sysConfigService;
@@ -128,7 +120,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             teacherHomeVo.setMusicianAuthStatus(musicianRecord.getTeacherAuthStatus());
         }
 
-        TeacherTotalVo totalVo = (TeacherTotalVo) redissonClient.getBucket(CacheNameEnum.TEACHER_HOME_TOTAL.getRedisKey(user.getId())).get();
+        TeacherTotalVo totalVo = (TeacherTotalVo) redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(user.getId())).get();
         if (null == totalVo) {
             totalVo = new TeacherTotalVo();
         }
@@ -141,7 +133,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
     @Override
     public HttpResponseResult<Boolean> openLive(Long id) {
-        TeacherTotalVo totalVo = (TeacherTotalVo) redissonClient.getBucket(CacheNameEnum.TEACHER_HOME_TOTAL.getRedisKey(id)).get();
+        TeacherTotalVo totalVo = (TeacherTotalVo) redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(id)).get();
         if (null == totalVo) {
             return HttpResponseResult.succeed(false);
         }
@@ -166,52 +158,6 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         return baseMapper.querySubject(userId);
     }
 
-    @Override
-    public List<TeacherTotalVo> queryTeacherHomeTotal() {
-        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);
-            redissonClient.getBucket(CacheNameEnum.TEACHER_HOME_TOTAL.getRedisKey(totalVo.getUserId()))
-                    .set(totalVo);
-        }
-        return resultList;
-    }
-
-    @Override
-    public Object getRedisValueByKey(String key) {
-        return redissonClient.getBucket(key).get();
-    }
-
     private HttpResponseResult<Boolean> doCreate(TeacherSubmitReq teacherSubmitReq) throws BizException {
         //判断手机号
         SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());

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

@@ -2,6 +2,8 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleSearch;
+import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
 import org.springframework.stereotype.Service;
 import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
 import com.yonge.cooleshow.biz.dal.dao.TeacherStyleVideoDao;
@@ -27,4 +29,9 @@ public class TeacherStyleVideoServiceImpl extends ServiceImpl<TeacherStyleVideoD
     public boolean batchAddStyleVideo(List<TeacherStyleVideo> createList) {
         return saveBatch(createList);
     }
+
+    @Override
+    public IPage<TeacherStyleVideoVo> stylePage(IPage<TeacherStyleVideoVo> page, TeacherStyleSearch query) {
+        return page.setRecords(baseMapper.stylePage(page, query));
+    }
 }

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

@@ -0,0 +1,104 @@
+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.biz.dal.dao.CourseScheduleDao;
+import com.yonge.cooleshow.biz.dal.dao.StudentStarDao;
+import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
+import com.yonge.cooleshow.biz.dal.enums.CacheNameEnum;
+import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
+import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherTotalSearch;
+import com.yonge.cooleshow.biz.dal.dao.TeacherTotalDao;
+import com.yonge.cooleshow.biz.dal.service.TeacherTotalService;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+@Service
+public class TeacherTotalServiceImpl extends ServiceImpl<TeacherTotalDao, TeacherTotal> implements TeacherTotalService {
+    private final static Logger log = LoggerFactory.getLogger(TeacherTotalServiceImpl.class);
+    @Autowired
+    private TeacherDao teacherDao;
+    @Autowired
+    private StudentStarDao studentStarDao;
+    @Autowired
+    private CourseScheduleDao courseScheduleDao;
+    @Autowired
+    private RedissonClient redissonClient;
+
+	@Override
+    public TeacherTotalVo detail(Long id) {
+        return baseMapper.detail(id);
+    }
+    
+     @Override
+    public IPage<TeacherTotalVo> selectPage(IPage<TeacherTotalVo> page, TeacherTotalSearch query){
+        return page.setRecords(baseMapper.selectPage(page, query));
+    }
+
+    @Override
+    public List<TeacherTotal> queryTeacherTotal() {
+        List<Teacher> teachers = teacherDao.selectList(Wrappers.<Teacher>emptyWrapper()
+                .select("userId"));
+        //查询粉丝数
+        List<TeacherTotalVo> teacherStarTotal = studentStarDao.queryTeacherTotal();
+        Map<Long, TeacherTotalVo> teacherStarMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(teacherStarTotal)) {
+            teacherStarMap = teacherStarTotal.stream().collect(Collectors.toMap(TeacherTotalVo::getUserId, o -> o));
+        }
+        //查询已上未上课时数
+        List<TeacherTotalVo> teacherCourseTotal = courseScheduleDao.queryTeacherTotal();
+        Map<Long, TeacherTotalVo> teacherCourseMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(teacherCourseTotal)) {
+            teacherCourseMap = teacherCourseTotal.stream().collect(Collectors.toMap(TeacherTotalVo::getUserId, o -> o));
+        }
+        List<TeacherTotal> resultList = new ArrayList<>();
+        for (Teacher teacher : teachers) {
+            TeacherTotal teacherTotal = new TeacherTotal();
+            teacherTotal.setUserId(teacher.getUserId());
+            //粉丝数
+            TeacherTotalVo fansTotal = teacherStarMap.get(teacher.getUserId());
+            if (null != fansTotal) {
+                teacherTotal.setFansNum(fansTotal.getFansNum());
+            }
+
+            TeacherTotalVo courseTotal = teacherCourseMap.get(teacher.getUserId());
+            if (null != courseTotal) {
+                //课时数
+                teacherTotal.setExpTime(courseTotal.getExpTime());
+                teacherTotal.setUnExpTime(courseTotal.getUnExpTime());
+                //星级
+                Double starGrade = courseTotal.getStarGrade();
+                if (null != starGrade) {
+                    Long round = Math.round(starGrade);
+                    teacherTotal.setStarGrade(round.doubleValue());
+                }
+            }
+            resultList.add(teacherTotal);
+            redissonClient.getBucket(CacheNameEnum.TEACHER_TOTAL.getRedisKey(teacherTotal.getUserId()))
+                    .set(teacherTotal);
+        }
+        //统计信息入库
+        //批量入库
+        saveOrUpdateBatch(resultList);
+        return resultList;
+    }
+
+    @Override
+    public Object getRedisValueByKey(String key) {
+        return redissonClient.getBucket(key).get();
+    }
+}

+ 17 - 77
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentTotalVo.java

@@ -1,84 +1,24 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
+import org.apache.commons.beanutils.BeanUtils;
 
 /**
  * @Author: liweifan
- * @Data: 2022/3/21 18:37
+ * @Data: 2022-04-11 17:10:23
  */
-@ApiModel(value = "StudentTotalVo对象", description = "学生统计信息返回")
-public class StudentTotalVo implements Serializable {
-    @ApiModelProperty("对应user表用户编号")
-    private Long userId;
-    @ApiModelProperty("累计练习天数")
-    private Integer exerciseDays;
-    @ApiModelProperty("累计练习时长")
-    private Double exerciseHours;
-    @ApiModelProperty("累计评测次数")
-    private Integer testingNum;
-    @ApiModelProperty("已完成课时数")
-    private Integer finshClassHours;
-    @ApiModelProperty("剩余课时数")
-    private Integer unfinshClassHours;
-    @ApiModelProperty("关注老师数")
-    private Integer starTeacherNum;
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public Integer getExerciseDays() {
-        return exerciseDays;
-    }
-
-    public void setExerciseDays(Integer exerciseDays) {
-        this.exerciseDays = exerciseDays;
-    }
-
-    public Double getExerciseHours() {
-        return exerciseHours;
-    }
-
-    public void setExerciseHours(Double exerciseHours) {
-        this.exerciseHours = exerciseHours;
-    }
-
-    public Integer getTestingNum() {
-        return testingNum;
-    }
-
-    public void setTestingNum(Integer testingNum) {
-        this.testingNum = testingNum;
-    }
-
-    public Integer getFinshClassHours() {
-        return finshClassHours;
-    }
-
-    public void setFinshClassHours(Integer finshClassHours) {
-        this.finshClassHours = finshClassHours;
-    }
-
-    public Integer getUnfinshClassHours() {
-        return unfinshClassHours;
-    }
-
-    public void setUnfinshClassHours(Integer unfinshClassHours) {
-        this.unfinshClassHours = unfinshClassHours;
-    }
-
-    public Integer getStarTeacherNum() {
-        return starTeacherNum;
-    }
-
-    public void setStarTeacherNum(Integer starTeacherNum) {
-        this.starTeacherNum = starTeacherNum;
-    }
-}
+@ApiModel(value = "StudentTotalVo对象", description = "学生统计总表查询视图对象")
+public class StudentTotalVo extends StudentTotal{
+	private static final long serialVersionUID = 1L;
+    
+    public StudentTotalVo buildVo(StudentTotal studentTotal){
+        try {
+            BeanUtils.copyProperties(this,studentTotal);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return this;
+    }
+
+}

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherStyleVideoVo.java

@@ -9,4 +9,5 @@ import io.swagger.annotations.ApiModel;
  */
 @ApiModel(value = "TeacherStyleVideoVo对象", description = "老师风采信息")
 public class TeacherStyleVideoVo extends TeacherStyleVideo {
+
 }

+ 17 - 60
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherTotalVo.java

@@ -1,67 +1,24 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
+import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
+import org.apache.commons.beanutils.BeanUtils;
 
 /**
  * @Author: liweifan
- * @Data: 2022/3/21 18:37
+ * @Data: 2022-04-11 16:30:25
  */
-@ApiModel(value = "TeacherTotalVo对象", description = "老师统计信息返回")
-public class TeacherTotalVo implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @ApiModelProperty("对应user表用户编号")
-    private Long userId;
-    @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 Integer getFansNum() {
-        return null == fansNum ? 0 : fansNum;
-    }
-
-    public void setFansNum(Integer fansNum) {
-        this.fansNum = fansNum;
-    }
-
-    public Integer getExpTime() {
-        return null == expTime ? 0 : expTime;
-    }
-
-    public void setExpTime(Integer expTime) {
-        this.expTime = expTime;
-    }
-
-    public Integer getUnExpTime() {
-        return null == unExpTime ? 0 : unExpTime;
-    }
-
-    public void setUnExpTime(Integer unExpTime) {
-        this.unExpTime = unExpTime;
-    }
-
-    public Double getStarGrade() {
-        return null == starGrade ? 0.0 : starGrade;
-    }
-
-    public void setStarGrade(Double starGrade) {
-        this.starGrade = starGrade;
-    }
-
-}
+@ApiModel(value = "TeacherTotalVo对象", description = "教师统计总表查询视图对象")
+public class TeacherTotalVo extends TeacherTotal{
+	private static final long serialVersionUID = 1L;
+    
+    public TeacherTotalVo buildVo(TeacherTotal teacherTotal){
+        try {
+            BeanUtils.copyProperties(this,teacherTotal);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return this;
+    }
+
+}

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

@@ -39,7 +39,7 @@
         </foreach>
     </insert>
 
-    <select id="queryTeacherHomeTotal" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo">
+    <select id="queryTeacherTotal" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo">
         select a.*,b.starGrade from (
             <!-- 统计查询已上课时数,未上课时数 -->
             select
@@ -61,7 +61,7 @@
             group by a.teacher_id_
         ) b on a.userId = b.userId
     </select>
-    <select id="queryStudentHomeTotal" resultType="com.yonge.cooleshow.biz.dal.vo.StudentTotalVo">
+    <select id="queryStudentTotal" resultType="com.yonge.cooleshow.biz.dal.vo.StudentTotalVo">
         select
             b.user_id_ as userId,
             sum(if(a.end_time_ &lt;= now(),1,0)) as finshClassHours,

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

@@ -14,14 +14,14 @@
         , t.create_time_ as "createTime"
         </sql>
 
-	<select id="queryTeacherHomeTotal" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo">
+	<select id="queryTeacherTotal" 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>
-    <select id="queryStudentHomeTotal" resultType="com.yonge.cooleshow.biz.dal.vo.StudentTotalVo">
+    <select id="queryStudentTotal" resultType="com.yonge.cooleshow.biz.dal.vo.StudentTotalVo">
 		select
 			student_id_ as userId,
 			count(1) as starTeacherNum

+ 30 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherStyleVideoMapper.xml

@@ -41,4 +41,34 @@
 		</if>
 	</delete>
 
+	<select id="stylePage" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo">
+		SELECT
+			<include refid="baseColumns"/>
+		FROM teacher_style_video t
+		left join (
+			select t1.teacher_id_,count(1) as star_num_
+			from student_star t1
+			<if test="(param.username != null and param.username != '') or (param.subjectId != null and param.subjectId != '')">
+				join teacher t2 on t1.teacher_id_ = t2.user_id_
+				<where>
+					<if test="param.username != null and param.username != ''">
+						t2.
+					</if>
+				</where>
+			</if>
+			group by t1.teacher_id_
+		) a on t.user_id_ = a.teacher_id_
+		left join (
+			select teacher_id_,count(1) as course_num_  from course_schedule
+			where status_ = 'COMPLETE' and type_ = 'PRACTICE'
+			group by teacher_id_
+		) b on t.user_id_ = b.teacher_id_
+		left join (
+			select
+				speaker_id_ as teacher_id_,count(1) as is_live_
+			from  live_room where live_state_ = 1 and room_state_ = 0 and type_ = 'temp'
+			group by speaker_id_
+		)  r on t.user_id_ = r.speaker_id_
+		WHERE t.user_id_ = #{userId}
+	</select>
 </mapper>

+ 37 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherTotalMapper.xml

@@ -0,0 +1,37 @@
+<?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.TeacherTotalDao">
+	<resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.TeacherTotal">
+            <result column="user_id_" property="userId" />
+	        <result column="star_grade_" property="starGrade" />
+	        <result column="fans_num_" property="fansNum" />
+	        <result column="exp_time_" property="expTime" />
+	        <result column="un_exp_time_" property="unExpTime" />
+	        <result column="live_flag_" property="liveFlag" />
+	        <result column="update_time_" property="updateTime" />
+		</resultMap>  
+    
+    <!-- 表字段 -->
+    <sql id="baseColumns">
+         t.user_id_ as userId
+        , t.star_grade_ as starGrade
+        , t.fans_num_ as fansNum
+        , t.exp_time_ as expTime
+        , t.un_exp_time_ as unExpTime
+        , t.live_flag_ as liveFlag
+        , t.update_time_ as updateTime
+        </sql> 
+    
+    <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo">
+        SELECT
+            <include refid="baseColumns"/>
+        FROM teacher_total t
+        where t.user_id_ = #{id}
+    </select>
+    
+    <select id="selectPage" resultMap="BaseResultMap">
+		SELECT         
+        	<include refid="baseColumns" />
+		FROM teacher_total t
+	</select>
+</mapper>

+ 2 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/config/ResourceServerConfig.java

@@ -25,7 +25,8 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
     @Override
     public void configure(HttpSecurity http) throws Exception {
         http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
-                .authorizeRequests().antMatchers("/wechat/*","/v2/api-docs", "/code/*").permitAll().anyRequest().authenticated().and().httpBasic();
+                .authorizeRequests().antMatchers("/task/**").hasIpAddress("0.0.0.0/0")
+                .antMatchers("/wechat/*","/v2/api-docs", "/code/*").permitAll().anyRequest().authenticated().and().httpBasic();
     }
 
     @Override

+ 12 - 4
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/TeacherController.java

@@ -1,11 +1,17 @@
 package com.yonge.cooleshow.student.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherStyleSearch;
 import com.yonge.cooleshow.biz.dal.service.TeacherStyleVideoService;
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
+import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherStyleVideoVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,13 +28,15 @@ public class TeacherController extends BaseController {
     private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "老师风采")
-    @GetMapping("/stylePage")
-    public HttpResponseResult<TeacherStyleVideoVo> stylePage() {
+    @PostMapping("/stylePage")
+    public HttpResponseResult<PageInfo<TeacherStyleVideoVo>> stylePage(@RequestBody TeacherStyleSearch query) {
         SysUser user = sysUserFeignService.queryUserInfo();
         if (user == null || null == user.getId()) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        //return styleVideoService.stylePage();
-        return null;
+        query.setStudentId(user.getId());
+        IPage<TeacherStyleVideoVo> pages = styleVideoService.stylePage(PageUtil.getPage(query), query);
+        return succeed(PageUtil.pageInfo(pages));
     }
+
 }

+ 6 - 4
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/task/TaskController.java

@@ -1,6 +1,8 @@
 package com.yonge.cooleshow.student.task;
 
+import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
+import com.yonge.cooleshow.biz.dal.service.StudentTotalService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.vo.StudentTotalVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
@@ -21,7 +23,7 @@ import java.util.List;
 @RequestMapping("/task")
 public class TaskController extends BaseController {
     @Autowired
-    private StudentService studentService;
+    private StudentTotalService studentTotalService;
 
     /***
      * 查询所有学生统计数据
@@ -29,8 +31,8 @@ public class TaskController extends BaseController {
      * @updateTime 2022/3/29 11:58
      * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.util.List<com.yonge.cooleshow.biz.dal.vo.StudentTotalVo>>
      */
-    @GetMapping("/queryStudentHomeTotal")
-    public HttpResponseResult<List<StudentTotalVo>> queryStudentHomeTotal() {
-        return succeed(studentService.queryStudentHomeTotal());
+    @GetMapping("/queryStudentTotal")
+    public HttpResponseResult<List<StudentTotalVo>> queryStudentTotal() {
+        return succeed(studentTotalService.queryStudentTotal());
     }
 }

+ 1 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/config/ResourceServerConfig.java

@@ -31,6 +31,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 				.authenticationEntryPoint(baseAuthenticationEntryPoint)
 				.and()
 				.authorizeRequests()
+				.antMatchers("/task/**").hasIpAddress("0.0.0.0/0")
 				.antMatchers("/v2/api-docs", "/code/*",
                         "/liveRoom/test","/liveRoom/syncUserStatus")
                 .permitAll().anyRequest().authenticated().and().httpBasic();

+ 7 - 6
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/task/TaskController.java

@@ -1,6 +1,8 @@
 package com.yonge.cooleshow.teacher.task;
 
+import com.yonge.cooleshow.biz.dal.entity.TeacherTotal;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.biz.dal.service.TeacherTotalService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -15,12 +17,11 @@ import java.util.List;
  * @Author: liweifan
  * @Data: 2022/3/28 15:50
  */
-
 @RestController
 @RequestMapping("/task")
 public class TaskController extends BaseController {
     @Autowired
-    private TeacherService teacherService;
+    private TeacherTotalService teacherTotalService;
 
     /***
      * 查询所有老师统计数据
@@ -28,13 +29,13 @@ public class TaskController extends BaseController {
      * @updateTime 2022/3/28 10:12
      * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.util.List < com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo>>
      */
-    @GetMapping("/queryTeacherHomeTotal")
-    public HttpResponseResult<List<TeacherTotalVo>> queryTeacherHomeTotal() {
-        return succeed(teacherService.queryTeacherHomeTotal());
+    @GetMapping("/queryTeacherTotal")
+    public HttpResponseResult<List<TeacherTotal>> queryTeacherTotal() {
+        return succeed(teacherTotalService.queryTeacherTotal());
     }
 
     @GetMapping("/getRedisValueByKey")
     public HttpResponseResult<Object> getRedisValueByKey(String key) {
-        return succeed(teacherService.getRedisValueByKey(key));
+        return succeed(teacherTotalService.getRedisValueByKey(key));
     }
 }