package com.mindskip.xzs.controller.admin;
|
|
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.ExamTemplates;
|
import com.mindskip.xzs.domain.ExamTemplatesConfig;
|
import com.mindskip.xzs.domain.ExamTemplatesSubject;
|
import com.mindskip.xzs.domain.vo.ExamTemplatesVO;
|
import com.mindskip.xzs.repository.ExamTemplatesSubjectMapper;
|
import com.mindskip.xzs.service.ExamPaperDepartmentService;
|
import com.mindskip.xzs.service.ExamTemplatesConfigService;
|
import com.mindskip.xzs.service.ExamTemplatesService;
|
import com.mindskip.xzs.utility.PageInfoHelper;
|
import com.mindskip.xzs.utility.minio.DateUtils;
|
import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
@RestController("AdminExamTemplatesController")
|
@RequestMapping(value = "/api/admin/exam/templates")
|
@RequiredArgsConstructor
|
public class ExamTemplatesController extends BaseApiController {
|
|
private final ExamTemplatesService examTemplatesService;
|
private final ExamTemplatesConfigService examTemplatesConfigService;
|
private final ExamTemplatesSubjectMapper examTemplatesSubjectMapper;
|
private final WebContext webContext;
|
private final ExamPaperDepartmentService examPaperDepartmentService;
|
|
@RequestMapping(value = "/edit", method = RequestMethod.POST)
|
public RestResponse edit(@RequestBody @Valid ExamPaperEditRequestVM model) {
|
model.setCreateUser(getCurrentUser().getId());
|
examTemplatesService.add(model);
|
return RestResponse.ok();
|
}
|
|
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
public RestResponse<PageInfo<ExamTemplatesVO>> list(ExamTemplatesVO examTemplatesVO) throws Exception {
|
// 如果是部门管理员,需要做数据权限
|
examTemplatesVO.setDeptId(ObjectUtils.isNotEmpty(examTemplatesVO.getDeptId()) ? examTemplatesVO.getDeptId() : getAdminDeptIds());
|
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());
|
|
List<ExamTemplatesSubject> subjectList = examTemplatesSubjectMapper.getTemplatesId(e.getId());
|
Integer[] ids = subjectList.stream().map(ExamTemplatesSubject::getSubjectId).toArray(Integer[]::new);
|
String subjectNames = subjectList.stream().map(ExamTemplatesSubject::getSubjectName).collect(Collectors.joining("、"));
|
vo.setSubjectNames(subjectNames);
|
vo.setSubjectId(ids);
|
vo.setCreateDepartment(examPaperDepartmentService.selectByUserId(e.getCreateUser()));
|
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();
|
}
|
|
@PostMapping("/setConfig")
|
public RestResponse<Boolean> setConfig(@RequestBody ExamTemplatesConfig examTemplatesConfig) {
|
if (Objects.isNull(examTemplatesConfig.getId())) {
|
examTemplatesConfig.setCreateUser(getCurrentUser().getId());
|
examTemplatesConfig.setCreateTime(DateUtils.getNowDate());
|
}
|
return RestResponse.ok(examTemplatesConfigService.saveOrUpdate(examTemplatesConfig));
|
}
|
|
@GetMapping("/getConfig")
|
public RestResponse<ExamTemplatesConfig> getConfig() {
|
return RestResponse.ok(examTemplatesConfigService.getConfig());
|
}
|
|
}
|