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

com.yuweix.kuafu.permission.dao.SysPermissionDaoImpl Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
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);
	}
}






© 2015 - 2024 Weber Informatics LLC | Privacy Policy