123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- package com.qxgmat.controller.api;
- import com.github.pagehelper.Page;
- import com.nuliji.tools.*;
- import com.nuliji.tools.exception.AuthException;
- import com.nuliji.tools.exception.ParameterException;
- import com.qxgmat.data.constants.enums.QuestionSubject;
- import com.qxgmat.data.constants.enums.ServiceKey;
- import com.qxgmat.data.constants.enums.status.DirectionStatus;
- import com.qxgmat.data.dao.entity.*;
- import com.qxgmat.dto.extend.UserServiceRecordExtendDto;
- import com.qxgmat.dto.response.UserTextbookInfoDto;
- import com.qxgmat.help.ShiroHelp;
- import com.qxgmat.service.UserServiceService;
- import com.qxgmat.service.UsersService;
- import com.qxgmat.service.extend.QuestionFlowService;
- import com.qxgmat.service.inline.*;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpSession;
- import java.text.DateFormat;
- import java.text.ParseException;
- import java.util.Date;
- import java.util.List;
- @RestController
- @RequestMapping("/api/textbook")
- @Api(tags = "机经", description = "机经接口")
- public class TextbookController
- {
- @Autowired
- private ShiroHelp shiroHelp;
- @Autowired
- private QuestionService questionService;
- @Autowired
- private SettingService settingService;
- @Autowired
- private UsersService usersService;
- @Autowired
- private UserServiceService userServiceService;
- @Autowired
- private UserOrderRecordService userOrderRecordService;
- @Autowired
- private QuestionFlowService questionFlowService;
- @Autowired
- private TextbookLibraryService textbookLibraryService;
- @Autowired
- private TextbookLibraryHistoryService textbookLibraryHistoryService;
- @Autowired
- private TextbookTopicService textbookTopicService;
- @RequestMapping(value = "/info", method = RequestMethod.GET)
- @ApiOperation(value = "机经信息", httpMethod = "GET")
- public Response<UserTextbookInfoDto> info(HttpSession session) {
- User user = (User) shiroHelp.getLoginUser();
- UserTextbookInfoDto dto = new UserTextbookInfoDto();
- TextbookLibrary latest = textbookLibraryService.getLatest();
- dto.setLatest(latest);
- if (user != null){
- dto.setHasService(userServiceService.hasService(user.getId(), ServiceKey.TEXTBOOK));
- UserOrderRecord record = userOrderRecordService.getUnUseService(user.getId(), ServiceKey.TEXTBOOK);
- dto.setUnUseRecord(Transform.convert(record, UserServiceRecordExtendDto.class));
- }
- TextbookLibrary second = textbookLibraryService.getSecond();
- dto.setSecond(second);
- return ResponseHelp.success(dto);
- }
- @RequestMapping(value = "/year", method = RequestMethod.GET)
- @ApiOperation(value = "机经年度更新信息", httpMethod = "GET")
- public Response<List<TextbookLibrary>> year(
- @RequestParam(required = false) String year,
- HttpSession session) {
- Date start;
- try {
- start = DateFormat.getDateInstance().parse(String.format("%s-01-01", year));
- } catch (ParseException e) {
- throw new ParameterException("日期格式错误");
- }
- Date end = Tools.addYear(start, 1);
- List<TextbookLibrary> libraryList = textbookLibraryService.listByTime(start, end);
- return ResponseHelp.success(libraryList);
- }
- @RequestMapping(value = "/history/all", method = RequestMethod.GET)
- @ApiOperation(value = "机经更新记录", httpMethod = "GET")
- public Response<List<TextbookLibraryHistory>> listHistory(
- @RequestParam(required = true) String subject,
- HttpSession session) {
- User user = (User) shiroHelp.getLoginUser();
- if (user == null){
- throw new AuthException("请先登录");
- }
- if (!userServiceService.hasService(user.getId(), ServiceKey.TEXTBOOK)){
- throw new ParameterException("没有机经查看权限");
- }
- if (QuestionSubject.ValueOf(subject) == null){
- throw new ParameterException("科目错误");
- }
- TextbookLibrary library = textbookLibraryService.getLatest();
- List<TextbookLibraryHistory> p = textbookLibraryHistoryService.allByLibraryAndSubject(library.getId(), QuestionSubject.ValueOf(subject));
- return ResponseHelp.success(p);
- }
- @RequestMapping(value = "/topic/list", method = RequestMethod.GET)
- @ApiOperation(value = "机经列表", httpMethod = "GET")
- public Response<PageMessage<TextbookTopic>> listTopic(
- @RequestParam(required = false, defaultValue = "1") int page,
- @RequestParam(required = false, defaultValue = "100") int size,
- @RequestParam(required = true) boolean latest,
- @RequestParam(required = true) String subject,
- @RequestParam(required = false) String[] qualitys,
- @RequestParam(required = false) Boolean isOld,
- @RequestParam(required = false, defaultValue = "id") String order,
- @RequestParam(required = false, defaultValue = "desc") String direction,
- HttpSession session) {
- TextbookLibrary library;
- if (latest){
- User user = (User) shiroHelp.getLoginUser();
- if (user == null){
- throw new AuthException("请先登录");
- }
- if (!userServiceService.hasService(user.getId(), ServiceKey.TEXTBOOK)){
- throw new ParameterException("没有机经查看权限");
- }
- library = textbookLibraryService.getLatest();
- }else{
- // 获取往期:倒数第二
- library = textbookLibraryService.getSecond();
- }
- Page<TextbookTopic> p = textbookTopicService.list(page, size, library.getId(), QuestionSubject.ValueOf(subject), qualitys, isOld, order, DirectionStatus.ValueOf(direction));
- return ResponseHelp.success(p, page, size, p.getTotal());
- }
- }
|