package com.mindskip.xzs.controller.admin; import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.domain.Subject; import com.mindskip.xzs.service.SubjectService; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.viewmodel.admin.subject.SubjectEditRequestVM; import com.mindskip.xzs.viewmodel.admin.subject.SubjectPageRequestVM; import com.mindskip.xzs.viewmodel.admin.subject.SubjectResponseVM; import com.github.pagehelper.PageInfo; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /** * @version 2.2.0 * @description: 学科 * Copyright (C), 2020-2021, 武汉思维跳跃科技有限公司 * @date 2021 /9/7 9:45 */ @RestController("AdminSubjectController") @RequestMapping(value = "/api/admin/subject") @AllArgsConstructor public class SubjectController extends BaseApiController { private final SubjectService subjectService; /** * 学科列表 * * @return the rest response */ @RequestMapping(value = "/list", method = RequestMethod.POST) public RestResponse> list() { List subjects = subjectService.allSubject(); return RestResponse.ok(subjects); } /** * 学科分页 * * @param model the model * @return the rest response */ @RequestMapping(value = "/page", method = RequestMethod.POST) public RestResponse> pageList(@RequestBody SubjectPageRequestVM model) { PageInfo pageInfo = subjectService.page(model); PageInfo page = PageInfoHelper.copyMap(pageInfo, e -> modelMapper.map(e, SubjectResponseVM.class)); return RestResponse.ok(page); } /** * 学科编辑 * * @param model the model * @return the rest response */ @RequestMapping(value = "/edit", method = RequestMethod.POST) public RestResponse edit(@RequestBody @Valid SubjectEditRequestVM model) { Subject subject = modelMapper.map(model, Subject.class); if (model.getId() == null) { subject.setDeleted(false); subjectService.insertByFilter(subject); } else { subjectService.updateByIdFilter(subject); } return RestResponse.ok(); } /** * 学科查询 * * @param id the id * @return the rest response */ @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) public RestResponse select(@PathVariable Integer id) { Subject subject = subjectService.selectById(id); SubjectEditRequestVM vm = modelMapper.map(subject, SubjectEditRequestVM.class); return RestResponse.ok(vm); } /** * 学科删除 * * @param id the id * @return the rest response */ @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST) public RestResponse delete(@PathVariable Integer id) { Subject subject = subjectService.selectById(id); subject.setDeleted(true); subjectService.updateByIdFilter(subject); return RestResponse.ok(); } }