Commit 143d37ee authored by trumansdo's avatar trumansdo
Browse files

更换至beetlsql3最新版本

parent 398a4c6b
package com.ibeetl.admin.core.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.admin.core.dao.CoreDictDao;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.validation.constraints.NotBlank;
import org.beetl.sql.core.mapper.internal.LambdaQueryAmi;
import org.beetl.sql.core.query.LambdaQuery;
import org.beetl.sql.core.query.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ibeetl.admin.core.dao.CoreDictDao;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import org.springframework.validation.annotation.Validated;
/**
......
package com.ibeetl.admin.core.service;
import static com.ibeetl.admin.core.util.HttpRequestLocal.ACCESS_CURRENT_ORG;
import static com.ibeetl.admin.core.util.HttpRequestLocal.ACCESS_CURRENT_USER;
import static com.ibeetl.admin.core.util.HttpRequestLocal.ACCESS_USER_ORGS;
import com.ibeetl.admin.core.dao.CoreFunctionDao;
import com.ibeetl.admin.core.dao.CoreMenuDao;
......@@ -20,7 +17,7 @@ import com.ibeetl.admin.core.rbac.tree.FunctionItem;
import com.ibeetl.admin.core.rbac.tree.MenuItem;
import com.ibeetl.admin.core.rbac.tree.OrgItem;
import com.ibeetl.admin.core.util.FunctionBuildUtil;
import com.ibeetl.admin.core.util.HttpRequestLocal;
import com.ibeetl.admin.core.util.RequestContextThreadLocal;
import com.ibeetl.admin.core.util.MenuBuildUtil;
import com.ibeetl.admin.core.util.OrgBuildUtil;
import com.ibeetl.admin.core.util.PlatformException;
......@@ -34,6 +31,8 @@ import java.util.Set;
import javax.annotation.PostConstruct;
import org.beetl.sql.core.SQLManager;
import org.beetl.sql.core.engine.SQLPlaceholderST;
import org.beetl.sql.core.engine.template.BeetlTemplateEngine;
import org.beetl.sql.core.engine.template.SQLTemplateEngine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
......@@ -88,9 +87,6 @@ public class CorePlatformService {
public static final String ACCESS_SUPPER_ADMIN = "admin";
@Autowired
HttpRequestLocal httpRequestLocal;
@Autowired
CoreRoleFunctionDao roleFunctionDao;
......@@ -129,15 +125,21 @@ public class CorePlatformService {
public void init() {
SQLPlaceholderST.textFunList.add("function");
// sql语句里带有此函数来判断数据权限
sqlManager.getBeetl().getGroupTemplate().registerFunction("function", dataAccessFunction);
sqlManager.getBeetl().getGroupTemplate().registerFunction("nextDay", new NextDayFunction());
SQLTemplateEngine sqlTemplateEngine = sqlManager.getSqlTemplateEngine();
if (sqlTemplateEngine instanceof BeetlTemplateEngine) {
BeetlTemplateEngine beetlTemplateEngine = (BeetlTemplateEngine) sqlTemplateEngine;
// sql语句里带有此函数来判断数据权限
beetlTemplateEngine.getBeetl().getGroupTemplate()
.registerFunction("function", dataAccessFunction);
beetlTemplateEngine.getBeetl().getGroupTemplate()
.registerFunction("nextDay", new NextDayFunction());
}
}
public CoreUser getCurrentUser() {
checkSession();
CoreUser user = (CoreUser) HttpRequestLocal.getSessionValue(ACCESS_CURRENT_USER);
CoreUser user = RequestContextThreadLocal.getCurrentUser();
return user;
}
......@@ -146,7 +148,7 @@ public class CorePlatformService {
List<CoreOrg> orgs = this.getCurrentOrgs();
for (CoreOrg org : orgs) {
if (org.getId().equals(orgId)) {
HttpRequestLocal.setSessionValue(ACCESS_CURRENT_ORG, org);
RequestContextThreadLocal.setCurrentOrg(org);
}
}
}
......@@ -154,38 +156,31 @@ public class CorePlatformService {
public Long getCurrentOrgId() {
checkSession();
CoreOrg org = (CoreOrg) HttpRequestLocal.getSessionValue(ACCESS_CURRENT_ORG);
CoreOrg org = RequestContextThreadLocal.getCurrentOrg();
return org.getId();
}
public CoreOrg getCurrentOrg() {
checkSession();
CoreOrg org = (CoreOrg) HttpRequestLocal.getSessionValue(ACCESS_CURRENT_ORG);
CoreOrg org = RequestContextThreadLocal.getCurrentOrg();
return org;
}
public List<CoreOrg> getCurrentOrgs() {
List<CoreOrg> orgs = (List<CoreOrg>) HttpRequestLocal.getSessionValue(ACCESS_USER_ORGS);
List<CoreOrg> orgs = RequestContextThreadLocal.getUserOrgs();
return orgs;
}
protected void checkSession() {
CoreOrg org = (CoreOrg) HttpRequestLocal.getSessionValue(ACCESS_CURRENT_ORG);
CoreOrg org = RequestContextThreadLocal.getCurrentOrg();
if (org == null) {
throw new PlatformException("会话过期,重新登录");
}
}
public void setLoginUser(CoreUser user, CoreOrg currentOrg, List<CoreOrg> orgs) {
HttpRequestLocal.setSessionValue(ACCESS_CURRENT_USER, user);
HttpRequestLocal.setSessionValue(ACCESS_CURRENT_ORG, currentOrg);
HttpRequestLocal.setSessionValue(ACCESS_USER_ORGS, orgs);
}
public MenuItem getMenuItem(long userId, long orgId) {
CoreUser user = this.sysUserDao.unique(userId);
......
package com.ibeetl.admin.core.service;
import cn.hutool.core.lang.Assert;
import com.ibeetl.admin.core.dao.CoreRoleDao;
import com.ibeetl.admin.core.entity.CoreRole;
import java.util.List;
import java.util.Objects;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.beetl.sql.core.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -19,19 +22,25 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional
public class CoreRoleService extends CoreBaseService<CoreRole> {
@Autowired private CoreRoleDao roleDao;
@Autowired
private CoreRoleDao roleDao;
/**
*
* @param type : R0 操作角色;R1 是工作流角色
*
* @param type
* : R0 操作角色;R1 是工作流角色
* @author 一日看尽长安花
*/
public List<CoreRole> getAllRoles(String type) {
return roleDao
.getSQLManager()
.lambdaQuery(CoreRole.class)
.andEq(CoreRole::getType, Query.filterEmpty(type))
.select();
}
public List<CoreRole> getRoles(Long userId) {
Assert.notNull(userId,"用户角色不能为空");
return roleDao.geRoles(userId);
}
}
......@@ -5,17 +5,15 @@ import com.ibeetl.admin.core.dao.CoreOrgDao;
import com.ibeetl.admin.core.dao.CoreUserDao;
import com.ibeetl.admin.core.dao.SQLManagerBaseDao;
import com.ibeetl.admin.core.entity.CoreOrg;
import com.ibeetl.admin.core.entity.CoreRole;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.rbac.UserLoginInfo;
import com.ibeetl.admin.core.service.param.CoreUserParam;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import com.ibeetl.admin.core.util.enums.GeneralStateEnum;
import com.ibeetl.admin.core.util.enums.StateTypeEnum;
import java.util.List;
import java.util.Optional;
import javax.validation.constraints.NotNull;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.core.page.PageResult;
import org.beetl.sql.core.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -24,15 +22,23 @@ import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class CoreUserService extends CoreBaseService {
@Autowired CoreUserDao userDao;
@Autowired CoreOrgDao orgDao;
@Autowired
CoreUserDao userDao;
@Autowired PasswordEncryptService passwordEncryptService;
@Autowired
CoreOrgDao orgDao;
@Autowired
CoreRoleService roleService;
@Autowired SQLManagerBaseDao sqlManagerBaseDao;
@Autowired
PasswordEncryptService passwordEncryptService;
@Autowired
SQLManagerBaseDao sqlManagerBaseDao;
public UserLoginInfo login(String userName, String password) {
CoreUser user =
userDao
.createLambdaQuery()
......@@ -53,10 +59,14 @@ public class CoreUserService extends CoreBaseService {
UserLoginInfo loginInfo = new UserLoginInfo();
loginInfo.setOrgs(orgs);
loginInfo.setUser(user);
List<CoreRole> roles = roleService.getRoles(user.getId());
loginInfo.setRoles(roles);
return loginInfo;
}
public List<CoreOrg> getUserOrg(long userId, long orgId) {
List<CoreOrg> orgs = orgDao.queryOrgByUser(userId);
if (orgs.isEmpty()) {
// 没有赋值任何角色,默认给一个所在部门
......@@ -71,8 +81,9 @@ public class CoreUserService extends CoreBaseService {
return userDao.getUserByRole(role);
}
public PageQuery<CoreUser> getAllUsers(CoreUserParam coreUserParam) {
PageQuery<CoreUser> pageQuery =
public PageResult<CoreUser> getAllUsers(CoreUserParam coreUserParam) {
PageResult<CoreUser> pageResult =
sqlManagerBaseDao
.getSQLManager()
.lambdaQuery(CoreUser.class)
......@@ -84,28 +95,34 @@ public class CoreUserService extends CoreBaseService {
.andEq(CoreUser::getJobType1, Query.filterNull(coreUserParam.getJobType1()))
.andEq(CoreUser::getState, Query.filterNull(coreUserParam.getState()))
.page(coreUserParam.getPage(), coreUserParam.getLimit());
return pageQuery;
return pageResult;
}
public CoreUser getUserByCode(String userName) {
CoreUser user = new CoreUser();
user.setCode(userName);
return userDao.templateOne(user);
}
public void update(CoreUser user) {
userDao.updateById(user);
}
public CoreOrg getOrgById(Long orgId) {
return orgDao.unique(orgId);
}
public CoreUser getUserById(Long userId) {
return userDao.unique(userId);
}
public List<String> getOrgCode(List<Long> orgIds) {
return orgDao.queryAllOrgCode(orgIds);
}
}
package com.ibeetl.admin.core.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Assert;
import com.ibeetl.admin.core.dao.CoreFunctionDao;
import com.ibeetl.admin.core.dao.CoreRoleDao;
import com.ibeetl.admin.core.entity.CoreRoute;
import com.ibeetl.admin.core.entity.CoreUserRole;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j;
......@@ -21,11 +21,14 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional
public class RoleRoutesElService {
@Autowired private CoreFunctionDao coreFunctionDao;
@Autowired
private CoreFunctionDao coreFunctionDao;
@Autowired private CoreRoleDao coreRoleDao;
@Autowired
private CoreRoleDao coreRoleDao;
public List<Long> getAllRoleIds(Long userId, Long orgId) {
return coreRoleDao.getSQLManager().lambdaQuery(CoreUserRole.class).andEq("user_id", userId)
.andEq("org_id", orgId).select(Long.class, "role_id").stream()
.distinct()
......@@ -33,54 +36,40 @@ public class RoleRoutesElService {
}
/**
*
* 前端路由映射表中单个路由映射全部具有的信息:
* { <br/>
* "path": "/profile", <br/>
* "component": "Layout", <br/>
* "redirect": "/profile/index", <br/>
* "hidden": true, <br/>
* "alwaysShow": true, <br/>
* "name": "router-name", <br/>
* "meta": { <br/>
* "noCache": true, <br/>
* "affix": true, <br/>
* "breadcrumb": false, <br/>
* "activeMenu": "/example/list" <br/>
* }, <br/>
* "children": [] <br/>
* } <br/>
* { <br/>
* "path": "/profile", <br/>
* "component": "Layout", <br/>
* "redirect": "/profile/index", <br/>
* "hidden": true, <br/>
* "alwaysShow": true, <br/>
* "name": "router-name", <br/>
* "meta": { <br/>
* "noCache": true, <br/>
* "affix": true, <br/>
* "breadcrumb": false, <br/>
* "activeMenu": "/example/list" <br/>
* }, <br/>
* "children": [] <br/>
* } <br/>
* 后端路由表中单个路由应该具有的信息: <br/>
* { <br/>
* "path": "/profile", <br/>
* "name": "router-name", <br/>
* "meta": { <br/>
* "title": "Profile", <br/>
* "roles": ["admin", "editor"], <br/>
* "icon": "user" <br/>
* }, <br/>
* "children": [] <br/>
* } <br/>
* { <br/>
* "path": "/profile", <br/>
* "name": "router-name", <br/>
* "meta": { <br/>
* "title": "Profile", <br/>
* "roles": ["admin", "editor"], <br/>
* "icon": "user" <br/>
* }, <br/>
* "children": [] <br/>
* } <br/>
*
* @return 路由表格式
* */
public List<CoreRoute> getRoutes() {
List<CoreRoute> routesList = coreFunctionDao.getAllRoutes();
/*Map<Long, List<Long>> roleIdList =
routesList.stream()
.collect(
Collectors.groupingBy(
CoreRoute::getId,
Collectors.mapping(
coreRoute -> Convert.toLong(coreRoute.getTails().get("roleId")),
Collectors.toList())));
routesList = routesList.stream().distinct().sorted().collect(Collectors.toList());
for (CoreRoute coreRoute : routesList) {
coreRoute
.getMeta()
.getRoles()
.addAll(CollUtil.<Long>removeNull(roleIdList.get(coreRoute.getId())));
}*/
*/
public List<CoreRoute> getRoutes(List<Long> roleIds) {
Assert.notEmpty(roleIds,"角色id不能为空");
List<CoreRoute> routesList = coreFunctionDao.getAllRoutes(roleIds);
CoreRoute root = new CoreRoute();
root.setId(0L);
buildRoutesTree(root, routesList);
......@@ -89,12 +78,9 @@ public class RoleRoutesElService {
/**
* 深度优先算法递归构建路由表
*
* @param root
* @param allRoutes
* @return
*/
private void buildRoutesTree(CoreRoute root, @NotNull List<CoreRoute> allRoutes) {
if (CollUtil.isEmpty(allRoutes)) {
return;
}
......@@ -110,4 +96,5 @@ public class RoleRoutesElService {
buildRoutesTree(rootChildrenList.get(i), allRoutes);
}
}
}
......@@ -5,7 +5,6 @@ import com.ibeetl.admin.core.util.enums.StateTypeEnum;
import com.ibeetl.admin.core.web.query.PageParam;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
public class CoreUserParam extends PageParam {
......
package com.ibeetl.admin.core.util;
import org.springframework.core.annotation.AnnotationUtils;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.core.annotation.AnnotationUtils;
/**
* 描述: 获取注解的值
......
package com.ibeetl.admin.core.util;
import com.ibeetl.admin.core.conf.RbacAnnotationConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ibeetl.admin.core.conf.RbacAnnotationConfig;
public class ClassLoaderUtil {
private ClassLoaderUtil() {}
......
......@@ -2,7 +2,6 @@ package com.ibeetl.admin.core.util;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.http.HttpServletResponse;
public class FileDownloadUtil {
......
package com.ibeetl.admin.core.util;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
......
......@@ -2,7 +2,6 @@ package com.ibeetl.admin.core.util;
import java.util.ArrayList;
import java.util.List;
import org.springframework.validation.FieldError;
public class FormFieldException extends PlatformException {
......
package com.ibeetl.admin.core.util;
import java.util.ArrayList;
import java.util.List;
import com.ibeetl.admin.core.entity.CoreFunction;
import com.ibeetl.admin.core.rbac.tree.FunctionItem;
import java.util.ArrayList;
import java.util.List;
/**
* 创建一个功能树,用于前端选择
......
package com.ibeetl.admin.core.util;
import com.ibeetl.admin.core.entity.CoreMenu;
import com.ibeetl.admin.core.rbac.tree.MenuItem;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.ibeetl.admin.core.entity.CoreMenu;
import com.ibeetl.admin.core.rbac.tree.MenuItem;
public class MenuBuildUtil {
private MenuBuildUtil() {}
......
package com.ibeetl.admin.core.util;
import java.util.ArrayList;
import java.util.List;
import com.ibeetl.admin.core.entity.CoreOrg;
import com.ibeetl.admin.core.rbac.tree.OrgItem;
import java.util.ArrayList;
import java.util.List;
public class OrgBuildUtil {
private OrgBuildUtil() {}
......
......@@ -3,85 +3,140 @@ package com.ibeetl.admin.core.util;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.ibeetl.admin.core.conf.SpringWebMvcConfigurer;
import com.ibeetl.admin.core.entity.CoreOrg;
import com.ibeetl.admin.core.entity.CoreRole;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.rbac.UserLoginInfo;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import com.ibeetl.admin.core.conf.SpringWebMvcConfigurer;
/**
* 保留用户会话,以方便在业务代码任何地方调用 {@link SpringWebMvcConfigurer}
*
* @author lijiazhi
*/
@Component
public final class HttpRequestLocal {
/*当前用户会话*/
public static final String ACCESS_CURRENT_USER = "core:user";
@Slf4j
public final class RequestContextThreadLocal {
/*当前请求*/
private static final String ACCESS_CURRENT_REQUEST = "request";
/*当前用户*/
private static final String ACCESS_CURRENT_USER = "core:user";
/*当前登录用户所在部门*/
public static final String ACCESS_CURRENT_ORG = "core:currentOrg";
private static final String ACCESS_CURRENT_ORG = "core:currentOrg";
/*用户可选部门*/
public static final String ACCESS_USER_ORGS = "core:orgs";
private static final String ACCESS_USER_ORGS = "core:orgs";
/*用户角色*/
private static final String ACCESS_USER_ROLES = "core:roles";
private static final ThreadLocal<Map<String, Object>> CONTEXT =
ThreadLocal.withInitial(HashMap::new);
private static final Cache<Object, UserLoginInfo> CACHE = Caffeine.newBuilder().maximumSize(100)
.expireAfterAccess(10,
TimeUnit.MINUTES).recordStats().build();
public HttpRequestLocal() {}
private RequestContextThreadLocal() {
private static final ThreadLocal<HttpServletRequest> requests =
ThreadLocal.withInitial(() -> null);
}
public static void setUserRoles(List<CoreRole> roles) {
CONTEXT.get().put(ACCESS_USER_ROLES, roles);
}
public static List<CoreRole> getUserRoles() {
public static void setAccessCurrentOrg(CoreOrg org) {
getHttpSession().setAttribute(ACCESS_CURRENT_ORG, org);
return Convert.toList(CoreRole.class, CONTEXT.get().get(ACCESS_USER_ROLES));
}
public static CoreOrg getAccessCurrentOrg() {
return (CoreOrg) getHttpSession().getAttribute(ACCESS_CURRENT_ORG);
public static List<Long> getUserRoleIds() {
return Convert.toList(CoreRole.class, CONTEXT.get().get(ACCESS_USER_ROLES)).stream()
.map(CoreRole::getId).collect(
Collectors.toList());
}
public static void setAccessUserOrgs(List<CoreOrg> orgs) {
getHttpSession().setAttribute(ACCESS_USER_ORGS, orgs);
public static void setCurrentOrg(CoreOrg org) {
CONTEXT.get().put(ACCESS_CURRENT_ORG, org);
}
public static List<CoreOrg> getAccessUserOrgs() {
return Convert.toList(CoreOrg.class, getHttpSession().getAttribute(ACCESS_USER_ORGS));
public static CoreOrg getCurrentOrg() {
return (CoreOrg) CONTEXT.get().get(ACCESS_CURRENT_ORG);
}
public static void setAccessCurrentUser(CoreUser user) {
getHttpSession().setAttribute(ACCESS_CURRENT_USER, user);
public static void setUserOrgs(List<CoreOrg> orgs) {
CONTEXT.get().put(ACCESS_USER_ORGS, orgs);
}
public static CoreUser getAccessCurrentUser() {
return (CoreUser) getHttpSession().getAttribute(ACCESS_CURRENT_USER);
public static List<CoreOrg> getUserOrgs() {
return Convert.toList(CoreOrg.class, CONTEXT.get().get(ACCESS_USER_ORGS));
}
public static void setLoginerInfo(CoreUser user, CoreOrg org, List<CoreOrg> orgs) {
setAccessCurrentUser(user);
setAccessCurrentOrg(org);
setAccessUserOrgs(orgs);
getHttpSession().setAttribute("clientIP", getIpAddr(get()));
public static void setCurrentUser(CoreUser user) {
CONTEXT.get().put(ACCESS_CURRENT_USER, user);
}
public static CoreUser getCurrentUser() {
return (CoreUser) CONTEXT.get().get(ACCESS_CURRENT_USER);
}
public static void setLoginerInfo(UserLoginInfo loginerInfo) {
CACHE.put(loginerInfo.getUser().getId(), loginerInfo);
setCurrentUser(loginerInfo.getUser());
setCurrentOrg(loginerInfo.getCurrentOrg());
setUserOrgs(loginerInfo.getOrgs());
setUserRoles(loginerInfo.getRoles());
}
public static void reset(Object uid) {
UserLoginInfo loginerInfo = CACHE.getIfPresent(Convert.toLong(uid, null));
if (Objects.isNull(loginerInfo)) {
return;
}
setLoginerInfo(loginerInfo);
}
public static void clearAllSession() {
getHttpSession().removeAttribute(ACCESS_CURRENT_USER);
getHttpSession().removeAttribute(ACCESS_CURRENT_ORG);
getHttpSession().removeAttribute(ACCESS_USER_ORGS);
}
public static void destory() {
requests.remove();
CONTEXT.get().clear();
CONTEXT.remove();
}
public static Cookie getCookieByName(String cookieName) {
public static Cookie getCookie(String cookieName) {
Assert.notNull(cookieName);
Cookie[] cookies = get().getCookies();
Cookie[] cookies = getRequest().getCookies();
return Arrays.stream(cookies)
.filter(cookie -> StrUtil.equals(cookie.getName(), cookieName))
.findFirst()
......@@ -89,54 +144,52 @@ public final class HttpRequestLocal {
}
public static Object getSessionValue(String attr) {
return getHttpSession().getAttribute(attr);
return getSession().getAttribute(attr);
}
public static void setSessionValue(String attr, Object obj) {
get().getSession().setAttribute(attr, obj);
}
public static String getAuthorization() {
return get().getHeader(HttpHeaders.AUTHORIZATION);
getRequest().getSession().setAttribute(attr, obj);
}
public static Object getRequestValue(String attr) {
return get().getAttribute(attr);
}
public static String getAuthorization() {
public static void setRequestValue(String attr, Object obj) {
get().setAttribute(attr, obj);
return getRequest().getHeader(HttpHeaders.AUTHORIZATION);
}
/** @return 请求的uri,域名与参数之间的那部分 */
public static String getRequestURI() {
return get().getRequestURI();
public static String getRequestUri() {
return getRequest().getRequestURI();
}
/** @return 获取客户端ip */
public static String getRequestIP() {
return getIpAddr(get());
public static String getRequestIp() {
return getIpAddr(getRequest());
}
public static void set(HttpServletRequest request) {
requests.set(request);
public static void setRequest(HttpServletRequest request) {
CONTEXT.get().put(ACCESS_CURRENT_REQUEST, request);
}
public static HttpServletRequest get() {
return requests.get();
private static HttpServletRequest getRequest() {
return (HttpServletRequest) CONTEXT.get().get(ACCESS_CURRENT_REQUEST);
}
public static HttpSession getHttpSession() {
return get().getSession();
public static HttpSession getSession() {
return getRequest().getSession();
}
/**
* 获取当前网络ip
*
* @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request) {
String ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
......@@ -165,4 +218,5 @@ public final class HttpRequestLocal {
}
return ipAddress;
}
}
package com.ibeetl.admin.core.util;
import org.apache.commons.lang3.time.DateUtils;
import java.text.ParseException;
import java.util.Date;
import org.apache.commons.lang3.time.DateUtils;
/**
* 常用工具类方法
......
package com.ibeetl.admin.core.util.beetl;
import com.ibeetl.admin.core.entity.CoreRoleFunction;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.rbac.DataAccess;
import com.ibeetl.admin.core.rbac.DataAccessFactory;
import com.ibeetl.admin.core.rbac.DataAccessResullt;
import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.FunctionLocal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.beetl.core.Context;
......@@ -12,14 +18,6 @@ import org.beetl.sql.core.engine.SQLParameter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ibeetl.admin.core.entity.CoreRoleFunction;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.rbac.DataAccess;
import com.ibeetl.admin.core.rbac.DataAccessFactory;
import com.ibeetl.admin.core.rbac.DataAccessResullt;
import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.FunctionLocal;
/**
* 数据权限拼sql,配合DataAccessFactory
*
......
package com.ibeetl.admin.core.util.beetl;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.service.CoreDictService;
import java.util.List;
import org.beetl.core.Function;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.service.CoreDictService;
@Component
public class DictQueryFunction {
......
package com.ibeetl.admin.core.util.beetl;
import com.ibeetl.admin.core.file.FileItem;
import com.ibeetl.admin.core.file.FileService;
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.beetl.core.Context;
import org.beetl.core.Function;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ibeetl.admin.core.file.FileItem;
import com.ibeetl.admin.core.file.FileService;
@Component
public class FileFunction implements Function {
......
package com.ibeetl.admin.core.util.beetl;
import com.ibeetl.admin.core.rbac.tree.FunctionItem;
import com.ibeetl.admin.core.service.CorePlatformService;
import org.beetl.core.Context;
import org.beetl.core.Function;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ibeetl.admin.core.rbac.tree.FunctionItem;
import com.ibeetl.admin.core.service.CorePlatformService;
/** 通过functionId获取AccessUrl,从缓存中获取 */
@Component
public class FunAccessUrlFunction implements Function {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment