ソースを参照

Merge branch 'system-zyj' into system-165

james 1 週間 前
コミット
390b0ad0a0

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

@@ -1,6 +1,7 @@
 package com.usky.system.domain;
 
 
+import cn.hutool.core.date.DateTime;
 import com.usky.common.core.bean.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -54,6 +55,11 @@ public class SysRole extends BaseEntity
     /** 部门组(数据权限) */
     private Long[] deptIds;
 
+    /**
+     * 创建时间
+     */
+    private DateTime createTime;
+
     /** 租户ID */
     private Integer tenantId;
 
@@ -211,6 +217,15 @@ public class SysRole extends BaseEntity
     {
         this.deptIds = deptIds;
     }
+    public DateTime getCreateTime()
+{
+    return createTime;
+}
+
+    public void setCreateTime(DateTime createTime)
+    {
+        this.createTime = createTime;
+    }
     
     @Override
     public String toString() {

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

@@ -46,6 +46,8 @@ 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);
+    void cloneSysRoleMenu(@Param("originalRoleId") long originalRoleId,@Param("roleId") long roleId);
+    void insertSysUserRole(@Param("UserId") long UserId,@Param("roleId") long roleId,@Param("tenantId") long tenantId);
 
     void delSysTenant(@Param("tenantId") Integer tenantId);
     void delSysDept(@Param("tenantId") Integer tenantId);
@@ -57,4 +59,7 @@ public interface SysTenantMapper extends CrudMapper<SysTenant> {
     void delSysMobileBanner(@Param("tenantId") Integer tenantId);
     void delSysMobileTenantConfig(@Param("tenantId") Integer tenantId);
     void delSysMobileTenantMenu(@Param("tenantId") Integer tenantId);
+    void delSysRoleMenu(@Param("roleId") long roleId);
+    void delSysRole(@Param("tenantId") Integer tenantId);
+    void delSysUserRole(@Param("tenantId") Integer tenantId);
 }

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

@@ -1,29 +1,29 @@
 package com.usky.system.service.impl;
 
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.SysUser;
 import com.usky.system.domain.SysUserTenant;
 import com.usky.system.mapper.SysTenantMapper;
 import com.usky.system.mapper.SysUserTenantMapper;
 import com.usky.system.service.ISysDeptService;
+import com.usky.system.service.ISysRoleService;
 import com.usky.system.service.SysTenantPlatformService;
 import com.usky.system.service.SysTenantService;
 import com.usky.system.service.vo.SysTenantOneVo;
 import com.usky.system.service.vo.SysTenantTwoVo;
 import com.usky.system.service.vo.SysTenantVo;
 import com.usky.system.service.vo.TenantPlatformVo;
-import io.swagger.models.auth.In;
-import org.apache.ibatis.annotations.Select;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
-import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
@@ -46,6 +46,8 @@ public class SysTenantServiceImpl extends AbstractCrudService<SysTenantMapper, S
     private SysTenantMapper sysTenantMapper;
     @Autowired
     private SysTenantPlatformService sysTenantPlatformService;
+    @Autowired
+    private ISysRoleService roleService;
 
     @Override
     public List<SysTenantVo> getUserData() {
@@ -165,6 +167,27 @@ public class SysTenantServiceImpl extends AbstractCrudService<SysTenantMapper, S
         //克隆应用授权和权限配置
         sysTenantMapper.cloneSysTenantPlatform(originalTenantId,tenantId);
         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);
 
         //更新默认应用
         TenantPlatformVo tenantPlatformVo = new TenantPlatformVo();
@@ -186,6 +209,14 @@ public class SysTenantServiceImpl extends AbstractCrudService<SysTenantMapper, S
         sysTenantMapper.delSysMobileBanner(tenantId);
         sysTenantMapper.delSysMobileTenantConfig(tenantId);
         sysTenantMapper.delSysMobileTenantMenu(tenantId);
+
+        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);
+        sysTenantMapper.delSysRole(tenantId);
+        sysTenantMapper.delSysUserRole(tenantId);
     }
 
     @Override

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

@@ -147,6 +147,18 @@
             tenant_id = #{originalTenantId}
         </where>
     </insert>
+    <insert id="cloneSysRoleMenu">
+        insert into sys_role_menu (role_id,menu_id,menu_alias_name)
+        select  #{roleId},menu_id,menu_alias_name
+        from sys_role_menu
+        <where>
+            role_id = #{originalRoleId}
+        </where>
+    </insert>
+    <insert id="insertSysUserRole">
+        insert into sys_user_role (user_id,role_id,tenant_id)
+        values(#{UserId},#{roleId},#{tenantId})
+    </insert>
 
     <delete id="delSysTenant">
         delete from sys_tenant WHERE id = #{tenantId}
@@ -178,5 +190,14 @@
     <delete id="delSysMobileTenantMenu">
         delete from sys_mobile_tenant_menu where tenant_id = #{tenantId}
     </delete>
+    <delete id="delSysRoleMenu">
+        delete from sys_role_menu where role_id = #{roleId}
+    </delete>
+    <delete id="delSysRole">
+        delete from sys_role where tenant_id = #{tenantId}
+    </delete>
+    <delete id="delSysUserRole">
+        delete from sys_user_role where tenant_id = #{tenantId}
+    </delete>
 
 </mapper>