com.yuweix.kuafu.permission.dao.SysPermissionDaoImpl Maven / Gradle / Ivy
package com.yuweix.kuafu.permission.dao;
import com.yuweix.kuafu.permission.mapper.SysPermissionMapper;
import com.yuweix.kuafu.permission.model.SysPermission;
import com.yuweix.kuafu.dao.mybatis.BaseMapper;
import com.yuweix.kuafu.dao.mybatis.CacheableDao;
import com.yuweix.kuafu.permission.common.Properties;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
/**
* @author yuwei
*/
@Repository("sysPermissionDao")
public class SysPermissionDaoImpl extends CacheableDao implements SysPermissionDao {
@Resource
private SysPermissionMapper sysPermissionMapper;
@Resource
private Properties properties;
private static final String CACHE_KEY_PERMISSION_BY_NO = "cache.%s.permission.by.no.%s";
@Override
protected BaseMapper getMapper() {
return sysPermissionMapper;
}
@Override
protected String getAppName() {
return properties.getAppName();
}
@Override
protected void onchange(SysPermission t) {
deletePermissionByNoFromCache(t.getPermNo());
}
@Override
public int queryPermissionCount(List idList, Long parentId, String keywords, List permTypeList
, Boolean visible) {
return sysPermissionMapper.queryPermissionCount(idList, parentId, keywords, permTypeList, visible);
}
@Override
public List queryPermissionList(List idList, Long parentId, String keywords, List permTypeList
, Boolean visible, Integer pageNo, Integer pageSize) {
return sysPermissionMapper.queryPermissionList(idList, parentId, keywords, permTypeList, visible
, pageNo, pageSize);
}
@Override
public SysPermission queryPermissionByNo(String permNo) {
String key = String.format(CACHE_KEY_PERMISSION_BY_NO, getAppName(), permNo);
SysPermission permission = cache.get(key);
if (permission != null) {
return permission;
}
permission = sysPermissionMapper.queryPermissionByNo(permNo);
if (permission != null) {
cache.put(key, permission, DEFAULT_CACHE_TIMEOUT);
}
return permission;
}
@Override
public void deletePermissionByNoFromCache(String permNo) {
String key = String.format(CACHE_KEY_PERMISSION_BY_NO, getAppName(), permNo);
cache.remove(key);
}
@Override
public int queryChildPermissionCount(long parentId) {
return sysPermissionMapper.queryPermissionCount(null, parentId, null, null, null);
}
}