UserController.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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.dao.entity.User;
  9. import com.qxgmat.data.dao.entity.UserClass;
  10. import com.qxgmat.data.dao.entity.UserPay;
  11. import com.qxgmat.data.dao.entity.UserService;
  12. import com.qxgmat.dto.admin.extend.UserClassExtendDto;
  13. import com.qxgmat.dto.admin.extend.UserServiceExtendDto;
  14. import com.qxgmat.dto.admin.response.UserListDto;
  15. import com.qxgmat.service.UsersService;
  16. import com.qxgmat.service.inline.ManagerLogService;
  17. import com.qxgmat.service.inline.UserClassService;
  18. import com.qxgmat.service.inline.UserPayService;
  19. import com.qxgmat.service.inline.UserServiceService;
  20. import io.swagger.annotations.Api;
  21. import io.swagger.annotations.ApiOperation;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.http.MediaType;
  24. import org.springframework.web.bind.annotation.*;
  25. import javax.servlet.http.HttpSession;
  26. import java.util.Collection;
  27. import java.util.List;
  28. import java.util.Map;
  29. @RestController("AdminUserController")
  30. @RequestMapping("/admin/user")
  31. @Api(tags = "用户接口", description = "用户相关操作", produces = MediaType.APPLICATION_JSON_VALUE)
  32. public class UserController {
  33. @Autowired
  34. private ManagerLogService managerLogService;
  35. @Autowired
  36. private UsersService usersService;
  37. @Autowired
  38. private UserServiceService userServiceService;
  39. @Autowired
  40. private UserClassService userClassService;
  41. @Autowired
  42. private UserPayService userPayService;
  43. // @RequestMapping(value = "/add", method = RequestMethod.POST)
  44. // @ApiOperation(value = "添加用户信息", httpMethod = "POST")
  45. // public Response<User> add(@RequestBody @Validated UserDto dto, HttpServletRequest request) {
  46. // User entity = Transform.dtoToEntity(dto);
  47. // entity = userService.edit(entity);
  48. // managerLogService.log(request);
  49. // return ResponseHelp.success(Transform.convert(entity, UserDto.class));
  50. // }
  51. // @RequestMapping(value = "/edit", method = RequestMethod.PUT)
  52. // @ApiOperation(value = "修改用户信息", httpMethod = "PUT")
  53. // public Response<Boolean> edit(@RequestBody @Validated UserDto dto, HttpServletRequest request) {
  54. // User entity = Transform.dtoToEntity(dto);
  55. // entity = userService.edit(entity);
  56. // managerLogService.log(request);
  57. // return ResponseHelp.success(true);
  58. // }
  59. //
  60. // @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
  61. // @ApiOperation(value = "删除用户", httpMethod = "DELETE")
  62. // public Response<Boolean> delete(@RequestParam int id, HttpServletRequest request) {
  63. // managerLogService.log(request);
  64. // return ResponseHelp.success(userService.delete(id));
  65. // }
  66. @RequestMapping(value = "/detail", method = RequestMethod.GET)
  67. @ApiOperation(value = "获取用户", httpMethod = "GET")
  68. public Response<User> detail(@RequestParam int id, HttpSession session) {
  69. User entity = usersService.get(id);
  70. return ResponseHelp.success(Transform.convert(entity, User.class));
  71. }
  72. @RequestMapping(value = "/list", method = RequestMethod.GET)
  73. @ApiOperation(value = "用户列表", httpMethod = "GET")
  74. public Response<PageMessage<UserListDto>> list(
  75. @RequestParam(required = false, defaultValue = "1") int page,
  76. @RequestParam(required = false, defaultValue = "100") int size,
  77. @RequestParam(required = false, defaultValue = "") String keyword,
  78. @RequestParam(required = false) Boolean real,
  79. @RequestParam(required = false) String order,
  80. @RequestParam(required = false, defaultValue = "desc") String direction,
  81. HttpSession session) {
  82. Page<User> p = usersService.select(page, size, keyword, real, order, DirectionStatus.ValueOf(direction));
  83. List<UserListDto> pr = Transform.convert(p, UserListDto.class);
  84. Collection userIds = Transform.getIds(p, User.class, "id");
  85. // 绑定用户服务
  86. Map<Object, Collection<UserService>> serviceByUser = userServiceService.mapByUser(userIds);
  87. Transform.combine(pr, serviceByUser, UserListDto.class, "id", "services", UserServiceExtendDto.class);
  88. // 绑定用户课程
  89. Map<Object, Collection<UserClass>> classByUser = userClassService.mapByUser(userIds);
  90. Transform.combine(pr, classByUser, UserListDto.class, "id", "classes", UserClassExtendDto.class);
  91. return ResponseHelp.success(pr, page, size, p.getTotal());
  92. }
  93. @RequestMapping(value = "/pay/list", method = RequestMethod.GET)
  94. @ApiOperation(value = "用户消费列表", httpMethod = "GET")
  95. public Response<PageMessage<UserListDto>> listPay(
  96. @RequestParam(required = false, defaultValue = "1") int page,
  97. @RequestParam(required = false, defaultValue = "100") int size,
  98. @RequestParam(required = false) Integer userId,
  99. @RequestParam(required = false) String order,
  100. @RequestParam(required = false, defaultValue = "desc") String direction,
  101. HttpSession session) {
  102. Page<UserPay> p = userPayService.select(page, size);
  103. List<UserListDto> pr = Transform.convert(p, UserListDto.class);
  104. Collection userIds = Transform.getIds(p, User.class, "id");
  105. // 绑定用户服务
  106. Map<Object, Collection<UserService>> serviceByUser = userServiceService.mapByUser(userIds);
  107. Transform.combine(pr, serviceByUser, UserListDto.class, "id", "services", UserServiceExtendDto.class);
  108. // 绑定用户课程
  109. Map<Object, Collection<UserClass>> classByUser = userClassService.mapByUser(userIds);
  110. Transform.combine(pr, classByUser, UserListDto.class, "id", "classes", UserClassExtendDto.class);
  111. return ResponseHelp.success(pr, page, size, p.getTotal());
  112. }
  113. }