123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- package com.qxgmat.controller.admin;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.*;
- import com.qxgmat.data.constants.enums.QuestionSubject;
- import com.qxgmat.data.constants.enums.TextbookSubject;
- import com.qxgmat.data.constants.enums.TopicQuality;
- import com.qxgmat.data.constants.enums.status.DirectionStatus;
- import com.qxgmat.data.dao.entity.*;
- import com.qxgmat.data.relation.entity.TextbookQuestionRelation;
- import com.qxgmat.dto.admin.extend.TextbookLibraryExtendDto;
- import com.qxgmat.dto.admin.request.*;
- import com.qxgmat.dto.admin.response.TextbookQuestionListDto;
- import com.qxgmat.dto.admin.response.TextbookTopicInfoDto;
- import com.qxgmat.service.inline.TextbookPaperService;
- import com.qxgmat.service.extend.TextbookService;
- import com.qxgmat.service.inline.*;
- import com.qxgmat.task.AsyncTask;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.MediaType;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import java.util.Collection;
- import java.util.List;
- @RestController("AdminTextbookController")
- @RequestMapping("/admin/textbook")
- @Api(tags = "机经接口", description = "机经相关", produces = MediaType.APPLICATION_JSON_VALUE)
- public class TextbookController {
- @Autowired
- private ManagerLogService managerLogService;
- @Autowired
- private TextbookQuestionService textbookQuestionService;
- @Autowired
- private TextbookPaperService textbookPaperService;
- @Autowired
- private TextbookLibraryService textbookLibraryService;
- @Autowired
- private TextbookLibraryHistoryService textbookLibraryHistoryService;
- @Autowired
- private TextbookTopicService textbookTopicService;
- @Autowired
- private TextbookService textbookService;
- @Autowired
- private AsyncTask asyncTask;
- @RequestMapping(value = "/question/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加机经题目", httpMethod = "POST")
- public Response<TextbookQuestion> addQuestion(@RequestBody @Validated TextbookQuestionDto dto, HttpServletRequest request) {
- TextbookQuestionRelation entity = Transform.dtoToEntity(dto);
- TextbookQuestion entityNew = textbookService.addQuestion(entity);
- managerLogService.log(request);
- return ResponseHelp.success(entityNew);
- }
- @RequestMapping(value = "/question/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "修改机经题目", httpMethod = "PUT")
- public Response<Boolean> editQuestion(@RequestBody @Validated TextbookQuestionDto dto, HttpServletRequest request) {
- TextbookQuestionRelation entity = Transform.dtoToEntity(dto);
- textbookService.editQuestion(entity);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- // @RequestMapping(value = "/question/delete", method = RequestMethod.DELETE)
- // @ApiOperation(value = "删除机经题目", httpMethod = "DELETE")
- // public Response<Boolean> deleteQuestion(@RequestParam int id, HttpServletRequest request) {
- // managerLogService.log(request);
- // return ResponseHelp.success(sentenceQuestionService.delete(id));
- // }
- @RequestMapping(value = "/question/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取机经题目", httpMethod = "GET")
- public Response<TextbookQuestionRelation> detailQuestion(@RequestParam int id, HttpSession session) {
- TextbookQuestion entity = textbookQuestionService.get(id);
- TextbookQuestionRelation relation = textbookQuestionService.relation(entity);
- return ResponseHelp.success(relation);
- }
- @RequestMapping(value = "/question/next", method = RequestMethod.GET)
- @ApiOperation(value = "获取机经题目下一题序号", httpMethod = "GET")
- public Response<Integer> nextQuestion(@RequestParam int libraryId, HttpSession session) {
- TextbookQuestion entity = textbookQuestionService.lastByLibrary(libraryId);
- Integer no = 1;
- if (entity != null){
- no += entity.getNo();
- }
- return ResponseHelp.success(no);
- }
- @RequestMapping(value = "/paper/list", method = RequestMethod.GET)
- @ApiOperation(value = "组卷列表", httpMethod = "GET")
- public Response<PageMessage<TextbookPaper>> listPaper(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false) Integer[] ids,
- HttpSession session) {
- Page<TextbookPaper> p;
- if (ids != null && ids.length > 0){
- p = textbookPaperService.select(ids);
- }else{
- p = textbookPaperService.listAdmin(page, size, keyword);
- }
- return ResponseHelp.success(p, page, size, p.getTotal());
- }
- @RequestMapping(value = "/question/search", method = RequestMethod.GET)
- @ApiOperation(value = "试题列表", httpMethod = "GET")
- public Response<PageMessage<TextbookQuestionListDto>> searchQuestion(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false) Integer[] ids,
- HttpSession session) {
- Page<TextbookQuestion> p;
- if (ids != null && ids.length > 0){
- p = textbookQuestionService.select(ids);
- }else{
- p = textbookQuestionService.searchAdmin(page, size, keyword);
- }
- List<TextbookQuestionListDto> pr = Transform.convert(p, TextbookQuestionListDto.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/question/list", method = RequestMethod.GET)
- @ApiOperation(value = "试题列表", httpMethod = "GET")
- public Response<PageMessage<TextbookQuestionListDto>> listQuestion(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) String questionType,
- @RequestParam(required = false) Integer paperId,
- @RequestParam(required = false) Integer questionNoId,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<TextbookQuestionRelation> p = textbookQuestionService.listAdmin(page, size, questionType, paperId, questionNoId, order, DirectionStatus.ValueOf(direction));
- List<TextbookQuestionListDto> pr = Transform.convert(p, TextbookQuestionListDto.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- @RequestMapping(value = "/library/add", method = RequestMethod.POST)
- @ApiOperation(value = "发布新换库信息", httpMethod = "POST")
- public Response<Boolean> addLibrary(@RequestBody @Validated TextbookLibraryStartDto dto, HttpServletRequest request) {
- TextbookLibrary entity = Transform.dtoToEntity(dto);
- textbookService.replace(entity);
- // 发送机经到用户邮箱
- asyncTask.postTextbookLibrary();
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/library/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "更新换库信息", httpMethod = "PUT")
- public Response<Boolean> editLibrary(@RequestBody @Validated TextbookLibraryDto dto, HttpServletRequest request) {
- TextbookLibrary entity = Transform.dtoToEntity(dto);
- textbookLibraryService.edit(entity);
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/library/list", method = RequestMethod.GET)
- @ApiOperation(value = "换库表", httpMethod = "GET")
- public Response<PageMessage<TextbookLibrary>> listLibrary(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false) Integer[] ids,
- HttpSession session) {
- Page<TextbookLibrary> p;
- if (ids != null && ids.length > 0){
- p = textbookLibraryService.select(ids);
- }else{
- p = textbookLibraryService.listAdmin(page, size, keyword);
- }
- return ResponseHelp.success(p, page, size, p.getTotal());
- }
- @RequestMapping(value = "/library/history/list", method = RequestMethod.GET)
- @ApiOperation(value = "换库表", httpMethod = "GET")
- public Response<PageMessage<TextbookLibraryHistory>> listLibraryHistory(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = true) Integer libraryId,
- HttpSession session) {
- Page<TextbookLibraryHistory> p = textbookLibraryHistoryService.listByLibrary(page, size, libraryId);
- return ResponseHelp.success(p, page, size, p.getTotal());
- }
- @RequestMapping(value = "/library/history/post", method = RequestMethod.POST)
- @ApiOperation(value = "发布新换库信息", httpMethod = "POST")
- public Response<Boolean> postHistory(@RequestBody @Validated TextbookLibraryHistoryDto dto, HttpServletRequest request) {
- TextbookLibraryHistory entity = Transform.dtoToEntity(dto);
- textbookLibraryService.addHistory(entity);
- // 发送机经到用户邮箱
- asyncTask.postTextbookUpdate();
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/topic/add", method = RequestMethod.POST)
- @ApiOperation(value = "添加机经题目", httpMethod = "POST")
- public Response<TextbookTopic> addTopic(@RequestBody @Validated TextbookTopic dto, HttpServletRequest request) {
- TextbookTopic entity = Transform.convert(dto, TextbookTopic.class);
- entity = textbookTopicService.add(entity);
- textbookService.updateLibraryNo(entity.getLibraryId(), entity.getTextbookSubject());
- managerLogService.log(request);
- return ResponseHelp.success(Transform.convert(entity, TextbookTopic.class));
- }
- @RequestMapping(value = "/topic/edit", method = RequestMethod.PUT)
- @ApiOperation(value = "编辑机经题目", httpMethod = "PUT")
- public Response<Boolean> editTopic(@RequestBody @Validated TextbookTopic dto, HttpServletRequest request) {
- TextbookTopic entity = Transform.convert(dto, TextbookTopic.class);
- entity = textbookTopicService.edit(entity);
- textbookService.updateLibraryNo(entity.getLibraryId(), entity.getTextbookSubject());
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/topic/delete", method = RequestMethod.DELETE)
- @ApiOperation(value = "删除机经题目", httpMethod = "DELETE")
- public Response<Boolean> deleteTopic(@RequestParam int id, HttpServletRequest request) {
- TextbookTopic entity = textbookTopicService.get(id);
- textbookTopicService.delete(id);
- textbookService.updateLibraryNo(entity.getLibraryId(), entity.getTextbookSubject());
- managerLogService.log(request);
- return ResponseHelp.success(true);
- }
- @RequestMapping(value = "/topic/detail", method = RequestMethod.GET)
- @ApiOperation(value = "获取机经题目", httpMethod = "GET")
- public Response<TextbookTopic> detailTopic(@RequestParam int id,HttpSession session) {
- TextbookTopic entity = textbookTopicService.get(id);
- return ResponseHelp.success(Transform.convert(entity, TextbookTopic.class));
- }
- @RequestMapping(value = "/topic/next", method = RequestMethod.GET)
- @ApiOperation(value = "获取机经题目下一题序号", httpMethod = "GET")
- public Response<Integer> nextTopic(@RequestParam int libraryId, @RequestParam String textbookSubject, HttpSession session) {
- TextbookTopic entity = textbookTopicService.lastByLibrary(libraryId, textbookSubject);
- Integer no = 1;
- if (entity != null){
- no += entity.getNo();
- }
- return ResponseHelp.success(no);
- }
- @RequestMapping(value = "/topic/list", method = RequestMethod.GET)
- @ApiOperation(value = "机经题目列表", httpMethod = "GET")
- public Response<PageMessage<TextbookTopicInfoDto>> listTopic(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = false) String questionSubject,
- @RequestParam(required = false) Number libraryId,
- @RequestParam(required = false) String keyword,
- @RequestParam(required = false) String quality,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- Page<TextbookTopic> p = textbookTopicService.listAdmin(page, size, questionSubject, libraryId, keyword, TopicQuality.ValueOf(quality), order, DirectionStatus.ValueOf(direction));
- List<TextbookTopicInfoDto> pr = Transform.convert(p, TextbookTopicInfoDto.class);
- Collection libraryIds = Transform.getIds(p, TextbookTopic.class, "libraryId");
- List<TextbookLibrary> libraryList = textbookLibraryService.select(libraryIds);
- Transform.combine(pr, libraryList, TextbookTopicInfoDto.class, "libraryId", "library", TextbookLibrary.class, "id", TextbookLibraryExtendDto.class);
- return ResponseHelp.success(pr, page, size, p.getTotal());
- }
- }
|