实现课程详情接口

1、通过编写sql语句,查询课程信息

java 复制代码
SELECT * FROM edu_course ec 
LEFT JOIN edu_course_description ecd ON ec.id = ecd.id 
LEFT JOIN edu_teacher et ON ec.teacher_id = et.id
WHERE ec.id =18;

2、编写接口信息

(1)创建展示vo类 在com/atguigu/eduservice/entity/vo中添加CourseWebVo类。

java 复制代码
@Data
public class CourseWebVo {
    private String id;

    @ApiModelProperty(value = "课程标题")
    private String title;

    @ApiModelProperty(value = "课程销售价格,设置为0则可免费观看")
    private BigDecimal price;

    @ApiModelProperty(value = "总课时")
    private Integer lessonNum;

    @ApiModelProperty(value = "课程封面图片路径")
    private String cover;

    @ApiModelProperty(value = "销售数量")
    private Long buyCount;

    @ApiModelProperty(value = "浏览数量")
    private Long viewCount;

    @ApiModelProperty(value = "课程简介")
    private String description;

    @ApiModelProperty(value = "讲师ID")
    private String teacherId;

    @ApiModelProperty(value = "讲师姓名")
    private String teacherName;

    @ApiModelProperty(value = "讲师资历,一句话说明讲师")
    private String intro;

    @ApiModelProperty(value = "讲师头像")
    private String avatar;

    @ApiModelProperty(value = "课程类别ID")
    private String subjectLevelOneId;

    @ApiModelProperty(value = "类别名称")
    private String subjectLevelOne;

    @ApiModelProperty(value = "课程类别ID")
    private String subjectLevelTwoId;

    @ApiModelProperty(value = "类别名称")
    private String subjectLevelTwo;
}

(2)实现Controller

在com/atguigu/eduservice/api目录下的CourseApiController添加根据id查询课程详情方法。

java 复制代码
@ApiOperation(value = "根据id查询课程详情")
@GetMapping("getCourseInfo/{id}")
public R getCourseInfo(@PathVariable String id){
    //1查询课程详情信息
    CourseWebVo courseWebVo = courseService.getCourseWebVo(id);
    //2查询课程相关大纲数据
    List<ChapterVo> chapterVideoList = chapterService.getChapterVideoById(id);
    return R.ok().data("courseWebVo",courseWebVo).data("chapterVideoList",chapterVideoList);
}

(3)在EduCourseService中添加接口

java 复制代码
CourseWebVo getCourseWebVo(String id);

(4)在EduCourseServiceImpl中实现接口的方法

java 复制代码
//根据id查询课程详情(前台)
@Override
public CourseWebVo getCourseWebVo(String id) {
    CourseWebVo courseWebVo = baseMapper.getFrontCourseInfo(id);
    return courseWebVo;
}

(5)编写mapper接口 在com/atguigu/eduservice/mapper目录下EduCourseMapper中编写mapper接口。

java 复制代码
CourseWebVo getFrontCourseInfo(String id);

(6)实现mapper接口方法 在com/atguigu/eduservice/mapper/xml目录下实现mapper接口方法。

java 复制代码
<select id="getFrontCourseInfo" resultType="com.atguigu.eduservice.entity.vo.CourseWebVo">
SELECT ec.id,ec.title,ec.price,ec.cover,ec.lesson_num AS lessonNum,
ec.buy_count AS buyCount,ec.view_count AS viewCount,
ecd.description,et.id AS teacherId,et.name AS teacherName,
et.intro,et.avatar
FROM edu_course ec 
LEFT JOIN edu_course_description ecd ON ec.id = ecd.id 
LEFT JOIN edu_teacher et ON ec.teacher_id = et.id
WHERE ec.id =#{id}
    </select>
相关推荐
小程故事多_8019 分钟前
RAG,基于字号频率的内容切分算法,非常强
人工智能·算法·aigc
ADDDDDD_Trouvaille22 分钟前
2026.2.15——OJ83-85题
c++·算法
烟花落o26 分钟前
算法的时间复杂度和空间复杂度
开发语言·数据结构·笔记·算法
Ronaldinho Gaúch1 小时前
算法题中的日期问题
开发语言·c++·算法
Chary20161 小时前
Opencascade VTK 集成服务 VIS
算法
callJJ1 小时前
Spring Bean 生命周期详解——从出生到销毁,结合源码全程追踪
java·后端·spring·bean·八股文
怒放吧德德1 小时前
AsyncTool + SpringBoot:轻量级异步编排最佳实践
java·后端
毅炼1 小时前
Java 集合常见问题总结(1)
java·后端
小冷coding2 小时前
【面试】面试技巧,自我介绍,技术面试题宝典归纳总结
面试·职场和发展
楠秋9202 小时前
代码随想录算法训练营第三十一天|56. 合并区间 、 738.单调递增的数字、968.监控二叉树
数据结构·算法·leetcode·贪心算法