wl
2022-10-28 7ec36eee3bae7b9efa32dba01776f5760d91b81a
ycl-common/src/main/java/com/ycl/service/user/impl/UmsMenuServiceImpl.java
@@ -5,20 +5,32 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.dto.UmsMenuNode;
import com.ycl.entity.user.UmsMenu;
import com.ycl.entity.user.vo.UmsMenuVo;
import com.ycl.mapper.user.AdminMenuRelationMapper;
import com.ycl.mapper.user.UmsAdminRoleRelationMapper;
import com.ycl.mapper.user.UmsMenuMapper;
import com.ycl.service.user.UmsMenuService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 后台菜单管理Service实现类
 */
@Service
public class UmsMenuServiceImpl extends ServiceImpl<UmsMenuMapper, UmsMenu>implements UmsMenuService {
public class UmsMenuServiceImpl extends ServiceImpl<UmsMenuMapper, UmsMenu> implements UmsMenuService {
    @Resource
    AdminMenuRelationMapper adminMenuRelationMapper;
    @Resource
    UmsMenuMapper umsMenuMapper;
    @Resource
    UmsAdminRoleRelationMapper umsAdminRoleRelationMapper;
    @Override
    public boolean create(UmsMenu umsMenu) {
@@ -26,6 +38,7 @@
        updateLevel(umsMenu);
        return save(umsMenu);
    }
    /**
     * 修改菜单层级
@@ -54,11 +67,11 @@
    @Override
    public Page<UmsMenu> list(Long parentId, Integer pageSize, Integer pageNum) {
        Page<UmsMenu> page = new Page<>(pageNum,pageSize);
        Page<UmsMenu> page = new Page<>(pageNum, pageSize);
        QueryWrapper<UmsMenu> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(UmsMenu::getParentId,parentId)
        wrapper.lambda().eq(UmsMenu::getParentId, parentId)
                .orderByDesc(UmsMenu::getSort);
        return page(page,wrapper);
        return page(page, wrapper);
    }
    @Override
@@ -78,6 +91,41 @@
        return updateById(umsMenu);
    }
    @Override
    public List<UmsMenuVo> ListTreeMyself(Long id) {
        List<UmsMenuVo> fatherUmsMenuVoList = umsMenuMapper.adminMenuRelation(id);
        List<UmsMenuVo> umsMenuVoList = fatherUmsMenuVoList.stream()
                .filter(item -> item.getParentId() == 0L)
                .peek(item -> item.setMenuVoArrayList(getChildren(item, fatherUmsMenuVoList)))
                .collect(Collectors.toList());
        return umsMenuVoList;
    }
    public List<UmsMenuVo> getChildren(UmsMenuVo root, List<UmsMenuVo> allMenus) {
        return allMenus.stream()
                .filter(menu -> Objects.equals(menu.getParentId(), root.getId()))
                .peek(menu -> menu.setMenuVoArrayList(getChildren(menu, allMenus)))
                .collect(Collectors.toList());
    }
    @Override
    public String getPermission(Long userId) {
        List<String> permission = umsAdminRoleRelationMapper.selectPermissionById(userId);
        if (permission.size()<2){
            return permission.get(0);
        }else {
            if (permission.contains("操作且查看")){
                return "operation and view";
            }
            else if (permission.contains("可操作")&&!permission.contains("仅查看")){
                return "operation";
            }
            else if (permission.contains("仅查看")&&!permission.contains("可操作")){
                return "view";
            }else return "operation and view";
        }
    }
    /**
     * 将UmsMenu转化为UmsMenuNode并设置children属性
     */