diff --git a/backend/src/main/java/io/dataease/commons/constants/SysLogConstants.java b/backend/src/main/java/io/dataease/commons/constants/SysLogConstants.java index 69cbc00165..dd1508ef07 100644 --- a/backend/src/main/java/io/dataease/commons/constants/SysLogConstants.java +++ b/backend/src/main/java/io/dataease/commons/constants/SysLogConstants.java @@ -26,9 +26,11 @@ public class SysLogConstants { LOGIN(12, "OPERATE_TYPE_LOGIN"), - VIEW(13, "OPERATE_TYPE_VIEW"), + PC_VIEW(13, "OPERATE_TYPE_PC_VIEW"), - EXPORT(14, "OPERATE_TYPE_EXPORT"); + MB_VIEW(14, "OPERATE_TYPE_MB_VIEW"), + + EXPORT(15, "OPERATE_TYPE_EXPORT"); private Integer value; private String name; OPERATE_TYPE(Integer value, String name) { 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 4b315e3fd9..5c45b68005 100644 --- a/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java +++ b/backend/src/main/java/io/dataease/controller/panel/PanelGroupController.java @@ -7,7 +7,7 @@ import io.dataease.auth.annotation.DePermissions; import io.dataease.auth.service.impl.ExtAuthServiceImpl; import io.dataease.commons.constants.PanelConstants; import io.dataease.controller.request.panel.PanelGroupBaseInfoRequest; -import io.dataease.plugins.common.base.domain.PanelGroup; +import io.dataease.controller.request.panel.PanelViewLogRequest; import io.dataease.commons.constants.DePermissionType; import io.dataease.commons.constants.ResourceAuthLevel; import io.dataease.controller.handler.annotation.I18n; @@ -172,4 +172,10 @@ public class PanelGroupController { public void removePanelCache(@PathVariable String panelId){ panelGroupService.removePanelCache(panelId); } + + @ApiIgnore + @PostMapping("/viewLog") + public void viewLog(@RequestBody PanelViewLogRequest request) { + panelGroupService.viewLog(request); + } } diff --git a/backend/src/main/java/io/dataease/controller/request/panel/PanelViewLogRequest.java b/backend/src/main/java/io/dataease/controller/request/panel/PanelViewLogRequest.java new file mode 100644 index 0000000000..a685074dd9 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/request/panel/PanelViewLogRequest.java @@ -0,0 +1,12 @@ +package io.dataease.controller.request.panel; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class PanelViewLogRequest implements Serializable { + private String panelId; + + private Boolean mobile = false; +} 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 91ceb1f0fa..0e7eab6fde 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -6,10 +6,7 @@ import io.dataease.commons.constants.*; import io.dataease.commons.utils.*; import io.dataease.controller.request.authModel.VAuthModelRequest; import io.dataease.controller.request.dataset.DataSetTableRequest; -import io.dataease.controller.request.panel.PanelGroupBaseInfoRequest; -import io.dataease.controller.request.panel.PanelGroupRequest; -import io.dataease.controller.request.panel.PanelTemplateRequest; -import io.dataease.controller.request.panel.PanelViewDetailsRequest; +import io.dataease.controller.request.panel.*; import io.dataease.dto.PanelGroupExtendDataDTO; import io.dataease.dto.SysLogDTO; import io.dataease.dto.authModel.VAuthModelDTO; @@ -669,4 +666,15 @@ public class PanelGroupService { Object cache = CacheUtils.get(cacheName,cacheId); return cache!=null; } + + public void viewLog(PanelViewLogRequest request) { + String panelId = request.getPanelId(); + Boolean mobile = request.getMobile(); + PanelGroupWithBLOBs panel = panelGroupMapper.selectByPrimaryKey(panelId); + SysLogConstants.OPERATE_TYPE operateType = SysLogConstants.OPERATE_TYPE.PC_VIEW; + if (mobile) { + operateType = SysLogConstants.OPERATE_TYPE.MB_VIEW; + } + DeLogUtils.save(operateType, sourceType, panelId, panel.getPid(), null, null); + } } diff --git a/backend/src/main/java/io/dataease/service/sys/log/LogService.java b/backend/src/main/java/io/dataease/service/sys/log/LogService.java index f4fbc4ebeb..1e43cf2ecc 100644 --- a/backend/src/main/java/io/dataease/service/sys/log/LogService.java +++ b/backend/src/main/java/io/dataease/service/sys/log/LogService.java @@ -179,9 +179,34 @@ public class LogService { userLogin.setName(Translator.get(operateTypeName) + Translator.get(sourceTypeName)); results.add(userLogin); + List folderItems = viewPanelTypes(); + results.addAll(folderItems); return results; } + private List viewPanelTypes () { + List results = new ArrayList<>(); + Integer[] opTypes = new Integer[]{13, 14}; + Integer[] sourceTypes = new Integer[]{3}; + for (int i = 0; i < sourceTypes.length; i++) { + Integer sourceVal = sourceTypes[i]; + String sourceTypeName = SysLogConstants.sourceTypeName(sourceVal); + + for (int j = 0; j < opTypes.length; j++) { + + Integer operateVal = opTypes[j]; + + String operateTypeName = SysLogConstants.operateTypeName(operateVal); + FolderItem folderItem = new FolderItem(); + folderItem.setId(operateVal + "-" + sourceVal); + folderItem.setName(Translator.get(operateTypeName) + Translator.get(sourceTypeName)); + results.add(folderItem); + } + } + return results; + + } + public SysLogGridDTO convertDTO(SysLogWithBLOBs vo) { SysLogGridDTO sysLogGridDTO = new SysLogGridDTO(); sysLogGridDTO.setOpType(SysLogConstants.operateTypeName(vo.getOperateType())); diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index d14d00dabc..3e93c86f78 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -143,6 +143,8 @@ OPERATE_TYPE_DELETELINK=Delete Link OPERATE_TYPE_MODIFYLINK=Modify Link OPERATE_TYPE_UPLOADFILE=Upload OPERATE_TYPE_LOGIN=Login +OPERATE_TYPE_PC_VIEW=View with pc +OPERATE_TYPE_MB_VIEW=View with mobile device SOURCE_TYPE_DATASOURCE=DATASOURCE SOURCE_TYPE_DATASET=DATASET diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 39c4733993..7ee0f4df52 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -141,6 +141,8 @@ OPERATE_TYPE_DELETELINK=\u5220\u9664\u516C\u5171\u94FE\u63A5 OPERATE_TYPE_MODIFYLINK=\u4FEE\u6539\u516C\u5171\u94FE\u63A5 OPERATE_TYPE_UPLOADFILE=\u4E0A\u4F20 OPERATE_TYPE_LOGIN=\u767B\u5F55 +OPERATE_TYPE_PC_VIEW=\u4F7F\u7528PC\u67E5\u770B +OPERATE_TYPE_MB_VIEW=\u4F7F\u7528\u79FB\u52A8\u7AEF\u67E5\u770B SOURCE_TYPE_DATASOURCE=\u6570\u636E\u6E90 SOURCE_TYPE_DATASET=\u6570\u636E\u96C6 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index f113a7e01f..b5ecee389f 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -142,6 +142,8 @@ OPERATE_TYPE_DELETELINK=\u522A\u9664\u516C\u5171\u93C8\u63A5 OPERATE_TYPE_MODIFYLINK=\u4FEE\u6539\u516C\u5171\u93C8\u63A5 OPERATE_TYPE_UPLOADFILE=\u4E0A\u50B3 OPERATE_TYPE_LOGIN=\u767B\u9304 +OPERATE_TYPE_PC_VIEW=\u4F7F\u7528PC\u67E5\u770B +OPERATE_TYPE_MB_VIEW=\u4F7F\u7528\u79FB\u52D5\u7AEF\u67E5\u770B SOURCE_TYPE_DATASOURCE=\u6578\u64DA\u6E90 SOURCE_TYPE_DATASET=\u6578\u64DA\u96C6