枚举类
public enum AppKey {
/**
* Redis Key 约定
*/
USER_SESSION("USER"),
SYS_MENU("MENU"),
ALL_SYS_MENU("ALL.MENU"),
ROLE_MENU("ROLE.MENU"),
ROLE_PERMIT("ROLE.PERMIT"),
IM_USER_SIG("IM.USER.SIG"),
WEB_SITE_INFO("SITE.INFO"),
TREE_MENU("TREE.MENU");
private String key;
AppKey(String key) {
this.key = key;
}
public String getKey(String prefix) {
return String.format(
"%s.%s",
prefix,
key
);
}
}
@Resource
private RedisTemplate<String, List<SysMenu>> sysMenuRedisTemplate;
@Resource
private RedisTemplate<String, List<TreeMenu>> treeMenuRedisTemplate;
@Resource
private RedisTemplate<String, List<SysRolePermit>> rolePermitTemplate;
查询
public List<SysMenu> allMenus()
{
//获取缓存key
String key = AppKey.ALL_SYS_MENU.getKey(appProperty.getPrefixKey());
// 先 到缓存中 查
List<SysMenu> sysMenuList = sysMenuRedisTemplate.opsForValue().get(key);
if (sysMenuList == null || sysMenuList.size() == 0)
{
//再查 数据库
sysMenuList = sysMenuDao.selectAllMenu();
//更新缓存
sysMenuRedisTemplate.opsForValue().set(
key,
sysMenuList
);
}
return sysMenuList;
}
修改更新
/**
* 存储菜单修改
*
* @param sysMenu
* @return
*/
@Transactional(rollbackFor = Exception.class)
public Integer saveMenu(SysMenu sysMenu)
{
//获取缓存key
String key = AppKey.SYS_MENU.getKey(appProperty.getPrefixKey());
sysMenuRedisTemplate.delete(key);
key = AppKey.TREE_MENU.getKey(appProperty.getPrefixKey());
treeMenuRedisTemplate.delete(key);
key = AppKey.ALL_SYS_MENU.getKey(appProperty.getPrefixKey());
//删除所有相关缓存
sysMenuRedisTemplate.delete(key);
return sysMenuDao.insertSelective(sysMenu);
}
/**
* 启用菜单下所有API接口权限
*
* @param menuId
* @param roleId
* @return
* @
*/
@Transactional(rollbackFor = Exception.class)
public Integer enableAll(Integer menuId, Integer roleId)
{
String key = AppKey.ROLE_MENU.getKey(appProperty.getPrefixKey());
//String.format( "%s.%d", key,roleId )); 自主约定的主键规则
sysMenuRedisTemplate.delete(String.format(
"%s.%d",
key,
roleId
));
key = AppKey.ROLE_PERMIT.getKey(appProperty.getPrefixKey());
rolePermitTemplate.delete(String.format(
"%s.%d",
key,
roleId
));
List<SysMenu> sysMenuList = this.allMenus();
for (SysMenu sysMenu : sysMenuList)
{
if (sysMenu.getSysMenuId().equals(menuId))
{
for (SysApi sysApi : sysMenu.getSysApiList())
{
SysRolePermit sysRolePermit = new SysRolePermit();
sysRolePermit.setSysApiId(sysApi.getSysApiId());
sysRolePermit.setSysMenuId(sysApi.getSysMenuId());
sysRolePermit.setSysRolePermitStatus(1);
sysRolePermit.setSysRoleId(roleId);
sysRolePermitDao.insertSelective(sysRolePermit);
}
}
}
return 1;
}