com.yixan.base.controlling.DataIsolationTools Maven / Gradle / Ivy
The newest version!
package com.yixan.base.controlling;
import java.util.List;
import com.yixan.base.common.api.system.model.IUser;
import com.yixan.tools.common.feature.orm.mybatis.interceptor.DataIsolationBaseControlling;
/**
* 通过注解@DataIsolation实现数据隔离
* 如果具体业务实现时需要查询全部数据(即不需要带隔离条件):
* 调接口前先禁用 DataIsolationTools.disable("xxx")
* 调完之后再启用 DataIsolationTools.enable("xxx")
*
* @author zhaohuihua
* @version V1.0 2017年6月13日
* @see DataIsolationBaseControlling
*/
public class DataIsolationTools {
private static final String GROUP = "DataIsolation";
private static IControllingVars vars = ControllingVars.me;
/** 当前登录用户(用于非WEB端发起的数据隔离) **/
public static void setOperator(IUser operator) {
vars.setOperator(operator);
}
/** 当前登录用户(用于非WEB端发起的数据隔离) **/
public static IUser getOperator() {
return vars.getOperator();
}
/** 禁用指定字段的数据隔离 **/
public static void disable(String field, String... fields) {
vars.disableDataIsolation(field, fields);
}
/** 启用指定字段的数据隔离 **/
public static void enable(String field, String... fields) {
vars.enableDataIsolation(field, fields);
}
/** 检查指定字段是否启用数据隔离 **/
public static boolean using(String field) {
return vars.useDataIsolation(field);
}
/** 根据KEY保存数据 **/
public static void put(String key, Object value) {
vars.put(GROUP, key, value);
}
/** 根据KEY获取数据 **/
public static Object get(String key) {
return vars.get(GROUP, key);
}
/** 根据KEY获取数据 **/
public static T get(String key, Class clazz) {
return vars.get(GROUP, key, clazz);
}
/** 根据KEY获取数据 **/
public static List getList(String key, Class clazz) {
return vars.getList(GROUP, key, clazz);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy