Просмотр исходного кода

Merge branch 'han' of uskycloud/usky-cloud into master

gez 1 день назад
Родитель
Сommit
e774b0b2e0

+ 9 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TokenController.java

@@ -58,6 +58,9 @@ public class TokenController {
     @Autowired
     private MceSettingService mceSettingService;
 
+    @Autowired
+    private SysUserTenantService sysUserTenantService;
+
     @Resource
     private HttpServletRequest request;
     @Resource
@@ -78,9 +81,14 @@ public class TokenController {
         // 用户登录
         SysUser userInfo = sysLoginService.appLogin(form.getUsername(), form.getPassword(), form.getTenantId(),
                 form.getPhone(), form.getVerify(), form.getMethod());
+        Integer isDefaulTenant = sysUserTenantService.getIsDefaultByUser(userInfo.getUserId());
         LoginUser sysUser = new LoginUser();
         SysUserVO sysUserVO = BeanMapperUtils.map(userInfo, SysUserVO.class);
-        sysUserVO.setTenantId(userInfo.getTenantId());
+        if (null != form.getMethod() && form.getMethod().equals("switch")){
+            sysUserVO.setTenantId(userInfo.getTenantId());
+        }else {
+            sysUserVO.setTenantId(isDefaulTenant);
+        }
         sysUser.setSysUser(sysUserVO);
         Set<String> rolePermission = permissionService.getRolePermission(userInfo.getUserId());
         sysUser.setRoles(rolePermission);

+ 6 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysTenant.java

@@ -121,4 +121,10 @@ public class SysTenant implements Serializable {
      */
     @TableField(exist = false)
     private Integer originalTenantId;
+
+    /**
+     * 是否为默认租户(默认0; 0:否,1:是)
+     */
+    @TableField(exist = false)
+    private Boolean isDefault;
 }

+ 5 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SysUserTenantService.java

@@ -41,5 +41,10 @@ public interface SysUserTenantService extends CrudService<SysUserTenant> {
      */
     Boolean getIdByUser(Integer tenantId,Long userId);
 
+    /**
+     * 根据用户查询默认租户ID
+     */
+    Integer getIsDefaultByUser(Long userId);
+
     void updateUserTenant(SysUserTenant userTenant);
 }

+ 19 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysUserTenantServiceImpl.java

@@ -96,6 +96,15 @@ public class SysUserTenantServiceImpl extends AbstractCrudService<SysUserTenantM
             queryWrapper1.in(SysTenant::getId, tenantIdList)
                     .eq(SysTenant::getStatus, 0);
             tenantList = sysTenantService.list(queryWrapper1);
+            if (CollectionUtils.isNotEmpty(tenantList)) {
+                for (int j = 0; j < userTenants.size(); j++) {
+                    for (int k = 0; k < tenantList.size(); k++) {
+                        if (userTenants.get(j).getTenantId().equals(tenantList.get(k).getId())){
+                            tenantList.get(k).setIsDefault(userTenants.get(j).getIsDefault());
+                        }
+                    }
+                }
+            }
         }
         return tenantList;
     }
@@ -110,6 +119,16 @@ public class SysUserTenantServiceImpl extends AbstractCrudService<SysUserTenantM
         return userTenants.get(0).getIsDefault();
     }
 
+    @Override
+    @Transactional
+    public Integer getIsDefaultByUser(Long userId) {
+        LambdaQueryWrapper<SysUserTenant> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(SysUserTenant::getUserId, userId)
+                .eq(SysUserTenant::getIsDefault, 1);
+        List<SysUserTenant> userTenants = this.list(queryWrapper);
+        return userTenants.get(0).getTenantId();
+    }
+
     @Override
     @Transactional
     public void updateUserTenant(SysUserTenant userTenant) {