package io.dataease.mobile.service; import io.dataease.auth.api.dto.CurrentUserDto; import io.dataease.base.mapper.ext.MobileDirMapper; import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.CommonBeanFactory; import io.dataease.mobile.dto.DirItemDTO; import io.dataease.mobile.dto.DirRequest; import io.dataease.mobile.entity.PanelEntity; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @Service public class DirService { @Resource private MobileDirMapper mobileDirMapper; public List permissions() { CurrentUserDto user = AuthUtils.getUser(); Long userId = user.getUserId(); Long deptId = user.getDeptId(); List roles = user.getRoles().stream().map(item -> item.getId().toString()).collect(Collectors.toList()); List idsWithUser = mobileDirMapper.idsWithUser(userId.toString()); List idsWithDept = mobileDirMapper.idsWithDept(deptId.toString()); List idsWithRoles = mobileDirMapper.idsWithRoles(roles); List panelIds = new ArrayList<>(); panelIds.addAll(idsWithUser); panelIds.addAll(idsWithDept); panelIds.addAll(idsWithRoles); return panelIds.stream().distinct().collect(Collectors.toList()); } public List query(DirRequest request) { // CurrentUserDto user = AuthUtils.getUser(); String userId = String.valueOf(AuthUtils.getUser().getUserId()); List panelEntities = new ArrayList<>(); if (StringUtils.isNotBlank(request.getName())) { panelEntities = mobileDirMapper.queryWithName(request.getName(),userId); }else { panelEntities = mobileDirMapper.query(request.getPid(),userId); } if (CollectionUtils.isEmpty(panelEntities)) return null; List dtos = panelEntities.stream().map(data -> { DirItemDTO dirItemDTO = new DirItemDTO(); dirItemDTO.setId(data.getId()); dirItemDTO.setText(data.getText()); dirItemDTO.setType(data.getType()); return dirItemDTO; }).collect(Collectors.toList()); return dtos; // if (user.getUserId() == 1 && StringUtils.equals("admin", user.getUsername())) { // return dtos; // } // List permissions = proxy().permissions(); // return dtos.stream().filter( // dto -> permissions.stream().anyMatch( // permission -> StringUtils.equals(permission, dto.getId()) // ) // ).collect(Collectors.toList()); } public DirService proxy() { return CommonBeanFactory.getBean(DirService.class); } }