v 1.0
1. 新增用户与部门,一对多的关系; 2. 新增管理多部门用户,如果有为公司的多个部门可以进行选择登录(选择后,直到下次变更访问公司前,只能访问此次选择公的业务数据,使用 company_id 控制,后续补充此数据权限的实现); 3. sql 转化工具修复,现在可以正确的对 mysql 进行不同数据库实例的转化了; 4. 所有表格主键,修改为分布式 Id 实现; 5. 补全在初始版本中没有被纳入的其他预制功能模块
This commit is contained in:
@@ -13,9 +13,6 @@ import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 专属于 web 包的工具类
|
||||
*
|
||||
@@ -30,7 +27,8 @@ public class WebFrameworkUtils {
|
||||
|
||||
public static final String HEADER_TENANT_ID = "tenant-id";
|
||||
public static final String HEADER_VISIT_TENANT_ID = "visit-tenant-id";
|
||||
public static final String HEADER_VISIT_DEPT_IDS = "visit-dept-ids";
|
||||
public static final String HEADER_VISIT_COMPANY_ID = "visit-company-id";
|
||||
public static final String HEADER_VISIT_COMPANY_NAME = "visit-company-name";
|
||||
|
||||
/**
|
||||
* 终端的 Header
|
||||
@@ -182,26 +180,60 @@ public class WebFrameworkUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得访问的部门编号列表,从 header 中
|
||||
* 获得访问的公司编号,从 header 中
|
||||
* @param request 请求
|
||||
* @return 部门编号列表,解析失败或无效时返回 null
|
||||
* @return 公司部门编号,解析失败或无效时返回 0
|
||||
*/
|
||||
public static Set<Long> getVisitDeptIds(HttpServletRequest request) {
|
||||
String deptIdsHeader = request.getHeader(HEADER_VISIT_DEPT_IDS);
|
||||
if (StrUtil.isBlank(deptIdsHeader)) {
|
||||
return new HashSet<>();
|
||||
public static Long getCompanyId(HttpServletRequest request) {
|
||||
String companyIdHeader = request.getHeader(HEADER_VISIT_COMPANY_ID);
|
||||
if (StrUtil.isBlank(companyIdHeader)) {
|
||||
return 0L;
|
||||
}
|
||||
try {
|
||||
Set<Long> deptIds = java.util.Arrays.stream(deptIdsHeader.split(","))
|
||||
.map(String::trim)
|
||||
.filter(cn.hutool.core.util.StrUtil::isNotBlank)
|
||||
.map(Long::valueOf)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
return deptIds.isEmpty() ? new HashSet<>() : deptIds;
|
||||
// 解析部门编号列表
|
||||
return Long.parseLong(companyIdHeader);
|
||||
} catch (Exception e) {
|
||||
// 解析失败
|
||||
return new HashSet<>();
|
||||
return 0L;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得访问的公司名称,从 header 中
|
||||
* @param request 请求
|
||||
* @return 公司名称,解析失败或无效时返回空字符串
|
||||
*/
|
||||
public static String getCompanyName(HttpServletRequest request) {
|
||||
String companyName = request.getHeader(HEADER_VISIT_COMPANY_NAME);
|
||||
return StrUtil.isBlank(companyName) ? StrUtil.EMPTY : companyName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得访问的部门编号,从 header 中
|
||||
* @param request 请求
|
||||
* @return 部门编号,解析失败或无效时返回 0
|
||||
*/
|
||||
public static Long getDeptId(HttpServletRequest request) {
|
||||
String deptIdHeader = request.getHeader(WebFrameworkUtils.HEADER_VISIT_TENANT_ID);
|
||||
if (StrUtil.isBlank(deptIdHeader)) {
|
||||
return 0L;
|
||||
}
|
||||
try {
|
||||
// 解析部门编号
|
||||
return Long.parseLong(deptIdHeader);
|
||||
} catch (Exception e) {
|
||||
// 解析失败
|
||||
return 0L;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得访问的部门名称,从 header 中
|
||||
* @param request 请求
|
||||
* @return 部门名称,解析失败或无效时返回空字符串
|
||||
*/
|
||||
public static String getDeptName(HttpServletRequest request) {
|
||||
String deptName = request.getHeader(WebFrameworkUtils.HEADER_VISIT_COMPANY_NAME);
|
||||
return StrUtil.isBlank(deptName) ? StrUtil.EMPTY : deptName;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user