package com.xinquan.course.controller.client; 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.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.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.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; @PostMapping("/getCoursePageList") @ApiOperation(value = "导师专栏",tags = "导师专栏") public R getCourseList() { TutorVo tutorVo = new TutorVo(); TutorSpecialColumn one = tutorSpecialColumnService.lambdaQuery().one(); List clientCourseVOS = new ArrayList<>(); if (one!=null){ TutorSpecialColumnCourse one1 = tutorSpecialColumnCourseService.lambdaQuery().eq(TutorSpecialColumnCourse::getTutorSpecialColumnId, one.getId()).one(); BeanUtils.copyProperties(one, tutorVo); List page = courseService.lambdaQuery() .in(Course::getId, Arrays.asList(one1.getCourseId().split(","))) .orderByDesc(Course::getSortNum).list().stream().limit(2).collect(Collectors.toList()); for (Course course : page) { TutorCourseVO tutorCourseVO = new TutorCourseVO(); BeanUtils.copyProperties(course, tutorCourseVO); clientCourseVOS.add(tutorCourseVO); } tutorVo.setList(clientCourseVOS); return R.ok(tutorVo); }else{ tutorVo.setList(clientCourseVOS); return R.ok(tutorVo); } } @GetMapping("/detailTutor") @ApiOperation(value = "查看详情导师专栏", notes = "管理后台-导师专栏") public R detailTutor() { TutorSpecialColumn one = tutorSpecialColumnService.getOne(null); if (one!=null){ List collect = tutorSpecialColumnCourseService.lambdaQuery().eq(TutorSpecialColumnCourse::getTutorSpecialColumnId, one.getId()) .list().stream().map(TutorSpecialColumnCourse::getId).collect(Collectors.toList()); if (!collect.isEmpty()){ List list = courseService.lambdaQuery().in(Course::getId, collect).list(); one.setCourses(list); } } return R.ok(one); } @PostMapping("/updateTutor") @ApiOperation(value = "修改分类导师专栏", notes = "管理后台-导师专栏") 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); List tutorSpecialColumnCourses = new ArrayList<>(); if (StringUtils.hasLength(homeBackgroundMusic.getCourseIds())){ String[] split = homeBackgroundMusic.getCourseIds().split(","); for (int i = 0; i < split.length; i++) { TutorSpecialColumnCourse tutorSpecialColumnCourse = new TutorSpecialColumnCourse(); tutorSpecialColumnCourse.setCourseId(split[i]); tutorSpecialColumnCourse.setTutorSpecialColumnId(homeBackgroundMusic.getId()); tutorSpecialColumnCourse.setCreateBy(SecurityUtils.getUsername()); tutorSpecialColumnCourse.setCreateTime(LocalDateTime.now()); tutorSpecialColumnCourse.setUpdateBy(SecurityUtils.getUsername()); tutorSpecialColumnCourse.setUpdateTime(LocalDateTime.now()); tutorSpecialColumnCourses.add(tutorSpecialColumnCourse); } tutorSpecialColumnCourseService.saveBatch(tutorSpecialColumnCourses); } return R.ok(tutorSpecialColumnService.updateById(homeBackgroundMusic)); } }