cy 3 gadi atpakaļ
vecāks
revīzija
43c542f4a6

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

@@ -134,8 +134,11 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
     //学生端-首页-最近一堂课
     StudentHomePage.RecentCourses selectRecentCourses(Long studentId);
 
-    //老师端-首页-最近一堂课
-    StudentHomePage.RecentCourses selectRecentCoursesTeacher(Long teacherId);
+    //老师端-首页-最近一堂课(陪练课)
+    StudentHomePage.RecentCourses selectRecentCoursesPractice(Long teacherId);
+
+    //老师端-首页-最近一堂课(直播课)
+    StudentHomePage.RecentCourses selectRecentCoursesLive(Long teacherId);
 
     /**
      * 本周剩余的课时

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/TeacherFreeTimeDao.java

@@ -58,5 +58,8 @@ public interface TeacherFreeTimeDao extends BaseMapper<TeacherFreeTime> {
 
     //查询老师所有声部配置
     List<TeacherSubjectPrice> selectPriceByTeacherId(Long teacherId);
+
+    //查询过审老师配置默认
+    List<TeacherFreeTime> getTeacherFreeTime();
 }
 

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

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,10 +12,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Lists;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
-import com.yonge.cooleshow.biz.dal.dao.CourseScheduleRepliedDao;
-import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.yonge.cooleshow.biz.dal.dao.TeacherFreeTimeDao;
+import com.yonge.cooleshow.biz.dal.dao.*;
 import com.yonge.cooleshow.biz.dal.dto.PracticeScheduleDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
@@ -89,6 +87,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
     private TeacherFreeTimeDao teacherFreeTimeDao;
     @Autowired
     private SysMessageService sysMessageService;
+    @Autowired
+    private HolidaysFestivalsDao holidaysFestivalsDao;
 
     @Override
     public CourseScheduleDao getDao() {
@@ -970,9 +970,12 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             throw new BizException("订单不存在!");
         }
 
-        //course_schedule中lock_改为0
+        //lock_改为0,课程&组状态改为ING
         List<Long> scheduleIds = paymentList.stream().map(CourseScheduleStudentPayment::getCourseId).collect(Collectors.toList());
         baseMapper.updateLock(scheduleIds);
+        UpdateWrapper<CourseGroup> warp = new UpdateWrapper<>();
+        warp.set("status_","ING").eq("id_",paymentList.get(0).getCourseGroupId());
+        courseGroupService.update(warp);
 
         //查询陪练课服务费
         String practiceServiceRateStr = sysConfigService.findConfigValue(SysConfigConstant.PRACTICE_SERVICE_FEE);
@@ -1113,7 +1116,17 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             homePage.setRecentCourses(baseMapper.selectRecentCourses(studentId));
         }
         if (studentId == null) {
-            homePage.setRecentCourses(baseMapper.selectRecentCoursesTeacher(teacherId));
+            StudentHomePage.RecentCourses coursesPractice = baseMapper.selectRecentCoursesPractice(teacherId);
+            StudentHomePage.RecentCourses coursesLive = baseMapper.selectRecentCoursesLive(teacherId);
+
+            Date practiceTime = coursesPractice.getCourseStartTime();
+            Date liveTime = coursesLive.getCourseStartTime();
+
+            if (practiceTime.compareTo(liveTime)==-1){
+                homePage.setRecentCourses(coursesPractice);
+            } else {
+                homePage.setRecentCourses(coursesLive);
+            }
         }
         return homePage;
     }

+ 26 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/DateVo.java

@@ -0,0 +1,26 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+public class DateVo implements Serializable {
+    private String startTime;
+    private String endTime;
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+}

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

@@ -553,7 +553,7 @@
         ORDER BY ABS(NOW() - s.start_time_) ASC
         limit 1
     </select>
-    <select id="selectRecentCoursesTeacher" resultType="com.yonge.cooleshow.biz.dal.vo.StudentHomePage$RecentCourses">
+    <select id="selectRecentCoursesPractice" resultType="com.yonge.cooleshow.biz.dal.vo.StudentHomePage$RecentCourses">
         SELECT
             u.id_ AS teacherId,
             u.username_ AS teacherName,
@@ -569,6 +569,30 @@
         LEFT JOIN sys_user u ON s.teacher_id_=u.id_
         LEFT JOIN course_group g ON s.course_group_id_=g.id_
         WHERE s.teacher_id_=#{teacherId}
+        AND s.type_='PRACTICE'
+        AND s.status_ IN ('NOT_START','ING')
+        ORDER BY ABS(NOW() - s.start_time_) ASC
+        limit 1
+    </select>
+    <select id="selectRecentCoursesLive" resultType="com.yonge.cooleshow.biz.dal.vo.StudentHomePage$RecentCourses"
+            parameterType="java.lang.Long">
+        SELECT
+            u.id_ AS teacherId,
+            u.username_ AS teacherName,
+            u.real_name_ AS realName,
+            u.avatar_ AS avatar,
+            s.course_group_id_ AS courseGroupId,
+            s.id_ AS courseId,
+            g.name_ AS courseGroupName,
+            s.type_ AS courseType,
+            s.status_ AS `status`,
+            s.start_time_ AS courseStartTime
+        FROM course_schedule s
+        LEFT JOIN sys_user u ON s.teacher_id_=u.id_
+        LEFT JOIN course_group g ON s.course_group_id_=g.id_
+        WHERE s.teacher_id_=#{teacherId}
+        AND s.type_='LIVE'
+        AND g.status_='ING'
         AND s.status_ IN ('NOT_START','ING')
         ORDER BY ABS(NOW() - s.start_time_) ASC
         limit 1

+ 4 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherFreeTimeMapper.xml

@@ -110,4 +110,8 @@
                  LEFT JOIN teacher_subject_price p ON f.id_=p.teacher_free_time_id
         WHERE f.teacher_id_=#{teacherId} AND f.default_flag_=1
     </select>
+    <select id="getTeacherFreeTime" resultType="com.yonge.cooleshow.biz.dal.entity.TeacherFreeTime">
+        SELECT * FROM teacher_free_time WHERE default_flag_=1
+        AND teacher_id_ IN(SELECT user_id_ FROM teacher_auth_entry_record WHERE teacher_auth_status_='PASS' GROUP BY user_id_)
+    </select>
 </mapper>