UserAskController.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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.constants.enums.status.DirectionStatus;
  8. import com.qxgmat.data.constants.enums.user.AskTarget;
  9. import com.qxgmat.data.constants.enums.user.MoneyRange;
  10. import com.qxgmat.data.dao.entity.Manager;
  11. import com.qxgmat.data.dao.entity.Question;
  12. import com.qxgmat.data.dao.entity.User;
  13. import com.qxgmat.data.dao.entity.UserAsk;
  14. import com.qxgmat.dto.admin.extend.ManagerExtendDto;
  15. import com.qxgmat.dto.admin.extend.QuestionExtendDto;
  16. import com.qxgmat.dto.admin.extend.UserExtendDto;
  17. import com.qxgmat.dto.admin.request.UserAskDto;
  18. import com.qxgmat.dto.admin.request.UserAskOrderDto;
  19. import com.qxgmat.dto.admin.response.UserAskListDto;
  20. import com.qxgmat.service.ManagerService;
  21. import com.qxgmat.service.UsersService;
  22. import com.qxgmat.service.inline.ManagerLogService;
  23. import com.qxgmat.service.inline.QuestionService;
  24. import com.qxgmat.service.inline.UserAskService;
  25. import io.swagger.annotations.Api;
  26. import io.swagger.annotations.ApiOperation;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.http.MediaType;
  29. import org.springframework.validation.annotation.Validated;
  30. import org.springframework.web.bind.annotation.*;
  31. import javax.servlet.http.HttpServletRequest;
  32. import javax.servlet.http.HttpSession;
  33. import java.util.Collection;
  34. import java.util.List;
  35. @RestController("AdminUserAskController")
  36. @RequestMapping("/admin/user_ask")
  37. @Api(tags = "用户提问接口", description = "用户提问相关", produces = MediaType.APPLICATION_JSON_VALUE)
  38. public class UserAskController {
  39. @Autowired
  40. private ManagerLogService managerLogService;
  41. @Autowired
  42. private UserAskService userAskService;
  43. @Autowired
  44. private QuestionService questionService;
  45. @Autowired
  46. private UsersService usersService;
  47. @Autowired
  48. private ManagerService managerService;
  49. @RequestMapping(value = "/edit", method = RequestMethod.PUT)
  50. @ApiOperation(value = "修改提问信息", httpMethod = "PUT")
  51. public Response<Boolean> edit(@RequestBody @Validated UserAskDto dto, HttpServletRequest request) {
  52. UserAsk entity = Transform.dtoToEntity(dto);
  53. entity = userAskService.edit(entity);
  54. managerLogService.log(request);
  55. return ResponseHelp.success(true);
  56. }
  57. @RequestMapping(value = "/order", method = RequestMethod.PUT)
  58. @ApiOperation(value = "修改提问排序", httpMethod = "PUT")
  59. public Response<Boolean> order(@RequestBody @Validated UserAskOrderDto dto, HttpServletRequest request) {
  60. userAskService.order(dto.getId(), dto.getOrder());
  61. return ResponseHelp.success(true);
  62. }
  63. @RequestMapping(value = "/list", method = RequestMethod.GET)
  64. @ApiOperation(value = "提问列表", httpMethod = "GET")
  65. public Response<PageMessage<UserAskListDto>> list(
  66. @RequestParam(required = false, defaultValue = "1") int page,
  67. @RequestParam(required = false, defaultValue = "100") int size,
  68. @RequestParam(required = false) int category,
  69. @RequestParam(required = false, name = "user_id") int userId,
  70. @RequestParam(required = false, name = "question_id") int questionId,
  71. @RequestParam(required = false, name="target") String target,
  72. @RequestParam(required = false, name="status") Integer status,
  73. @RequestParam(required = false, name="show_status") Integer showStatus,
  74. @RequestParam(required = false, name="money_rang") Integer moneyRang,
  75. @RequestParam(required = false, defaultValue = "id") String order,
  76. @RequestParam(required = false, defaultValue = "desc") String direction,
  77. HttpSession session) {
  78. Page<UserAsk> p = userAskService.listWithUser(page, size, category, userId, questionId, AskTarget.ValueOf(target), status, showStatus, MoneyRange.ValueOf(moneyRang), order, DirectionStatus.ValueOf(direction));
  79. List<UserAskListDto> pr = Transform.convert(p, UserAskListDto.class);
  80. // 绑定题目
  81. Collection questionIds = Transform.getIds(p, UserAsk.class, "questionId");
  82. List<Question> questionList = questionService.select(questionIds);
  83. List<QuestionExtendDto> questionExtendDtoList = Transform.convert(questionList, QuestionExtendDto.class);
  84. Transform.combine(pr, questionExtendDtoList, UserAskListDto.class, "questionId", "question", QuestionExtendDto.class, "id");
  85. // 绑定用户
  86. Collection userIds = Transform.getIds(p, UserAsk.class, "userId");
  87. List<User> userList = usersService.select(userIds);
  88. Transform.combine(pr, userList, UserAskListDto.class, "userId", "user", User.class, "id", UserExtendDto.class);
  89. // 绑定管理员
  90. Collection managerIds = Transform.getIds(p, UserAsk.class, "managerId");
  91. List<Manager> managerList = managerService.select(managerIds);
  92. Transform.combine(pr, managerList, UserAskListDto.class, "managerId", "manager", Manager.class, "id", ManagerExtendDto.class);
  93. return ResponseHelp.success(pr, page, size, p.getTotal());
  94. }
  95. }