package com.izouma.walkchina.service; import cn.binarywang.wx.miniapp.api.WxMaService; import com.izouma.walkchina.domain.UserInfo; import com.izouma.walkchina.exception.ServiceException; import com.izouma.walkchina.repo.UserInfoRepository; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Example; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; @Service @Slf4j public class UserInfoService implements UserDetailsService { @Autowired private UserInfoRepository userInfoRepository; @Autowired private WxMaService wxMaService; @Override public UserInfo loadUserByUsername(String username) { log.info("loadUserByUsername {}", username); UserInfo userInfo = new UserInfo(); userInfo.setUsername(username); return userInfoRepository.findOne(Example.of(userInfo)).orElse(null); } public UserInfo registerByUserPwd(String username, String password) throws ServiceException { UserInfo userInfo = userInfoRepository.findOne(Example.of(UserInfo.builder().username(username).build())).orElse(null); if (userInfo != null) { throw new ServiceException("该用户已存在"); } userInfo = UserInfo.builder() .username(username) .password(new BCryptPasswordEncoder().encode(password)) .build(); userInfo = userInfoRepository.save(userInfo); return userInfo; } }