Browse Source

base修改

yzc 1 year ago
parent
commit
0098b07ce2

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

@@ -10,14 +10,14 @@ import com.ruoyi.common.annotation.TenantIgnore;
 import com.ruoyi.common.constant.BaseSourceConstant;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.service.ISysPostService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
@@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.*;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -47,6 +48,8 @@ public class UserTenantController extends BaseController {
 
     @Autowired
     private ISysPostService postService;
+    @Autowired
+    private ISysDeptService sysDeptService;
 
     /**
      * 获取用户列表
@@ -81,6 +84,10 @@ public class UserTenantController extends BaseController {
         }
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+
+        //赋值归属公司
+        user.setCompanyId(getCompanyByDeptId(user.getDeptId()).getDeptId());
+
         userService.insertUser(user);
     }
 
@@ -111,9 +118,24 @@ public class UserTenantController extends BaseController {
         if (StrUtil.isNotBlank(password)) {
             user.setPassword(SecurityUtils.encryptPassword(password));
         }
+
+        //赋值归属公司
+        user.setCompanyId(getCompanyByDeptId(user.getDeptId()).getDeptId());
+
         userService.updateUser(user);
     }
 
+    private SysDept getCompanyByDeptId(Long deptId) {
+        SysDept dept = sysDeptService.getById(deptId);
+        if (ObjectUtil.isEmpty(dept)) {
+            throw new ServiceException("查询不到该部门公司信息");
+        }
+        if (Objects.equals(dept.getType(), 0)) {
+            return dept;
+        }
+        return getCompanyByDeptId(dept.getParentId());
+    }
+
     /**
      * 修改用户业务员编号
      */
@@ -172,7 +194,7 @@ public class UserTenantController extends BaseController {
      * 根据角色id列表获取用户分组列表
      */
     @PostMapping("/getUserListByRoleIds")
-    public Map<Long,List<SysUser>> getUserListByRoleIds(@RequestBody List<Long> roleIds){
+    public Map<Long, List<SysUser>> getUserListByRoleIds(@RequestBody List<Long> roleIds) {
         return userService.getUserListByRoleIds(roleIds);
     }
 

+ 11 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java

@@ -31,6 +31,17 @@ public class SecurityUtils {
     }
 
     /**
+     * 获取公司ID
+     **/
+    public static Long getCompanyId() {
+        try {
+            return getLoginUser().getUser().getCompanyId();
+        } catch (Exception e) {
+            throw new ServiceException("获取用户归属公司ID异常", HttpStatus.UNAUTHORIZED);
+        }
+    }
+
+    /**
      * 获取部门ID
      **/
     public static Long getDeptId() {

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java

@@ -3,6 +3,7 @@ package com.ruoyi.system.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.system.domain.SysUserRole;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -12,6 +13,7 @@ import java.util.List;
  *
  * @author ruoyi
  */
+@Mapper
 public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
     /**
      * 通过用户ID删除用户和角色关联
@@ -65,5 +67,5 @@ public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
     /**
      * 根据角色KEY获取用户
      */
-    List<Long> getUserIdsByRoleKey(@Param("roleKey") String roleKey);
+    List<Long> getUserIdsByRoleKey(@Param("user") SysUser sysUser);
 }

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -259,6 +259,11 @@ public interface ISysUserService extends IService<SysUser> {
     List<Long> getUserIdsByRoleKey(String roleKey);
 
     /**
+     * 根据角色KEY和公司id获取用户id列表
+     */
+    List<Long> getUserIdsByRoleKey(String roleKey, Long companyId);
+
+    /**
      * 根据角色id列表获取用户分组列表
      */
     Map<Long, List<SysUser>> getUserListByRoleIds(List<Long> roleIds);

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

@@ -207,10 +207,10 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
     public int insertDept(SysDept dept) {
         dept.setDeptId(IdWorker.getId());
 
-        //添加公司时将租户id赋值成自己
-        if (dept.getType() == 0) {
-            dept.setTenantId(String.valueOf(dept.getDeptId()));
-        }
+//        //添加公司时将租户id赋值成自己
+//        if (dept.getType() == 0) {
+//            dept.setTenantId(String.valueOf(dept.getDeptId()));
+//        }
 
         SysDept info = deptMapper.selectDeptById(dept.getParentId());
         // 如果父节点不为正常状态,则不允许新增子节点
@@ -223,53 +223,53 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
             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()});
-        }
+//        //添加公司时添加租户
+//        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;
     }
 

+ 11 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -3,7 +3,6 @@ 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;
@@ -34,7 +33,6 @@ 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;
@@ -690,7 +688,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     @Override
     public List<Long> getUserIdsByRoleKey(String roleKey) {
-        return userRoleMapper.getUserIdsByRoleKey(roleKey);
+        SysUser user = new SysUser();
+        user.setRoleKey(roleKey);
+        return userRoleMapper.getUserIdsByRoleKey(user);
+    }
+
+    @Override
+    public List<Long> getUserIdsByRoleKey(String roleKey, Long companyId) {
+        SysUser user = new SysUser();
+        user.setRoleKey(roleKey);
+        user.setCompanyId(companyId);
+        return userRoleMapper.getUserIdsByRoleKey(user);
     }
 
     @Override

+ 14 - 0
ruoyi-system/src/main/java/com/ruoyi/system/utils/UserUtil.java

@@ -64,4 +64,18 @@ public class UserUtil {
         return sysUserService.getUserById();
     }
 
+    /**
+     * 根据角色KEY获取用户id列表
+     */
+    public static List<Long> getUserIdsByRoleKey(String roleKey){
+        return sysUserService.getUserIdsByRoleKey(roleKey);
+    }
+
+    /**
+     * 根据角色KEY和公司id获取用户id列表
+     */
+    public static List<Long> getUserIdsByRoleKey(String roleKey, Long companyId){
+        return sysUserService.getUserIdsByRoleKey(roleKey,companyId);
+    }
+
 }

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

@@ -122,7 +122,7 @@ 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>
-			<if test="authorityLv != null and authorityLv != ''">authorityLv,</if>
+			<if test="authorityLv != null and authorityLv != ''">authority_lv,</if>
 		create_time
  		)values(
  			<if test="roleId != null and roleId != 0">#{roleId},</if>

+ 8 - 2
ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml

@@ -49,7 +49,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			sys_user su
 				LEFT JOIN sys_user_role sur ON sur.user_id = su.user_id
 				LEFT JOIN sys_role sr ON sur.role_id = sr.role_id
-		WHERE
-			sr.role_key = #{roleKey}
+		<where>
+			<if test="user.roleKey != null and user.roleKey != ''">
+				sr.role_key = #{user.roleKey}
+			</if>
+			<if test="user.companyId != null and user.companyId != ''">
+				and su.company_id = #{user.companyId}
+			</if>
+		</where>
 	</select>
 </mapper>