From b41c5599f2547ce25cde20a0aed84f832b8a83eb Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 24 十二月 2024 13:32:17 +0800 Subject: [PATCH] 修改 --- applet/src/main/java/com/jilongda/applet/security/SysUserDetailsService.java | 64 ++++++++++++++++++++++++++++++++ 1 files changed, 64 insertions(+), 0 deletions(-) diff --git a/applet/src/main/java/com/jilongda/applet/security/SysUserDetailsService.java b/applet/src/main/java/com/jilongda/applet/security/SysUserDetailsService.java new file mode 100644 index 0000000..5ef5472 --- /dev/null +++ b/applet/src/main/java/com/jilongda/applet/security/SysUserDetailsService.java @@ -0,0 +1,64 @@ +package com.jilongda.applet.security; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.jilongda.applet.mapper.TAppUserMapper; +import com.jilongda.applet.model.SecUser; +import com.jilongda.applet.model.TAppUser; +import com.jilongda.common.basic.Constant; +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 org.springframework.util.CollectionUtils; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + + +/** + * 用户登录认证信息查询 + * + * @author xiaochen + * @date Jun 29, 2019 + */ +@Component("loadUserDetailsService") +public class SysUserDetailsService implements UserDetailsService { + @Autowired + private TAppUserMapper appUserMapper; + + + @Override + public SecurityUserDetails loadUserByUsername(String openId) throws UsernameNotFoundException { + TAppUser user = appUserMapper.selectOne(Wrappers.lambdaQuery(TAppUser.class).eq(TAppUser::getOpenId, openId).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; + } +} -- Gitblit v1.7.1