package com.mindskip.xzs.controller.admin;
|
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import com.github.pagehelper.PageInfo;
|
import com.mindskip.xzs.base.BaseApiController;
|
import com.mindskip.xzs.base.RestResponse;
|
import com.mindskip.xzs.context.WebContext;
|
import com.mindskip.xzs.domain.ExamPaper;
|
import com.mindskip.xzs.domain.ExamTemplates;
|
import com.mindskip.xzs.domain.ExamTemplatesSubject;
|
import com.mindskip.xzs.domain.User;
|
import com.mindskip.xzs.domain.vo.ExamTemplatesVO;
|
import com.mindskip.xzs.repository.DepartmentMapper;
|
import com.mindskip.xzs.repository.ExamTemplatesSubjectMapper;
|
import com.mindskip.xzs.repository.UserDepartmentMapper;
|
import com.mindskip.xzs.service.ExamTemplatesService;
|
import com.mindskip.xzs.utility.PageInfoHelper;
|
import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
import java.util.List;
|
import java.util.Objects;
|
|
@RestController("AdminExamTemplatesController")
|
@RequestMapping(value = "/api/admin/exam/templates")
|
@RequiredArgsConstructor
|
public class ExamTemplatesController extends BaseApiController {
|
|
private final ExamTemplatesService examTemplatesService;
|
private final ExamTemplatesSubjectMapper examTemplatesSubjectMapper;
|
private final WebContext webContext;
|
private final DepartmentMapper departmentMapper;
|
|
@RequestMapping(value = "/edit", method = RequestMethod.POST)
|
public RestResponse edit(@RequestBody @Valid ExamPaperEditRequestVM model) {
|
User currentUser = webContext.getCurrentUser();
|
if (Objects.nonNull(currentUser)) {
|
// 如果是部门管理员,需要做数据权限
|
if ("1".equals(currentUser.getDeptAdmin())) {
|
Integer deptId = departmentMapper.selectByAdminId(currentUser.getId());
|
model.setDeptId(deptId);
|
}
|
}
|
examTemplatesService.add(model);
|
return RestResponse.ok();
|
}
|
|
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
public RestResponse<PageInfo<ExamTemplatesVO>> list(ExamTemplatesVO examTemplatesVO) throws Exception {
|
User currentUser = webContext.getCurrentUser();
|
if (Objects.nonNull(currentUser)) {
|
// 如果是部门管理员,需要做数据权限
|
if ("1".equals(currentUser.getDeptAdmin())) {
|
Integer deptId = departmentMapper.selectByAdminId(currentUser.getId());
|
examTemplatesVO.setDeptId(deptId);
|
}
|
}
|
PageInfo<ExamTemplates> pageInfo = examTemplatesService.getByadmins(examTemplatesVO);
|
PageInfo<ExamTemplatesVO> info = PageInfoHelper.copyMap(pageInfo, e -> {
|
ExamTemplatesVO vo = new ExamTemplatesVO();
|
vo.setName(e.getName());
|
vo.setId(e.getId());
|
vo.setCtime(e.getCtime());
|
Integer[] ids = examTemplatesSubjectMapper.getTemplatesId(e.getId()).stream().map(ExamTemplatesSubject::getSubjectId).toArray(Integer[]::new);
|
vo.setSubjectId(ids);
|
return vo;
|
});
|
return RestResponse.ok(info);
|
}
|
|
@RequestMapping(value = "/select/{id}", method = RequestMethod.POST)
|
public RestResponse<ExamPaperEditRequestVM> select(@PathVariable Integer id) {
|
return RestResponse.ok(examTemplatesService.getById(id));
|
}
|
|
@RequestMapping(value = "/remove/{id}", method = RequestMethod.POST)
|
public RestResponse remove(@PathVariable Integer id) {
|
examTemplatesService.remove(id);
|
return RestResponse.ok();
|
}
|
|
// @RequestMapping(value = "/random", method = RequestMethod.POST)
|
// public RestResponse<Integer> randomExam() throws Exception {
|
// User user = getCurrentUser();
|
// Integer id = examTemplatesService.randomExam(user);
|
// return RestResponse.ok(id);
|
// }
|
}
|