Fixiaobai
2023-08-30 18f1836e9aa9adef0a6642167571eb4e59d80823
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java
@@ -2,9 +2,11 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.exception.AuthException;
import com.yuanchu.limslaboratory.mapper.MenuMapper;
import com.yuanchu.limslaboratory.mapper.RoleManageMapper;
import com.yuanchu.limslaboratory.pojo.Menu;
@@ -16,6 +18,8 @@
import com.yuanchu.limslaboratory.pojo.dto.UpdateRoleMenuDto;
import com.yuanchu.limslaboratory.service.RoleManagerService;
import com.yuanchu.limslaboratory.utils.JsonUtil;
import com.yuanchu.limslaboratory.utils.MyUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -29,6 +33,7 @@
 * @Date 2023/8/23
 */
@Service
@Slf4j
public class RoleManagerServiceImpl implements RoleManagerService {
    @Resource
@@ -71,6 +76,9 @@
                    ,createTime
            ));
        });
        if(roleMenuList.size()<1){
            roleMenuList.add(new RoleMenu(null,nextId,39L,true,false,false,false,createTime));
        }
        //roleMenuAddList.forEach(System.out::println);
        int i = roleManageMapper.insertBatchRoleMenu(roleMenuList);
        return insert>0&&i>0;
@@ -88,16 +96,15 @@
        List<RoleAndMenuDto> roleAndMenuDtos = roleManageMapper.selectAllRoleAndMenu(dto);
        roleAndMenuDtos.forEach(r->{
            List<RoleMenu>roleMenuList=r.getRoleMenuList();
            //System.out.println(roleMenuList);
            List<RoleMenu> collect = roleMenuList.stream()
                    .filter(t -> t.getParentId() == 0)
                    .peek((menu) -> menu.setChildren(this.getRoleMenuChildren(menu, roleMenuList)))
                    .collect(Collectors.toList());
            r.setRoleMenuList(collect);
        });
        roleAndMenuDtos.forEach(r->{
            r.getRoleMenuList().forEach(System.out::println);
        });
        //roleAndMenuDtos.forEach(r->{
        //    r.getRoleMenuList().forEach(System.out::println);
        //});
        Map<String, Object>result=new HashMap<>(3);
        result.put("list",roleAndMenuDtos);
        int size = roleManageMapper.getRoleInfoByName(dto.getName()).size();
@@ -137,6 +144,45 @@
        return roleManageMapper.selectAllRoleAndMenuByRoleId(roleId);
    }
    @Override
    public List<Map<String, Object>> getUserListRole() {
        return roleManageMapper.getUserListRole();
    }
    @Override
    public Map<String, Object> getUrlType(String url) {
        String type=null;
        Map<String, Object> stringIntegerMap = roleManageMapper.selctInterFaceType(url);
        if(Objects.isNull(stringIntegerMap)){
            log.warn("没有====》"+url+"请求资源");
            throw new AuthException("403","没有该资源");
        }
        String of = String.valueOf(stringIntegerMap.get("type"));
        switch (of) {
            case "0":
                type="selected";
                break;
            case "1":
                type="added";
                break;
            case "2":
                type="updated";
                break;
            case "3":
                type="deleted";
                break;
            default:
                break;
        }
        stringIntegerMap.put("type",type);
        return stringIntegerMap;
    }
    @Override
    public boolean hasUrl(String type, String menuId, String roleId) {
        return roleManageMapper.hasUrl( type,  menuId,  roleId).get("num")>0L;
    }
    private List<Menu> getEnumChildren(Menu root, List<Menu> all) {
        return all.stream()