Forráskód Böngészése

Merge branch 'system-zyj' of uskycloud/usky-cloud into master

gez 5 napja
szülő
commit
2a16aa5f93

+ 2 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysTenantMapper.java

@@ -2,6 +2,7 @@ package com.usky.system.mapper;
 
 import com.usky.common.mybatis.core.CrudMapper;
 import com.usky.system.domain.SysTenant;
+import com.usky.system.domain.SysUserRole;
 import com.usky.system.service.vo.SysTenantTwoVo;
 import com.usky.system.service.vo.SysTenantVo;
 import org.apache.ibatis.annotations.Param;
@@ -46,6 +47,7 @@ public interface SysTenantMapper extends CrudMapper<SysTenant> {
     void cloneSysMobileBanner(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId,@Param("createBy") String createBy);
     void cloneSysTenantPlatform(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId);
     void cloneSysMobileTenantMenu(@Param("originalTenantId") Integer originalTenantId,@Param("tenantId") Integer tenantId);
+    List<SysUserRole> selectSysUserRoleList(@Param("originalTenantId") Integer originalTenantId, @Param("UserId") long UserId);
     void cloneSysRoleMenu(@Param("originalRoleId") long originalRoleId,@Param("roleId") long roleId);
     void insertSysUserRole(@Param("UserId") long UserId,@Param("roleId") long roleId,@Param("tenantId") long tenantId);
 

+ 39 - 26
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysTenantServiceImpl.java

@@ -2,14 +2,12 @@ package com.usky.system.service.impl;
 
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.common.security.utils.SecurityUtils;
-import com.usky.system.domain.SysDept;
-import com.usky.system.domain.SysRole;
-import com.usky.system.domain.SysTenant;
-import com.usky.system.domain.SysUserTenant;
+import com.usky.system.domain.*;
 import com.usky.system.mapper.SysTenantMapper;
 import com.usky.system.mapper.SysUserTenantMapper;
 import com.usky.system.service.ISysDeptService;
@@ -125,6 +123,12 @@ public class SysTenantServiceImpl extends AbstractCrudService<SysTenantMapper, S
         sysDept.setPhone(sysTenant.getPhoneNumber());
         sysDept.setCreateBy(SecurityUtils.getUsername());
         iSysDeptService.insertDept(sysDept);
+
+        TenantPlatformVo tenantPlatformVo = new TenantPlatformVo();
+        tenantPlatformVo.setPlatformIds(new Integer[]{Integer.parseInt(sysTenant.getSystemName())});
+        tenantPlatformVo.setRequestId(0);
+        tenantPlatformVo.setTenantId(tenantId);
+        sysTenantPlatformService.updateTenantPlatform(tenantPlatformVo);
     }
 
     @Override
@@ -169,25 +173,30 @@ public class SysTenantServiceImpl extends AbstractCrudService<SysTenantMapper, S
         sysTenantMapper.cloneSysMobileTenantMenu(originalTenantId,tenantId);
         //克隆用户角色和租户用户角色
         //sys_role
-        SysRole role = new SysRole();
-        long originalRoleId = SecurityUtils.getLoginUser().getSysUser().getRoles().get(0).getRoleId();
-        LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.select(SysRole::getRoleName,SysRole::getRoleKey,SysRole::getRoleSort,SysRole::getDataScope,SysRole::getStatus).eq(SysRole::getRoleId, originalRoleId);
-        SysRole one = roleService.getOne(queryWrapper);
-        role.setRoleName(one.getRoleName());
-        role.setRoleKey(one.getRoleKey());
-        role.setRoleSort(one.getRoleSort());
-        role.setDataScope(one.getDataScope());
-        role.setStatus(one.getStatus());
-        role.setCreateBy(SecurityUtils.getUsername());
-        role.setCreateTime(DateTime.now());
-        role.setTenantId(tenantId);
-        roleService.insertRole(role);
-        long roleId = role.getRoleId();
-        //sys_role_menu
-        sysTenantMapper.cloneSysRoleMenu(originalRoleId,roleId);
-        //sys_user_role
-        sysTenantMapper.insertSysUserRole(SecurityUtils.getUserId(),roleId,tenantId);
+        List<SysUserRole> sysUserRoleList = sysTenantMapper.selectSysUserRoleList(originalTenantId,SecurityUtils.getUserId());
+        if(sysUserRoleList.size()>0){
+            for (int i = 0; i < sysUserRoleList.size(); i++) {
+                SysRole role = new SysRole();
+                long originalRoleId = sysUserRoleList.get(i).getRoleId();
+                LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.select(SysRole::getRoleName,SysRole::getRoleKey,SysRole::getRoleSort,SysRole::getDataScope,SysRole::getStatus).eq(SysRole::getRoleId, originalRoleId);
+                SysRole one = roleService.getOne(queryWrapper);
+                role.setRoleName(one.getRoleName());
+                role.setRoleKey(one.getRoleKey());
+                role.setRoleSort(one.getRoleSort());
+                role.setDataScope(one.getDataScope());
+                role.setStatus(one.getStatus());
+                role.setCreateBy(SecurityUtils.getUsername());
+                role.setCreateTime(DateTime.now());
+                role.setTenantId(tenantId);
+                roleService.insertRole(role);
+                long roleId = role.getRoleId();
+                //sys_role_menu
+                sysTenantMapper.cloneSysRoleMenu(originalRoleId,roleId);
+                //sys_user_role
+                sysTenantMapper.insertSysUserRole(SecurityUtils.getUserId(),roleId,tenantId);
+            }
+        }
 
         //更新默认应用
         TenantPlatformVo tenantPlatformVo = new TenantPlatformVo();
@@ -212,9 +221,13 @@ public class SysTenantServiceImpl extends AbstractCrudService<SysTenantMapper, S
 
         LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.select(SysRole::getRoleId).eq(SysRole::getTenantId, tenantId);
-        SysRole one = roleService.getOne(queryWrapper);
-        long roleId = one.getRoleId();
-        sysTenantMapper.delSysRoleMenu(roleId);
+        List<SysRole> list = roleService.list(queryWrapper);
+        if(CollectionUtils.isNotEmpty(list)){
+            for (int i = 0; i < list.size(); i++) {
+                long roleId = list.get(i).getRoleId();
+                sysTenantMapper.delSysRoleMenu(roleId);
+            }
+        }
         sysTenantMapper.delSysRole(tenantId);
         sysTenantMapper.delSysUserRole(tenantId);
     }

+ 9 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysTenantMapper.xml

@@ -147,6 +147,15 @@
             tenant_id = #{originalTenantId}
         </where>
     </insert>
+    <select id="selectSysUserRoleList" resultType="com.usky.system.domain.SysUserRole">
+        SELECT
+        a.*
+        FROM
+        sys_user_role AS a
+        <where>
+            a.tenant_id = #{originalTenantId} and a.user_id = #{UserId}
+        </where>
+    </select>
     <insert id="cloneSysRoleMenu">
         insert into sys_role_menu (role_id,menu_id,menu_alias_name)
         select  #{roleId},menu_id,menu_alias_name