图谱-后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

104 lines
3.6 KiB

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.*;
/**
* <p>
* 前端控制器
* </p>
*
* @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<Map<String,Object>> getData(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize) {
List<CoursesVO> coursesVo = coursesService.getPagePageSize(page, pageSize);
// System.out.println(coursesVo);
long totalcount = coursesService.count();
long toatlPages = (int) Math.ceil((double)totalcount / pageSize);
Map<String,Object> 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<String> saveCourse(@RequestBody CoursesDTO coursesDTO){
String data = coursesService.saveCourseWithObjective(coursesDTO);
return ResultUtils.success(data);
}
//TODO:此处需要调整前端的接口
@ApiOperation("查询课程列表")
@GetMapping("/page")
public BaseResponse<PageDTO<CoursesVO>> getCourses(CourseQuery courseQuery){
PageDTO<CoursesVO> coursesList = coursesService.queryCourses(courseQuery);
return ResultUtils.success(coursesList);
}
@ApiOperation("根据id查询课程")
@GetMapping("/{id}")
public BaseResponse<CoursesDTO> 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<String> 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("删除成功");
}
}