浏览代码

安全漏洞修复,报错信息不能直接返回前端

LAPTOP-KB9HII50\70708 2 年之前
父节点
当前提交
f69d6069ff

+ 143 - 116
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/common/FileUploadController.java

@ -69,89 +69,98 @@ public class FileUploadController extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STREAM_IMG)
    @ApiOperation(value = "文件流上传图片", notes = "文件流上传图片")
    public ObjEnvelop<UploadVO> uploadImg(@ApiParam(value = "文件", required = true)
                                       @RequestParam(value = "file", required = true) MultipartFile file) throws Exception{
        // 得到文件的完整名称  xxx.txt
                                       @RequestParam(value = "file", required = true) MultipartFile file){
        try {
            // 得到文件的完整名称  xxx.txt
//        String originalFilename = file.getOriginalFilename();
//        InputStream inputStream = file.getInputStream();
//        UploadVO uploadVO = fileUploadService.uploadImg(inputStream,originalFilename,file.getSize(),fastdfs_file_url);
//        return success("上传成功", uploadVO);
        UploadVO uploadVO = new UploadVO();
        if (isClose.equalsIgnoreCase("1")){
            Map<String, Object> map = fileUploadService.uploadImg(file);
            uploadVO.setFullUri(map.get("accessory").toString());
        }else if(isClose.equals("2")){
            String originalFilename = file.getOriginalFilename();
            String[] fs = originalFilename.split("\\.");
            String type = fs[1];
            //内网上传
            String rs = fileUploadService.request(remote_inner_url,file,type);
            logger.info(rs);
            JSONObject json = JSON.parseObject(rs);
            uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
            UploadVO uploadVO = new UploadVO();
            if (isClose.equalsIgnoreCase("1")){
                Map<String, Object> map = fileUploadService.uploadImg(file);
                uploadVO.setFullUri(map.get("accessory").toString());
            }else if(isClose.equals("2")){
                String originalFilename = file.getOriginalFilename();
                String[] fs = originalFilename.split("\\.");
                String type = fs[1];
                //内网上传
                String rs = fileUploadService.request(remote_inner_url,file,type);
                logger.info(rs);
                JSONObject json = JSON.parseObject(rs);
                uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
        }else {
            // 得到文件的完整名称  xxx.txt
            String originalFilename = file.getOriginalFilename();
            InputStream inputStream = file.getInputStream();
            uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
            }else {
                // 得到文件的完整名称  xxx.txt
                String originalFilename = file.getOriginalFilename();
                InputStream inputStream = file.getInputStream();
                uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
            }
            return success("上传成功", uploadVO);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("上传失败");
        }
        return success("上传成功", uploadVO);
    }
    @PostMapping(value = "upload_stream_attachmentLimit")
    @ApiOperation(value = "文件流上传附件", notes = "文件流上传附件限制格式")
    public ObjEnvelop<UploadVO> uploadAttachmentLimit(@ApiParam(value = "文件", required = true)
                                                 @RequestParam(value = "file", required = true) MultipartFile file) throws Exception{
        UploadVO uploadVO = new UploadVO();
        // 得到文件的完整名称  xxx.txt
        String originalFilename = file.getOriginalFilename();
        //得到文件类型
        String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
        String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1).toLowerCase();
        if(StringUtils.isBlank(fileType)||!"doc、docx、pdf、xls、xlsx、ppt、pptx".contains(fileType)){
            return ObjEnvelop.getError("文件格式不支持");
                                                 @RequestParam(value = "file", required = true) MultipartFile file){
        try {
            UploadVO uploadVO = new UploadVO();
            // 得到文件的完整名称  xxx.txt
            String originalFilename = file.getOriginalFilename();
            //得到文件类型
            String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
            String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1).toLowerCase();
            if(StringUtils.isBlank(fileType)||!"doc、docx、pdf、xls、xlsx、ppt、pptx".contains(fileType)){
                return ObjEnvelop.getError("文件格式不支持");
            }
            InputStream inputStream = file.getInputStream();
            ObjectNode objectNode = fastDFSHelper.upload(inputStream, fileType, "");
            //解析返回的objectNode
            uploadVO.setFileName(fileName);
            uploadVO.setFileType(fileType);
            uploadVO.setFullUri(objectNode.get("fileId").toString().replaceAll("\"", ""));
            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fileId").toString().replaceAll("\"", ""));
            return success("上传成功", uploadVO);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("上传失败");
        }
        InputStream inputStream = file.getInputStream();
        ObjectNode objectNode = fastDFSHelper.upload(inputStream, fileType, "");
        //解析返回的objectNode
        uploadVO.setFileName(fileName);
        uploadVO.setFileType(fileType);
        uploadVO.setFullUri(objectNode.get("fileId").toString().replaceAll("\"", ""));
        uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fileId").toString().replaceAll("\"", ""));
        return success("上传成功", uploadVO);
    }
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STREAM_ATTACHMENT)
    @ApiOperation(value = "文件流上传附件", notes = "文件流上传附件")
    public ObjEnvelop<UploadVO> uploadAttachment(@ApiParam(value = "文件", required = true)
                                       @RequestParam(value = "file", required = true) MultipartFile file) throws Exception{
//        String originalFilename = file.getOriginalFilename();
//        InputStream inputStream = file.getInputStream();
//
//    UploadVO uploadVO = fileUploadService.uploadAttachment(inputStream,originalFilename,file.getSize(),fastdfs_file_url);
//        return success("上传成功", uploadVO);
        UploadVO uploadVO = new UploadVO();
        if (isClose.equalsIgnoreCase("1")){
            Map<String, Object> map = fileUploadService.uploadImg(file);
            uploadVO.setFullUri(map.get("accessory").toString());
        }else if(isClose.equals("2")){
            String originalFilename = file.getOriginalFilename();
            String[] fs = originalFilename.split("\\.");
            String type = fs[1];
            //内网上传
            String rs = fileUploadService.request(remote_inner_url,file,type);
            logger.info(rs);
            JSONObject json = JSON.parseObject(rs);
            uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
                                       @RequestParam(value = "file", required = true) MultipartFile file){
        try {
            UploadVO uploadVO = new UploadVO();
            if (isClose.equalsIgnoreCase("1")){
                Map<String, Object> map = fileUploadService.uploadImg(file);
                uploadVO.setFullUri(map.get("accessory").toString());
            }else if(isClose.equals("2")){
                String originalFilename = file.getOriginalFilename();
                String[] fs = originalFilename.split("\\.");
                String type = fs[1];
                //内网上传
                String rs = fileUploadService.request(remote_inner_url,file,type);
                logger.info(rs);
                JSONObject json = JSON.parseObject(rs);
                uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
        }else {
            // 得到文件的完整名称  xxx.txt
            String originalFilename = file.getOriginalFilename();
            InputStream inputStream = file.getInputStream();
            uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
            }else {
                // 得到文件的完整名称  xxx.txt
                String originalFilename = file.getOriginalFilename();
                InputStream inputStream = file.getInputStream();
                uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
            }
            return success("上传成功", uploadVO);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("上传失败");
        }
        return success("上传成功", uploadVO);
//        return uploadStream(file);
    }
//    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STREAM)
@ -169,9 +178,14 @@ public class FileUploadController extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STRING)
    @ApiOperation(value = "base64上传图片",notes = "base64上传图片")
    public ObjEnvelop<UploadVO> uploadImages(@ApiParam(name = "jsonData", value = "头像转化后的输入流")
                                                 @RequestBody String jsonData) throws Exception {
        UploadVO uploadVO = fileUploadService.uploadImages(jsonData,fastdfs_file_url);
        return success("上传成功", uploadVO);
                                                 @RequestBody String jsonData){
        try {
            UploadVO uploadVO = fileUploadService.uploadImages(jsonData,fastdfs_file_url);
            return success("上传成功", uploadVO);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("上传失败");
        }
    }
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STREAM)
@ -179,8 +193,9 @@ public class FileUploadController extends EnvelopRestEndpoint {
    public ObjEnvelop<UploadVO> uploadStream(@ApiParam(value = "文件", required = true)
                                             @RequestParam(value = "file", required = true) MultipartFile file
            /*@ApiParam(value = "jsonData", required = true)
            @RequestBody MutilFileInfo param, HttpServletResponse response, HttpServletRequest request*/) throws Exception{
        UploadVO uploadVO = new UploadVO();
            @RequestBody MutilFileInfo param, HttpServletResponse response, HttpServletRequest request*/){
        try {
            UploadVO uploadVO = new UploadVO();
            if (isClose.equalsIgnoreCase("1")){
                Map<String, Object> map = fileUploadService.uploadImg(file);
                uploadVO.setFullUri(map.get("accessory").toString());
@ -202,14 +217,23 @@ public class FileUploadController extends EnvelopRestEndpoint {
                uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
            }
            return success("上传成功", uploadVO);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("上传失败");
        }
    }
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STRINGBASE64)
    @ApiOperation(value = "base64上传图片Xz",notes = "base64上传图片Xz")
    public ObjEnvelop<UploadVO> uploadBase64(@ApiParam(name = "jsonData", value = "头像转化后的输入流")
                                             @RequestBody String jsonData) throws Exception {
        UploadVO uploadVO = fileUploadService.uploadImagesBase64(jsonData,fastdfs_file_url);
        return success("上传成功", uploadVO);
        try {
            UploadVO uploadVO = fileUploadService.uploadImagesBase64(jsonData,fastdfs_file_url);
            return success("上传成功", uploadVO);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("上传失败");
        }
    }
@ -230,57 +254,60 @@ public class FileUploadController extends EnvelopRestEndpoint {
                                                  @ApiParam(value = "objectType", required = false)
                                                  @RequestParam(value = "objectType", required = false) Integer objectType,
                                                  @ApiParam(value = "chunkSize", required = false)
                                                      @RequestParam(value = "chunkSize", required = false) Integer  chunkSize
    ) throws Exception{
        UploadVO uploadVO = new UploadVO();
        MutilFileInfo files = new MutilFileInfo();
        files.setChunk(chunk);
        files.setChunkTotal(chunkTotal);
        files.setFile(file);
        files.setObjectType(objectType);
        files.setSize(file.getSize());
        logger.info("file size"+file.getSize());
        files.setTaskId(taskId);
        String taskid = fileManageService.chunkUploadByMappedByteBuffer(files,chunkSize);
        logger.info("taskid"+taskid);
        if ("unCompelete".equalsIgnoreCase(taskid)){
            System.out.println("第"+files.getChunk());
            return success("未传完",uploadVO);
        }else {
                                                  @RequestParam(value = "chunkSize", required = false) Integer  chunkSize){
        try {
            UploadVO uploadVO = new UploadVO();
            MutilFileInfo files = new MutilFileInfo();
            files.setChunk(chunk);
            files.setChunkTotal(chunkTotal);
            files.setFile(file);
            files.setObjectType(objectType);
            files.setSize(file.getSize());
            logger.info("file size"+file.getSize());
            files.setTaskId(taskId);
            String taskid = fileManageService.chunkUploadByMappedByteBuffer(files,chunkSize);
            logger.info("taskid"+taskid);
            if ("unCompelete".equalsIgnoreCase(taskid)){
                System.out.println("第"+files.getChunk());
                return success("未传完",uploadVO);
            }else {
            File file1 = new File(taskid);
            logger.info("size:"+file1.getTotalSpace());
            FileInputStream input = new FileInputStream(file1);
            MultipartFile multipartFile = new MockMultipartFile("file", file1.getName(), "text/plain", IOUtils.toByteArray(input));
            if (isClose.equalsIgnoreCase("1")){
                Map<String, Object> map = fileUploadService.uploadImg(multipartFile);
                uploadVO.setFullUri(map.get("accessory").toString());
            }else if(isClose.equals("2")){
                String originalFilename = multipartFile.getOriginalFilename();
                String[] fs = originalFilename.split("\\.");
                String type = fs[1];
                //内网上传
                String rs = fileUploadService.request(remote_inner_url,multipartFile,type);
                logger.info(rs);
                JSONObject json = JSON.parseObject(rs);
                uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
                File file1 = new File(taskid);
                logger.info("size:"+file1.getTotalSpace());
                FileInputStream input = new FileInputStream(file1);
                MultipartFile multipartFile = new MockMultipartFile("file", file1.getName(), "text/plain", IOUtils.toByteArray(input));
                if (isClose.equalsIgnoreCase("1")){
                    Map<String, Object> map = fileUploadService.uploadImg(multipartFile);
                    uploadVO.setFullUri(map.get("accessory").toString());
                }else if(isClose.equals("2")){
                    String originalFilename = multipartFile.getOriginalFilename();
                    String[] fs = originalFilename.split("\\.");
                    String type = fs[1];
                    //内网上传
                    String rs = fileUploadService.request(remote_inner_url,multipartFile,type);
                    logger.info(rs);
                    JSONObject json = JSON.parseObject(rs);
                    uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
            }else {
                // 得到文件的完整名称  xxx.txt
                String originalFilename = multipartFile.getOriginalFilename();
                }else {
                    // 得到文件的完整名称  xxx.txt
                    String originalFilename = multipartFile.getOriginalFilename();
                //判断文件名称是否有包含后缀,及前端是否有传后缀名称,有的话拼接图片后缀
                if(originalFilename.lastIndexOf(".") == 0 && StringUtils.isNotEmpty(filename)){
                    originalFilename = originalFilename +"."+filename;
                }
                    //判断文件名称是否有包含后缀,及前端是否有传后缀名称,有的话拼接图片后缀
                    if(originalFilename.lastIndexOf(".") == 0 && StringUtils.isNotEmpty(filename)){
                        originalFilename = originalFilename +"."+filename;
                    }
                InputStream inputStream = multipartFile.getInputStream();
                uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
                file1.delete();
                    InputStream inputStream = multipartFile.getInputStream();
                    uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
                    file1.delete();
                }
                return success("上传成功", uploadVO);
            }
            return success("上传成功", uploadVO);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("上传失败");
        }
    }
}

+ 201 - 142
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/MenuEndpoint.java

@ -48,13 +48,18 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
    public ObjEnvelop<MenuVO> create (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        MenuDO menuDO = toEntity(jsonData, MenuDO.class);
        int count = menuService.isExistName(menuDO.getName());
        if(count>0){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Menu.NAME_IS_EXIST), ObjEnvelop.class);
        try {
            MenuDO menuDO = toEntity(jsonData, MenuDO.class);
            int count = menuService.isExistName(menuDO.getName());
            if(count>0){
                return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Menu.NAME_IS_EXIST), ObjEnvelop.class);
            }
            menuDO = menuService.addMenu(menuDO);
            return success(menuDO, MenuVO.class);
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("操作失败");
        }
        menuDO = menuService.addMenu(menuDO);
        return success(menuDO, MenuVO.class);
    }
    @PostMapping(value = BaseRequestMapping.Menu.MOVE_DOWN)
@ -62,8 +67,13 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
    public Envelop moveDown(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        menuService.moveDown(id);
        return success("修改成功");
        try {
            menuService.moveDown(id);
            return success("修改成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    @PostMapping(value = BaseRequestMapping.Menu.MOVE_UP)
@ -71,8 +81,13 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
    public Envelop moveUp(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        menuService.moveUp(id);
        return success("修改成功");
        try {
            menuService.moveUp(id);
            return success("修改成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    @PostMapping(value = BaseRequestMapping.Menu.STATUS)
@ -82,8 +97,13 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "id") String id,
            @ApiParam(name = "status", value = "1生效,0失效", required = true)
            @RequestParam(value = "status") Integer status) {
        menuService.updateStatus(id, status);
        return success("修改成功");
        try {
            menuService.updateStatus(id, status);
            return success("修改成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
    }
    @GetMapping(value = BaseRequestMapping.Menu.IS_NAME_EXIST)
@ -91,24 +111,34 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
    public ObjEnvelop isNameExist(
            @ApiParam(name = "name", value = "菜单名称", required = true)
            @RequestParam(value = "name") String name) {
        return success(menuService.isExistName(name));
        try {
            return success(menuService.isExistName(name));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("操作失败");
        }
    }
    @PostMapping(value = BaseRequestMapping.Menu.UPDATE)
    @ApiOperation(value = "更新")
    public Envelop update (
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        MenuDO menuDO = toEntity(jsonData, MenuDO.class);
        if (null == menuDO.getId()) {
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Common.ID_IS_NULL), Envelop.class);
        }
        int count = menuService.isExistName(menuDO.getName());
        if(count>1){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Menu.NAME_IS_EXIST), ObjEnvelop.class);
            @RequestParam String jsonData){
        try {
            MenuDO menuDO = toEntity(jsonData, MenuDO.class);
            if (null == menuDO.getId()) {
                return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Common.ID_IS_NULL), Envelop.class);
            }
            int count = menuService.isExistName(menuDO.getName());
            if(count>1){
                return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Menu.NAME_IS_EXIST), ObjEnvelop.class);
            }
            menuDO = menuService.updateMenu(menuDO);
            return success(menuDO);
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("操作失败");
        }
        menuDO = menuService.updateMenu(menuDO);
        return success(menuDO);
    }
    @GetMapping(value = BaseRequestMapping.Menu.PAGE)
@ -123,31 +153,41 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<MenuDO> menuDOS = menuService.search(fields, filters, sorts, page, size);
        int count = (int)menuService.getCount(filters);
        return success(menuDOS, count, page, size, MenuVO.class);
            @RequestParam(value = "size") int size){
        try {
            List<MenuDO> menuDOS = menuService.search(fields, filters, sorts, page, size);
            int count = (int)menuService.getCount(filters);
            return success(menuDOS, count, page, size, MenuVO.class);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError("获取失败");
        }
    }
    @GetMapping(value = BaseRequestMapping.Menu.LIST)
    @ApiOperation(value = "获取列表")
    public ListEnvelop<MenuVO> list (
            @ApiParam(name = "id", value = "id")
            @RequestParam(value = "id", required = false) String id) throws Exception {
        String filters = "";
        if(StringUtils.isNotBlank(id)){
            filters = "parentId="+id+";";
        }
        List<MenuDO> menuDOS = menuService.search(null, filters, "+sort");
        MenuDO menuDO = menuService.findOne(id);
        menuDOS.forEach(menu -> {
            if(CommonContant.DEFAULT_PARENTID.equals(menu.getParentId())){
                menu.setParentName(CommonContant.DEFAULT_PARENTNAME);
            }else {
                menu.setParentName(menuDO.getName());
            @RequestParam(value = "id", required = false) String id){
        try {
            String filters = "";
            if(StringUtils.isNotBlank(id)){
                filters = "parentId="+id+";";
            }
        });
        return success(menuDOS, MenuVO.class);
            List<MenuDO> menuDOS = menuService.search(null, filters, "+sort");
            MenuDO menuDO = menuService.findOne(id);
            menuDOS.forEach(menu -> {
                if(CommonContant.DEFAULT_PARENTID.equals(menu.getParentId())){
                    menu.setParentName(CommonContant.DEFAULT_PARENTNAME);
                }else {
                    menu.setParentName(menuDO.getName());
                }
            });
            return success(menuDOS, MenuVO.class);
        }catch (Exception e){
            e.printStackTrace();
            return ListEnvelop.getError("获取失败");
        }
    }
    @GetMapping(value = BaseRequestMapping.Menu.FIND_ALL)
@ -156,59 +196,69 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "status", value = "状态")
            @RequestParam(value = "status", required = false) String status,
            @ApiParam(name = "name", value = "名称")
            @RequestParam(value = "name", required = false) String name) throws Exception {
        String filters = "";
        if(StringUtils.isNotBlank(status)){
            filters = "status="+status+";";
        }
        if(StringUtils.isNotBlank(name)){
            filters += "name?"+name+";";
        }
        List<MenuDO> menuDOs = menuService.search(null, filters, "+sort");
        List<MenuVO> menuVOs = convertToModels(menuDOs,new ArrayList<>(menuDOs.size()), MenuVO.class);
        menuVOs.forEach(menuVO -> {
            if(CommonContant.DEFAULT_PARENTID.equals(menuVO.getParentId())){
                menuVO.setParentName(CommonContant.DEFAULT_PARENTNAME);
            }else {
                MenuDO menuDO = menuService.findOne(menuVO.getParentId());
                menuVO.setParentName(menuDO.getName());
            @RequestParam(value = "name", required = false) String name){
        try {
            String filters = "";
            if(StringUtils.isNotBlank(status)){
                filters = "status="+status+";";
            }
        });
        Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
        menuVOs.forEach(menu->{
            List<MenuVO> tmp = map.get(menu.getId());
            menu.setChildren(tmp);
        });
        if(StringUtils.isBlank(name)){
            menuVOs = menuVOs.stream()
                    .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                    .collect(Collectors.toList());
            if(StringUtils.isNotBlank(name)){
                filters += "name?"+name+";";
            }
            List<MenuDO> menuDOs = menuService.search(null, filters, "+sort");
            List<MenuVO> menuVOs = convertToModels(menuDOs,new ArrayList<>(menuDOs.size()), MenuVO.class);
            menuVOs.forEach(menuVO -> {
                if(CommonContant.DEFAULT_PARENTID.equals(menuVO.getParentId())){
                    menuVO.setParentName(CommonContant.DEFAULT_PARENTNAME);
                }else {
                    MenuDO menuDO = menuService.findOne(menuVO.getParentId());
                    menuVO.setParentName(menuDO.getName());
                }
            });
            Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
            menuVOs.forEach(menu->{
                List<MenuVO> tmp = map.get(menu.getId());
                menu.setChildren(tmp);
            });
            if(StringUtils.isBlank(name)){
                menuVOs = menuVOs.stream()
                        .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                        .collect(Collectors.toList());
            }
            return success(menuVOs);
        }catch (Exception e){
            e.printStackTrace();
            return ListEnvelop.getError("获取失败");
        }
        return success(menuVOs);
    }
    @GetMapping(value = BaseRequestMapping.Menu.GET_TREE)
    @ApiOperation(value = "获取列表")
    public ListEnvelop<MenuVO> getTree (
            @ApiParam(name = "status", value = "状态")
            @RequestParam(value = "status", required = false) String status) throws Exception {
        String filters = null;
        if(StringUtils.isNotBlank(status)){
            filters = "status="+status;
        }
        List<MenuDO> menuDOs = menuService.search(null, filters, null);
        List<MenuVO> menuVOs = convertToModels(menuDOs,new ArrayList<>(menuDOs.size()),MenuVO.class);
        Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
        menuVOs.forEach(menu->{
            List<MenuVO> tmp = map.get(menu.getId());
            menu.setChildren(tmp);
        });
        menuVOs = menuVOs.stream()
                .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                .collect(Collectors.toList());
            @RequestParam(value = "status", required = false) String status) {
        try {
            String filters = null;
            if(StringUtils.isNotBlank(status)){
                filters = "status="+status;
            }
            List<MenuDO> menuDOs = menuService.search(null, filters, null);
            List<MenuVO> menuVOs = convertToModels(menuDOs,new ArrayList<>(menuDOs.size()),MenuVO.class);
            Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
            menuVOs.forEach(menu->{
                List<MenuVO> tmp = map.get(menu.getId());
                menu.setChildren(tmp);
            });
            menuVOs = menuVOs.stream()
                    .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                    .collect(Collectors.toList());
        return success(menuVOs);
            return success(menuVOs);
        }catch (Exception e){
            e.printStackTrace();
            return ListEnvelop.getError("获取失败");
        }
    }
@ -220,48 +270,53 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "name", value = "名称")
            @RequestParam(value = "name", required = false) String name,
            @ApiParam(name = "roleId", value = "角色id")
            @RequestParam(value = "roleId", required = false)String roleId) throws Exception {
        String filters = "";
        if(StringUtils.isNotBlank(status)){
            filters = "status="+status+";";
        }
        if(StringUtils.isNotBlank(name)){
            filters += "name?"+name+";";
        }
        //获取所有选择树
        List<RoleMenuDO> roleMenus = roleMenuService.findRoleMenu(roleId);
        List<MenuDO> menuDOs = menuService.search(null, filters, "+sort");
        List<MenuVO> menuVOs = convertToModels(menuDOs,new ArrayList<>(menuDOs.size()), MenuVO.class);
        menuVOs.forEach(menuVO -> {
            if(CommonContant.DEFAULT_PARENTID.equals(menuVO.getParentId())){
                menuVO.setParentName(CommonContant.DEFAULT_PARENTNAME);
            }else {
                MenuDO menuDO = menuService.findOne(menuVO.getParentId());
                menuVO.setParentName(menuDO.getName());
            @RequestParam(value = "roleId", required = false)String roleId){
        try {
            String filters = "";
            if(StringUtils.isNotBlank(status)){
                filters = "status="+status+";";
            }
            //对比树是否被选择
            if(checkedTree(menuVO.getId(),roleMenus)){
                menuVO.setChecked(true);
            }else{
                menuVO.setChecked(false);
            if(StringUtils.isNotBlank(name)){
                filters += "name?"+name+";";
            }
        });
        Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
        menuVOs.forEach(menu->{
            List<MenuVO> tmp = map.get(menu.getId());
            menu.setChildren(tmp);
        });
        if(StringUtils.isBlank(name)){
            menuVOs = menuVOs.stream()
                    .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                    .collect(Collectors.toList());
            //获取所有选择树
            List<RoleMenuDO> roleMenus = roleMenuService.findRoleMenu(roleId);
            List<MenuDO> menuDOs = menuService.search(null, filters, "+sort");
            List<MenuVO> menuVOs = convertToModels(menuDOs,new ArrayList<>(menuDOs.size()), MenuVO.class);
            menuVOs.forEach(menuVO -> {
                if(CommonContant.DEFAULT_PARENTID.equals(menuVO.getParentId())){
                    menuVO.setParentName(CommonContant.DEFAULT_PARENTNAME);
                }else {
                    MenuDO menuDO = menuService.findOne(menuVO.getParentId());
                    menuVO.setParentName(menuDO.getName());
                }
                //对比树是否被选择
                if(checkedTree(menuVO.getId(),roleMenus)){
                    menuVO.setChecked(true);
                }else{
                    menuVO.setChecked(false);
                }
            });
            Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
            menuVOs.forEach(menu->{
                List<MenuVO> tmp = map.get(menu.getId());
                menu.setChildren(tmp);
            });
            if(StringUtils.isBlank(name)){
                menuVOs = menuVOs.stream()
                        .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                        .collect(Collectors.toList());
            }
            return success(menuVOs);
        }catch (Exception e){
            e.printStackTrace();
            return ListEnvelop.getError("获取失败");
        }
        return success(menuVOs);
    }
    /**
@ -286,28 +341,32 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "获取角色登录菜单")
    public ListEnvelop<MenuVO> findLoginRoleMenuTree (
            @ApiParam(name = "roleId", value = "角色id")
            @RequestParam(value = "roleId", required = false)String roleId) throws Exception {
        List<MenuVO> menuVOs = roleMenuService.findMenuByRoleId(roleId);
        menuVOs.forEach(menuVO -> {
            if(CommonContant.DEFAULT_PARENTID.equals(menuVO.getParentId())){
                menuVO.setParentName(CommonContant.DEFAULT_PARENTNAME);
            }else {
                MenuDO menuDO = menuService.findOne(menuVO.getParentId());
                menuVO.setParentName(menuDO.getName());
            }
        });
            @RequestParam(value = "roleId", required = false)String roleId){
        try {
            List<MenuVO> menuVOs = roleMenuService.findMenuByRoleId(roleId);
            menuVOs.forEach(menuVO -> {
                if(CommonContant.DEFAULT_PARENTID.equals(menuVO.getParentId())){
                    menuVO.setParentName(CommonContant.DEFAULT_PARENTNAME);
                }else {
                    MenuDO menuDO = menuService.findOne(menuVO.getParentId());
                    menuVO.setParentName(menuDO.getName());
                }
            });
        Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
            Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
        menuVOs.forEach(menu->{
            List<MenuVO> tmp = map.get(menu.getId());
            menu.setChildren(tmp);
        });
        menuVOs = menuVOs.stream()
                .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                .collect(Collectors.toList());
            menuVOs.forEach(menu->{
                List<MenuVO> tmp = map.get(menu.getId());
                menu.setChildren(tmp);
            });
            menuVOs = menuVOs.stream()
                    .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                    .collect(Collectors.toList());
        return success(menuVOs);
            return success(menuVOs);
        }catch (Exception e){
            e.printStackTrace();
            return ListEnvelop.getError("获取失败");
        }
    }
}

文件差异内容过多而无法显示
+ 147 - 68
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/user/UserEndpoint.java