From a732684ccf6a76c3d7e4048b3718e0dd401f6e5f Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 22 Apr 2024 16:13:52 +0800
Subject: [PATCH] 登录新增登录类型,根据类型过滤对应类型的角色信息返回
---
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index 871e434..682f01c 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -274,6 +274,30 @@
return buildUserInfo(user);
}
+ /**
+ * 用户信息
+ *
+ * @param tenantId
+ * @param account
+ * @param password
+ * @param type 登录类型 2:pc 3:app
+ * @return
+ */
+ @Override
+ public UserInfo userInfo(String tenantId, String account, String password, Integer type) {
+ User user = baseMapper.getUser(tenantId, account, password);
+ return buildUserInfo(user, type);
+ }
+
+ /**
+ * 用户信息
+ *
+ * @param tenantId
+ * @param account
+ * @param password
+ * @param userEnum
+ * @return
+ */
@Override
public UserInfo userInfo(String tenantId, String account, String password, UserEnum userEnum) {
User user = baseMapper.getUser(tenantId, account, password);
@@ -319,6 +343,36 @@
return userInfo;
}
+ /**
+ *
+ * @param user
+ * @param type 登录类型 2:pc 3:app
+ * @return
+ */
+ private UserInfo buildUserInfo(User user, Integer type) {
+ if (ObjectUtil.isEmpty(user)) {
+ return null;
+ }
+ UserInfo userInfo = new UserInfo();
+ userInfo.setUser(user);
+ if (Func.isNotEmpty(user)) {
+ // 判断登录类型设置对应的角色id
+ user.setRoleId(Strings.join(roleService.getRoleIdStrByRoleIdAndType(user.getRoleId(),type), ','));
+ // 设置角色别名
+ List<String> roleAlias = roleService.getRoleAliases(user.getRoleId());
+ userInfo.setRoles(roleAlias);
+ }
+ // 根据每个用户平台,建立对应的detail表,通过查询将结果集写入到detail字段
+ Kv detail = Kv.create().set("type", null);
+ UserOther userOther = new UserOther();
+ UserOther query = userOther.selectOne(Wrappers.<UserOther>lambdaQuery().eq(UserOther::getUserId, user.getId()));
+ if (ObjectUtil.isNotEmpty(query)) {
+ detail.set("ext", query.getUserExt());
+ }
+ userInfo.setDetail(detail);
+ return userInfo;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public UserInfo userInfo(UserOauth userOauth) {
--
Gitblit v1.9.3