package com.teaching.backend.controller.courses; import com.teaching.backend.common.BaseResponse; import com.teaching.backend.common.ErrorCode; import com.teaching.backend.common.ResultUtils; import com.teaching.backend.exception.BusinessException; import com.teaching.backend.mapper.UserMapper; import com.teaching.backend.model.dto.courses.CoursesDTO; import com.teaching.backend.model.dto.courses.PageDTO; import com.teaching.backend.model.entity.courses.Courses; import com.teaching.backend.model.query.CourseQuery; import com.teaching.backend.model.vo.courses.CoursesVO; import com.teaching.backend.service.courses.ICoursesService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.*; /** *

* 前端控制器 *

* * @author zjh * @since 2024-05-30 */ @Api(tags = "教师管理课程接口") @RestController @RequestMapping("/coursesteacher") public class CoursesController { @Autowired ICoursesService coursesService; @Autowired UserMapper userMapper; @ApiOperation("网站首页") @GetMapping("/index") public BaseResponse> getData(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize) { List coursesVo = coursesService.getPagePageSize(page, pageSize); // System.out.println(coursesVo); long totalcount = coursesService.count(); long toatlPages = (int) Math.ceil((double)totalcount / pageSize); Map objectMap = new HashMap<>(); objectMap.put("content",coursesVo); objectMap.put("totalcount", totalcount); objectMap.put("totalPages", toatlPages); objectMap.put("currentPage", page); return ResultUtils.success(objectMap); } @ApiOperation("新增课程--同步新增课程的总体目标并同时添加所有的分项目标") @PostMapping("/addcourse") public BaseResponse saveCourse(@RequestBody CoursesDTO coursesDTO){ String data = coursesService.saveCourseWithObjective(coursesDTO); return ResultUtils.success(data); } //TODO:此处需要调整前端的接口 @ApiOperation("查询课程列表") @GetMapping("/page") public BaseResponse> getCourses(CourseQuery courseQuery){ PageDTO coursesList = coursesService.queryCourses(courseQuery); return ResultUtils.success(coursesList); } @ApiOperation("根据id查询课程") @GetMapping("/{id}") public BaseResponse getByIdCourse(@PathVariable String id){ if(id==null){ throw new BusinessException(ErrorCode.PARAMS_ERROR,"课程id为空"); } Courses course = coursesService.getById(id); CoursesDTO coursesDTO = new CoursesDTO(); BeanUtils.copyProperties(course,coursesDTO); return ResultUtils.success(coursesDTO); } @ApiOperation("根据id修改课程") @PutMapping public BaseResponse editCourse(@RequestBody CoursesDTO coursesDTO){ coursesService.updateCourse(coursesDTO); return ResultUtils.success("编辑成功"); } //TODO:删除功能暂未完善,数据表缺失 @ApiOperation("根据id删除课程") @DeleteMapping("/{id}") public BaseResponse deleteCourses(@PathVariable String id){ coursesService.deleteBatchByIds(id); // coursesService.removeBatchByIds(ids); return ResultUtils.success("删除成功"); } }