diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java
index 6c53c60c..a1eb8d90 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java
@@ -4,17 +4,22 @@ import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.log.annotation.SysLog;
+import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.system.api.entity.Tenant;
+import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.service.TenantService;
+import com.cloud.kicc.system.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
+import java.util.List;
/**
*
@@ -30,10 +35,10 @@ import java.util.Arrays;
public class TenantController {
private final TenantService tenantService;
+ private final UserService userService;
private LambdaQueryWrapper getQueryWrapper(Tenant tenant) {
return new LambdaQueryWrapper()
- .in(ArrayUtil.isNotEmpty(tenant.getTenantIds()), Tenant::getCode, tenant.getTenantIds())
.like(StrUtil.isNotBlank(tenant.getName()), Tenant::getName, tenant.getName())
.eq(StrUtil.isNotBlank(tenant.getCode()), Tenant::getCode, tenant.getCode())
.eq(StrUtil.isNotBlank(tenant.getStatus()), Tenant::getStatus, tenant.getStatus());
@@ -46,6 +51,14 @@ public class TenantController {
return R.ok(tenantPage.getRecords(), tenantPage.getTotal());
}
+ @GetMapping("/currentUserTenantList")
+ @PreAuthorize("@pms.hasPermission('tenant_view')")
+ public R currentUserTenantList() {
+ User user = userService.getCurrentUserInfo();
+ List tenantList = tenantService.list(Wrappers.query().lambda().in(Tenant::getId, StrUtil.split(",", user.getTenantId())));
+ return R.ok(tenantList);
+ }
+
@GetMapping("/{id:\\w+}")
public R getById(@PathVariable("id") String id) {
return R.ok(tenantService.getById(id));
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java
index 177bae4b..cb85b6ba 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java
@@ -69,11 +69,7 @@ public class UserController {
@GetMapping("/info")
public R info() {
- User user = userService.getOne(Wrappers.query().lambda().eq(User::getUserName, SecurityUtils.getUser().getUsername()));
- if (user == null) {
- return R.error("用户信息为空,请检查当前多租户下是否有当前用户信息!");
- }
- return R.ok(userService.getUserAuthority(user));
+ return R.ok(userService.getCurrentUserInfo());
}
@GetMapping("/{id:\\w+}")
@@ -219,11 +215,7 @@ public class UserController {
@GetMapping("/resetTenant")
@PreAuthorize("@pms.hasPermission('user_edit')")
public R resetTenant() {
- User user = userService.getOne(Wrappers.query().lambda().eq(User::getId, SecurityUtils.getUser().getId()));
- userService.getUserAuthority(user);
- if (user == null) {
- return R.error("用户信息为空,请检查当前多租户下是否有当前用户信息!");
- }
+ User user = userService.getCurrentUserInfo();
userService.setCurrentUserTenant(user.getTenantId());
return R.ok();
}
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java
index b10980ca..f7e1fc22 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java
@@ -44,4 +44,9 @@ public interface UserService extends IService {
*/
void setCurrentUserTenant(String... tenantIds);
+ /**
+ * 获取当前用户信息
+ * @return User
+ */
+ User getCurrentUserInfo();
}
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java
index b44a62ad..633c1577 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java
@@ -4,7 +4,9 @@ import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.common.core.exception.CommonException;
@@ -111,6 +113,15 @@ public class UserServiceImpl extends ServiceImpl implements Us
return user;
}
+ @Override
+ public User getCurrentUserInfo() {
+ User user = super.getOne(Wrappers.query().lambda().eq(User::getId, SecurityUtils.getUser().getId()));
+ this.getUserAuthority(user);
+ if (user == null) {
+ throw new CommonException("用户信息为空,请检查当前多租户下是否有当前用户信息!");
+ }
+ return user;
+ }
@Override
public void setCurrentUserTenant(String... tenantIds) {
diff --git a/kicc-ui/src/api/platform/system/controller/tenant.ts b/kicc-ui/src/api/platform/system/controller/tenant.ts
index 37fe1850..821aa0c5 100644
--- a/kicc-ui/src/api/platform/system/controller/tenant.ts
+++ b/kicc-ui/src/api/platform/system/controller/tenant.ts
@@ -11,7 +11,8 @@ enum Api {
add = '/system_proxy/system/tenant/save',
get = '/system_proxy/system/tenant',
edit = '/system_proxy/system/tenant/update',
- del = '/system_proxy/system/tenant/remove'
+ del = '/system_proxy/system/tenant/remove',
+ currentUserTenantList = '/system_proxy/system/tenant/currentUserTenantList'
}
/** 查询多租户列表 */
@@ -28,3 +29,6 @@ export const getTenant = (id: string) => defHttp.get({ url: `${Api.get}/
/** 删除多租户 */
export const delTenant = (ids: string) => defHttp.delete({ url: `${Api.del}/${ids}` });
+
+/** 查询当前用户多租户列表 */
+export const currentUserTenantList = () => defHttp.get({ url: Api.currentUserTenantList });
diff --git a/kicc-ui/src/layouts/default/setting/components/TenantSelect.vue b/kicc-ui/src/layouts/default/setting/components/TenantSelect.vue
index 75d9b6f1..0f6a271d 100644
--- a/kicc-ui/src/layouts/default/setting/components/TenantSelect.vue
+++ b/kicc-ui/src/layouts/default/setting/components/TenantSelect.vue
@@ -41,7 +41,7 @@