package com.izouma.walkchina.web; import com.izouma.walkchina.domain.Result; import com.izouma.walkchina.domain.UserInfo; import com.izouma.walkchina.repo.UserInfoRepository; import org.springframework.data.domain.Example; import org.springframework.data.domain.PageRequest; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/user") public class UserInfoController { private final UserInfoRepository userInfoRepository; public UserInfoController(UserInfoRepository userInfoRepository) { this.userInfoRepository = userInfoRepository; } @GetMapping("/my") public Result my() { try { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); UserInfo userInfo = (UserInfo) authentication.getPrincipal(); userInfo = userInfoRepository.findById(userInfo.getId()).orElse(null); if (userInfo != null) { return Result.ok(userInfo); } } catch (Exception ignored) { } return Result.error("无记录"); } @GetMapping("/get") public Result get(UserInfo probe) { UserInfo userInfo = userInfoRepository.findOne(Example.of(probe)).orElse(null); if (userInfo != null) { return Result.ok(userInfo); } else { return Result.error("无结果"); } } @GetMapping("/get/{id}") public Result getOne(@PathVariable Long id) { UserInfo userInfo = userInfoRepository.findById(id).orElse(null); if (userInfo != null) { return Result.ok(userInfo); } return Result.error("无记录"); } @GetMapping("/all") public Result all(UserInfo probe) { return Result.ok(userInfoRepository.findAll(Example.of(probe))); } @GetMapping("/page") public Result page(@RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "20") int size, UserInfo probe) { return Result.ok(userInfoRepository.findAll(Example.of(probe), PageRequest.of(page, size))); } }