UserInfoService.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package com.izouma.walkchina.service;
  2. import cn.binarywang.wx.miniapp.api.WxMaService;
  3. import com.izouma.walkchina.domain.UserInfo;
  4. import com.izouma.walkchina.exception.ServiceException;
  5. import com.izouma.walkchina.repo.UserInfoRepository;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.data.domain.Example;
  9. import org.springframework.security.core.userdetails.UserDetailsService;
  10. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  11. import org.springframework.stereotype.Service;
  12. @Service
  13. @Slf4j
  14. public class UserInfoService implements UserDetailsService {
  15. @Autowired
  16. private UserInfoRepository userInfoRepository;
  17. @Autowired
  18. private WxMaService wxMaService;
  19. @Override
  20. public UserInfo loadUserByUsername(String username) {
  21. log.info("loadUserByUsername {}", username);
  22. UserInfo userInfo = new UserInfo();
  23. userInfo.setUsername(username);
  24. return userInfoRepository.findOne(Example.of(userInfo)).orElse(null);
  25. }
  26. public UserInfo registerByUserPwd(String username, String password) throws ServiceException {
  27. UserInfo userInfo = userInfoRepository.findOne(Example.of(UserInfo.builder().username(username).build())).orElse(null);
  28. if (userInfo != null) {
  29. throw new ServiceException("该用户已存在");
  30. }
  31. userInfo = UserInfo.builder()
  32. .username(username)
  33. .password(new BCryptPasswordEncoder().encode(password))
  34. .build();
  35. userInfo = userInfoRepository.save(userInfo);
  36. return userInfo;
  37. }
  38. }