UserPreviewController.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.qxgmat.controller.admin;
  2. import com.github.pagehelper.Page;
  3. import com.nuliji.tools.PageMessage;
  4. import com.nuliji.tools.Response;
  5. import com.nuliji.tools.ResponseHelp;
  6. import com.nuliji.tools.Transform;
  7. import com.qxgmat.data.dao.entity.HomeworkPreview;
  8. import com.qxgmat.data.dao.entity.User;
  9. import com.qxgmat.data.dao.entity.UserReport;
  10. import com.qxgmat.data.relation.entity.UserHomeworkPreviewRelation;
  11. import com.qxgmat.dto.admin.extend.HomeworkPreviewExtendDto;
  12. import com.qxgmat.dto.admin.extend.UserExtendDto;
  13. import com.qxgmat.dto.admin.response.UserHomeworkPreviewListDto;
  14. import com.qxgmat.service.UsersService;
  15. import com.qxgmat.service.HomeworkPreviewService;
  16. import com.qxgmat.service.inline.ManagerLogService;
  17. import com.qxgmat.service.inline.UserPaperService;
  18. import com.qxgmat.service.inline.UserReportService;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiOperation;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.http.MediaType;
  23. import org.springframework.web.bind.annotation.*;
  24. import javax.servlet.http.HttpSession;
  25. import java.util.Collection;
  26. import java.util.List;
  27. @RestController("AdminUserPreviewController")
  28. @RequestMapping("/admin/user/preview")
  29. @Api(tags = "用户预习作业接口", description = "用户预习作业", produces = MediaType.APPLICATION_JSON_VALUE)
  30. public class UserPreviewController {
  31. @Autowired
  32. private ManagerLogService managerLogService;
  33. @Autowired
  34. private UserPaperService userPaperService;
  35. @Autowired
  36. private UsersService usersService;
  37. @Autowired
  38. private HomeworkPreviewService homeworkPreviewService;
  39. @RequestMapping(value = "/list", method = RequestMethod.GET)
  40. @ApiOperation(value = "预习作业列表", httpMethod = "GET")
  41. public Response<PageMessage<UserHomeworkPreviewListDto>> list(
  42. @RequestParam(required = false, defaultValue = "1") int page,
  43. @RequestParam(required = false, defaultValue = "100") int size,
  44. @RequestParam(required = false, defaultValue = "0") int category,
  45. @RequestParam(required = false, name = "user_id") Integer userId,
  46. @RequestParam(required = false, name = "preview_id") Integer previewId,
  47. @RequestParam(required = false, name="start_time") String startTime,
  48. @RequestParam(required = false, name="end_time") String endTime,
  49. HttpSession session) {
  50. Page<UserHomeworkPreviewRelation> p = homeworkPreviewService.listAdmin(page, size, category, userId, previewId, startTime, endTime);
  51. // 绑定用户
  52. Collection userIds = Transform.getIds(p, UserHomeworkPreviewRelation.class, "userId");
  53. List<User> userList = usersService.select(userIds);
  54. Transform.combine(p, userList, UserHomeworkPreviewRelation.class, "userId", "user", User.class, "id");
  55. // 绑定预习作业
  56. Collection previewIds = Transform.getIds(p, UserHomeworkPreviewRelation.class, "moduleId");
  57. List<HomeworkPreview> homeworkPreviewList = homeworkPreviewService.select(previewIds);
  58. Transform.combine(p, homeworkPreviewList, UserHomeworkPreviewRelation.class, "moduleId", "preview", HomeworkPreview.class, "id");
  59. List<UserHomeworkPreviewListDto> pr = Transform.convert(p, UserHomeworkPreviewListDto.class);
  60. return ResponseHelp.success(pr, page, size, p.getTotal());
  61. }
  62. }