疯狂的狮子Li
2023-03-13 0ec6fbd34ca4633a415e17ee50450f12e815a4aa
fix 修复 管理租户被修改导致无法登录超管账号问题
已修改4个文件
23 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/service/SysLoginService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysTenantController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTenantService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/service/SysLoginService.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.GlobalConstants;
import com.ruoyi.common.core.constant.TenantConstants;
import com.ruoyi.common.core.domain.dto.RoleDTO;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.domain.model.XcxLoginUser;
@@ -325,6 +326,9 @@
        if (!TenantHelper.isEnable()) {
            return;
        }
        if (TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) {
            return;
        }
        SysTenantVo tenant = tenantService.queryByTenantId(tenantId);
        if (ObjectUtil.isNull(tenant)) {
            log.info("登录租户:{} 不存在.", tenantId);
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysTenantController.java
@@ -104,6 +104,7 @@
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysTenantBo bo) {
        sysTenantService.checkTenantAllowed(bo.getTenantId());
        if (!sysTenantService.checkCompanyNameUnique(bo)) {
            throw new ServiceException("修改租户'" + bo.getCompanyName() + "'失败,公司名称已存在");
        }
@@ -118,6 +119,7 @@
    @Log(title = "租户", businessType = BusinessType.UPDATE)
    @PutMapping("/changeStatus")
    public R<Void> changeStatus(@RequestBody SysTenantBo bo) {
        sysTenantService.checkTenantAllowed(bo.getTenantId());
        return toAjax(sysTenantService.updateTenantStatus(bo));
    }
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTenantService.java
@@ -51,6 +51,11 @@
    int updateTenantStatus(SysTenantBo bo);
    /**
     * 校验租户是否允许操作
     */
    void checkTenantAllowed(String tenantId);
    /**
     * 校验并批量删除租户信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java
@@ -272,6 +272,18 @@
    }
    /**
     * 校验租户是否允许操作
     *
     * @param tenantId 租户ID
     */
    @Override
    public void checkTenantAllowed(String tenantId) {
        if (ObjectUtil.isNotNull(tenantId) && TenantConstants.DEFAULT_TENANT_ID.equals(tenantId)) {
            throw new ServiceException("不允许操作管理租户");
        }
    }
    /**
     * 批量删除租户
     */
    @CacheEvict(cacheNames = CacheNames.SYS_TENANT, allEntries = true)