فهرست منبع

fans功能定制修改

yzc 1 سال پیش
والد
کامیت
53272e89c5
18فایلهای تغییر یافته به همراه356 افزوده شده و 47 حذف شده
  1. 6 6
      hx-base/src/main/java/com/fjhx/base/system/SysMenuController.java
  2. 2 2
      hx-base/src/main/java/com/fjhx/base/system/SysRoleController.java
  3. 9 9
      hx-tenant/src/main/java/com/fjhx/tenant/controller/tenant/RoleTenantController.java
  4. 56 0
      hx-tenant/src/main/java/com/fjhx/tenant/controller/tenant/TenantInfoOpenController.java
  5. 10 10
      hx-tenant/src/main/java/com/fjhx/tenant/controller/tenant/UserTenantController.java
  6. 4 4
      hx-tenant/src/main/java/com/fjhx/tenant/service/tenant/impl/TenantInfoServiceImpl.java
  7. 4 4
      ruoyi-admin/src/main/resources/application-dev.yml
  8. 14 0
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
  9. 10 0
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
  10. 2 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/mybatis/interceptor/TenantInterceptor.java
  11. 50 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/TenantInfoBo.java
  12. 9 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
  13. 2 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
  14. 86 4
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
  15. 66 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  16. 17 5
      ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
  17. 5 2
      ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
  18. 4 1
      ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 6 - 6
hx-base/src/main/java/com/fjhx/base/system/SysMenuController.java

@@ -111,12 +111,12 @@ public class SysMenuController extends BaseController {
     @Log(title = "菜单管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{menuId}")
     public AjaxResult remove(@PathVariable("menuId") Long menuId) {
-        if (menuService.hasChildByMenuId(menuId)) {
-            return warn("存在子菜单,不允许删除");
-        }
-        if (menuService.checkMenuExistRole(menuId)) {
-            return warn("菜单已分配,不允许删除");
-        }
+//        if (menuService.hasChildByMenuId(menuId)) {
+//            return warn("存在子菜单,不允许删除");
+//        }
+//        if (menuService.checkMenuExistRole(menuId)) {
+//            return warn("菜单已分配,不允许删除");
+//        }
         return toAjax(menuService.deleteMenuById(menuId));
     }
 }

+ 2 - 2
hx-base/src/main/java/com/fjhx/base/system/SysRoleController.java

@@ -82,7 +82,7 @@ public class SysRoleController extends BaseController {
     /**
      * 新增角色
      */
-    @PreAuthorize("@ss.hasPermi('system:role:add')")
+//    @PreAuthorize("@ss.hasPermi('system:role:add')")
     @Log(title = "角色管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysRole role) {
@@ -99,7 +99,7 @@ public class SysRoleController extends BaseController {
     /**
      * 修改保存角色
      */
-    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+//    @PreAuthorize("@ss.hasPermi('system:role:edit')")
     @Log(title = "角色管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysRole role) {

+ 9 - 9
hx-tenant/src/main/java/com/fjhx/tenant/controller/tenant/RoleTenantController.java

@@ -82,16 +82,16 @@ public class RoleTenantController extends BaseController {
     public void edit(@Validated @RequestBody SysRole role) {
         LoginUser loginUser = getLoginUser();
         SysUser user = loginUser.getUser();
-        //非超管 禁止修改admin角色
-        SysRole oldSysRole = roleService.getById(role.getRoleId());
-        if (!user.isAdmin() && "admin".equals(oldSysRole.getRoleKey())) {
-            throw new ServiceException("您无权操作该数据");
-        }
+//        //非超管 禁止修改admin角色
+//        SysRole oldSysRole = roleService.getById(role.getRoleId());
+//        if (!user.isAdmin() && "admin".equals(oldSysRole.getRoleKey())) {
+//            throw new ServiceException("您无权操作该数据");
+//        }
         String tenantId = role.getTenantId();
-        if (!user.isAdmin() && !user.getTenantId().equals(tenantId)) {
-            //非超管 只能改本租户的数据
-            throw new ServiceException("您无权操作其他租户的数据");
-        }
+//        if (!user.isAdmin() && !user.getTenantId().equals(tenantId)) {
+//            //非超管 只能改本租户的数据
+//            throw new ServiceException("您无权操作其他租户的数据");
+//        }
         if (ObjectUtil.isEmpty(tenantId)) {
             throw new ServiceException("租户id不能为空");
         }

+ 56 - 0
hx-tenant/src/main/java/com/fjhx/tenant/controller/tenant/TenantInfoOpenController.java

@@ -0,0 +1,56 @@
+package com.fjhx.tenant.controller.tenant;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.file.entity.FileInfoVo;
+import com.fjhx.tenant.entity.tenant.dto.BindingMenuDto;
+import com.fjhx.tenant.entity.tenant.dto.TenantInfoDto;
+import com.fjhx.tenant.entity.tenant.dto.TenantInfoSelectDto;
+import com.fjhx.tenant.entity.tenant.po.TenantInfo;
+import com.fjhx.tenant.entity.tenant.vo.TenantInfoVo;
+import com.fjhx.tenant.service.tenant.TenantInfoService;
+import com.ruoyi.common.annotation.TenantIgnore;
+import com.ruoyi.common.constant.BaseSourceConstant;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.ruoyi.common.core.domain.entity.SysMenu;
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.common.utils.wrapper.SqlField;
+import com.ruoyi.system.service.ISysMenuService;
+import com.ruoyi.system.service.ISysRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 租户表 前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-15
+ */
+@TenantIgnore
+@DS(BaseSourceConstant.BASE)
+@RestController
+@RequestMapping("/open/tenantInfo")
+public class TenantInfoOpenController {
+
+    @Autowired
+    private TenantInfoService tenantInfoService;
+
+    /**
+     * 租户表列表
+     */
+    @GetMapping("/list")
+    public List<TenantInfo> list() {
+        return tenantInfoService.list(q->q.orderByAsc(TenantInfo::getId));
+    }
+
+}

+ 10 - 10
hx-tenant/src/main/java/com/fjhx/tenant/controller/tenant/UserTenantController.java

@@ -66,11 +66,11 @@ public class UserTenantController extends BaseController {
     public void add(@Validated @RequestBody SysUser user) {
         String tenantId = user.getTenantId();
 
-        //如果不是超管赋值登录用户所在租户
-        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
-        if (loginUser.getUserId() != 1) {
-            tenantId = loginUser.getTenantId();
-        }
+//        //如果不是超管赋值登录用户所在租户
+//        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
+//        if (loginUser.getUserId() != 1) {
+//            tenantId = loginUser.getTenantId();
+//        }
 
         if (ObjectUtil.isEmpty(tenantId)) {
             throw new ServiceException("租户id不能为空");
@@ -90,11 +90,11 @@ public class UserTenantController extends BaseController {
     @PutMapping
     public void edit(@Validated @RequestBody SysUser user) {
         String tenantId = user.getTenantId();
-        //如果不是超管赋值登录用户所在租户
-        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
-        if (loginUser.getUserId() != 1) {
-            tenantId = loginUser.getTenantId();
-        }
+//        //如果不是超管赋值登录用户所在租户
+//        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
+//        if (loginUser.getUserId() != 1) {
+//            tenantId = loginUser.getTenantId();
+//        }
 
         if (ObjectUtil.isEmpty(tenantId)) {
             throw new ServiceException("租户id不能为空");

+ 4 - 4
hx-tenant/src/main/java/com/fjhx/tenant/service/tenant/impl/TenantInfoServiceImpl.java

@@ -197,10 +197,10 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
     @Override
     public void bindingMenu(BindingMenuDto dto) {
         //只有超管能操作该接口
-        SysUser user = SecurityUtils.getLoginUser().getUser();
-        if (!user.isAdmin()){
-            throw new ServiceException("你无权操作该数据");
-        }
+//        SysUser user = SecurityUtils.getLoginUser().getUser();
+//        if (!user.isAdmin()){
+//            throw new ServiceException("你无权操作该数据");
+//        }
         String tenantId = dto.getTenantId();
         TenantInfo tenantInfo = this.getOne(q -> q.eq(TenantInfo::getTenantId, tenantId));
         if (tenantInfo == null) {

+ 4 - 4
ruoyi-admin/src/main/resources/application-dev.yml

@@ -6,16 +6,16 @@ spring:
       primary: base
       datasource:
         base:
-          url: jdbc:mysql://36.134.91.96:12333/bytesailing_base?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+          url: jdbc:mysql://121.37.194.75:30102/sanfan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
           username: root
-          password: Fjhx@pwd123
+          password: 5fWD*oa^nso@kmKa
 
     # redis 配置
   redis:
     # 地址
-    host: 36.134.91.96
+    host: 121.37.194.75
     # 端口,默认为6379
-    port: 13444
+    port: 30103
     # 数据库索引
     database: 5
     # 密码

+ 14 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java

@@ -114,6 +114,20 @@ public class SysRole extends BaseEntity {
     @TableField(exist = false)
     private Long userId;
 
+    /**
+     * 角色权限等级
+     */
+    private Integer authorityLv;
+
+    public Integer getAuthorityLv() {
+        return authorityLv;
+    }
+
+    public void setAuthorityLv(Integer authorityLv) {
+        this.authorityLv = authorityLv;
+    }
+
+
     public SysRole() {
 
     }

+ 10 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -8,6 +8,8 @@ import com.ruoyi.common.annotation.Excel.Type;
 import com.ruoyi.common.annotation.Excels;
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.xss.Xss;
+import lombok.Getter;
+import lombok.Setter;
 
 import javax.validation.constraints.Email;
 import javax.validation.constraints.NotBlank;
@@ -21,6 +23,8 @@ import java.util.List;
  *
  * @author ruoyi
  */
+@Getter
+@Setter
 public class SysUser extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
@@ -187,6 +191,12 @@ public class SysUser extends BaseEntity {
     @TableField(exist = false)
     private List<SysRole> sysRoleList;
 
+    private Long companyId;
+
+    @TableField(exist = false)
+    List<String> deptNameList;
+
+
     public SysUser() {
 
     }

+ 2 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/mybatis/interceptor/TenantInterceptor.java

@@ -8,6 +8,7 @@ import com.baomidou.dynamic.datasource.ds.ItemDataSource;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
 import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
+import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.framework.mybatis.holder.TenantHolder;
@@ -19,6 +20,7 @@ import org.springframework.stereotype.Component;
 import javax.sql.DataSource;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 
 @Component

+ 50 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/TenantInfoBo.java

@@ -0,0 +1,50 @@
+package com.ruoyi.system.domain.bo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 租户表
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-03-15
+ */
+@Getter
+@Setter
+public class TenantInfoBo extends BasePo {
+
+    /**
+     * 租户id
+     */
+    private String tenantId;
+
+    /**
+     * 企业名称
+     */
+    private String enterpriseName;
+
+    /**
+     * 状态 1启用 0禁用
+     */
+    private Integer status;
+
+    /**
+     * 流程id
+     */
+    private Long flowId;
+
+    /**
+     * 流程状态 1审核中 2审核通过 3审核不通过
+     */
+    private Integer flowStatus;
+
+    /**
+     * 钉钉企业id
+     */
+    private String corpid;
+
+}

+ 9 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java

@@ -2,6 +2,8 @@ package com.ruoyi.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.system.domain.bo.TenantInfoBo;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -11,6 +13,7 @@ import java.util.List;
  *
  * @author ruoyi
  */
+@Mapper
 public interface SysDeptMapper extends BaseMapper<SysDept> {
     /**
      * 查询部门管理数据
@@ -116,4 +119,10 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
      * @return 结果
      */
     public int deleteDeptById(Long deptId);
+
+    int addTenantInfo(TenantInfoBo tenantInfoBo);
+
+    int editTenantInfo(TenantInfoBo tenantInfoBo);
+
+    int delTenantInfo(String tenantId);
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.common.core.domain.entity.SysRole;
+import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
@@ -10,6 +11,7 @@ import java.util.List;
  *
  * @author ruoyi
  */
+@Mapper
 public interface SysRoleMapper extends BaseMapper<SysRole> {
     /**
      * 根据条件分页查询角色数据

+ 86 - 4
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ruoyi.system.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.constant.UserConstants;
@@ -12,15 +14,17 @@ import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.system.domain.bo.TenantInfoBo;
 import com.ruoyi.system.mapper.SysDeptMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.system.service.ISysRoleService;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -37,6 +41,11 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
     @Autowired
     private SysRoleMapper roleMapper;
 
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private ISysRoleService sysRoleService;
+
     /**
      * 查询部门管理数据
      *
@@ -194,14 +203,74 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      * @return 结果
      */
     @Override
+    @DSTransactional
     public int insertDept(SysDept dept) {
+        dept.setDeptId(IdWorker.getId());
+
+        //添加公司时将租户id赋值成自己
+        if (dept.getType() == 0) {
+            dept.setTenantId(String.valueOf(dept.getDeptId()));
+        }
+
         SysDept info = deptMapper.selectDeptById(dept.getParentId());
         // 如果父节点不为正常状态,则不允许新增子节点
         if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) {
             throw new ServiceException("部门停用,不允许新增");
         }
         dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
-        return deptMapper.insertDept(dept);
+        int addCount = deptMapper.insertDept(dept);
+        if (addCount <= 0) {
+            throw new ServiceException("添加部门失败");
+        }
+
+        //添加公司时添加租户
+        if (dept.getType() == 0) {
+            TenantInfoBo tenantInfoDto = new TenantInfoBo();
+            tenantInfoDto.setId(IdWorker.getId());
+            tenantInfoDto.setTenantId(String.valueOf(dept.getDeptId()));
+            tenantInfoDto.setEnterpriseName(dept.getDeptName());
+            deptMapper.addTenantInfo(tenantInfoDto);
+
+//            SysDept sysDept = new SysDept();
+//            sysDept.setParentId(0L);
+//            sysDept.setDeptName(tenantInfoDto.getEnterpriseName());
+//            sysDept.setOrderNum(1);
+//            sysDept.setStatus("0");
+//            sysDept.setType(0);
+//            sysDept.setTenantId(tenantInfoDto.getTenantId());
+//            sysDept.setCreateBy(SecurityUtils.getUsername());
+//            sysDept.setCreateTime(new Date());
+//            sysDeptService.save(sysDept);
+
+            SysUser sysUser = new SysUser();
+            sysUser.setDeptId(dept.getDeptId());
+            sysUser.setTenantId(tenantInfoDto.getTenantId());
+            sysUser.setUserName("admin");
+            sysUser.setNickName(tenantInfoDto.getEnterpriseName() + "管理员");
+
+            BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
+            String pwd = passwordEncoder.encode("123456");
+
+            sysUser.setPassword(pwd);
+            sysUser.setStatus("0");
+            sysUser.setCreateBy(SecurityUtils.getUsername());
+            sysUser.setCreateTime(new Date());
+            sysUserService.save(sysUser);
+
+            SysRole sysRole = new SysRole();
+            sysRole.setRoleName("管理员");
+            sysRole.setRoleKey("admin");
+            sysRole.setRoleSort(1);
+            sysRole.setDataScope("1");
+            sysRole.setStatus("0");
+            sysRole.setTenantId(tenantInfoDto.getTenantId());
+            sysRole.setCreateBy(SecurityUtils.getUsername());
+            sysRole.setCreateTime(new Date());
+            sysRoleService.save(sysRole);
+
+            sysRoleService.insertAuthUsers(sysRole.getRoleId(), new Long[]{sysUser.getUserId()});
+        }
+        return addCount;
     }
 
     /**
@@ -227,6 +296,13 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
             // 如果该部门是启用状态,则启用该部门的所有上级部门
             updateParentDeptStatusNormal(dept);
         }
+
+        //如果修改的是公司同步修改租户名称
+        TenantInfoBo tenantInfoBo = new TenantInfoBo();
+        tenantInfoBo.setTenantId(dept.getTenantId());
+        tenantInfoBo.setEnterpriseName(dept.getDeptName());
+        deptMapper.editTenantInfo(tenantInfoBo);
+
         return result;
     }
 
@@ -266,6 +342,12 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      */
     @Override
     public int deleteDeptById(Long deptId) {
+        //删除公司时同时删除租户
+        SysDept sysDept = this.getById(deptId);
+        if (Objects.equals(sysDept.getType(), 0)) {
+            deptMapper.delTenantInfo(String.valueOf(deptId));
+        }
+
         return deptMapper.deleteDeptById(deptId);
     }
 

+ 66 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.system.service.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+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.ruoyi.common.annotation.DataScope;
@@ -33,6 +34,7 @@ import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import javax.management.Query;
 import javax.validation.Validator;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -82,9 +84,42 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         List<SysRole> roleList = baseMapper.getRoleByUserIdList(userIdList);
 
         Map<Long, List<SysRole>> map = roleList.stream().collect(Collectors.groupingBy(SysRole::getUserId));
+
+        //赋值部门递归信息
+        List<Long> deptIds = sysUserList.stream().map(SysUser::getDeptId).collect(Collectors.toList());
+
+        //递归部门信息
+        List<SysDept> lists = new ArrayList<>();
+        List<Long> tempDeptIds = deptIds;
+        while (ObjectUtil.isNotEmpty(tempDeptIds)) {
+            List<SysDept> list = sysDeptService.list(Wrappers.<SysDept>query().in("dept_id", tempDeptIds));
+            lists.addAll(list);
+            tempDeptIds = list.stream().filter(item -> !item.getType().equals(0)).map(SysDept::getParentId).collect(Collectors.toList());
+        }
+
+        Map<Long, SysDept> sysDeptMap = lists.stream().collect(Collectors.groupingBy(SysDept::getDeptId,
+                Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
+
+
         for (SysUser sysUser : sysUserList) {
             List<SysRole> sysRoleList = map.getOrDefault(sysUser.getUserId(), Collections.emptyList());
             sysUser.setSysRoleList(sysRoleList);
+
+            //赋值部门信息
+            List<String> deptNameList = new ArrayList<>();
+            Long deptId = sysUser.getDeptId();
+            while (true) {
+                SysDept sysDept = sysDeptMap.get(deptId);
+                if(ObjectUtil.isEmpty(sysDept)){
+                    break;
+                }
+                deptNameList.add(sysDept.getDeptName());
+                if(sysDept.getType()==0){
+                    break;
+                }
+                deptId = sysDept.getParentId();
+            }
+            sysUser.setDeptNameList(deptNameList);
         }
 
         return sysUserList;
@@ -258,12 +293,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     @Transactional
     public int insertUser(SysUser user) {
+        //赋值部门归属公司
+        setUserCompanyId(user);
+
         // 新增用户信息
         int rows = userMapper.insertUser(user);
         // 新增用户岗位关联
         insertUserPost(user);
         // 新增用户与角色管理
         insertUserRole(user);
+
         return rows;
     }
 
@@ -287,6 +326,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     @Transactional
     public int updateUser(SysUser user) {
+        //赋值部门归属公司
+        setUserCompanyId(user);
+
         Long userId = user.getUserId();
         // 删除用户与角色关联
         userRoleMapper.deleteUserRoleByUserId(userId);
@@ -300,6 +342,30 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     /**
+     *赋值部门归属公司
+     */
+    private void setUserCompanyId(SysUser user){
+        //赋值部门归属公司
+        Long deptId = user.getDeptId();
+        if(ObjectUtil.isEmpty(deptId)){
+            throw new ServiceException("部门id不能为空!");
+        }
+        Long companyId = null;
+        while (ObjectUtil.isEmpty(companyId)){
+            SysDept sysDept = sysDeptService.getById(deptId);
+            if(ObjectUtil.isEmpty(sysDept)){
+                throw new ServiceException("查询不到部门信息!");
+            }
+            if(sysDept.getType()!=0){
+                deptId = sysDept.getParentId();
+                continue;
+            }
+            companyId = sysDept.getDeptId();
+        }
+        user.setCompanyId(companyId);
+    }
+
+    /**
      * 用户授权角色
      *
      * @param userId  用户ID

+ 17 - 5
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -59,9 +59,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<if test="status != null and status != ''">
 			AND sd.tatus = #{status}
 		</if>
-		<if test="tenantId != null and tenantId != ''">
-			AND d.tenant_id = #{tenantId}
-		</if>
+<!--		<if test="tenantId != null and tenantId != ''">-->
+<!--			AND d.tenant_id = #{tenantId}-->
+<!--		</if>-->
 		<!-- 数据范围过滤 -->
 		${params.dataScope}
 		order by d.parent_id, d.order_num
@@ -95,7 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</select>
     
     <select id="checkDeptExistUser" parameterType="Long" resultType="int">
-		select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0'
+		select count(1) from sys_user where dept_id = #{deptId} and user_name != 'admin' and del_flag = '0'
 	</select>
 	
 	<select id="hasChildByDeptId" parameterType="Long" resultType="int">
@@ -149,7 +149,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         sysdate()
         )
     </insert>
-	
+
 	<update id="updateDept" parameterType="SysDept">
  		update sys_dept
  		<set>
@@ -193,4 +193,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		update sys_dept set del_flag = '2' where dept_id = #{deptId}
 	</delete>
 
+	<insert id="addTenantInfo">
+		INSERT INTO tenant_info (id,tenant_id,enterprise_name,status,flow_status) values (#{id},#{tenantId},#{enterpriseName},1,2)
+	</insert>
+
+	<insert id="editTenantInfo">
+		update tenant_info SET enterprise_name = #{enterpriseName} where tenant_id = #{tenantId}
+	</insert>
+
+	<delete id="delTenantInfo">
+		delete from tenant_info where tenant_id = #{tenantId}
+	</delete>
+
 </mapper> 

+ 5 - 2
ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -23,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	
 	<sql id="selectRoleVo">
 	    select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
-            r.status, r.del_flag, r.create_time, r.remark, r.tenant_id
+            r.status, r.del_flag, r.create_time, r.remark, r.tenant_id,r.authority_lv
         from sys_role r
 	        left join sys_user_role ur on ur.role_id = r.role_id
 	        left join sys_user u on u.user_id = ur.user_id
@@ -122,7 +122,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="remark != null and remark != ''">remark,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
  			<if test="tenantId != null and tenantId != ''">tenant_id,</if>
- 			create_time
+			<if test="authorityLv != null and authorityLv != ''">authorityLv,</if>
+		create_time
  		)values(
  			<if test="roleId != null and roleId != 0">#{roleId},</if>
  			<if test="roleName != null and roleName != ''">#{roleName},</if>
@@ -135,6 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="remark != null and remark != ''">#{remark},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
  			<if test="tenantId != null and tenantId != ''">#{tenantId},</if>
+			<if test="authorityLv != null and authorityLv != ''">#{authorityLv},</if>
  			sysdate()
  		)
 	</insert>
@@ -151,6 +153,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="status != null and status != ''">status = #{status},</if>
  			<if test="remark != null">remark = #{remark},</if>
  			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+			<if test="authorityLv != null and authorityLv != ''">authority_lv = #{authorityLv},</if>
  			update_time = sysdate()
  		</set>
  		where role_id = #{roleId}

+ 4 - 1
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -98,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		select
 		u.user_id, u.dept_id, u.nick_name, u.nick_name_en, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,
 		u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader_id,
-		d.director_id, d.type,u.job_number,u.user_type,u.tenant_id,u.user_code
+		d.director_id, d.type,u.job_number,u.user_type,u.tenant_id,u.user_code,company_id
 		from
 		sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
@@ -309,6 +309,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="jobNumber != null and jobNumber != ''">job_number,</if>
         <if test="userCode != null and userCode != ''">user_code,</if>
 		<if test="nickNameEn != null and nickNameEn != ''">nick_name_en,</if>
+		<if test="companyId != null and companyId != ''">company_id,</if>
 		create_time
         )values(
         <if test="userId != null and userId != ''">#{userId},</if>
@@ -328,6 +329,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="jobNumber != null and jobNumber != ''">#{jobNumber},</if>
         <if test="userCode != null and userCode != ''">#{userCode},</if>
 		<if test="nickNameEn != null and nickNameEn != ''">#{nickNameEn},</if>
+		<if test="companyId != null and companyId != ''">#{companyId},</if>
 		sysdate()
         )
     </insert>
@@ -354,6 +356,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="jobNumber != null and jobNumber != ''">job_number = #{jobNumber},</if>
 			<if test="userCode != null and userCode != ''">user_code = #{userCode},</if>
 			<if test="nickNameEn != null and nickNameEn != ''">nick_name_en = #{nickNameEn},</if>
+			<if test="companyId != null and companyId != ''">company_id = #{companyId},</if>
 			update_time = sysdate()
         </set>
         where user_id = #{userId}