From 413a5abc8d9f6d23dcaeb09913d7e1e58209b46a Mon Sep 17 00:00:00 2001 From: ziyujiahao <1522128093@qq.com> Date: Wed, 29 Mar 2023 12:46:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=85=AC=E5=85=B1=E9=93=BE=E6=8E=A5):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=AC=E5=85=B1=E9=93=BE=E6=8E=A5=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=98=8E=E7=BB=86=E8=A1=A8=E5=AF=BC=E5=87=BA=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/panel/PanelGroupController.java | 12 ++++++++++++ .../request/panel/PanelViewDetailsRequest.java | 2 ++ .../io/dataease/service/panel/PanelGroupService.java | 2 ++ 3 files changed, 16 insertions(+) diff --git a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java index 4b5164b44e..a980e44f5e 100644 --- a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java +++ b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java @@ -1,9 +1,12 @@ package io.dataease.controller.panel; +import com.auth0.jwt.JWT; +import com.auth0.jwt.interfaces.DecodedJWT; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.dataease.auth.annotation.DePermission; import io.dataease.auth.annotation.DePermissionProxy; import io.dataease.auth.annotation.DePermissions; +import io.dataease.auth.filter.F2CLinkFilter; import io.dataease.auth.service.impl.ExtAuthServiceImpl; import io.dataease.commons.constants.DePermissionType; import io.dataease.commons.constants.PanelConstants; @@ -21,9 +24,12 @@ import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.Logical; import org.pentaho.di.core.util.UUIDUtil; import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import springfox.documentation.annotations.ApiIgnore; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @@ -141,6 +147,12 @@ public class PanelGroupController { @PostMapping("/exportDetails") @I18n public void exportDetails(@RequestBody PanelViewDetailsRequest request, HttpServletResponse response) throws IOException { + HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) + .getRequest(); + String linkToken = httpServletRequest.getHeader(F2CLinkFilter.LINK_TOKEN_KEY); + DecodedJWT jwt = JWT.decode(linkToken); + Long userId = jwt.getClaim("userId").asLong(); + request.setUserId(userId); panelGroupService.exportPanelViewDetails(request, response); } diff --git a/backend/src/main/java/io/dataease/controller/request/panel/PanelViewDetailsRequest.java b/backend/src/main/java/io/dataease/controller/request/panel/PanelViewDetailsRequest.java index ec9650c909..acbda314be 100644 --- a/backend/src/main/java/io/dataease/controller/request/panel/PanelViewDetailsRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/panel/PanelViewDetailsRequest.java @@ -40,4 +40,6 @@ public class PanelViewDetailsRequest { @ApiModelProperty(hidden = true) private PermissionProxy proxy; + private Long userId; + } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index 4d54ff13cd..7f22ac1a7a 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -1161,6 +1161,8 @@ public class PanelGroupService { componentFilterInfo.setGoPage(1l); componentFilterInfo.setPageSize(1000000l); componentFilterInfo.setExcelExportFlag(true); + componentFilterInfo.setProxy(request.getProxy()); + componentFilterInfo.setUser(request.getUserId()); ChartViewDTO chartViewInfo = chartViewService.getData(request.getViewId(), componentFilterInfo); List tableRow = (List) chartViewInfo.getData().get("tableRow"); List result = new ArrayList<>();