package com.jilongda.applet.security;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.jilongda.applet.model.SecUser;
|
import com.jilongda.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 SecUserMapper secUserMapper;
|
@Autowired
|
private SecRoleMapper secRoleMapper;
|
// @Autowired
|
// private SecResourcesMapper secResourcesMapper;
|
@Autowired
|
private SecUserService secUserService;
|
|
|
@Override
|
public SecurityUserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
SecUser user = secUserMapper.selectOne(Wrappers.lambdaQuery(SecUser.class).eq(SecUser::getPhone, username).last(" LIMIT 1"));
|
if (Objects.isNull(user)) {
|
throw new UsernameNotFoundException("无效手机号码");
|
}
|
SecurityUserDetails vo = SpringUtils.beanCopy(user, SecurityUserDetails.class);
|
// if (user.getAccount().equals(Constant.ADMIN)) {
|
// getAdminPermission(vo);
|
// } else {
|
// List<SecRole> roles = secRoleMapper.selectRolesByUid(user.getId());
|
// List<Long> roleIds = roles.stream().map(SecRole::getId).collect(Collectors.toList());
|
// List<SecResourceVO> resources;
|
// if (CollectionUtils.isEmpty(roleIds)) {
|
// resources = new ArrayList<>();
|
// } else {
|
// resources = secUserService.getResourceTag(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;
|
}
|
|
|
/**
|
* 为管理员赋所有权限
|
*
|
* @param
|
* @return
|
*/
|
// private SecurityUserDetails getAdminPermission(SecurityUserDetails details) {
|
// List<SecRole> roles = secRoleMapper.selectList(Wrappers.emptyWrapper());
|
// List<SecResourceVO> resources = secUserService.selectUserResourcesTag(details.getId());
|
// details.setRoles(roles);
|
// details.setResources(resources);
|
// return details;
|
// }
|
}
|