xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java
@@ -4,6 +4,7 @@ import com.xinquan.common.core.constant.SecurityConstants; import com.xinquan.common.core.domain.R; import com.xinquan.common.core.utils.page.PageDTO; import com.xinquan.course.domain.Course; import com.xinquan.course.domain.vo.ClientCourseCategoryVO; import com.xinquan.course.domain.vo.ClientCourseVO; import com.xinquan.course.service.CourseCategoryService; @@ -15,6 +16,8 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import java.util.List; import io.swagger.models.auth.In; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -61,6 +64,27 @@ public R<List<ClientCourseCategoryVO>> getCourseCategoryList() { return R.ok(courseCategoryService.getCourseCategoryList()); } /** * 课程详情 * * @return 课程详情 */ @GetMapping("/getCourseInfoById") @ApiOperation(value = "根据id获取课程详情-线下课程") public R<Course> getCourseInfoById(String id) { return R.ok(courseService.getById(id)); } /** * 课程详情 * * @return 课程详情 */ @GetMapping("/getPayCourseInfoById") @ApiOperation(value = "根据id获取课程详情-付费课程") public R<Course> getPayCourseInfoById(String id) { return R.ok(courseService.getById(id)); } /** * 获取课程列表-分页 xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientTutorSpecialColumnController.java
@@ -1,8 +1,32 @@ package com.xinquan.course.controller.client; import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xinquan.common.core.domain.R; import com.xinquan.common.core.utils.page.BeanUtils; import com.xinquan.common.core.utils.page.CollUtils; import com.xinquan.common.core.utils.page.PageDTO; import com.xinquan.course.domain.Course; import com.xinquan.course.domain.TutorSpecialColumn; import com.xinquan.course.domain.TutorSpecialColumnCourse; import com.xinquan.course.domain.vo.ClientCourseVO; import com.xinquan.course.domain.vo.TutorVo; import com.xinquan.course.service.CourseCategoryService; import com.xinquan.course.service.CourseService; import com.xinquan.course.service.TutorSpecialColumnCourseService; import com.xinquan.course.service.TutorSpecialColumnService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Arrays; import java.util.Objects; /** * <p> @@ -16,5 +40,42 @@ @RequestMapping("/client/course/tutor-special-column") public class ClientTutorSpecialColumnController { @Resource private TutorSpecialColumnService tutorSpecialColumnService; @Resource private TutorSpecialColumnCourseService tutorSpecialColumnCourseService; @Resource private CourseCategoryService courseCategoryService; @Resource private CourseService courseService; @PostMapping("/getCoursePageList") @ApiOperation(value = "导师专栏",tags = "导师专栏") @ApiImplicitParams({ @ApiImplicitParam(value = "分页参数,当前页码", name = "pageCurr", required = true, dataType = "Integer"), @ApiImplicitParam(value = "分页参数,每页数量", name = "pageSize", required = true, dataType = "Integer") }) public R<TutorVo> getCourseList( @RequestParam(value = "pageCurr", defaultValue = "1") Integer pageCurr, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { TutorVo tutorVo = new TutorVo(); TutorSpecialColumn one = tutorSpecialColumnService.lambdaQuery().one(); if (one!=null){ TutorSpecialColumnCourse one1 = tutorSpecialColumnCourseService.lambdaQuery().eq(TutorSpecialColumnCourse::getTutorSpecialColumnId, one.getId()).one(); BeanUtils.copyProperties(one, tutorVo); Page<Course> page = courseService.lambdaQuery() .in(Course::getId, Arrays.asList(one1.getCourseId().split(","))) .orderByDesc(Course::getSortNum) .page(new Page<>(pageCurr, pageSize)); if (CollUtils.isEmpty(page.getRecords())) { PageDTO.empty(page); } tutorVo.setList(PageDTO.of(page, ClientCourseVO.class)); }else{ return R.ok(tutorVo); } return R.ok(); } } xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/domain/Course.java
@@ -5,10 +5,13 @@ import com.xinquan.common.core.web.domain.BaseModel; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.xinquan.user.api.domain.AppUser; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.List; /** * <p> @@ -98,5 +101,7 @@ @TableField("latitude") private Double latitude; @ApiModelProperty(value = "xx人已加入学习") @TableField(exist = false) private List<AppUser> listUser; } xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/domain/TutorSpecialColumnCourse.java
@@ -32,7 +32,7 @@ @ApiModelProperty(value = "课程id") @TableField("course_id") private Long courseId; private String courseId; @ApiModelProperty(value = "导师专栏id") @TableField("tutor_special_column_id") xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/domain/vo/TutorVo.java
New file @@ -0,0 +1,18 @@ package com.xinquan.course.domain.vo; import com.xinquan.common.core.utils.page.PageDTO; import com.xinquan.course.domain.TutorSpecialColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author mitao * @date 2024/9/7 */ @Data @ApiModel(value = "导师专栏对象") public class TutorVo extends TutorSpecialColumn { @ApiModelProperty(value = "相关课程") private PageDTO<ClientCourseVO> list; }