package com.qxgmat.controller.admin; import com.github.pagehelper.Page; import com.nuliji.tools.PageMessage; import com.nuliji.tools.Response; import com.nuliji.tools.ResponseHelp; import com.nuliji.tools.Transform; import com.qxgmat.data.dao.entity.Question; import com.qxgmat.data.dao.entity.SentenceArticle; import com.qxgmat.data.dao.entity.SentenceQuestion; import com.qxgmat.data.relation.entity.SentenceQuestionRelation; import com.qxgmat.dto.admin.request.ManagerDto; import com.qxgmat.service.SentencePaperService; import com.qxgmat.service.inline.ManagerLogService; import com.qxgmat.service.inline.QuestionService; import com.qxgmat.service.inline.SentenceArticleService; import com.qxgmat.service.inline.SentenceQuestionService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; 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("AdminSentenceController") @RequestMapping("/admin/sentence") public class SentenceController { @Autowired private ManagerLogService managerLogService; @Autowired private SentenceQuestionService sentenceQuestionService; @Autowired private SentencePaperService sentencePaperService; @Autowired private SentenceArticleService sentenceArticleService; @Autowired private QuestionService questionService; @RequestMapping(value = "/article/add", method = RequestMethod.POST) @ApiOperation(value = "添加长难句文章", httpMethod = "POST") public Response addArticle(@RequestBody @Validated ManagerDto dto, HttpServletRequest request) { SentenceArticle entity = Transform.dtoToEntity(dto); entity = sentenceArticleService.add(entity); managerLogService.log(request); return ResponseHelp.success(Transform.convert(entity, SentenceArticle.class)); } @RequestMapping(value = "/article/edit", method = RequestMethod.PUT) @ApiOperation(value = "编辑长难句文章", httpMethod = "PUT") public Response editArticle(@RequestBody @Validated ManagerDto dto, HttpServletRequest request) { SentenceArticle entity = Transform.dtoToEntity(dto); entity = sentenceArticleService.edit(entity); managerLogService.log(request); return ResponseHelp.success(true); } @RequestMapping(value = "/article/delete", method = RequestMethod.DELETE) @ApiOperation(value = "删除长难句文章", httpMethod = "DELETE") public Response deleteArticle(@RequestParam int id, HttpServletRequest request) { managerLogService.log(request); return ResponseHelp.success(sentenceArticleService.delete(id)); } @RequestMapping(value = "/article/detail", method = RequestMethod.GET) @ApiOperation(value = "获取长难句文章", httpMethod = "GET") public Response detailArticle(@RequestParam int id, HttpSession session) { SentenceArticle entity = sentenceArticleService.selectOne(id); return ResponseHelp.success(Transform.convert(entity, SentenceArticle.class)); } @RequestMapping(value = "/article/list", method = RequestMethod.GET) @ApiOperation(value = "长难句文章列表", httpMethod = "GET") public Response> listArticle( @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "100") int size, @RequestParam(required = false, defaultValue = "") int chapter, @RequestParam(required = false, defaultValue = "desc") int part, HttpSession session) { Page p = sentenceArticleService.select(page, size, chapter, part); List pr = Transform.convert(p, SentenceArticle.class); return ResponseHelp.success(pr, page, size, p.getTotal()); } @RequestMapping(value = "/question/add", method = RequestMethod.POST) @ApiOperation(value = "添加长难句题目", httpMethod = "POST") public Response addQuestion(@RequestBody @Validated SentenceQuestionRelation dto, HttpServletRequest request) { // SentenceQuestion entity = Transform.dtoToEntity(dto); SentenceQuestion entity = sentencePaperService.addQuestion(dto); managerLogService.log(request); return ResponseHelp.success(entity); } @RequestMapping(value = "/question/edit", method = RequestMethod.PUT) @ApiOperation(value = "修改长难句题目", httpMethod = "PUT") public Response editQuestion(@RequestBody @Validated SentenceQuestionRelation dto, HttpServletRequest request) { // SentenceQuestion entity = Transform.dtoToEntity(dto); SentenceQuestion entity = sentencePaperService.editQuestion(dto); managerLogService.log(request); return ResponseHelp.success(true); } // @RequestMapping(value = "/question/delete", method = RequestMethod.DELETE) // @ApiOperation(value = "删除长难句题目", httpMethod = "DELETE") // public Response 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 detailQuestion(@RequestParam int id, HttpSession session) { SentenceQuestion entity = sentenceQuestionService.selectOne(id); SentenceQuestionRelation relation = Transform.convert(entity, SentenceQuestionRelation.class); relation.setQuestion(questionService.selectOne(relation.getQuestionId())); return ResponseHelp.success(relation); } @RequestMapping(value = "/question/list", method = RequestMethod.GET) @ApiOperation(value = "长难句题目列表", httpMethod = "GET") public Response> listQuestion( @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "100") int size, @RequestParam(required = false, defaultValue = "0") int chapter, @RequestParam(required = false, defaultValue = "0") int part, HttpSession session) { Page p = sentenceQuestionService.select(page, size, chapter, part); List pr = Transform.convert(p, SentenceQuestionRelation.class); // 绑定题目 Collection ids = Transform.getIds(p, SentenceQuestion.class, "questionId"); List questionList = questionService.select(ids); Transform.combine(pr, questionList, SentenceQuestionRelation.class, "questionId", "question", Question.class, "id"); return ResponseHelp.success(pr, page, size, p.getTotal()); } }