package com.xinquan.course.controller.client; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.common.security.utils.SecurityUtils; import com.xinquan.course.api.domain.Course; import com.xinquan.course.api.domain.CourseCategory; import com.xinquan.course.api.domain.CourseChapter; import com.xinquan.course.domain.CourseLearningRecord; 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.TutorCourseVO; import com.xinquan.course.domain.vo.TutorVo; import com.xinquan.course.service.*; import com.xinquan.system.api.domain.AppUser; import com.xinquan.user.api.feign.RemoteAppUserService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** *

* 导师专栏表 前端控制器 *

* * @author mitao * @since 2024-08-21 */ @RestController @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; @Resource private CourseLearningRecordService courseLearningRecordService; @Resource private CourseChapterService courseChapterService; @Resource private RemoteAppUserService remoteAppUserService; @PostMapping("/getCoursePageList") @ApiOperation(value = "导师专栏",tags = "导师专栏") public R getCourseList() { TutorVo tutorVo = new TutorVo(); TutorSpecialColumn one = tutorSpecialColumnService.lambdaQuery().one(); List clientCourseVOS = new ArrayList<>(); if (one!=null){ BeanUtils.copyProperties(one, tutorVo); TutorSpecialColumnCourse one1 = tutorSpecialColumnCourseService.lambdaQuery().eq(TutorSpecialColumnCourse::getTutorSpecialColumnId, one.getId()).one(); if (one1!=null){ LambdaQueryWrapper courseLambdaQueryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.hasLength(one1.getCourseId())){ courseLambdaQueryWrapper.in(Course::getId, Arrays.asList(one1.getCourseId().split(","))); } courseLambdaQueryWrapper.orderByDesc(Course::getSortNum); List page = courseService.list(courseLambdaQueryWrapper); for (Course course : page) { TutorCourseVO tutorCourseVO = new TutorCourseVO(); List data = remoteAppUserService.getUserByCourseId(course.getId()).getData(); List list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, course.getId()).list(); int a = 0; int b = 0; for (CourseChapter courseChapter : list1) { a+= courseChapter.getVirtualLearnedNum(); Long data1 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); b+=data1; } course.setCount(a+b); course.setRealLearnedNum(a+b); BeanUtils.copyProperties(course, tutorCourseVO); clientCourseVOS.add(tutorCourseVO); } tutorVo.setList(clientCourseVOS); return R.ok(tutorVo); }else{ return R.ok(tutorVo); } }else{ tutorVo.setList(clientCourseVOS); return R.ok(tutorVo); } } @GetMapping("/detailTutor") @ApiOperation(value = "查看详情导师专栏", tags = "管理后台-导师专栏") public R detailTutor() { TutorSpecialColumn one = tutorSpecialColumnService.getOne(null); if (one!=null){ TutorSpecialColumnCourse one1 = tutorSpecialColumnCourseService.lambdaQuery() .eq(TutorSpecialColumnCourse::getTutorSpecialColumnId, one.getId()).one(); if (one1!=null){ List collect = Arrays.asList(one1.getCourseId().split(",")); List list = courseService.lambdaQuery().in(Course::getId, collect).list(); for (Course course : list) { CourseCategory byId = courseCategoryService.getById(course.getCateId()); if (byId!=null){ course.setCategoryName(byId.getName()); } } one.setCourses(list); } } return R.ok(one); } @PostMapping("/updateTutor") @ApiOperation(value = "修改分类导师专栏", tags = "管理后台-导师专栏") public R updateTutor(@RequestBody TutorSpecialColumn homeBackgroundMusic) { TutorSpecialColumn one = tutorSpecialColumnService.getOne(null); if (one == null){ tutorSpecialColumnService.save(homeBackgroundMusic); } homeBackgroundMusic.setUpdateBy(SecurityUtils.getUsername()); homeBackgroundMusic.setUpdateTime(LocalDateTime.now()); List collect = tutorSpecialColumnCourseService.lambdaQuery() .eq(TutorSpecialColumnCourse::getTutorSpecialColumnId, homeBackgroundMusic.getId()) .list().stream().map(TutorSpecialColumnCourse::getId) .collect(Collectors.toList()); tutorSpecialColumnCourseService.removeBatchByIds(collect); if (StringUtils.hasLength(homeBackgroundMusic.getCourseIds())){ List tutorSpecialColumnCourses = new ArrayList<>(); TutorSpecialColumnCourse tutorSpecialColumnCourse = new TutorSpecialColumnCourse(); tutorSpecialColumnCourse.setCourseId(homeBackgroundMusic.getCourseIds()); tutorSpecialColumnCourse.setTutorSpecialColumnId(homeBackgroundMusic.getId()); tutorSpecialColumnCourses.add(tutorSpecialColumnCourse); tutorSpecialColumnCourseService.saveBatch(tutorSpecialColumnCourses); } return R.ok(tutorSpecialColumnService.updateById(homeBackgroundMusic)); } }