package com.stylefeng.guns.modular.code.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.stylefeng.guns.modular.system.dto.CourseDTO; import com.stylefeng.guns.modular.system.dto.CourseQuery; import com.stylefeng.guns.modular.system.model.Course; import com.stylefeng.guns.modular.system.model.CourseVideo; import com.stylefeng.guns.modular.system.model.FitnessPosition; import com.stylefeng.guns.modular.system.model.FitnessType; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.UUIDUtil; import com.stylefeng.guns.modular.system.vo.CouponListVO; import com.stylefeng.guns.modular.system.vo.CourseList; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author 无关风月 * @Date 2024/2/6 18:25 */ @Slf4j @RestController @RequestMapping("") public class CourseController { @Autowired private IFitnessTypeService fitnessTypeService; @Autowired private IFitnessPositionService fitnessPositionService; @Autowired private ICourseService courseService; @Autowired private ICourseVideoService courseVideoService; @ResponseBody @PostMapping("/base/course/typeList") @ApiOperation(value = "所属类型下拉列表", tags = {"课程"}) public ResultUtil> typeList() { List types = fitnessTypeService.selectList(new EntityWrapper() .eq("isDelete", 0)); return ResultUtil.success(types); } @ResponseBody @PostMapping("/base/course/positionList") @ApiOperation(value = "所属部位下拉列表", tags = {"课程"}) @ApiImplicitParams({ @ApiImplicitParam(value = "类型id", name = "id"), }) public ResultUtil> positionList(Integer id) { List types = fitnessPositionService.selectList(new EntityWrapper() .eq("typeId",id) .eq("isDelete", 0)); return ResultUtil.success(types); } @ResponseBody @PostMapping("/base/course/updateState") @ApiOperation(value = "上架/下架/删除", tags = {"课程"}) @ApiImplicitParams({ @ApiImplicitParam(value = "课程id", name = "id"), @ApiImplicitParam(value = "状态1=上架 2=下架 3=删除", name = "state"), }) public ResultUtil updateState(Integer id,Integer state) { Course course = courseService.selectById(id); course.setState(state); courseService.updateById(course); return ResultUtil.success(); } @ResponseBody @PostMapping("/base/course/courseDetail") @ApiOperation(value = "查看详情", tags = {"课程"}) public ResultUtil courseList(Integer id) { Course course = courseService.selectById(id); CourseDTO courseDTO = new CourseDTO(); courseDTO.setId(course.getId()); courseDTO.setCourseName(course.getCourseName()); courseDTO.setIsFree(course.getIsFree()); courseDTO.setDifficulty(course.getDifficulty()); courseDTO.setTypeId(course.getTypeId()); courseDTO.setPositionId(course.getPositionId()); courseDTO.setIntroduce(course.getIntroduce()); courseDTO.setCoverImg(course.getCoverImg()); courseDTO.setSort(course.getSort()); courseDTO.setTime(course.getTime()); courseDTO.setAllTime(course.getAllTime()); courseDTO.setPositionName(fitnessPositionService.selectById(course.getPositionId()).getName()); List courseId = courseVideoService.selectList(new EntityWrapper() .eq("courseId", id)); courseDTO.setVideos(courseId); return ResultUtil.success(courseDTO); } @ResponseBody @PostMapping("/base/course/courseList") @ApiOperation(value = "列表查询", tags = {"课程"}) public ResultUtil> courseList(CourseQuery query) { List res = courseService.courseList(query); // PageHelper.startPage(query.getPageNum(),query.getPageSize()); PageInfo info=new PageInfo<>(res); return ResultUtil.success(info); } @ResponseBody @PostMapping("/base/course/addOrUpdate") @ApiOperation(value = "课程添加/编辑", tags = {"课程"}) public ResultUtil courseList(@RequestBody CourseDTO dto) { if (dto.getId()==null){ // 新增 Course course = new Course(); course.setCourseName(dto.getCourseName()); course.setCoverImg(dto.getCoverImg()); course.setIntroduce(dto.getIntroduce()); course.setDifficulty(dto.getDifficulty()); course.setTime(dto.getTime()); course.setIsFree(dto.getIsFree()); course.setSort(dto.getSort()); course.setAllTime(dto.getAllTime()); course.setState(1); course.setPositionId(dto.getPositionId()); course.setTypeId(dto.getTypeId()); courseService.insert(course); // 添加视频 List videos = dto.getVideos(); for (CourseVideo video : videos) { video.setTime(video.getMinute()*60 + video.getSecond()); video.setCourseId(course.getId()); courseVideoService.insert(video); } return ResultUtil.success("添加成功"); }else{ // 编辑 Course course = courseService.selectById(dto.getId()); if (course!=null){ course.setCourseName(dto.getCourseName()); course.setCoverImg(dto.getCoverImg()); course.setIntroduce(dto.getIntroduce()); course.setPositionId(dto.getPositionId()); course.setTypeId(dto.getTypeId()); course.setDifficulty(dto.getDifficulty()); course.setTime(dto.getTime()); course.setIsFree(dto.getIsFree()); course.setSort(dto.getSort()); course.setAllTime(dto.getAllTime()); courseService.updateById(course); } if (dto.getVideos().size()!=0){ // 如果修改了视频列表 将之前的删除 重新添加 List courseId = courseVideoService.selectList(new EntityWrapper() .eq("courseId", dto.getId())); for (CourseVideo courseVideo : courseId) { courseVideoService.deleteById(courseVideo); } for (CourseVideo video : dto.getVideos()) { video.setTime(video.getMinute()*60 + video.getSecond()); video.setCourseId(course.getId()); courseVideoService.insert(video); } } return ResultUtil.success("编辑成功"); } } public static void main(String[] args) throws Exception { String randomCode = UUIDUtil.getRandomCode(8); System.err.println(randomCode); } }