All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yixan.base.controlling.IControllingVars Maven / Gradle / Ivy

There is a newer version: 3.7.1
Show newest version
package com.yixan.base.controlling;

import java.util.Date;
import java.util.List;

import com.yixan.base.common.api.oplog.model.OperateTracesBean;
import com.yixan.base.common.api.system.model.IUser;

/**
 * 操作控制的线程变量
 *
 * @author zhaohuihua
 * @version V1.0 2016年6月8日
 */
public interface IControllingVars {

    /** 当前登录用户(用于非WEB端发起的数据隔离) **/
    void setOperator(IUser operator);

    /** 当前登录用户(用于非WEB端发起的数据隔离) **/
    IUser getOperator();

    /** 设置当前线程的入口权限 **/
    void setPermission(String permission);

    /** 获取当前线程的入口权限 **/
    String getPermission();

    /** 判断某个字段是否启用数据隔离 **/
    boolean useDataIsolation(String field);

    /** 禁用某个字段的数据隔离 **/
    void disableDataIsolation(String field, String... fields);

    /** 启用某个字段的数据隔离 **/
    void enableDataIsolation(String field, String... fields);

    /** 增加操作日志 **/
    void addItem(OperateTracesBean item);

    /** 获取操作日志 **/
    List getItems(boolean clear);

    /** 增加数据库调用次数 **/
    void addDbInvokeTimes();

    /** 获取数据库调用次数 **/
    Integer getDbInvokeTimes(boolean clear);

    /** 获取本次操作的开始时间 **/
    Date getStartTime(boolean clear);

    /** 开始一次新的操作, 清空操作日志, 记录开始时间 **/
    void start();

    /** 清空线程变量数据 **/
    void clear();

    /** 根据KEY保存数据 **/
    void put(String group, String key, Object value);

    /** 根据KEY获取数据 **/
    Object get(String group, String key);

    /** 根据KEY获取数据 **/
     T get(String group, String key, Class clazz);

    /** 根据KEY获取数据 **/
     List getList(String group, String key, Class clazz);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy