package com.lxzn.ucenter.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lxzn.framework.domain.ucenter.*; import com.lxzn.framework.domain.ucenter.ext.MenuExt; import com.lxzn.framework.domain.ucenter.request.MenuRequest; import com.lxzn.framework.domain.ucenter.response.MenuCode; import com.lxzn.framework.exception.ExceptionCast; import com.lxzn.framework.model.response.CommonCode; import com.lxzn.framework.model.response.CommonJsonTree; import com.lxzn.framework.model.response.QueryPageResponseResult; import com.lxzn.framework.utils.ValidateUtil; import com.lxzn.ucenter.dao.MenuMapper; import com.lxzn.ucenter.service.*; import com.lxzn.ucenter.service.support.MenuTreeWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Collection; import java.util.List; @Service public class MenuServiceImpl extends ServiceImpl implements IMenuService { @Autowired private IMenuButtonService menuButtonService; @Autowired private IMenuPermissionService menuPermissionService; @Autowired private IButtonService buttonService; @Autowired private IMenuButtonPermissionService menuButtonPermissionService; @Override public List findByUserId(String userId) { if(!ValidateUtil.validateString(userId)) ExceptionCast.cast(CommonCode.FAIL); QueryWrapper queryWrapper = Wrappers.query(); queryWrapper.eq("u.user_id", userId); List menuList = this.getBaseMapper().findByUserId(queryWrapper); return menuList; } @Override @Transactional(rollbackFor = {Exception.class}) public boolean addMenu(Menu menu) { if(menu == null) ExceptionCast.cast(CommonCode.INVALID_PARAM); if(!ValidateUtil.validateString(menu.getPermCode())) ExceptionCast.cast(MenuCode.MENU_PERM_CODE_NONE); if(!ValidateUtil.validateString(menu.getMenuName())) ExceptionCast.cast(MenuCode.MENU_NAME_NONE); if(!ValidateUtil.validateString(menu.getMenuUrl())) ExceptionCast.cast(MenuCode.MENU_URL_NONE); Menu en = getByPermCode(menu.getPermCode()); if(en != null) ExceptionCast.cast(MenuCode.MENU_PERM_CODE_EXIST); if(ValidateUtil.validateString(menu.getParentId())) { Menu parent = super.getById(menu.getParentId()); if(parent == null) ExceptionCast.cast(MenuCode.MENU_PARENT_NOT_EXIST); menu.setRankLevel(parent.getRankLevel() + 1); }else { menu.setParentId(null); menu.setRankLevel(1); } return super.save(menu); } @Override public Menu getByPermCode(String permCode) { if(!ValidateUtil.validateString(permCode)) return null; List list = super.lambdaQuery().eq(Menu::getPermCode, permCode).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override public List findAll() { List menuExts = this.getBaseMapper().findExtAllBySingleSelect(); return menuExts; } @Override @Transactional(rollbackFor = {Exception.class}) public boolean assignButton(String menuId, List