saas初始

pull/1/head
张腾 2024-09-25 20:22:59 +08:00
parent 0a01ca8497
commit 6d682e1423
13 changed files with 84 additions and 13 deletions

View File

@ -6,6 +6,13 @@ package com.muyu.auth.form;
* @author muyu * @author muyu
*/ */
public class LoginBody { public class LoginBody {
/**
*
*/
private Integer firmName;
/** /**
* *
*/ */
@ -16,6 +23,8 @@ public class LoginBody {
*/ */
private String password; private String password;
public String getUsername () { public String getUsername () {
return username; return username;
} }

View File

@ -16,6 +16,11 @@ public class SecurityConstants {
*/ */
public static final String DETAILS_FIRM_ID = "firm_id"; public static final String DETAILS_FIRM_ID = "firm_id";
/**
* ID
*/
public static final String DETAILS_DEPT_ID = "dept_id";
/** /**
* *
*/ */
@ -51,5 +56,5 @@ public class SecurityConstants {
*/ */
public static final String ROLE_PERMISSION = "role_permission"; public static final String ROLE_PERMISSION = "role_permission";
public static final String SAAS_KEY = "ent_code"; public static final String SAAS_KEY = "ent-code";
} }

View File

@ -151,6 +151,16 @@ public class JwtUtils {
return getValue(claims, SecurityConstants.DETAILS_USERNAME); return getValue(claims, SecurityConstants.DETAILS_USERNAME);
} }
/**
* SAAS
*
* @param claims
* @return SAAS
*/
public static String getSaaSKey(Claims claims) {
return getValue(claims, SecurityConstants.SAAS_KEY);
}
/** /**
* *
* *
@ -162,4 +172,13 @@ public class JwtUtils {
public static String getValue (Claims claims, String key) { public static String getValue (Claims claims, String key) {
return Convert.toStr(claims.get(key), ""); return Convert.toStr(claims.get(key), "");
} }
/**
*
* @param claims
* @return
*/
public static String getDeptId(Claims claims) {
return getValue(claims, SecurityConstants.DETAILS_DEPT_ID);
}
} }

View File

@ -20,10 +20,7 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @Author: DongZeLiang * @Author: DongZeLiang
@ -66,7 +63,7 @@ public class ManyDataSource implements ApplicationRunner{
public DynamicDataSource dynamicDataSource(DruidDataSourceFactory druidDataSourceFactory) { public DynamicDataSource dynamicDataSource(DruidDataSourceFactory druidDataSourceFactory) {
// 企业列表 企业CODE端口IP // 企业列表 企业CODE端口IP
Map<Object, Object> dataSourceMap = new HashMap<>(); Map<Object, Object> dataSourceMap = new HashMap<>();
dataSourceInfoList() Objects.requireNonNull(dataSourceInfoList())
.stream() .stream()
.map(entInfo -> DataSourceInfo.hostAndPortBuild(entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort())) .map(entInfo -> DataSourceInfo.hostAndPortBuild(entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort()))
.forEach(dataSourceInfo -> { .forEach(dataSourceInfo -> {

View File

@ -11,7 +11,7 @@ public class DatasourceContent {
public final static String USER_NAME = "root"; public final static String USER_NAME = "root";
public final static String PASSWORD = "root"; public final static String PASSWORD = "bwie-8666";
public final static String IP = "159.75.188.178"; public final static String IP = "159.75.188.178";

View File

@ -56,6 +56,7 @@ public class TokenService {
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId); claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName); claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
claimsMap.put(SecurityConstants.SAAS_KEY,loginUser.getSysUser().getDatabaseName()); claimsMap.put(SecurityConstants.SAAS_KEY,loginUser.getSysUser().getDatabaseName());
claimsMap.put(SecurityConstants.DETAILS_DEPT_ID,loginUser.getSysUser().getDeptId());
// 接口返回信息 // 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>(); Map<String, Object> rspMap = new HashMap<String, Object>();

View File

@ -66,11 +66,15 @@ public class AuthFilter implements GlobalFilter, Ordered {
if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) {
return unauthorizedResponse(exchange, "令牌验证失败"); return unauthorizedResponse(exchange, "令牌验证失败");
} }
String saaSKey = JwtUtils.getSaaSKey(claims);
String deptId = JwtUtils.getDeptId(claims);
// 设置用户信息到请求 // 设置用户信息到请求
addHeader(mutate, SecurityConstants.USER_KEY, userkey); addHeader(mutate, SecurityConstants.USER_KEY, userkey);
addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username); addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
addHeader(mutate, SecurityConstants.SAAS_KEY,saaSKey);
addHeader(mutate,SecurityConstants.DETAILS_DEPT_ID,deptId);
// 内部请求来源参数清除 // 内部请求来源参数清除
removeHeader(mutate, SecurityConstants.FROM_SOURCE); removeHeader(mutate, SecurityConstants.FROM_SOURCE);
return chain.filter(exchange.mutate().request(mutate.build()).build()); return chain.filter(exchange.mutate().request(mutate.build()).build());

View File

@ -184,7 +184,7 @@ public class SysRoleController extends BaseController {
@RequiresPermissions("system:role:edit") @RequiresPermissions("system:role:edit")
@Log(title = "角色管理", businessType = BusinessType.GRANT) @Log(title = "角色管理", businessType = BusinessType.GRANT)
@PutMapping("/authUser/cancelAll") @PutMapping("/authUser/cancelAll")
public Result cancelAuthUserAll (Long roleId, Long[] userIds) { public Result cancelAuthUserAll (Long roleId,Long[] userIds) {
return toAjax(roleService.deleteAuthUsers(roleId, userIds)); return toAjax(roleService.deleteAuthUsers(roleId, userIds));
} }
@ -194,7 +194,7 @@ public class SysRoleController extends BaseController {
@RequiresPermissions("system:role:edit") @RequiresPermissions("system:role:edit")
@Log(title = "角色管理", businessType = BusinessType.GRANT) @Log(title = "角色管理", businessType = BusinessType.GRANT)
@PutMapping("/authUser/selectAll") @PutMapping("/authUser/selectAll")
public Result selectAuthUserAll (Long roleId, Long[] userIds) { public Result selectAuthUserAll (@RequestParam("roleId")Long roleId,@RequestParam("userIds") Long[] userIds) {
roleService.checkRoleDataScope(roleId); roleService.checkRoleDataScope(roleId);
return toAjax(roleService.insertAuthUsers(roleId, userIds)); return toAjax(roleService.insertAuthUsers(roleId, userIds));
} }

View File

@ -128,4 +128,22 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
* @return * @return
*/ */
public int deleteDeptById (Long deptId); public int deleteDeptById (Long deptId);
/**
* ancestors
* @param ancestors
* @return
*/
List<SysDept> findByAncestors(@Param("ancestors") String ancestors);
/**
* ID
* @param deptId ID
* @return
*/
SysDept findById(@Param("deptId") String deptId);
} }

View File

@ -1,20 +1,22 @@
package com.muyu.system.service.impl; package com.muyu.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.constant.UserConstants; import com.muyu.common.core.constant.UserConstants;
import com.muyu.common.core.exception.ServiceException; import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.text.Convert; import com.muyu.common.core.text.Convert;
import com.muyu.common.core.utils.ServletUtils;
import com.muyu.common.core.utils.SpringUtils; import com.muyu.common.core.utils.SpringUtils;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.datascope.annotation.DataScope; import com.muyu.common.datascope.annotation.DataScope;
import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysDept; import com.muyu.common.system.domain.*;
import com.muyu.common.system.domain.SysRole;
import com.muyu.common.system.domain.SysUser;
import com.muyu.system.domain.vo.TreeSelect; import com.muyu.system.domain.vo.TreeSelect;
import com.muyu.system.mapper.SysDeptMapper; import com.muyu.system.mapper.SysDeptMapper;
import com.muyu.system.mapper.SysRoleMapper; import com.muyu.system.mapper.SysRoleMapper;
import com.muyu.system.mapper.SysUserMapper;
import com.muyu.system.service.SysDeptService; import com.muyu.system.service.SysDeptService;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -36,6 +38,12 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
@Autowired @Autowired
private SysRoleMapper roleMapper; private SysRoleMapper roleMapper;
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private HttpServletRequest request;
/** /**
* *
* *

View File

@ -109,6 +109,13 @@
where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1 where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
</select> </select>
<select id="findById" resultType="com.muyu.common.system.domain.SysDept">
select * from sys_dept where dept_id = #{deptId}
</select>
<select id="findByAncestors" resultType="com.muyu.common.system.domain.SysDept">
select * from sys_dept where ancestors like concat(#{ancestors},'%')
</select>
<insert id="insertDept" parameterType="com.muyu.common.system.domain.SysDept"> <insert id="insertDept" parameterType="com.muyu.common.system.domain.SysDept">
insert into sys_dept( insert into sys_dept(
<if test="deptId != null and deptId != 0">dept_id,</if> <if test="deptId != null and deptId != 0">dept_id,</if>

View File

@ -18,6 +18,8 @@
<result property="delFlag" column="del_flag"/> <result property="delFlag" column="del_flag"/>
<result property="loginIp" column="login_ip"/> <result property="loginIp" column="login_ip"/>
<result property="loginDate" column="login_date"/> <result property="loginDate" column="login_date"/>
<result property="databaseName" column="database_name"/>
<result property="firmId" column="firm_id"/>
<result property="createBy" column="create_by"/> <result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/> <result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/> <result property="updateBy" column="update_by"/>
@ -48,6 +50,8 @@
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, select u.user_id,
u.database_name,
u.firm_id,
u.dept_id, u.dept_id,
u.user_name, u.user_name,
u.nick_name, u.nick_name,

View File

@ -12,7 +12,6 @@
<module>cloud-modules-system</module> <module>cloud-modules-system</module>
<module>cloud-modules-gen</module> <module>cloud-modules-gen</module>
<module>cloud-modules-file</module> <module>cloud-modules-file</module>
<module>cloud-test</module>
</modules> </modules>
<artifactId>cloud-modules</artifactId> <artifactId>cloud-modules</artifactId>