package com.zhongzheng.controller.course; import com.zhongzheng.common.annotation.Log; import com.zhongzheng.common.core.controller.BaseController; import com.zhongzheng.common.core.domain.AjaxResult; import com.zhongzheng.common.core.page.TableDataInfo; import com.zhongzheng.common.enums.BusinessType; import com.zhongzheng.common.utils.ServletUtils; import com.zhongzheng.framework.web.service.WxTokenService; import com.zhongzheng.modules.course.bo.*; import com.zhongzheng.modules.course.service.*; import com.zhongzheng.modules.course.vo.*; import com.zhongzheng.modules.goods.vo.GoodsUserVo; import com.zhongzheng.modules.goods.vo.GoodsVo; import com.zhongzheng.modules.user.entity.ClientLoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 课程Controller * * @author hjl * @date 2021-10-09 */ @Api(value = "课程控制器", tags = {"课程管理"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/course") public class CourseController extends BaseController { private final ICourseService iCourseService; private final WxTokenService wxTokenService; private final ICourseModuleChapterService iCourseModuleChapterService; private final ICourseMenuService iCourseMenuService; private final ICourseChapterSectionService iCourseChapterSectionService; private final ICourseSectionWatchPerService iCourseSectionWatchPerService; /** * 查询课程列表 */ @ApiOperation("查询商品下的课程列表") @GetMapping("/courseList") public TableDataInfo courseList(CourseQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); startPage(); List list = iCourseService.courseList(bo); return getDataTable(list); } /** * 获取课程详细信息 */ @ApiOperation("获取课程详细信息") @GetMapping("/{courseId}") public AjaxResult getCourseUserVoInfo(@PathVariable("courseId" ) Long courseId) { return AjaxResult.success(iCourseService.getCourseUserVoInfo(courseId)); } /** * 查询课程列表 */ @ApiOperation("查询用户拥有的商品") @GetMapping("/goodsList") public TableDataInfo goodsList(CourseQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); startPage(); List list = iCourseService.goodsList(bo); return getDataTable(list); } @ApiOperation("查询用户商品重修状态") @GetMapping("/goodsRebuildStatus") public AjaxResult goodsRebuildStatus(CourseQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); return AjaxResult.success(iCourseService.goodsRebuildStatus(bo)); } /** * 查询课程目录结构列表 */ @ApiOperation("查询课程目录结构列表") @GetMapping("/menuList") public TableDataInfo menuList(CourseMenuQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); startPage(); List list = iCourseMenuService.menuList(bo); return getDataTable(list); } /** * 获取商品重修目录结构 */ @ApiOperation("获取商品重修目录结构") @GetMapping("/goods/rebuild/menu") public AjaxResult> getGoodsRebuildMenuList(CourseMenuQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); List list = iCourseMenuService.getGoodsRebuildMenuList(bo); return AjaxResult.success(list); } @ApiOperation("查询模块与章关系列表") @GetMapping("/chapterList") public AjaxResult> chapterList(CourseMenuQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); List list = iCourseModuleChapterService.chapterList(bo); return AjaxResult.success(list); } /** * 查询章与节关系列表 */ @ApiOperation("查询章与节关系列表+章卷同级展示") @GetMapping("/sectionList") public AjaxResult> sectionList(CourseMenuQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); List list = iCourseChapterSectionService.sectionList(bo); return AjaxResult.success(list); } @ApiOperation("查询章下的节卷列表") @GetMapping("/sectionExamList") public AjaxResult> sectionExamList(CourseMenuQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); List list = iCourseChapterSectionService.sectionExamList(bo); return AjaxResult.success(list); } /** * 获取课程小节观看权限 */ @ApiOperation("获取课程小节观看权限") @GetMapping("/watch/per") public AjaxResult getSectionWatchPer(SectionWatchPerBo bo) { CourseSectionWatchPerVo vo = iCourseSectionWatchPerService.getSectionWatchPer(bo); return AjaxResult.success(vo); } /** * 课程节观看权限校验 */ @ApiOperation("课程节观看权限校验") @GetMapping("/check/watch/per") public AjaxResult checkSectionWatchPer(SectionWatchQueryBo bo) { ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest()); bo.setUserId(loginUser.getUser().getUserId()); CheckSectionWatchVo vo = iCourseSectionWatchPerService.checkSectionWatchPer(bo); return AjaxResult.success(vo); } }