UserInfoController.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.izouma.walkchina.web;
  2. import com.izouma.walkchina.domain.Result;
  3. import com.izouma.walkchina.domain.UserInfo;
  4. import com.izouma.walkchina.repo.UserInfoRepository;
  5. import org.springframework.data.domain.Example;
  6. import org.springframework.data.domain.PageRequest;
  7. import org.springframework.security.core.Authentication;
  8. import org.springframework.security.core.context.SecurityContextHolder;
  9. import org.springframework.web.bind.annotation.*;
  10. @RestController
  11. @RequestMapping("/user")
  12. public class UserInfoController {
  13. private final UserInfoRepository userInfoRepository;
  14. public UserInfoController(UserInfoRepository userInfoRepository) {
  15. this.userInfoRepository = userInfoRepository;
  16. }
  17. @GetMapping("/my")
  18. public Result my() {
  19. try {
  20. Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
  21. UserInfo userInfo = (UserInfo) authentication.getPrincipal();
  22. userInfo = userInfoRepository.findById(userInfo.getId()).orElse(null);
  23. if (userInfo != null) {
  24. return Result.ok(userInfo);
  25. }
  26. } catch (Exception ignored) {
  27. }
  28. return Result.error("无记录");
  29. }
  30. @GetMapping("/get")
  31. public Result get(UserInfo probe) {
  32. UserInfo userInfo = userInfoRepository.findOne(Example.of(probe)).orElse(null);
  33. if (userInfo != null) {
  34. return Result.ok(userInfo);
  35. } else {
  36. return Result.error("无结果");
  37. }
  38. }
  39. @GetMapping("/get/{id}")
  40. public Result getOne(@PathVariable Long id) {
  41. UserInfo userInfo = userInfoRepository.findById(id).orElse(null);
  42. if (userInfo != null) {
  43. return Result.ok(userInfo);
  44. }
  45. return Result.error("无记录");
  46. }
  47. @GetMapping("/all")
  48. public Result all(UserInfo probe) {
  49. return Result.ok(userInfoRepository.findAll(Example.of(probe)));
  50. }
  51. @GetMapping("/page")
  52. public Result page(@RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "20") int size, UserInfo probe) {
  53. return Result.ok(userInfoRepository.findAll(Example.of(probe), PageRequest.of(page, size)));
  54. }
  55. }