package com.thhy.usercore.modules.sys.sysmenu.service.impl; import com.thhy.general.utils.UserInfoUtils; import com.thhy.general.common.BasicStatus; import com.thhy.general.exception.BasicException; import com.thhy.usercore.modules.sys.sysmenu.entity.*; import com.thhy.usercore.modules.sys.sysmenu.mapper.SysMenusMapper; import com.thhy.usercore.modules.sys.sysmenu.service.ISysMenusService; import com.thhy.usercore.modules.sys.sysmenubutton.entity.MenuButtonVo; import com.thhy.usercore.modules.sys.sysmenubutton.entity.SysMenuButton; import com.thhy.usercore.modules.sys.sysmenubutton.mapper.SysMenuButtonMapper; import com.thhy.usercore.modules.sys.sysmenurole.mapper.SysMenuRoleMapper; import com.thhy.general.config.SysUserInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.Date; import java.util.List; /** *

* 服务实现类 *

* * @author zhang_xiao_bo * @since 2022-03-22 */ @Service public class SysMenusServiceImpl implements ISysMenusService { @Autowired private SysMenusMapper sysMenusMapper; @Autowired private SysMenuButtonMapper sysMenuButtonMapper; @Autowired private SysMenuRoleMapper sysMenuRoleMapper; public SysMenus get(Serializable id){ return sysMenusMapper.queryById(id); } public List findList(SysMenus sysMenus){ return sysMenusMapper.findList(sysMenus); } @Transactional public SysMenus addMenu(SysMenus sysMenus){ SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); if(sysUserInfo==null||sysUserInfo.getUserId()==null){ throw new BasicException(BasicStatus.LOGIN_INFO_IS_ERROR); } if(sysMenus.getMenuId()==null){ sysMenus.setCreateTime(new Date()); sysMenus.setCreateUser(sysUserInfo.getUserId()); //如果序号为空,默认排在最后一位 if (sysMenus.getLevel()==null) { Integer currentLevel = sysMenusMapper.currentLevel(sysMenus); sysMenus.setLevel(currentLevel+1); } sysMenusMapper.insert(sysMenus); }else{ /*Integer curVersion = sysMenusMapper.queryVersionById(sysMenus.getMenuId()); if(!curVersion.equals(sysMenus.getVersion())){ throw new BasicException(BasicStatus.SUBMIT_TIMEOUT); }*/ sysMenus.setUpdateTime(new Date()); sysMenus.setUpdateUser(sysUserInfo.getUserId()); sysMenusMapper.update(sysMenus); } return sysMenus; } @Override @Transactional public void addMenuButton(MenuButtonDto menuButtonDto) { sysMenuButtonMapper.deleteByMenuId(menuButtonDto.getMenuId()); String buttonIds = menuButtonDto.getButtonIds(); String[] buttonIdArray = new String[]{buttonIds}; if(buttonIds.contains(",")){ buttonIdArray = buttonIds.split(","); } for(String buttonId : buttonIdArray){ sysMenuButtonMapper.insert(new SysMenuButton(menuButtonDto.getMenuId(),buttonId)); } } @Override public int queryVersion(Serializable id) { return sysMenusMapper.queryVersionById(id); } /** * 逻辑删除 * @param menuId */ public int deletelogic(Serializable menuId){ return sysMenusMapper.deletelogic(menuId); } /** * 物理删除 * @param id */ public int delete(Serializable id){ return sysMenusMapper.deleteById(id); } @Override public List findTree(MenuDto menuDto) { List sysMenusList = sysMenusMapper.forTree(menuDto); for(MenuTreeVo mv : sysMenusList){ menuDto.setParentId(mv.getMenuId()); List child = findTree(menuDto); mv.setChildrens(child); } return sysMenusList; } @Override public List findAllTree(MenuDto menuDto) { List sysMenusList = sysMenusMapper.forAllTree(menuDto); for(MenuTreeVo mv : sysMenusList){ menuDto.setParentId(mv.getMenuId()); List child = findAllTree(menuDto); mv.setChildrens(child); } return sysMenusList; } @Override public List allRoleMenu(MenuDto menuDto) { List sysMenusList = sysMenusMapper.menuRoleTree(menuDto); for(MenuButtonTreeVo mv : sysMenusList){ menuDto.setParentId(mv.getMenuId()); List child = allRoleMenu(menuDto); if(child.size()<1){ MenuButtonDto menuButtonDto = new MenuButtonDto(); menuButtonDto.setMenuId(mv.getMenuId()); menuButtonDto.setRoleId(menuDto.getRoleId()); List menuButtonVos = sysMenuButtonMapper.queryMenuButton(menuButtonDto); mv.setChildrens(menuButtonVos); }else{ mv.setChildrens(child); } } return sysMenusList; } @Override public List MenuEnableButtons(MenuButtonDto menuButtonDto) { SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); menuButtonDto.setUserId(userInfo.getUserId()); List ebableList = sysMenuButtonMapper.MenuEnableButtons(menuButtonDto); return ebableList; } }