Browse Source

学生端首页直播&视频合并

cy 3 years ago
parent
commit
c284b88cc8

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

@@ -120,5 +120,11 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     //根据课程id修改时间
     void courseAdjust(CourseAdjustVo adjustVo);
+
+    //学生端-首页-直播课
+    List<StudentHomePage.Live> selectLive();
+
+    //学生端-首页-视频课
+    List<StudentHomePage.Video> selectVideo();
 }
 

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

@@ -180,8 +180,10 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
 
     void buyPracticeCourseSuccess(UserOrderDetailVo orderParam);
 
-    void buyPracticeCourseFailed(String orderNo);
+    void buyPracticeCourseFailed(UserOrderDetailVo orderParam);
 
     void courseAdjust(CourseAdjustVo adjustVo);
+
+    StudentHomePage queryLiveAndVideo();
 }
 

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

@@ -893,7 +893,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      * 学生购买陪练课-失败-回调
      */
     @Transactional(rollbackFor = Exception.class)
-    public void buyPracticeCourseFailed(String orderNo) {
+    public void buyPracticeCourseFailed(UserOrderDetailVo orderParam) {
+        String orderNo = orderParam.getOrderNo();
         List<CourseScheduleStudentPayment> paymentList = paymentDao.selectList(Wrappers.<CourseScheduleStudentPayment>lambdaQuery()
                 .eq(CourseScheduleStudentPayment::getOrderNo, orderNo));
         if (paymentList.isEmpty()) {
@@ -924,5 +925,17 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         baseMapper.courseAdjust(adjustVo);
     }
 
+    /**
+     * @Description: 学生-首页-直播课&视频课
+     * @Author: cy
+     * @Date: 2022/4/22
+     */
+    @Override
+    public StudentHomePage queryLiveAndVideo() {
+        StudentHomePage homePage = new StudentHomePage();
+        homePage.setLiveList(baseMapper.selectLive());
+        homePage.setVideoList(baseMapper.selectVideo());
+        return homePage;
+    }
 }
 

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

@@ -9,7 +9,6 @@ import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
-import com.yonge.cooleshow.biz.dal.entity.UserOrderDetail;
 import com.yonge.cooleshow.biz.dal.entity.UserOrder;
 import com.yonge.cooleshow.biz.dal.entity.UserOrderPayment;
 import com.yonge.cooleshow.biz.dal.sdk.PaymentSdk;
@@ -30,7 +29,6 @@ import org.springframework.stereotype.Service;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
 import com.yonge.cooleshow.biz.dal.dao.UserOrderDao;
 import org.springframework.transaction.annotation.Transactional;
-import springfox.documentation.spring.web.json.Json;
 
 import javax.annotation.PostConstruct;
 import java.math.BigDecimal;
@@ -39,7 +37,6 @@ import java.util.*;
 import java.util.function.Consumer;
 import java.util.function.Function;
 
-
 @Service
 public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> implements UserOrderService {
     private final static Logger log = LoggerFactory.getLogger(UserOrderServiceImpl.class);
@@ -94,7 +91,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         orderSuccess.put(GoodTypeEnum.PRACTICE, scheduleService::buyPracticeCourseSuccess);
 
         /**********订单取消后******************/
-        //orderCancel.put();
+        orderCancel.put(GoodTypeEnum.PRACTICE, scheduleService::buyPracticeCourseFailed);
     }
 
     @Override
@@ -176,7 +173,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         }
 
         //验证成功后,订单入库
-        UserOrderVo orderVo = insertOrder(orderNo,orderReq, resList);
+        UserOrderVo orderVo = insertOrder(orderNo, orderReq, resList);
 
         List<UserOrderDetailVo> orderDetailList = orderVo.getOrderDetailList();
         for (UserOrderDetailVo orderDetailVo : orderDetailList) {
@@ -213,7 +210,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     public HttpResponseResult<OrderPayRes> orderPaytoPaying(OrderPayReq payReq) {
         //查询订单
         UserOrderVo detail = detail(payReq.getOrderNo());
-        if(OrderStatusEnum.PAYING.equals(detail.getStatus())){
+        if (OrderStatusEnum.PAYING.equals(detail.getStatus())) {
             //处于付款中状态,需要拉起付款接口返回信息,并且去到汇付
             return orderPayPaying(payReq, detail);
         }

+ 246 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentHomePage.java

@@ -0,0 +1,246 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/22
+ */
+@ApiModel(value = "StudentHomePage")
+public class StudentHomePage implements Serializable {
+    @ApiModelProperty(value = "直播课")
+    private List<Live> liveList;
+    @ApiModelProperty(value = "视频课")
+    private List<Video> videoList;
+
+    public static class Live {
+        @ApiModelProperty(value = "老师id")
+        private Long teacherId;
+        @ApiModelProperty(value = "老师姓名")
+        private String teacherName;
+        @ApiModelProperty(value = "老师头像")
+        private String avatar;
+
+        @ApiModelProperty(value = "课程组id")
+        private Long courseGroupId;
+        @ApiModelProperty(value = "课程组名称")
+        private String courseGroupName;
+        @ApiModelProperty(value = "课程组售价")
+        private BigDecimal courseGroupPrice;
+        @ApiModelProperty(value = "开课时间")
+        private Date courseStartTime;
+        @ApiModelProperty(value = "直播背景图")
+        private String backgroundPic;
+        @ApiModelProperty(value = "课程数")
+        private Integer courseNum;
+
+        public Long getTeacherId() {
+            return teacherId;
+        }
+
+        public void setTeacherId(Long teacherId) {
+            this.teacherId = teacherId;
+        }
+
+        public String getTeacherName() {
+            return teacherName;
+        }
+
+        public void setTeacherName(String teacherName) {
+            this.teacherName = teacherName;
+        }
+
+        public String getAvatar() {
+            return avatar;
+        }
+
+        public void setAvatar(String avatar) {
+            this.avatar = avatar;
+        }
+
+        public Long getCourseGroupId() {
+            return courseGroupId;
+        }
+
+        public void setCourseGroupId(Long courseGroupId) {
+            this.courseGroupId = courseGroupId;
+        }
+
+        public String getCourseGroupName() {
+            return courseGroupName;
+        }
+
+        public void setCourseGroupName(String courseGroupName) {
+            this.courseGroupName = courseGroupName;
+        }
+
+        public BigDecimal getCourseGroupPrice() {
+            return courseGroupPrice;
+        }
+
+        public void setCourseGroupPrice(BigDecimal courseGroupPrice) {
+            this.courseGroupPrice = courseGroupPrice;
+        }
+
+        public Date getCourseStartTime() {
+            return courseStartTime;
+        }
+
+        public void setCourseStartTime(Date courseStartTime) {
+            this.courseStartTime = courseStartTime;
+        }
+
+        public String getBackgroundPic() {
+            return backgroundPic;
+        }
+
+        public void setBackgroundPic(String backgroundPic) {
+            this.backgroundPic = backgroundPic;
+        }
+
+        public Integer getCourseNum() {
+            return courseNum;
+        }
+
+        public void setCourseNum(Integer courseNum) {
+            this.courseNum = courseNum;
+        }
+    }
+
+    public static class Video {
+        @ApiModelProperty(value = "老师id")
+        private Long teacherId;
+        @ApiModelProperty(value = "老师姓名")
+        private String teacherName;
+        @ApiModelProperty(value = "老师头像")
+        private String avatar;
+
+        @ApiModelProperty(value = "视频课组id")
+        private Long videoGroupId;
+        @ApiModelProperty(value = "视频课组名称")
+        private String videoGroupName;
+        @ApiModelProperty(value = "视频课组售价")
+        private BigDecimal lessonPrice;
+        @ApiModelProperty(value = "创建时间")
+        private Date createTime;
+        @ApiModelProperty(value = "课程封面")
+        private String lessonCoverUrl;
+        @ApiModelProperty(value = "课程数")
+        private Integer lessonCount;
+        @ApiModelProperty(value = "声部id")
+        private Integer subjectId;
+        @ApiModelProperty(value = "声部名称")
+        private String subjectName;
+
+        public Long getTeacherId() {
+            return teacherId;
+        }
+
+        public void setTeacherId(Long teacherId) {
+            this.teacherId = teacherId;
+        }
+
+        public String getTeacherName() {
+            return teacherName;
+        }
+
+        public void setTeacherName(String teacherName) {
+            this.teacherName = teacherName;
+        }
+
+        public String getAvatar() {
+            return avatar;
+        }
+
+        public void setAvatar(String avatar) {
+            this.avatar = avatar;
+        }
+
+        public Long getVideoGroupId() {
+            return videoGroupId;
+        }
+
+        public void setVideoGroupId(Long videoGroupId) {
+            this.videoGroupId = videoGroupId;
+        }
+
+        public String getVideoGroupName() {
+            return videoGroupName;
+        }
+
+        public void setVideoGroupName(String videoGroupName) {
+            this.videoGroupName = videoGroupName;
+        }
+
+        public BigDecimal getLessonPrice() {
+            return lessonPrice;
+        }
+
+        public void setLessonPrice(BigDecimal lessonPrice) {
+            this.lessonPrice = lessonPrice;
+        }
+
+        public Date getCreateTime() {
+            return createTime;
+        }
+
+        public void setCreateTime(Date createTime) {
+            this.createTime = createTime;
+        }
+
+        public String getLessonCoverUrl() {
+            return lessonCoverUrl;
+        }
+
+        public void setLessonCoverUrl(String lessonCoverUrl) {
+            this.lessonCoverUrl = lessonCoverUrl;
+        }
+
+        public Integer getLessonCount() {
+            return lessonCount;
+        }
+
+        public void setLessonCount(Integer lessonCount) {
+            this.lessonCount = lessonCount;
+        }
+
+        public Integer getSubjectId() {
+            return subjectId;
+        }
+
+        public void setSubjectId(Integer subjectId) {
+            this.subjectId = subjectId;
+        }
+
+        public String getSubjectName() {
+            return subjectName;
+        }
+
+        public void setSubjectName(String subjectName) {
+            this.subjectName = subjectName;
+        }
+    }
+
+    public List<Live> getLiveList() {
+        return liveList;
+    }
+
+    public void setLiveList(List<Live> liveList) {
+        this.liveList = liveList;
+    }
+
+    public List<Video> getVideoList() {
+        return videoList;
+    }
+
+    public void setVideoList(List<Video> videoList) {
+        this.videoList = videoList;
+    }
+}
+

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

@@ -454,4 +454,39 @@
         SET class_date_=#{classDate},start_time_=#{startTime},end_time_=#{endTime}
         WHERE id_ = #{courseId}
     </update>
+    <select id="selectLive" resultType="com.yonge.cooleshow.biz.dal.vo.StudentHomePage$Live">
+        SELECT
+            u.id_ AS teacherId,
+            u.username_ AS teacherName,
+            u.avatar_ AS avatar,
+            g.id_ AS courseGroupId,
+            g.name_ AS courseGroupName,
+            g.course_price_ AS courseGroupPrice,
+            g.course_start_time_ AS courseStartTime,
+            g.background_pic_ AS backgroundPic,
+            g.course_num_ AS courseNum
+        FROM course_group g
+        LEFT JOIN sys_user u ON g.teacher_id_=u.id_
+        WHERE type_='LIVE'
+        ORDER BY courseStartTime DESC LIMIT 4
+    </select>
+    <select id="selectVideo" resultType="com.yonge.cooleshow.biz.dal.vo.StudentHomePage$Video">
+        SELECT
+            u.id_ AS teacherId,
+            u.username_ AS teacherName,
+            u.avatar_ AS avatar,
+            g.id_ AS videoGroupId,
+            g.lesson_name_ AS videoGroupName,
+            g.lesson_price_ AS lessonPrice,
+            g.create_time_ AS createTime,
+            g.lesson_cover_url_ AS lessonCoverUrl,
+            g.lesson_count_ AS lessonCount,
+            g.lesson_subject_ AS subjectId,
+            s.name_ AS subjectName
+        FROM video_lesson_group g
+        LEFT JOIN sys_user u ON g.teacher_id_=u.id_
+        LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
+        WHERE g.audit_status_='PASS'
+        ORDER BY g.create_time_ DESC LIMIT 4
+    </select>
 </mapper>

+ 7 - 5
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseScheduleController.java

@@ -13,6 +13,7 @@ import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.CourseStudent;
 import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
 import com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentHomePage;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -23,12 +24,8 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -129,5 +126,10 @@ public class StudentCourseScheduleController extends BaseController {
         return succeed(courseScheduleService.queryStudentLiveCourse(param));
     }
 
+    @ApiOperation("学生-首页-直播课&视频课")
+    @GetMapping("/queryLiveAndVideo")
+    public HttpResponseResult<StudentHomePage> queryLiveAndVideo() {
+        return succeed(courseScheduleService.queryLiveAndVideo());
+    }
 }