package com.hollywood.applet.security;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.hollywood.applet.service.TUserService;
|
import com.hollywood.applet.utils.RandomStringGenerator;
|
import com.hollywood.common.model.TUser;
|
import com.hollywood.common.utils.SpringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Objects;
|
|
|
/**
|
* 用户登录认证信息查询
|
*
|
* @author xiaochen
|
* @date Jun 29, 2019
|
*/
|
@Component("loadUserDetailsService")
|
public class SysUserDetailsService implements UserDetailsService {
|
@Autowired
|
private TUserService userService;
|
|
|
@Override
|
public SecurityUserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
TUser user = userService.getOne(Wrappers.lambdaQuery(TUser.class).eq(TUser::getUserPhone, username).last(" LIMIT 1"));
|
if (Objects.isNull(user)) {
|
// throw new UsernameNotFoundException("该用户不存在");
|
//新增用户
|
user = new TUser();
|
user.setUserPhone(username);
|
user.setVipType(3);
|
user.setSex(0);
|
user.setStatus(1);
|
user.setAuditStatus(0);
|
user.setNickName("用户"+RandomStringGenerator.generateRandomString());
|
user.setAdvatar("http://bizuphk.oss-cn-hongkong.aliyuncs.com/hollywood/1716371352157%E6%9C%AA%E6%A0%87%E9%A2%98-1.png");
|
userService.save(user);
|
}
|
SecurityUserDetails vo = SpringUtils.beanCopy(user, SecurityUserDetails.class);
|
/*getAdminPermission(vo);
|
if (user.getAccount().equals(Constant.ADMIN)) {
|
getAdminPermission(vo);
|
} else {
|
List<SecRole> roles = secRoleMapper.selectRolesByUid(user.getId());
|
List<String> roleIds = roles.stream().map(SecRole::getId).collect(Collectors.toList());
|
List<SecResourceVO> resources;
|
if (CollectionUtils.isEmpty(roleIds)) {
|
resources = new ArrayList<>();
|
} else {
|
resources = secUserService.selectUserResourcesTag(user.getId());
|
}
|
vo.setRoles(roles);
|
vo.setResources(resources);
|
}
|
// 更新登录时间
|
SecurityUserDetails securityUserDetails = new SecurityUserDetails();
|
securityUserDetails.setId(user.getId());
|
securityUserDetails.setLastLoginTime(LocalDateTime.now());
|
secUserMapper.updateById(securityUserDetails);*/
|
return vo;
|
}
|
|
}
|