98 lines
2.7 KiB
Java
98 lines
2.7 KiB
Java
|
|
package com.nis.web.service;
|
|||
|
|
|
|||
|
|
import java.util.Date;
|
|||
|
|
import java.util.List;
|
|||
|
|
|
|||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
|
import org.springframework.stereotype.Service;
|
|||
|
|
|
|||
|
|
import com.nis.domain.SysMenu;
|
|||
|
|
import com.nis.domain.SysUser;
|
|||
|
|
import com.nis.util.CacheUtils;
|
|||
|
|
import com.nis.util.LogUtils;
|
|||
|
|
import com.nis.util.StringUtil;
|
|||
|
|
import com.nis.web.dao.SysMenuDao;
|
|||
|
|
import com.nis.web.security.UserUtils;
|
|||
|
|
|
|||
|
|
@Service
|
|||
|
|
public class MenuService extends BaseService {
|
|||
|
|
@Autowired
|
|||
|
|
private SysMenuDao menuDao;
|
|||
|
|
|
|||
|
|
public List<SysMenu> findAllMenu() {
|
|||
|
|
return UserUtils.getMenuList();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public SysMenu getMenu(Long id) {
|
|||
|
|
|
|||
|
|
return menuDao.get(id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public void saveOrUpdateMenu(SysMenu menu) {
|
|||
|
|
|
|||
|
|
// 获取父节点实体
|
|||
|
|
menu.setParent(this.getMenu(menu.getParent().getId()));
|
|||
|
|
|
|||
|
|
// 获取修改前的parentIds,用于更新子节点的parentIds
|
|||
|
|
String oldParentIds = menu.getParentIds();
|
|||
|
|
|
|||
|
|
// 设置新的父节点串
|
|||
|
|
menu.setParentIds(menu.getParent().getParentIds()+menu.getParent().getId()+",");
|
|||
|
|
SysUser user = UserUtils.getUser();
|
|||
|
|
|
|||
|
|
// 保存或更新实体
|
|||
|
|
if (StringUtil.isEmpty(menu.getId())){
|
|||
|
|
|
|||
|
|
menu.setUpdateBy(user);
|
|||
|
|
menu.setCreateBy(user);
|
|||
|
|
menu.setCreateDate(new Date());
|
|||
|
|
menu.setUpdateDate(menu.getCreateDate());
|
|||
|
|
menu.setDelFlag(1);
|
|||
|
|
menuDao.insert(menu);
|
|||
|
|
}else{
|
|||
|
|
menu.setUpdateBy(user);
|
|||
|
|
menu.setUpdateDate(new Date());
|
|||
|
|
menuDao.update(menu);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 更新子节点 parentIds
|
|||
|
|
SysMenu m = new SysMenu();
|
|||
|
|
m.setParentIds("%,"+menu.getId()+",%");
|
|||
|
|
List<SysMenu> list = menuDao.findByParentIdsLike(m);
|
|||
|
|
for (SysMenu e : list){
|
|||
|
|
e.setParentIds(e.getParentIds().replace(oldParentIds, menu.getParentIds()));
|
|||
|
|
menuDao.updateParentIds(e);
|
|||
|
|
}
|
|||
|
|
// 清除用户菜单缓存
|
|||
|
|
UserUtils.removeCache(UserUtils.CACHE_MENU_LIST);
|
|||
|
|
// // 清除权限缓存
|
|||
|
|
// systemRealm.clearAllCachedAuthorizationInfo();
|
|||
|
|
// 清除日志相关缓存
|
|||
|
|
CacheUtils.remove(LogUtils.CACHE_MENU_NAME_PATH_MAP);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void deleteMenu(SysMenu menu) {
|
|||
|
|
|
|||
|
|
menuDao.delete(menu);
|
|||
|
|
// 清除用户菜单缓存
|
|||
|
|
UserUtils.removeCache(UserUtils.CACHE_MENU_LIST);
|
|||
|
|
// // 清除权限缓存
|
|||
|
|
// systemRealm.clearAllCachedAuthorizationInfo();
|
|||
|
|
// 清除日志相关缓存
|
|||
|
|
CacheUtils.remove(LogUtils.CACHE_MENU_NAME_PATH_MAP);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void updateMenuSort(SysMenu menu) {
|
|||
|
|
menuDao.updateSort(menu);
|
|||
|
|
// 清除用户菜单缓存
|
|||
|
|
UserUtils.removeCache(UserUtils.CACHE_MENU_LIST);
|
|||
|
|
// // 清除权限缓存
|
|||
|
|
// systemRealm.clearAllCachedAuthorizationInfo();
|
|||
|
|
// 清除日志相关缓存
|
|||
|
|
CacheUtils.remove(LogUtils.CACHE_MENU_NAME_PATH_MAP);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|