From c454ce1d27a1fcfb3ef5a11a250c3f449c5065e5 Mon Sep 17 00:00:00 2001 From: liwen Date: Fri, 4 Dec 2020 10:47:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=93=8D=E4=BD=9C=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/GroupManagementController.java | 10 +- .../GroupTypeManagementController.java | 20 +- .../admin/log/LogManagementController.java | 269 ++++++++++++++++++ .../gui/uicomponents/main/MainController.java | 7 +- .../epri/fx/client/model/LogDataModel.java | 58 ++++ .../client/request/feign/admin/LogFeign.java | 29 ++ .../fxml/admin/group/group_management.fxml | 2 + .../groupType/group_type_management.fxml | 4 +- .../fxml/admin/log/log_management.fxml | 60 ++++ .../fxml/admin/menu/menu_management.fxml | 2 +- server/sql/mysql/ipsm_dba.sql | 175 +++++------- .../com/epri/fx/server/ServerApplication.java | 2 + .../epri/fx/server/config/FilterConfig.java | 42 +++ .../fx/server/config/WebConfiguration.java | 8 +- .../epri/fx/server/entity/log/GateLog.java | 32 +++ .../epri/fx/server/entity/log/LogInfo.java | 115 ++++++++ .../fx/server/filter/ReplaceStreamFilter.java | 33 +++ .../epri/fx/server/filter/RequestWrapper.java | 124 ++++++++ .../fx/server/interceptor/LogInterceptor.java | 149 ++++++++++ .../interceptor/UserAuthRestInterceptor.java | 8 + .../epri/fx/server/mapper/GateLogMapper.java | 23 ++ .../epri/fx/server/rest/LogController.java | 53 ++++ .../fx/server/service/GroupTypeService.java | 2 +- .../fx/server/service/log/GateLogService.java | 55 ++++ .../java/com/epri/fx/server/util/DBLog.java | 86 ++++++ .../src/main/resources/application-mysql.yml | 6 +- .../main/resources/mapper/GateLogMapper.xml | 147 ++++++++++ 27 files changed, 1407 insertions(+), 114 deletions(-) create mode 100644 client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/log/LogManagementController.java create mode 100644 client/src/main/java/com/epri/fx/client/model/LogDataModel.java create mode 100644 client/src/main/java/com/epri/fx/client/request/feign/admin/LogFeign.java create mode 100644 client/src/main/resources/fxml/admin/log/log_management.fxml create mode 100644 server/src/main/java/com/epri/fx/server/config/FilterConfig.java create mode 100644 server/src/main/java/com/epri/fx/server/entity/log/GateLog.java create mode 100644 server/src/main/java/com/epri/fx/server/entity/log/LogInfo.java create mode 100644 server/src/main/java/com/epri/fx/server/filter/ReplaceStreamFilter.java create mode 100644 server/src/main/java/com/epri/fx/server/filter/RequestWrapper.java create mode 100644 server/src/main/java/com/epri/fx/server/interceptor/LogInterceptor.java create mode 100644 server/src/main/java/com/epri/fx/server/mapper/GateLogMapper.java create mode 100644 server/src/main/java/com/epri/fx/server/rest/LogController.java create mode 100644 server/src/main/java/com/epri/fx/server/service/log/GateLogService.java create mode 100644 server/src/main/java/com/epri/fx/server/util/DBLog.java create mode 100644 server/src/main/resources/mapper/GateLogMapper.xml diff --git a/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/group/GroupManagementController.java b/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/group/GroupManagementController.java index 98131eb..9b80f22 100644 --- a/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/group/GroupManagementController.java +++ b/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/group/GroupManagementController.java @@ -5,6 +5,7 @@ import com.epri.fx.client.model.GroupDataModel; import com.epri.fx.client.request.Request; import com.epri.fx.client.request.feign.admin.GroupTypeFeign; import com.epri.fx.server.vo.GroupTypeVO; +import com.jfoenix.controls.JFXSpinner; import com.jfoenix.controls.JFXTabPane; import io.datafx.controller.ViewController; import io.datafx.controller.flow.Flow; @@ -40,13 +41,15 @@ public class GroupManagementController { private StackPane rootPane; @Inject private GroupDataModel groupDataModel; + @FXML + private JFXSpinner viewSpinner; @PostConstruct private void init() { TextField textField = new TextField(); textField.setStyle(""); - + viewSpinner.visibleProperty().bind(tabPane.disableProperty()); tabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Tab oldValue, Tab newValue) { @@ -60,6 +63,7 @@ public class GroupManagementController { private void initData() { ProcessChain.create().addRunnableInPlatformThread(() -> { tabPane.getTabs().clear(); + tabPane.setDisable(true); }) .addSupplierInExecutor(() -> Request.connector(GroupTypeFeign.class).getAllGroupTypes()) .addConsumerInPlatformThread(rel -> { @@ -76,7 +80,9 @@ public class GroupManagementController { } tabPane.getTabs().add(tab); } - }).onException(e -> e.printStackTrace()) + }).onException(e -> e.printStackTrace()).withFinal(() -> { + tabPane.setDisable(false); + }) .run(); } diff --git a/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/grouptype/GroupTypeManagementController.java b/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/grouptype/GroupTypeManagementController.java index 4e431ee..1e1f718 100644 --- a/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/grouptype/GroupTypeManagementController.java +++ b/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/grouptype/GroupTypeManagementController.java @@ -24,6 +24,7 @@ import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.layout.HBox; import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.util.Callback; @@ -46,9 +47,13 @@ public class GroupTypeManagementController { @FXMLViewFlowContext private ViewFlowContext viewFlowContext; + @FXML + private VBox contentPane; @FXML private StackPane rootPane; @FXML + private JFXSpinner viewSpinner; + @FXML private JFXProgressBar progressBar; @FXML private JFXDialog dialog; @@ -100,9 +105,13 @@ public class GroupTypeManagementController { progressBar.visibleProperty().bind(dialog.disableProperty()); progressBar.managedProperty().bind(progressBar.visibleProperty()); + updateButton.visibleProperty().bind(saveButton.visibleProperty().not()); updateButton.managedProperty().bind(updateButton.visibleProperty()); + saveButton.managedProperty().bind(saveButton.visibleProperty()); + cancelButton.disableProperty().bind(saveButton.disableProperty().or(updateButton.disableProperty())); + viewSpinner.visibleProperty().bind(contentPane.disableProperty()); serialNumberColumn.setCellFactory((col) -> { TableCell cell = new TableCell() { @@ -202,11 +211,16 @@ public class GroupTypeManagementController { } private void loadingTableData() { - ProcessChain.create() + ProcessChain.create().addRunnableInPlatformThread(() -> { + contentPane.setDisable(true); + }) .addSupplierInExecutor(() -> Request.connector(GroupTypeFeign.class).getAllGroupTypes()) .addConsumerInPlatformThread(rel -> { groupTypeDataModel.getGroupTypes().clear(); - groupTypeDataModel.getGroupTypes().addAll(rel);}) + groupTypeDataModel.getGroupTypes().addAll(rel); + }).withFinal(() -> { + contentPane.setDisable(false); + }) .run(); } @@ -236,7 +250,7 @@ public class GroupTypeManagementController { ProcessChain.create().addRunnableInPlatformThread(() -> dialog.setDisable(true)) .addSupplierInExecutor(() -> Request.connector(GroupTypeFeign.class).addGroupType(groupTypeVO)) .addConsumerInPlatformThread(rel -> { - if (rel >=0) { + if (rel >= 0) { loadingTableData(); } }).withFinal(() -> { diff --git a/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/log/LogManagementController.java b/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/log/LogManagementController.java new file mode 100644 index 0000000..c65a23c --- /dev/null +++ b/client/src/main/java/com/epri/fx/client/gui/uicomponents/admin/log/LogManagementController.java @@ -0,0 +1,269 @@ +package com.epri.fx.client.gui.uicomponents.admin.log; + +import com.epri.fx.client.gui.feature.FeatureResourceConsumer; +import com.epri.fx.client.gui.feature.HideByFeature; +import com.epri.fx.client.gui.uicomponents.admin.user.components.UserAddController; +import com.epri.fx.client.gui.uicomponents.admin.user.components.UserEditController; +import com.epri.fx.client.model.LogDataModel; +import com.epri.fx.client.model.UserDataModel; +import com.epri.fx.client.request.Request; +import com.epri.fx.client.request.feign.admin.LogFeign; +import com.epri.fx.client.request.feign.admin.UserFeign; +import com.epri.fx.client.request.feign.login.LoginFeign; +import com.epri.fx.client.store.ApplicatonStore; +import com.epri.fx.client.utils.Pinyin4jUtil; +import com.epri.fx.server.entity.User; +import com.epri.fx.server.entity.log.GateLog; +import com.epri.fx.server.entity.log.LogInfo; +import com.epri.fx.server.util.DateUtils; +import com.epri.fx.server.vo.UserVO; +import com.jfoenix.controls.JFXAlert; +import com.jfoenix.controls.JFXButton; +import com.jfoenix.controls.JFXDialogLayout; +import com.jfoenix.svg.SVGGlyphLoader; +import io.datafx.controller.ViewController; +import io.datafx.controller.flow.FlowException; +import io.datafx.controller.flow.action.ActionMethod; +import io.datafx.controller.flow.action.ActionTrigger; +import io.datafx.controller.flow.context.ActionHandler; +import io.datafx.controller.flow.context.FlowActionHandler; +import io.datafx.controller.util.VetoException; +import io.datafx.core.concurrent.ProcessChain; +import io.datafx.eventsystem.Event; +import io.datafx.eventsystem.OnEvent; +import javafx.collections.transformation.FilteredList; +import javafx.fxml.FXML; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.control.*; +import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.layout.HBox; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.util.Callback; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import javax.inject.Inject; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @description: + * @className: UserManagementController + * @author: liwen + * @date: 2020/3/4 21:05 + */ +@ViewController(value = "/fxml/admin/log/log_management.fxml", title = "操作日志") +public class LogManagementController { + + public static final String CONTENT_PANE = "ContentPane"; + + + @FXML + private StackPane root; + @FXML + private VBox centPane; + @FXML + private StackPane spinnerPane; + @FXML + private TextField searchField; + @FXML + private TextField userNameTextField; + @FXML + private TextField accountTextField; + @FXML + private TextField pwdTextField; + @FXML + private TextArea descTextArea; + @FXML + private ComboBox genderCombobox; + @FXML + @ActionTrigger("search") + private Button searchBut; + + @FXML + private Pagination pagination; + + + @FXML + private TableView tableView; + @FXML + private TableColumn serialNumberColumn; + @FXML + private TableColumn idColumn; + @FXML + private TableColumn menuColumn; + @FXML + private TableColumn optColumn; + @FXML + private TableColumn urlColumn; + @FXML + private TableColumn optTimeColumn; + @FXML + private TableColumn optUserIdColumn; + @FXML + private TableColumn optUserColumn; + @FXML + private TableColumn optIpColumn; + @FXML + private TableColumn requetDataColumn; + + @ActionHandler + private FlowActionHandler actionHandler; + + @Inject + private LogDataModel logDataModel; + + @Inject + private FeatureResourceConsumer featureResourceConsumer; + + @PostConstruct + public void init() { + featureResourceConsumer.consumeResource(this); + spinnerPane.setVisible(false); + serialNumberColumn.setCellFactory((col) -> { + TableCell cell = new TableCell() { + @Override + public void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + this.setText(null); + this.setGraphic(null); + + if (!empty) { + int rowIndex = this.getIndex() + 1; + this.setText(String.valueOf(rowIndex)); + } + } + }; + return cell; + }); + + idColumn.setCellValueFactory(new PropertyValueFactory<>("id")); + menuColumn.setCellValueFactory(new PropertyValueFactory<>("menu")); + optColumn.setCellValueFactory(new PropertyValueFactory<>("opt")); + urlColumn.setCellValueFactory(new PropertyValueFactory<>("uri")); + optTimeColumn.setCellValueFactory(new PropertyValueFactory<>("crtTime")); + optUserIdColumn.setCellValueFactory(new PropertyValueFactory<>("crtUser")); + optUserColumn.setCellValueFactory(new PropertyValueFactory<>("crtName")); + optIpColumn.setCellValueFactory(new PropertyValueFactory<>("crtHost")); + requetDataColumn.setCellValueFactory(new PropertyValueFactory<>("body")); + + + FilteredList filteredData = new FilteredList<>(logDataModel.getGateLogs(), p -> true); + tableView.setItems(filteredData); + searchField.textProperty().addListener((o, oldVal, newVal) -> { + filteredData.setPredicate(elementProp -> { + if (newVal == null || newVal.isEmpty()) { + return true; + } + String val = Pinyin4jUtil.toPinYinLowercase(newVal); + return Pinyin4jUtil.toPinYinLowercase(elementProp.getMenu()).contains(val) + || Pinyin4jUtil.toPinYinLowercase(elementProp.getCrtName()).contains(val) + || elementProp.getCrtHost().toLowerCase().contains(val); + }); + }); + + logDataModel.selectedPersonIndexProperty().bind(tableView.getSelectionModel().selectedIndexProperty()); + pagination.pageCountProperty().bind(logDataModel.pageCountProperty()); + pagination.setPageFactory(new Callback() { + @Override + public Node call(Integer param) { + showPage(param + 1); + return tableView; + } + }); + + + } + + + private void delete() { + GateLog gateLog = logDataModel.getGateLogs().get(logDataModel.getSelectedPersonIndex()); + + JFXAlert alert = new JFXAlert((Stage) root.getScene().getWindow()); + alert.initModality(Modality.APPLICATION_MODAL); + alert.setOverlayClose(false); + JFXDialogLayout layout = new JFXDialogLayout(); + layout.setHeading(new Label("消息提示")); + layout.setBody(new Label("确实删除【" + gateLog.getId() + "】吗?")); + JFXButton closeButton = new JFXButton("取消"); + closeButton.setOnAction(event -> alert.hideWithAnimation()); + JFXButton determineButton = new JFXButton("确定"); + determineButton.setOnAction(event -> { + alert.hideWithAnimation(); + ProcessChain.create() + .addSupplierInExecutor(() -> Request.connector(UserFeign.class).delete(gateLog.getId())) + .addConsumerInPlatformThread(result -> { + if (result.isRel()) { + logDataModel.getGateLogs().remove(logDataModel.getSelectedPersonIndex()); + } + }).onException(e -> e.printStackTrace()).run(); + }); + layout.setActions(closeButton, determineButton); + alert.setContent(layout); + alert.show(); + + } + + + private void showPage(Integer page) { + Map queryMap = new HashMap<>(); + queryMap.put("keyId", searchField.getText()); + queryMap.put("page", page); + query(queryMap); + + } + + @ActionMethod("search") + private void search() { + Map queryMap = new HashMap<>(); + queryMap.put("keyId", searchField.getText()); + query(queryMap); + + } + + private void query(Map queryMap) { + + ProcessChain.create() + .addRunnableInPlatformThread(() -> { + spinnerPane.setVisible(true); + centPane.setDisable(true); + }) + .addSupplierInExecutor(() -> Request.connector(LogFeign.class).getPageList(queryMap) + ) + .addConsumerInPlatformThread(result -> { + logDataModel.getGateLogs().clear(); + List gateLogs = result.getDatas(); + logDataModel.setPageCount((int) result.getTotal()); + + for (GateLog gateLog : gateLogs) { + logDataModel.getGateLogs().add(gateLog); + } + }) + .withFinal(() -> { + spinnerPane.setVisible(false); + centPane.setDisable(false); + }) + .onException(e -> e.printStackTrace()) + .run(); + } + + + @PreDestroy + private void destroy() { + System.err.println("destroy " + this); + } + + + @OnEvent("refresh") + private void onRefresh(Event e) { + System.err.println(this.getClass() + "\t" + e.getContent()); + + search(); + + } +} diff --git a/client/src/main/java/com/epri/fx/client/gui/uicomponents/main/MainController.java b/client/src/main/java/com/epri/fx/client/gui/uicomponents/main/MainController.java index 4805ad5..0b00cc7 100644 --- a/client/src/main/java/com/epri/fx/client/gui/uicomponents/main/MainController.java +++ b/client/src/main/java/com/epri/fx/client/gui/uicomponents/main/MainController.java @@ -48,6 +48,7 @@ import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.inject.Inject; import java.lang.reflect.InvocationTargetException; +import java.time.format.DateTimeFormatter; import java.util.HashMap; /** @@ -120,6 +121,7 @@ public class MainController { private JFXDrawer leftDrawer; @FXML + @EventTrigger("refresh") private JFXDatePicker datePicker; @Inject private FeatureResourceConsumer featureResourceConsumer; @@ -144,6 +146,9 @@ public class MainController { e.printStackTrace(); } datePicker.setEditable(false); + datePicker.valueProperty().addListener((observable, oldValue, newValue) ->{ + refreshButton.fire(); + }); leftDrawer.setSidePane(navigationList); leftDrawer.setOverLayVisible(false); leftDrawer.setResizeContent(true); @@ -226,7 +231,7 @@ public class MainController { @EventProducer("refresh") private String refresh() { - return "--------=================-----------"; + return datePicker.getValue().format(DateTimeFormatter.ofPattern("yyyyMMdd")); } diff --git a/client/src/main/java/com/epri/fx/client/model/LogDataModel.java b/client/src/main/java/com/epri/fx/client/model/LogDataModel.java new file mode 100644 index 0000000..885b19b --- /dev/null +++ b/client/src/main/java/com/epri/fx/client/model/LogDataModel.java @@ -0,0 +1,58 @@ +package com.epri.fx.client.model; + +import com.epri.fx.server.entity.log.GateLog; +import io.datafx.controller.injection.scopes.FlowScoped; +import javafx.beans.property.IntegerProperty; +import javafx.beans.property.ListProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleListProperty; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; + +@FlowScoped +public class LogDataModel { + private int counter = 0; + private ListProperty gateLogs; + + private IntegerProperty pageCount; + private IntegerProperty selectedPersonIndex; + + + public ListProperty getGateLogs() { + if (gateLogs == null) { + ObservableList innerList = FXCollections.observableArrayList(); + gateLogs = new SimpleListProperty<>(innerList); + } + return gateLogs; + } + + public int getSelectedPersonIndex() { + return selectedPersonIndexProperty().get(); + } + + public void setSelectedPersonIndex(int selectedPersonIndex) { + this.selectedPersonIndex.set(selectedPersonIndex); + } + + public IntegerProperty selectedPersonIndexProperty() { + if (selectedPersonIndex == null) { + selectedPersonIndex = new SimpleIntegerProperty(); + } + return selectedPersonIndex; + } + + public int getPageCount() { + return pageCount.get(); + } + + public IntegerProperty pageCountProperty() { + if (pageCount == null) { + pageCount = new SimpleIntegerProperty(); + } + return pageCount; + } + + public void setPageCount(int pageCount) { + this.pageCount.set(pageCount); + } +} \ No newline at end of file diff --git a/client/src/main/java/com/epri/fx/client/request/feign/admin/LogFeign.java b/client/src/main/java/com/epri/fx/client/request/feign/admin/LogFeign.java new file mode 100644 index 0000000..cb1630f --- /dev/null +++ b/client/src/main/java/com/epri/fx/client/request/feign/admin/LogFeign.java @@ -0,0 +1,29 @@ +package com.epri.fx.client.request.feign.admin; + +import com.epri.fx.client.request.feign.FeignAPI; +import com.epri.fx.server.entity.User; +import com.epri.fx.server.entity.log.GateLog; +import com.epri.fx.server.entity.log.LogInfo; +import com.epri.fx.server.msg.ObjectRestResponse; +import com.epri.fx.server.msg.TableResultResponse; +import feign.Param; +import feign.QueryMap; +import feign.RequestLine; + +import java.util.Map; + +/** + * @description: + * @className: TestFeign + * @author: liwen + * @date: 2020/4/1 17:31 + */ +public interface LogFeign extends FeignAPI { + @RequestLine("GET /log/page") + TableResultResponse getPageList(@QueryMap Map map); + + @RequestLine("DELETE /log/{id}") + ObjectRestResponse delete(@Param("id") Integer id); + + +} diff --git a/client/src/main/resources/fxml/admin/group/group_management.fxml b/client/src/main/resources/fxml/admin/group/group_management.fxml index fe7d3e5..5f28cdb 100644 --- a/client/src/main/resources/fxml/admin/group/group_management.fxml +++ b/client/src/main/resources/fxml/admin/group/group_management.fxml @@ -4,9 +4,11 @@ + + diff --git a/client/src/main/resources/fxml/admin/groupType/group_type_management.fxml b/client/src/main/resources/fxml/admin/groupType/group_type_management.fxml index 3e957c3..ac811ed 100644 --- a/client/src/main/resources/fxml/admin/groupType/group_type_management.fxml +++ b/client/src/main/resources/fxml/admin/groupType/group_type_management.fxml @@ -11,9 +11,10 @@ + - + @@ -38,6 +39,7 @@ + diff --git a/client/src/main/resources/fxml/admin/log/log_management.fxml b/client/src/main/resources/fxml/admin/log/log_management.fxml new file mode 100644 index 0000000..0df5344 --- /dev/null +++ b/client/src/main/resources/fxml/admin/log/log_management.fxml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/src/main/resources/fxml/admin/menu/menu_management.fxml b/client/src/main/resources/fxml/admin/menu/menu_management.fxml index 041111b..d7bf0c7 100644 --- a/client/src/main/resources/fxml/admin/menu/menu_management.fxml +++ b/client/src/main/resources/fxml/admin/menu/menu_management.fxml @@ -46,7 +46,7 @@ - + diff --git a/server/sql/mysql/ipsm_dba.sql b/server/sql/mysql/ipsm_dba.sql index 2e4d9e2..572d5c5 100644 --- a/server/sql/mysql/ipsm_dba.sql +++ b/server/sql/mysql/ipsm_dba.sql @@ -10,7 +10,7 @@ Target Server Type : MYSQL Target Server Version : 80022 File Encoding : 65001 -Date: 2020-12-02 15:50:25 +Date: 2020-12-04 10:46:34 */ SET FOREIGN_KEY_CHECKS=0; @@ -80,36 +80,39 @@ CREATE TABLE `base_element` ( `attr8` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_13178345917581` (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=38 DEFAULT CHARSET=utf8; +) ENGINE=MyISAM AUTO_INCREMENT=43 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of base_element -- ---------------------------- INSERT INTO `base_element` VALUES ('4', 'menuManager:element', 'uri', '按钮页面', '/admin/element', '6', null, null, 'GET', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('5', 'menuManager:btn_add', 'button', '新增', '/admin/menu/{*}', '6', null, null, 'POST', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('6', 'menuManager:btn_edit', 'button', '编辑', '/admin/menu/{*}', '6', '', '', 'PUT', '', '2017-06-24 00:00:00', '', '', '', '', '', '', '', '', '', '', ''); -INSERT INTO `base_element` VALUES ('7', 'menuManager:btn_del', 'button', '删除', '/admin/menu/{*}', '6', '', '', 'DELETE', '', '2017-06-24 00:00:00', '', '', '', '', '', '', '', '', '', '', ''); -INSERT INTO `base_element` VALUES ('8', 'menuManager:btn_element_add', 'button', '新增元素', '/admin/element', '6', null, null, 'POST', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('9', 'menuManager:btn_element_edit', 'button', '编辑元素', '/admin/element/{*}', '6', null, null, 'PUT', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('10', 'menuManager:btn_element_del', 'button', '删除元素', '/admin/element/{*}', '6', null, null, 'DELETE', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('12', 'groupManager:btn_edit', 'button', '编辑', '/admin/group/{*}', '7', null, null, 'PUT', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('14', 'groupManager:btn_userManager', 'button', '分配用户', '/admin/group/{*}/user', '7', null, null, 'PUT', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('15', 'groupManager:btn_resourceManager', 'button', '分配权限', '/admin/group/{*}/authority', '7', null, null, 'GET', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('16', 'groupManager:menu', 'uri', '分配菜单', '/admin/group/{*}/authority/menu', '7', null, null, 'POST', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('17', 'groupManager:element', 'uri', '分配资源', '/admin/group/{*}/authority/element', '7', null, null, 'POST', '', null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('5', 'menuManager:btn_add', 'button', '新增', '/menu/{*}', '6', null, null, 'POST', '', '2020-12-03 13:25:44', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('6', 'menuManager:btn_edit', 'button', '编辑', '/menu', '6', '', '', 'PUT', '', '2020-12-03 13:26:03', '1', 'admin', '127.0.0.1', '', '', '', '', '', '', '', ''); +INSERT INTO `base_element` VALUES ('7', 'menuManager:btn_del', 'button', '删除', '/menu/{*}', '6', '', '', 'DELETE', '', '2020-12-03 13:26:12', '1', 'admin', '127.0.0.1', '', '', '', '', '', '', '', ''); +INSERT INTO `base_element` VALUES ('8', 'menuManager:btn_element_add', 'button', '新增元素', '/element', '6', null, null, 'POST', '', '2020-12-03 13:26:26', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('9', 'menuManager:btn_element_edit', 'button', '编辑元素', '/element', '6', null, null, 'PUT', '', '2020-12-03 13:26:37', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('10', 'menuManager:btn_element_del', 'button', '删除元素', '/element/{*}', '6', null, null, 'DELETE', '', '2020-12-03 13:26:43', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('12', 'groupManager:btn_edit', 'button', '编辑', '/group', '7', null, null, 'PUT', '', '2020-12-03 13:46:59', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('14', 'groupManager:btn_userManager', 'button', '分配用户', '/group/{*}/user', '7', null, null, 'PUT', '', '2020-12-03 13:26:58', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('15', 'groupManager:btn_resourceManager', 'button', '分配权限', '/group/{*}/authority/menu', '7', null, null, 'PUT', '', '2020-12-03 13:48:31', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); INSERT INTO `base_element` VALUES ('19', 'menuManager:view', 'uri', '查看', '/admin/menu/{*}', '6', '', '', 'GET', '', '2017-06-26 00:00:00', '', '', '', '', '', '', '', '', '', '', ''); INSERT INTO `base_element` VALUES ('20', 'menuManager:element_view', 'uri', '查看', '/admin/element/{*}', '6', null, null, 'GET', null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_element` VALUES ('22', 'groupTypeManager:view', 'uri', '查看', '/admin/groupType/{*}', '8', null, null, 'GET', '', null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('23', 'groupTypeManager:btn_add', 'button', '新增', '/admin/groupType', '8', null, null, 'POST', null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('24', 'groupTypeManager:btn_edit', 'button', '编辑', '/admin/groupType/{*}', '8', null, null, 'PUT', null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('25', 'groupTypeManager:btn_del', 'button', '删除', '/admin/groupType/{*}', '8', null, null, 'DELETE', null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('23', 'groupTypeManager:btn_add', 'button', '新增', '/groupType', '8', null, null, 'POST', null, '2020-12-03 13:17:51', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('24', 'groupTypeManager:btn_edit', 'button', '编辑', '/groupType', '8', null, null, 'PUT', null, '2020-12-03 13:22:14', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('25', 'groupTypeManager:btn_del', 'button', '删除', '/groupType/{*}', '8', null, null, 'DELETE', null, '2020-12-03 13:18:12', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); INSERT INTO `base_element` VALUES ('27', 'serviceManager:view', 'URI', '查看', '/auth/service/{*}', '10', null, null, 'GET', null, '2017-12-26 20:17:42', '1', 'Mr.AG', '127.0.0.1', null, null, null, null, null, null, null, null); INSERT INTO `base_element` VALUES ('28', 'serviceManager:btn_add', 'button', '新增', '/auth/service', '10', null, null, 'POST', null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_element` VALUES ('29', 'serviceManager:btn_edit', 'button', '编辑', '/auth/service/{*}', '10', null, null, 'PUT', null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_element` VALUES ('30', 'serviceManager:btn_del', 'button', '删除', '/auth/service/{*}', '10', null, null, 'DELETE', null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_element` VALUES ('31', 'serviceManager:btn_clientManager', 'button', '服务授权', '/auth/service/{*}/client', '10', null, null, 'POST', null, '2017-12-30 16:32:48', '1', 'Mr.AG', '127.0.0.1', null, null, null, null, null, null, null, null); INSERT INTO `base_element` VALUES ('34', 'home', 'uri', '查看', 'home/', '16', null, null, 'GET', null, '2018-11-08 17:50:05', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); -INSERT INTO `base_element` VALUES ('37', 'userManager:btn_add', 'button', '添加', '', '1', null, null, 'POST', '', '2020-09-17 09:31:03', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('37', 'userManager:btn_add', 'button', '添加', '/user', '1', null, null, 'POST', '', '2020-12-03 13:23:40', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('38', 'userManager:btn_del', 'button', '删除', '/user/{*}', '1', null, null, 'DELETE', '', '2020-12-03 13:24:35', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('39', 'userManager:btn_edit', 'button', '修改', '/user/{*}', '1', null, null, 'PUT', '', '2020-12-03 13:35:36', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('42', 'groupManager:btn_del', 'button', '删除', '/group', '7', null, null, 'DELETE', '', '2020-12-03 13:48:03', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('41', 'groupManager:btn_add', 'button', '新增', '/group', '7', null, null, 'POST', '', '2020-12-03 13:47:29', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_element` VALUES ('40', 'userManage:rest', 'button', '重置密码', '/user/password/{*}', '1', null, null, 'PUT', '', '2020-12-03 13:42:38', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); -- ---------------------------- -- Table structure for base_group @@ -179,7 +182,7 @@ CREATE TABLE `base_group_leader` ( `attr8` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_13178357041319` (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=38 DEFAULT CHARSET=utf8; +) ENGINE=MyISAM AUTO_INCREMENT=39 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of base_group_leader @@ -187,7 +190,7 @@ CREATE TABLE `base_group_leader` ( INSERT INTO `base_group_leader` VALUES ('32', '4', '29', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_group_leader` VALUES ('35', '3', '29', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_group_leader` VALUES ('36', '1', '1', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_group_leader` VALUES ('37', '9', '1', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_group_leader` VALUES ('38', '9', '1', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); -- ---------------------------- -- Table structure for base_group_member @@ -216,7 +219,7 @@ CREATE TABLE `base_group_member` ( `attr8` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_13178361150862` (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=62 DEFAULT CHARSET=utf8; +) ENGINE=MyISAM AUTO_INCREMENT=63 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of base_group_member @@ -226,7 +229,7 @@ INSERT INTO `base_group_member` VALUES ('57', '3', '29', null, null, null, null, INSERT INTO `base_group_member` VALUES ('58', '1', '1', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_group_member` VALUES ('59', '1', '4', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_group_member` VALUES ('60', '1', '29', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_group_member` VALUES ('61', '9', '1', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_group_member` VALUES ('62', '9', '1', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); -- ---------------------------- -- Table structure for base_group_type @@ -255,14 +258,14 @@ CREATE TABLE `base_group_type` ( `attr8` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_13178366074910` (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of base_group_type -- ---------------------------- INSERT INTO `base_group_type` VALUES ('1', 'role', '角色类型', 'role', null, null, null, null, '2017-08-25 17:52:37', '1', 'Mr.AG', '127.0.0.1', null, null, null, null, null, null, null, null); INSERT INTO `base_group_type` VALUES ('2', 'depart', '部门类型', '部门类型', null, null, null, null, '2020-08-01 19:25:34', '1', 'Mr.AG', '127.0.0.1', null, null, null, null, null, null, null, null); -INSERT INTO `base_group_type` VALUES ('3', 'free', '自定义类型', 'sadf', null, null, null, null, '2017-08-26 08:22:25', '1', 'Mr.AG', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_group_type` VALUES ('3', 'freeaa', '自定义类型', 'sadf', null, null, null, null, '2020-12-03 19:57:40', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); -- ---------------------------- -- Table structure for base_menu @@ -303,13 +306,13 @@ CREATE TABLE `base_menu` ( -- ---------------------------- -- Records of base_menu -- ---------------------------- -INSERT INTO `base_menu` VALUES ('1', 'userManager', '用户管理', '5', 'com.epri.fx.client.gui.uicomponents.admin.user.UserManagementController', 'yonghuguanli_huaban', 'menu', '11', '', '/adminSys/baseManager/userManager', null, '2020-10-14 15:59:15', '1', 'admin', '127.0.0.1', '2020-10-14 15:59:15', '1', 'admin', '127.0.0.1', 'admin/user/index', null, null, null, null, null, null, null); +INSERT INTO `base_menu` VALUES ('1', 'userManager', '用户管理', '5', 'com.epri.fx.client.gui.uicomponents.admin.user.UserManagementController', 'yonghuguanli_huaban', 'menu', '11', 'aaaa', '/adminSys/baseManager/userManager', null, '2020-12-03 13:43:21', '1', 'admin', '127.0.0.1', '2020-12-03 13:43:21', '1', 'admin', '127.0.0.1', 'admin/user/index', null, null, null, null, null, null, null); INSERT INTO `base_menu` VALUES ('5', 'baseManager', '基础配置管理', '13', '/admin', 'jichupeizhi', 'dirt', '2', '', '/adminSys/baseManager', null, '2020-10-14 16:15:25', '1', 'admin', '127.0.0.1', '2020-10-14 16:15:25', '1', 'admin', '127.0.0.1', 'Layout', null, null, null, null, null, null, null); INSERT INTO `base_menu` VALUES ('6', 'menuManager', '菜单管理', '5', 'com.epri.fx.client.gui.uicomponents.admin.menu.MenuManagementController', 'jiaoyixulie', 'menu', '12', '你大爷', '/adminSys/baseManager/menuManager', null, '2020-09-18 16:53:22', '1', 'admin', '127.0.0.1', '2020-09-18 16:53:22', '1', 'admin', '127.0.0.1', 'admin/menu/index', null, null, null, null, null, null, null); INSERT INTO `base_menu` VALUES ('7', 'groupManager', '角色权限管理', '5', 'com.epri.fx.client.gui.uicomponents.admin.group.GroupManagementController', 'gongnengjiaosequanxianguanli', 'menu', '13', '', '/adminSys/baseManager/groupManager', null, '2020-08-20 15:45:42', '1', 'admin', '127.0.0.1', '2020-08-20 15:45:42', '1', 'admin', '127.0.0.1', 'admin/group/index', null, null, null, null, null, null, null); INSERT INTO `base_menu` VALUES ('8', 'groupTypeManager', '角色类型管理', '5', 'com.epri.fx.client.gui.uicomponents.admin.grouptype.GroupTypeManagementController', 'jiaoseleixing', 'menu', '14', '', '/adminSys/baseManager/groupTypeManager', null, '2020-08-20 15:45:49', '1', 'admin', '127.0.0.1', '2020-08-20 15:45:49', '1', 'admin', '127.0.0.1', 'admin/groupType/index', null, null, null, null, null, null, null); INSERT INTO `base_menu` VALUES ('13', 'adminSys', '系统菜单', '-1', '/base', 'align-justify', 'dirt', '0', '', '/adminSys', null, '2020-08-02 18:39:35', '1', 'admin', '127.0.0.1', '2020-08-02 18:39:35', '1', 'admin', '127.0.0.1', 'Layout', null, null, null, null, null, null, null); -INSERT INTO `base_menu` VALUES ('27', 'gateLogManager', '操作日志', '5', '/admin/gateLog', 'caozuorizhi', 'menu', '15', '', '/adminSys/baseManager/gateLogManager', null, '2020-08-20 15:45:55', '1', 'admin', '127.0.0.1', '2020-08-20 15:45:55', '1', 'admin', '127.0.0.1', 'admin/gateLog/index', null, null, null, null, null, null, null); +INSERT INTO `base_menu` VALUES ('27', 'gateLogManager', '操作日志', '5', 'com.epri.fx.client.gui.uicomponents.admin.log.LogManagementController', 'caozuorizhi', 'menu', '15', '', '/adminSys/baseManager/gateLogManager', null, '2020-12-04 10:30:20', '1', 'admin', '127.0.0.1', '2020-12-04 10:30:20', '1', 'admin', '127.0.0.1', 'admin/gateLog/index', null, null, null, null, null, null, null); INSERT INTO `base_menu` VALUES ('44', 'home', '主页', '13', 'com.epri.fx.client.gui.uicomponents.home.HomeController', 'home-outline', null, '0', '', 'com.epri.fx.client.gui.uicomponents.home.HomeController', null, '2020-08-03 15:51:48', '1', 'admin', '127.0.0.1', '2020-08-03 15:51:48', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); INSERT INTO `base_menu` VALUES ('45', 'baseInfo', '基础信息录入', '13', '', 'jichuxinxi', null, '1', '基础信息录入', null, null, '2020-10-14 17:20:25', '1', 'admin', '127.0.0.1', '2020-10-14 17:20:25', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); INSERT INTO `base_menu` VALUES ('46', 'base', '基础参数', '45', 'com.epri.fx.client.gui.uicomponents.basicInfo.BasicDataSetController', 'jichucanshu', null, '0', '', null, null, '2020-10-14 17:20:04', '1', 'admin', '127.0.0.1', '2020-10-14 17:20:04', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); @@ -344,7 +347,7 @@ CREATE TABLE `base_resource_authority` ( `attr8` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_13178383042404` (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=2347 DEFAULT CHARSET=utf8; +) ENGINE=MyISAM AUTO_INCREMENT=2516 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of base_resource_authority @@ -378,37 +381,40 @@ INSERT INTO `base_resource_authority` VALUES ('2190', '1', 'group', '25', 'butto INSERT INTO `base_resource_authority` VALUES ('2191', '1', 'group', '8', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_resource_authority` VALUES ('2192', '1', 'group', '27', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `base_resource_authority` VALUES ('2193', '1', 'group', '44', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2316', '9', 'group', '37', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2317', '9', 'group', '1', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2318', '9', 'group', '5', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2319', '9', 'group', '4', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2320', '9', 'group', '5', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2321', '9', 'group', '6', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2322', '9', 'group', '7', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2323', '9', 'group', '8', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2324', '9', 'group', '9', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2325', '9', 'group', '10', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2326', '9', 'group', '19', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2327', '9', 'group', '20', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2328', '9', 'group', '6', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2329', '9', 'group', '12', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2330', '9', 'group', '14', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2331', '9', 'group', '15', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2332', '9', 'group', '16', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2333', '9', 'group', '17', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2334', '9', 'group', '7', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2335', '9', 'group', '22', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2336', '9', 'group', '23', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2337', '9', 'group', '24', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2338', '9', 'group', '25', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2339', '9', 'group', '8', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2340', '9', 'group', '27', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2341', '9', 'group', '44', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2342', '9', 'group', '45', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2343', '9', 'group', '46', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2344', '9', 'group', '47', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2345', '9', 'group', '48', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -INSERT INTO `base_resource_authority` VALUES ('2346', '9', 'group', '49', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2515', '9', 'group', '49', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2514', '9', 'group', '48', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2513', '9', 'group', '47', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2512', '9', 'group', '46', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2511', '9', 'group', '45', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2510', '9', 'group', '44', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2509', '9', 'group', '27', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2508', '9', 'group', '8', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2507', '9', 'group', '25', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2506', '9', 'group', '24', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2505', '9', 'group', '23', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2504', '9', 'group', '22', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2503', '9', 'group', '7', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2502', '9', 'group', '41', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2501', '9', 'group', '42', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2500', '9', 'group', '15', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2499', '9', 'group', '14', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2497', '9', 'group', '6', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2498', '9', 'group', '12', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2496', '9', 'group', '20', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2495', '9', 'group', '19', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2494', '9', 'group', '10', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2493', '9', 'group', '9', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2492', '9', 'group', '8', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2491', '9', 'group', '7', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2490', '9', 'group', '6', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2489', '9', 'group', '5', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2488', '9', 'group', '4', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2487', '9', 'group', '5', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2486', '9', 'group', '1', 'menu', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2485', '9', 'group', '40', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2484', '9', 'group', '39', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2482', '9', 'group', '37', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); +INSERT INTO `base_resource_authority` VALUES ('2483', '9', 'group', '38', 'button', '-1', null, null, null, null, null, null, null, null, null, null, null, null, null, null); -- ---------------------------- -- Table structure for base_rsa_key @@ -461,15 +467,14 @@ CREATE TABLE `base_user` ( `attr7` varchar(255) DEFAULT NULL, `attr8` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- ---------------------------- -- Records of base_user -- ---------------------------- -INSERT INTO `base_user` VALUES ('1', 'admin', '$2a$12$/Xa6YcdVm387zA.EE/6xce11UX.AZBiwerBztXLAVBMhVKQ/pZfNW', 'liwen', '', null, '', null, '', '男', null, null, '', '2020-09-10 16:58:10', '1', 'admin', '127.0.0.1', '2020-10-28 10:08:32', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); -INSERT INTO `base_user` VALUES ('4', 'blog', '$2a$12$oAXfILUbaRuD.ccalygnSeGvgg0MKkg9IqKHaYEf.rEtppqB67lrS', 'Mr.Liwen(博主)', '', null, '', null, '', '男', null, null, '12', '2020-10-22 09:51:08', '1', 'admin', '127.0.0.1', '2020-10-22 09:51:08', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); -INSERT INTO `base_user` VALUES ('29', 'test', '$2a$12$OjXths1o8rJ3oGykW3yQyuDokbZqMUlp2KXNfgYA2IObA8HVqXlJK', 'test', null, null, null, null, null, '男', null, null, 'test', '2020-08-03 16:48:49', '1', 'admin', '127.0.0.1', '2020-08-04 17:17:42', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); -INSERT INTO `base_user` VALUES ('30', 'liwen', '$2a$12$oU7IR69sZ7.9ro.rgaAvDugdH8vLpOajI9d/hRvBTc14nPIMqRHbi', 'liwen', null, null, null, null, null, '男', null, null, 'admin', '2020-11-25 02:37:33', '1', 'admin', '127.0.0.1', '2020-11-25 02:37:33', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_user` VALUES ('1', 'admin', '$2a$12$/Xa6YcdVm387zA.EE/6xce11UX.AZBiwerBztXLAVBMhVKQ/pZfNW', 'liwen', '', null, '', null, '', '男', null, null, '', '2020-12-03 17:19:07', '1', 'admin', '127.0.0.1', '2020-12-03 17:19:07', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_user` VALUES ('4', 'blog', '$2a$12$qWkIM1ZwBhzfs6eHgu6yFOeZB0Rtklt/MlzTg/YkagS19k8EmeV2C', 'Mr.Liwen(博主)', '', null, '', null, '', '女', null, null, '12', '2020-12-03 19:56:04', '1', 'admin', '127.0.0.1', '2020-12-03 19:56:36', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); +INSERT INTO `base_user` VALUES ('30', 'liwen', '$2a$12$TsY.B4VLwtuIfGSTIpWjHu3tiuwjmVoFoqYTbJv7f/193kdCCRIXO', 'liwen', null, null, null, null, null, '男', null, null, 'admin', '2020-11-25 02:37:33', '1', 'admin', '127.0.0.1', '2020-12-03 13:42:11', '1', 'admin', '127.0.0.1', null, null, null, null, null, null, null, null); -- ---------------------------- -- Table structure for gate_log @@ -484,47 +489,17 @@ CREATE TABLE `gate_log` ( `crt_user` varchar(255) DEFAULT NULL, `crt_name` varchar(255) DEFAULT NULL, `crt_host` varchar(255) DEFAULT NULL, + `body` text, PRIMARY KEY (`id`), UNIQUE KEY `id_13178398875749` (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=60 DEFAULT CHARSET=utf8; +) ENGINE=MyISAM AUTO_INCREMENT=107 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of gate_log -- ---------------------------- -INSERT INTO `gate_log` VALUES ('23', '用户管理', '删除', '/admin/user/{*}', '2018-11-16 14:33:52', '9', 'admin', '/127.0.0.1:53169'); -INSERT INTO `gate_log` VALUES ('24', '用户管理', '编辑', '/admin/user/{*}', '2018-11-16 14:35:39', '9', 'admin', '/127.0.0.1:53169'); -INSERT INTO `gate_log` VALUES ('25', '用户管理', '编辑', '/admin/user/{*}', '2018-11-16 14:36:44', '9', 'admin', '/127.0.0.1:53169'); -INSERT INTO `gate_log` VALUES ('26', '用户管理', '编辑', '/admin/user/{*}', '2018-11-16 14:39:28', '9', 'admin', '/127.0.0.1:53169'); -INSERT INTO `gate_log` VALUES ('27', '用户管理', '编辑', '/admin/user/{*}', '2018-11-16 14:40:56', '9', 'admin', '/127.0.0.1:53169'); -INSERT INTO `gate_log` VALUES ('28', '用户管理', '编辑', '/admin/user/{*}', '2018-11-16 14:42:25', '9', 'admin', '/127.0.0.1:53169'); -INSERT INTO `gate_log` VALUES ('29', '用户管理', '编辑', '/admin/user/{*}', '2018-11-16 14:43:54', '9', 'admin', '/127.0.0.1:53169'); -INSERT INTO `gate_log` VALUES ('30', '角色类型管理', '删除', '/admin/groupType/{*}', '2018-11-16 15:17:57', '9', 'admin', '/127.0.0.1:54049'); -INSERT INTO `gate_log` VALUES ('31', '角色类型管理', '删除', '/admin/groupType/{*}', '2018-11-16 15:17:58', '9', 'admin', '/127.0.0.1:54049'); -INSERT INTO `gate_log` VALUES ('32', '角色权限管理', '分配资源', '/admin/group/{*}/authority/element', '2018-11-16 15:40:51', '9', 'admin', '/127.0.0.1:54428'); -INSERT INTO `gate_log` VALUES ('33', '角色权限管理', '分配资源', '/admin/group/{*}/authority/element', '2018-11-16 15:40:52', '9', 'admin', '/127.0.0.1:54428'); -INSERT INTO `gate_log` VALUES ('34', '角色权限管理', '分配资源', '/admin/group/{*}/authority/element', '2018-11-16 15:40:53', '9', 'admin', '/127.0.0.1:54428'); -INSERT INTO `gate_log` VALUES ('35', '角色权限管理', '分配资源', '/admin/group/{*}/authority/element', '2018-11-16 15:40:54', '9', 'admin', '/127.0.0.1:54428'); -INSERT INTO `gate_log` VALUES ('36', '角色权限管理', '分配资源', '/admin/group/{*}/authority/element', '2018-11-16 15:40:55', '9', 'admin', '/127.0.0.1:54428'); -INSERT INTO `gate_log` VALUES ('37', '角色权限管理', '分配资源', '/admin/group/{*}/authority/element', '2018-11-16 15:40:57', '9', 'admin', '/127.0.0.1:54428'); -INSERT INTO `gate_log` VALUES ('38', '角色权限管理', '分配菜单', '/admin/group/{*}/authority/menu', '2018-11-16 15:41:54', '9', 'admin', '/127.0.0.1:54428'); -INSERT INTO `gate_log` VALUES ('39', '角色类型管理', '新增', '/admin/groupType', '2018-11-16 15:43:08', '9', 'admin', '/127.0.0.1:54454'); -INSERT INTO `gate_log` VALUES ('40', '角色权限管理', '新增', '/admin/group', '2018-11-16 15:52:53', '9', 'admin', '/127.0.0.1:54780'); -INSERT INTO `gate_log` VALUES ('41', '角色权限管理', '新增', '/admin/group', '2018-11-16 15:53:18', '9', 'admin', '/127.0.0.1:54780'); -INSERT INTO `gate_log` VALUES ('42', '角色类型管理', '删除', '/admin/groupType/{*}', '2018-11-16 15:59:20', '9', 'admin', '/127.0.0.1:54909'); -INSERT INTO `gate_log` VALUES ('43', '菜单管理', '编辑', '/admin/menu/{*}', '2018-11-21 11:02:49', '9', 'admin', '/127.0.0.1:56699'); -INSERT INTO `gate_log` VALUES ('44', '菜单管理', '编辑', '/admin/menu/{*}', '2018-11-21 11:03:03', '9', 'admin', '/127.0.0.1:56699'); -INSERT INTO `gate_log` VALUES ('45', '菜单管理', '编辑', '/admin/menu/{*}', '2018-11-21 11:03:18', '9', 'admin', '/127.0.0.1:56699'); -INSERT INTO `gate_log` VALUES ('46', '菜单管理', '编辑', '/admin/menu/{*}', '2018-11-21 11:04:27', '9', 'admin', '/127.0.0.1:56747'); -INSERT INTO `gate_log` VALUES ('47', '菜单管理', '编辑', '/admin/menu/{*}', '2018-11-21 11:04:53', '9', 'admin', '/127.0.0.1:56747'); -INSERT INTO `gate_log` VALUES ('48', '菜单管理', '编辑', '/admin/menu/{*}', '2018-11-21 11:05:06', '9', 'admin', '/127.0.0.1:56747'); -INSERT INTO `gate_log` VALUES ('49', '角色权限管理', '分配资源', '/admin/group/{*}/authority/element', '2018-11-29 10:29:00', '9', 'admin', '/127.0.0.1:53564'); -INSERT INTO `gate_log` VALUES ('50', '角色权限管理', '分配菜单', '/admin/group/{*}/authority/menu', '2018-11-29 10:29:05', '9', 'admin', '/127.0.0.1:53564'); -INSERT INTO `gate_log` VALUES ('51', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:29:56', '9', 'admin', '/127.0.0.1:53611'); -INSERT INTO `gate_log` VALUES ('52', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:34:34', '9', 'admin', '/127.0.0.1:53688'); -INSERT INTO `gate_log` VALUES ('53', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:37:14', '9', 'admin', '/127.0.0.1:53745'); -INSERT INTO `gate_log` VALUES ('54', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:37:16', '9', 'admin', '/127.0.0.1:53745'); -INSERT INTO `gate_log` VALUES ('55', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:37:17', '9', 'admin', '/127.0.0.1:53745'); -INSERT INTO `gate_log` VALUES ('56', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:37:33', '9', 'admin', '/127.0.0.1:53745'); -INSERT INTO `gate_log` VALUES ('57', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:38:27', '9', 'admin', '/127.0.0.1:53745'); -INSERT INTO `gate_log` VALUES ('58', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:39:24', '9', 'admin', '/127.0.0.1:53745'); -INSERT INTO `gate_log` VALUES ('59', '用户管理', '编辑', '/admin/user/{*}', '2018-11-29 10:39:48', '9', 'admin', '/127.0.0.1:53745'); +INSERT INTO `gate_log` VALUES ('102', '用户管理', '修改', '/user/{*}', '2020-12-03 19:56:04', '1', 'liwen', '127.0.0.1', '{ \"id\" : 4, \"username\" : \"blog\", \"name\" : \"Mr.Liwen(博主)\", \"sex\" : \"女\", \"description\" : \"12\"}'); +INSERT INTO `gate_log` VALUES ('103', '用户管理', '重置密码', '/user/password/{*}', '2020-12-03 19:56:36', '1', 'liwen', '127.0.0.1', ''); +INSERT INTO `gate_log` VALUES ('104', '角色权限管理', '分配权限', '/group/{*}/authority/menu', '2020-12-03 19:57:06', '1', 'liwen', '127.0.0.1', '[ { \"id\" : 1, \"code\" : \"userManager\", \"title\" : \"用户管理\", \"parentId\" : 5, \"href\" : \"com.epri.fx.client.gui.uicomponents.admin.user.UserManagementController\", \"icon\" : \"yonghuguanli_huaban\", \"type\" : \"menu\", \"orderNum\" : 11, \"description\" : \"aaaa\", \"path\" : \"/adminSys/baseManager/userManager\", \"sel\" : true, \"elementVOS\" : [ { \"id\" : 37, \"code\" : \"userManager:btn_add\", \"type\" : \"button\", \"name\" : \"添加\", \"uri\" : \"/user\", \"menuId\" : \"1\", \"method\" : \"POST\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 38, \"code\" : \"userManager:btn_del\", \"type\" : \"button\", \"name\" : \"删除\", \"uri\" : \"/user/{*}\", \"menuId\" : \"1\", \"method\" : \"DELETE\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 39, \"code\" : \"userManager:btn_edit\", \"type\" : \"button\", \"name\" : \"修改\", \"uri\" : \"/user/{*}\", \"menuId\" : \"1\", \"method\" : \"PUT\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 40, \"code\" : \"userManage:rest\", \"type\" : \"button\", \"name\" : \"重置密码\", \"uri\" : \"/user/password/{*}\", \"menuId\" : \"1\", \"method\" : \"PUT\", \"description\" : \"\", \"sel\" : true } ]}, { \"id\" : 5, \"code\" : \"baseManager\", \"title\" : \"基础配置管理\", \"parentId\" : 13, \"href\" : \"/admin\", \"icon\" : \"jichupeizhi\", \"type\" : \"dirt\", \"orderNum\" : 2, \"description\" : \"\", \"path\" : \"/adminSys/baseManager\", \"sel\" : true, \"elementVOS\" : [ ]}, { \"id\" : 6, \"code\" : \"menuManager\", \"title\" : \"菜单管理\", \"parentId\" : 5, \"href\" : \"com.epri.fx.client.gui.uicomponents.admin.menu.MenuManagementController\", \"icon\" : \"jiaoyixulie\", \"type\" : \"menu\", \"orderNum\" : 12, \"description\" : \"你大爷\", \"path\" : \"/adminSys/baseManager/menuManager\", \"sel\" : true, \"elementVOS\" : [ { \"id\" : 4, \"code\" : \"menuManager:element\", \"type\" : \"uri\", \"name\" : \"按钮页面\", \"uri\" : \"/admin/element\", \"menuId\" : \"6\", \"method\" : \"GET\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 5, \"code\" : \"menuManager:btn_add\", \"type\" : \"button\", \"name\" : \"新增\", \"uri\" : \"/menu/{*}\", \"menuId\" : \"6\", \"method\" : \"POST\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 6, \"code\" : \"menuManager:btn_edit\", \"type\" : \"button\", \"name\" : \"编辑\", \"uri\" : \"/menu\", \"menuId\" : \"6\", \"parentId\" : \"\", \"path\" : \"\", \"method\" : \"PUT\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 7, \"code\" : \"menuManager:btn_del\", \"type\" : \"button\", \"name\" : \"删除\", \"uri\" : \"/menu/{*}\", \"menuId\" : \"6\", \"parentId\" : \"\", \"path\" : \"\", \"method\" : \"DELETE\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 8, \"code\" : \"menuManager:btn_element_add\", \"type\" : \"button\", \"name\" : \"新增元素\", \"uri\" : \"/element\", \"menuId\" : \"6\", \"method\" : \"POST\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 9, \"code\" : \"menuManager:btn_element_edit\", \"type\" : \"button\", \"name\" : \"编辑元素\", \"uri\" : \"/element\", \"menuId\" : \"6\", \"method\" : \"PUT\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 10, \"code\" : \"menuManager:btn_element_del\", \"type\" : \"button\", \"name\" : \"删除元素\", \"uri\" : \"/element/{*}\", \"menuId\" : \"6\", \"method\" : \"DELETE\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 19, \"code\" : \"menuManager:view\", \"type\" : \"uri\", \"name\" : \"查看\", \"uri\" : \"/admin/menu/{*}\", \"menuId\" : \"6\", \"parentId\" : \"\", \"path\" : \"\", \"method\" : \"GET\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 20, \"code\" : \"menuManager:element_view\", \"type\" : \"uri\", \"name\" : \"查看\", \"uri\" : \"/admin/element/{*}\", \"menuId\" : \"6\", \"method\" : \"GET\", \"sel\" : true } ]}, { \"id\" : 7, \"code\" : \"groupManager\", \"title\" : \"角色权限管理\", \"parentId\" : 5, \"href\" : \"com.epri.fx.client.gui.uicomponents.admin.group.GroupManagementController\", \"icon\" : \"gongnengjiaosequanxianguanli\", \"type\" : \"menu\", \"orderNum\" : 13, \"description\" : \"\", \"path\" : \"/adminSys/baseManager/groupManager\", \"sel\" : true, \"elementVOS\" : [ { \"id\" : 12, \"code\" : \"groupManager:btn_edit\", \"type\" : \"button\", \"name\" : \"编辑\", \"uri\" : \"/group\", \"menuId\" : \"7\", \"method\" : \"PUT\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 14, \"code\" : \"groupManager:btn_userManager\", \"type\" : \"button\", \"name\" : \"分配用户\", \"uri\" : \"/group/{*}/user\", \"menuId\" : \"7\", \"method\" : \"PUT\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 15, \"code\" : \"groupManager:btn_resourceManager\", \"type\" : \"button\", \"name\" : \"分配权限\", \"uri\" : \"/group/{*}/authority/menu\", \"menuId\" : \"7\", \"method\" : \"PUT\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 42, \"code\" : \"groupManager:btn_del\", \"type\" : \"button\", \"name\" : \"删除\", \"uri\" : \"/group\", \"menuId\" : \"7\", \"method\" : \"DELETE\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 41, \"code\" : \"groupManager:btn_add\", \"type\" : \"button\", \"name\" : \"新增\", \"uri\" : \"/group\", \"menuId\" : \"7\", \"method\" : \"POST\", \"description\" : \"\", \"sel\" : true } ]}, { \"id\" : 8, \"code\" : \"groupTypeManager\", \"title\" : \"角色类型管理\", \"parentId\" : 5, \"href\" : \"com.epri.fx.client.gui.uicomponents.admin.grouptype.GroupTypeManagementController\", \"icon\" : \"jiaoseleixing\", \"type\" : \"menu\", \"orderNum\" : 14, \"description\" : \"\", \"path\" : \"/adminSys/baseManager/groupTypeManager\", \"sel\" : true, \"elementVOS\" : [ { \"id\" : 22, \"code\" : \"groupTypeManager:view\", \"type\" : \"uri\", \"name\" : \"查看\", \"uri\" : \"/admin/groupType/{*}\", \"menuId\" : \"8\", \"method\" : \"GET\", \"description\" : \"\", \"sel\" : true }, { \"id\" : 23, \"code\" : \"groupTypeManager:btn_add\", \"type\" : \"button\", \"name\" : \"新增\", \"uri\" : \"/groupType\", \"menuId\" : \"8\", \"method\" : \"POST\", \"sel\" : true }, { \"id\" : 24, \"code\" : \"groupTypeManager:btn_edit\", \"type\" : \"button\", \"name\" : \"编辑\", \"uri\" : \"/groupType\", \"menuId\" : \"8\", \"method\" : \"PUT\", \"sel\" : true }, { \"id\" : 25, \"code\" : \"groupTypeManager:btn_del\", \"type\" : \"button\", \"name\" : \"删除\", \"uri\" : \"/groupType/{*}\", \"menuId\" : \"8\", \"method\" : \"DELETE\", \"sel\" : true } ]}, { \"id\" : 27, \"code\" : \"gateLogManager\", \"title\" : \"操作日志\", \"parentId\" : 5, \"href\" : \"/admin/gateLog\", \"icon\" : \"caozuorizhi\", \"type\" : \"menu\", \"orderNum\" : 15, \"description\" : \"\", \"path\" : \"/adminSys/baseManager/gateLogManager\", \"sel\" : true, \"elementVOS\" : [ ]}, { \"id\" : 44, \"code\" : \"home\", \"title\" : \"主页\", \"parentId\" : 13, \"href\" : \"com.epri.fx.client.gui.uicomponents.home.HomeController\", \"icon\" : \"home-outline\", \"orderNum\" : 0, \"description\" : \"\", \"path\" : \"com.epri.fx.client.gui.uicomponents.home.HomeController\", \"sel\" : true, \"elementVOS\" : [ ]}, { \"id\" : 45, \"code\" : \"baseInfo\", \"title\" : \"基础信息录入\", \"parentId\" : 13, \"href\" : \"\", \"icon\" : \"jichuxinxi\", \"orderNum\" : 1, \"description\" : \"基础信息录入\", \"sel\" : true, \"elementVOS\" : [ ]}, { \"id\" : 46, \"code\" : \"base\", \"title\" : \"基础参数\", \"parentId\" : 45, \"href\" : \"com.epri.fx.client.gui.uicomponents.basicInfo.BasicDataSetController\", \"icon\" : \"jichucanshu\", \"orderNum\" : 0, \"description\" : \"\", \"sel\" : true, \"elementVOS\" : [ ]}, { \"id\" : 47, \"code\" : \"\", \"title\" : \"煤价差\", \"parentId\" : 45, \"href\" : \"com.epri.fx.client.gui.uicomponents.basicInfo.CoalPriceDiffController\", \"icon\" : \"Energy-\", \"orderNum\" : 1, \"description\" : \"\", \"sel\" : true, \"elementVOS\" : [ ]}, { \"id\" : 48, \"code\" : \"\", \"title\" : \"铁路成本\", \"parentId\" : 45, \"href\" : \"com.epri.fx.client.gui.uicomponents.basicInfo.RailwayCostController\", \"icon\" : \"tieluyunshu\", \"orderNum\" : 2, \"description\" : \"\", \"sel\" : true, \"elementVOS\" : [ ]}, { \"id\" : 49, \"code\" : \"\", \"title\" : \"现行运价\", \"parentId\" : 45, \"href\" : \"com.epri.fx.client.gui.uicomponents.basicInfo.CurrentFreightController\", \"icon\" : \"hangzheng\", \"orderNum\" : 3, \"description\" : \"\", \"sel\" : true, \"elementVOS\" : [ ]} ]'); +INSERT INTO `gate_log` VALUES ('101', '用户管理', '修改', '/user/{*}', '2020-12-03 17:19:07', '1', 'liwen', '127.0.0.1', '{ \"id\" : 1, \"username\" : \"admin\", \"name\" : \"liwen\", \"sex\" : \"男\", \"description\" : \"\"}'); +INSERT INTO `gate_log` VALUES ('105', '角色类型管理', '编辑', '/groupType', '2020-12-03 19:57:40', '1', 'liwen', '127.0.0.1', '{ \"id\" : 3, \"code\" : \"freeaa\", \"name\" : \"自定义类型\", \"description\" : \"sadf\"}'); +INSERT INTO `gate_log` VALUES ('106', '菜单管理', '编辑', '/menu', '2020-12-04 10:30:20', '1', 'liwen', '127.0.0.1', '{ \"id\" : 27, \"code\" : \"gateLogManager\", \"title\" : \"操作日志\", \"parentId\" : 5, \"href\" : \"com.epri.fx.client.gui.uicomponents.admin.log.LogManagementController\", \"icon\" : \"caozuorizhi\", \"type\" : \"menu\", \"orderNum\" : 15, \"description\" : \"\", \"path\" : \"/adminSys/baseManager/gateLogManager\", \"sel\" : false, \"elementVOS\" : [ ]}'); diff --git a/server/src/main/java/com/epri/fx/server/ServerApplication.java b/server/src/main/java/com/epri/fx/server/ServerApplication.java index d15d74e..28df9f0 100644 --- a/server/src/main/java/com/epri/fx/server/ServerApplication.java +++ b/server/src/main/java/com/epri/fx/server/ServerApplication.java @@ -1,5 +1,6 @@ package com.epri.fx.server; +import com.epri.fx.server.util.DBLog; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -12,6 +13,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; public class ServerApplication { public static void main(String[] args) { + DBLog.getInstance().start(); SpringApplication.run(ServerApplication.class, args); } diff --git a/server/src/main/java/com/epri/fx/server/config/FilterConfig.java b/server/src/main/java/com/epri/fx/server/config/FilterConfig.java new file mode 100644 index 0000000..16b4fc3 --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/config/FilterConfig.java @@ -0,0 +1,42 @@ +package com.epri.fx.server.config; + +import com.epri.fx.server.filter.ReplaceStreamFilter; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.servlet.Filter; + +/** + * @author 01 + * @program wrapper-demo + * @description 过滤器配置类 + * @create 2018-12-24 21:06 + * @since 1.0 + **/ +@Configuration +public class FilterConfig { + /** + * 注册过滤器 + * + * @return FilterRegistrationBean + */ + @Bean + public FilterRegistrationBean someFilterRegistration() { + FilterRegistrationBean registration = new FilterRegistrationBean(); + registration.setFilter(replaceStreamFilter()); + registration.addUrlPatterns("/*"); + registration.setName("streamFilter"); + return registration; + } + + /** + * 实例化StreamFilter + * + * @return Filter + */ + @Bean(name = "replaceStreamFilter") + public Filter replaceStreamFilter() { + return new ReplaceStreamFilter(); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/epri/fx/server/config/WebConfiguration.java b/server/src/main/java/com/epri/fx/server/config/WebConfiguration.java index 71339b3..fd6dcde 100644 --- a/server/src/main/java/com/epri/fx/server/config/WebConfiguration.java +++ b/server/src/main/java/com/epri/fx/server/config/WebConfiguration.java @@ -2,6 +2,7 @@ package com.epri.fx.server.config; import com.epri.fx.server.handler.GlobalExceptionHandler; +import com.epri.fx.server.interceptor.LogInterceptor; import com.epri.fx.server.interceptor.UserAuthRestInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -18,7 +19,7 @@ import java.util.Collections; */ @Configuration("admimWebConfig") @Primary -public class WebConfiguration implements WebMvcConfigurer { +public class WebConfiguration implements WebMvcConfigurer { @Bean GlobalExceptionHandler getGlobalExceptionHandler() { return new GlobalExceptionHandler(); @@ -27,6 +28,7 @@ public class WebConfiguration implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(getUserAuthRestInterceptor()).addPathPatterns(getIncludePathPatterns()); + registry.addInterceptor(getLogInterceptor()).addPathPatterns(getIncludePathPatterns()); } @@ -34,6 +36,10 @@ public class WebConfiguration implements WebMvcConfigurer { UserAuthRestInterceptor getUserAuthRestInterceptor() { return new UserAuthRestInterceptor(); } + @Bean + LogInterceptor getLogInterceptor() { + return new LogInterceptor(); + } /** diff --git a/server/src/main/java/com/epri/fx/server/entity/log/GateLog.java b/server/src/main/java/com/epri/fx/server/entity/log/GateLog.java new file mode 100644 index 0000000..9c60599 --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/entity/log/GateLog.java @@ -0,0 +1,32 @@ +package com.epri.fx.server.entity.log; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * gate_log + * @author + */ +@Data +public class GateLog implements Serializable { + private Integer id; + + private String menu; + + private String opt; + + private String uri; + + private Date crtTime; + + private String crtUser; + + private String crtName; + + private String crtHost; + + private String body; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/server/src/main/java/com/epri/fx/server/entity/log/LogInfo.java b/server/src/main/java/com/epri/fx/server/entity/log/LogInfo.java new file mode 100644 index 0000000..7a3c26f --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/entity/log/LogInfo.java @@ -0,0 +1,115 @@ +package com.epri.fx.server.entity.log; + +import java.io.Serializable; +import java.util.Date; + +/** + * ${DESCRIPTION} + * + * @author wanghaobin + * @create 2017-07-01 11:18 + */ +public class LogInfo implements Serializable{ + private String id; + private String menu; + + private String opt; + + private String uri; + + private Long crtTime; + + private String crtUser; + + private String crtName; + + private String crtHost; + + private String body; + + public LogInfo(String menu, String option, String uri, Date crtTime, String crtUser, String crtName, String crtHost, String body) { + this.menu = menu; + this.opt = option; + this.uri = uri; + this.crtTime = crtTime.getTime(); + this.crtUser = crtUser; + this.crtName = crtName; + this.crtHost = crtHost; + this.body = body; + } + + public LogInfo() { + } + + public String getMenu() { + return menu; + } + + public void setMenu(String menu) { + this.menu = menu; + } + + public String getOpt() { + return opt; + } + + public void setOpt(String option) { + this.opt = option; + } + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + + public Long getCrtTime() { + return crtTime; + } + + public void setCrtTime(Date crtTime) { + this.crtTime = crtTime.getTime(); + } + + public String getCrtUser() { + return crtUser; + } + + public void setCrtUser(String crtUser) { + this.crtUser = crtUser; + } + + public String getCrtName() { + return crtName; + } + + public void setCrtName(String crtName) { + this.crtName = crtName; + } + + public String getCrtHost() { + return crtHost; + } + + public void setCrtHost(String crtHost) { + this.crtHost = crtHost; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } +} diff --git a/server/src/main/java/com/epri/fx/server/filter/ReplaceStreamFilter.java b/server/src/main/java/com/epri/fx/server/filter/ReplaceStreamFilter.java new file mode 100644 index 0000000..139a795 --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/filter/ReplaceStreamFilter.java @@ -0,0 +1,33 @@ +package com.epri.fx.server.filter; + +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; + +/** + * @author 01 + * @program wrapper-demo + * @description 替换HttpServletRequest + * @create 2018-12-24 21:04 + * @since 1.0 + **/ +@Slf4j +public class ReplaceStreamFilter implements Filter { + @Override + public void init(FilterConfig filterConfig) throws ServletException { + log.info("StreamFilter初始化..."); + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + ServletRequest requestWrapper = new RequestWrapper((HttpServletRequest) request); + chain.doFilter(requestWrapper, response); + } + + @Override + public void destroy() { + log.info("StreamFilter销毁..."); + } +} \ No newline at end of file diff --git a/server/src/main/java/com/epri/fx/server/filter/RequestWrapper.java b/server/src/main/java/com/epri/fx/server/filter/RequestWrapper.java new file mode 100644 index 0000000..a7ca9b2 --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/filter/RequestWrapper.java @@ -0,0 +1,124 @@ +package com.epri.fx.server.filter; + +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.ReadListener; +import javax.servlet.ServletInputStream; +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import java.io.*; +import java.nio.charset.Charset; + +/** + * @author 01 + * @program wrapper-demo + * @description 包装HttpServletRequest,目的是让其输入流可重复读 + * @create 2018-12-24 20:48 + * @since 1.0 + **/ +@Slf4j +public class RequestWrapper extends HttpServletRequestWrapper { + /** + * 存储body数据的容器 + */ + private final byte[] body; + + public RequestWrapper(HttpServletRequest request) throws IOException { + super(request); + + // 将body数据存储起来 + String bodyStr = getBodyString(request); + body = bodyStr.getBytes(Charset.defaultCharset()); + } + + /** + * 获取请求Body + * + * @param request request + * @return String + */ + public String getBodyString(final ServletRequest request) { + try { + return inputStream2String(request.getInputStream()); + } catch (IOException e) { + log.error("", e); + throw new RuntimeException(e); + } + } + + /** + * 获取请求Body + * + * @return String + */ + public String getBodyString() { + final InputStream inputStream = new ByteArrayInputStream(body); + + return inputStream2String(inputStream); + } + + /** + * 将inputStream里的数据读取出来并转换成字符串 + * + * @param inputStream inputStream + * @return String + */ + private String inputStream2String(InputStream inputStream) { + StringBuilder sb = new StringBuilder(); + BufferedReader reader = null; + + try { + reader = new BufferedReader(new InputStreamReader(inputStream, Charset.defaultCharset())); + String line; + while ((line = reader.readLine()) != null) { + sb.append(line); + } + } catch (IOException e) { + log.error("", e); + throw new RuntimeException(e); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + log.error("", e); + } + } + } + + return sb.toString(); + } + + @Override + public BufferedReader getReader() throws IOException { + return new BufferedReader(new InputStreamReader(getInputStream())); + } + + @Override + public ServletInputStream getInputStream() throws IOException { + + final ByteArrayInputStream inputStream = new ByteArrayInputStream(body); + + return new ServletInputStream() { + @Override + public int read() throws IOException { + return inputStream.read(); + } + + @Override + public boolean isFinished() { + return false; + } + + @Override + public boolean isReady() { + return false; + } + + @Override + public void setReadListener(ReadListener readListener) { + } + }; + } +} \ No newline at end of file diff --git a/server/src/main/java/com/epri/fx/server/interceptor/LogInterceptor.java b/server/src/main/java/com/epri/fx/server/interceptor/LogInterceptor.java new file mode 100644 index 0000000..1642c53 --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/interceptor/LogInterceptor.java @@ -0,0 +1,149 @@ +package com.epri.fx.server.interceptor; + + +import com.epri.fx.server.config.UserConfiguration; +import com.epri.fx.server.context.BaseContextHandler; +import com.epri.fx.server.entity.log.LogInfo; +import com.epri.fx.server.filter.RequestWrapper; +import com.epri.fx.server.jwt.IJWTInfo; +import com.epri.fx.server.service.PermissionService; +import com.epri.fx.server.service.log.GateLogService; +import com.epri.fx.server.util.DBLog; +import com.epri.fx.server.util.user.JwtTokenUtil; +import com.epri.fx.server.vo.PermissionInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Date; +import java.util.List; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Created by ace on 2017/9/10. + */ +public class LogInterceptor extends HandlerInterceptorAdapter { + private Logger logger = LoggerFactory.getLogger(LogInterceptor.class); + @Autowired + private JwtTokenUtil jwtTokenUtil; + @Autowired + private UserConfiguration userConfiguration; + @Autowired + private GateLogService gateLogService; + @Autowired + private PermissionService permissionService; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + HandlerMethod handlerMethod = (HandlerMethod) handler; + String token = request.getHeader(userConfiguration.getUserTokenHeader()); + IJWTInfo infoFromToken = jwtTokenUtil.getInfoFromToken(token); + + + HttpServletRequest requestWrapper = null; + + //遇到post方法才对request进行包装 + String methodType = request.getMethod(); + + List permissionIfs = permissionService.getAllPermission(); + // 判断资源是否启用权限约束 + Stream stream = getPermissionIfs(request.getRequestURI(), request.getMethod().toString(), permissionIfs); + List result = stream.collect(Collectors.toList()); + PermissionInfo[] permissions = result.toArray(new PermissionInfo[]{}); + if (permissions.length > 0) { + checkUserPermission(permissions, request, infoFromToken); + } + + + return super.preHandle(request, response, handler); + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + BaseContextHandler.remove(); + super.afterCompletion(request, response, handler, ex); + } + + private boolean checkUserPermission(PermissionInfo[] permissions, HttpServletRequest ctx, IJWTInfo user) { + List permissionInfos = permissionService.getPermissionByUsername(user.getUniqueName()); + PermissionInfo current = null; + for (PermissionInfo info : permissions) { + boolean anyMatch = permissionInfos.parallelStream().anyMatch(permissionInfo -> permissionInfo.getCode().equals(info.getCode())); + if (anyMatch) { + current = info; + break; + } + } + if (current == null) { + return true; + } else { + if (!RequestMethod.GET.toString().equals(current.getMethod())) { + setCurrentUserInfoAndLog(ctx, user, current); + } + return false; + } + } + + private void setCurrentUserInfoAndLog(HttpServletRequest request, IJWTInfo user, PermissionInfo pm) { + String host = request.getRemoteHost(); + if (isJson(request)) { + // 获取json字符串 + String jsonParam = null; + try { + jsonParam = new RequestWrapper(request).getBodyString(); + LogInfo logInfo = new LogInfo(pm.getMenu(), pm.getName(), pm.getUri(), new Date(), user.getId(), user.getName(), host, jsonParam); + DBLog.getInstance().setLogService(gateLogService).offerQueue(logInfo); + } catch (IOException e) { + e.printStackTrace(); + } + + + } + + + } + + /** + * 获取目标权限资源 + * + * @param requestUri + * @param method + * @param serviceInfo + * @return + */ + private Stream getPermissionIfs(final String requestUri, final String method, List serviceInfo) { + return serviceInfo.parallelStream().filter(permissionInfo -> { + String uri = permissionInfo.getUri(); + if (uri.indexOf("{") > 0) { + uri = uri.replaceAll("\\{\\*\\}", "[a-zA-Z\\\\d]+"); + } + String regEx = "^" + uri + "$"; + return (Pattern.compile(regEx).matcher(requestUri).find()) + && method.equals(permissionInfo.getMethod()); + }); + } + + /** + * 判断本次请求的数据类型是否为json + * + * @param request request + * @return boolean + */ + private boolean isJson(HttpServletRequest request) { + if (request.getContentType() != null) { + return request.getContentType().equals(MediaType.APPLICATION_JSON_VALUE) || + request.getContentType().equals(MediaType.APPLICATION_JSON_UTF8_VALUE); + } + + return false; + } +} diff --git a/server/src/main/java/com/epri/fx/server/interceptor/UserAuthRestInterceptor.java b/server/src/main/java/com/epri/fx/server/interceptor/UserAuthRestInterceptor.java index 1d5778e..2efb7e3 100644 --- a/server/src/main/java/com/epri/fx/server/interceptor/UserAuthRestInterceptor.java +++ b/server/src/main/java/com/epri/fx/server/interceptor/UserAuthRestInterceptor.java @@ -4,6 +4,8 @@ package com.epri.fx.server.interceptor; import com.epri.fx.server.config.UserConfiguration; import com.epri.fx.server.context.BaseContextHandler; import com.epri.fx.server.jwt.IJWTInfo; +import com.epri.fx.server.service.PermissionService; +import com.epri.fx.server.service.log.GateLogService; import com.epri.fx.server.util.user.JwtTokenUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,6 +25,10 @@ public class UserAuthRestInterceptor extends HandlerInterceptorAdapter { private JwtTokenUtil jwtTokenUtil; @Autowired private UserConfiguration userConfiguration; + @Autowired + private GateLogService gateLogService; + @Autowired + private PermissionService permissionService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -32,6 +38,7 @@ public class UserAuthRestInterceptor extends HandlerInterceptorAdapter { BaseContextHandler.setUsername(infoFromToken.getUniqueName()); BaseContextHandler.setName(infoFromToken.getName()); BaseContextHandler.setUserID(infoFromToken.getId()); + return super.preHandle(request, response, handler); } @@ -40,4 +47,5 @@ public class UserAuthRestInterceptor extends HandlerInterceptorAdapter { BaseContextHandler.remove(); super.afterCompletion(request, response, handler, ex); } + } diff --git a/server/src/main/java/com/epri/fx/server/mapper/GateLogMapper.java b/server/src/main/java/com/epri/fx/server/mapper/GateLogMapper.java new file mode 100644 index 0000000..388cf32 --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/mapper/GateLogMapper.java @@ -0,0 +1,23 @@ +package com.epri.fx.server.mapper; + +import com.epri.fx.server.entity.User; +import com.epri.fx.server.entity.log.GateLog; + +import java.util.List; + +public interface GateLogMapper { + int deleteByPrimaryKey(Integer id); + + int insert(GateLog record); + + int insertSelective(GateLog record); + + GateLog selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(GateLog record); + + int updateByPrimaryKey(GateLog record); + List selectPage(String keyId); + + +} \ No newline at end of file diff --git a/server/src/main/java/com/epri/fx/server/rest/LogController.java b/server/src/main/java/com/epri/fx/server/rest/LogController.java new file mode 100644 index 0000000..be4e04d --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/rest/LogController.java @@ -0,0 +1,53 @@ +package com.epri.fx.server.rest; + + +import com.epri.fx.server.entity.User; +import com.epri.fx.server.entity.UserInfo; +import com.epri.fx.server.entity.log.GateLog; +import com.epri.fx.server.entity.log.LogInfo; +import com.epri.fx.server.msg.ObjectRestResponse; +import com.epri.fx.server.msg.TableResultResponse; +import com.epri.fx.server.service.PermissionService; +import com.epri.fx.server.service.UserService; +import com.epri.fx.server.service.log.GateLogService; +import com.epri.fx.server.vo.FrontUser; +import com.epri.fx.server.vo.MenuVO; +import com.epri.fx.server.vo.PermissionInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + + +/** + * @Description: + * @param: + * @return: + * @auther: liwen + * @date: 2020/9/11 9:28 上午 + */ +@RestController +@RequestMapping("log") +public class LogController { + @Autowired + private GateLogService gateLogService; + + + @GetMapping(value = "/page") + @ResponseBody + public TableResultResponse getPageList(@RequestParam Map params) { + + return gateLogService.getPageList(params); + } + + + @DeleteMapping("/{id}") + @ResponseBody + public ObjectRestResponse add(@PathVariable Integer id) { + + return gateLogService.remove(id); + } + + +} diff --git a/server/src/main/java/com/epri/fx/server/service/GroupTypeService.java b/server/src/main/java/com/epri/fx/server/service/GroupTypeService.java index 49090ff..ea89304 100644 --- a/server/src/main/java/com/epri/fx/server/service/GroupTypeService.java +++ b/server/src/main/java/com/epri/fx/server/service/GroupTypeService.java @@ -37,7 +37,7 @@ public class GroupTypeService { public Integer addGroupType(GroupTypeVO groupTypeVO) { GroupType groupType = new GroupType(); BeanUtils.copyProperties(groupTypeVO, groupType); - EntityUtils.setCreateInfo(groupType); + EntityUtils.setCreatAndUpdatInfo(groupType); groupType.setId(null); return groupTypeMapper.insertSelective(groupType); } diff --git a/server/src/main/java/com/epri/fx/server/service/log/GateLogService.java b/server/src/main/java/com/epri/fx/server/service/log/GateLogService.java new file mode 100644 index 0000000..408f9a9 --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/service/log/GateLogService.java @@ -0,0 +1,55 @@ +package com.epri.fx.server.service.log; + +import com.alibaba.druid.util.StringUtils; +import com.epri.fx.server.entity.log.GateLog; +import com.epri.fx.server.entity.log.LogInfo; +import com.epri.fx.server.mapper.GateLogMapper; +import com.epri.fx.server.msg.ObjectRestResponse; +import com.epri.fx.server.msg.TableResultResponse; +import com.epri.fx.server.util.Query; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @description: + * @className: GateLogService + * @author: liwen + * @date: 2020/12/3 10:33 + */ +@Service +public class GateLogService { + + @Autowired + private GateLogMapper gateLogMapper; + public void saveLog(LogInfo info){ + GateLog log = new GateLog(); + BeanUtils.copyProperties(info,log); + log.setCrtTime(new Date(info.getCrtTime())); + gateLogMapper.insertSelective(log); + } + + public TableResultResponse getPageList(Map params) { + + Query query = new Query(params); + Page page = PageHelper.startPage(query.getPage(), query.getLimit()); + String keyId = (String) params.get("keyId"); + List list = gateLogMapper.selectPage(StringUtils.isEmpty(keyId) ? null : keyId); + int total = (int) Math.ceil(page.getTotal() / (float) query.getLimit()); + return new TableResultResponse(total == 0 ? 1 : total, list); + } + + + + + public ObjectRestResponse remove(Integer id) { + gateLogMapper.deleteByPrimaryKey(id); + return new ObjectRestResponse().rel(true); + } +} diff --git a/server/src/main/java/com/epri/fx/server/util/DBLog.java b/server/src/main/java/com/epri/fx/server/util/DBLog.java new file mode 100644 index 0000000..fd4af93 --- /dev/null +++ b/server/src/main/java/com/epri/fx/server/util/DBLog.java @@ -0,0 +1,86 @@ +package com.epri.fx.server.util; + + +import com.epri.fx.server.entity.log.LogInfo; +import com.epri.fx.server.service.log.GateLogService; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + +/** + * ${DESCRIPTION} + * + * @author wanghaobin + * @create 2017-07-01 15:28 + */ +@Slf4j +public class DBLog extends Thread { + private static DBLog dblog = null; + private static BlockingQueue logInfoQueue = new LinkedBlockingQueue(1024); + + public GateLogService get() { + return logService; + } + + public DBLog setLogService(GateLogService logService) { + if (this.logService == null) { + this.logService = logService; + } + return this; + } + + private GateLogService logService; + + public static synchronized DBLog getInstance() { + if (dblog == null) { + dblog = new DBLog(); + } + return dblog; + } + + private DBLog() { + super("CLogOracleWriterThread"); + } + + public void offerQueue(LogInfo logInfo) { + try { + logInfoQueue.offer(logInfo); + } catch (Exception e) { + log.error("日志写入失败", e); + } + } + + @Override + public void run() { + List bufferedLogList = new ArrayList(); // 缓冲队列 + while (true) { + try { + bufferedLogList.add(logInfoQueue.take()); + logInfoQueue.drainTo(bufferedLogList); + if (bufferedLogList != null && bufferedLogList.size() > 0) { + // 写入日志 + for (LogInfo log : bufferedLogList) { + logService.saveLog(log); + } + } + } catch (Exception e) { + e.printStackTrace(); + // 防止缓冲队列填充数据出现异常时不断刷屏 + try { + Thread.sleep(1000); + } catch (Exception eee) { + } + } finally { + if (bufferedLogList != null && bufferedLogList.size() > 0) { + try { + bufferedLogList.clear(); + } catch (Exception e) { + } + } + } + } + } +} \ No newline at end of file diff --git a/server/src/main/resources/application-mysql.yml b/server/src/main/resources/application-mysql.yml index 732a7fb..5be83c8 100644 --- a/server/src/main/resources/application-mysql.yml +++ b/server/src/main/resources/application-mysql.yml @@ -5,8 +5,6 @@ spring: # 使用druid数据源 type: com.alibaba.druid.pool.DruidDataSource druid: - #url: jdbc:dm://10.105.73.121:12345/EMSHIS -# url: jdbc:dm://192.168.1.210:12345/EMSHIS url: jdbc:mysql://${MYSQL_HOST:10.211.55.3}:${MYSQL_PORT:3306}/ipsm_dba?serverTimezone=Asia/Shanghai username: root password: Root@12345 @@ -35,8 +33,8 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 mybatis: - basepackage: com.wlkj.ipsm.realtime.mapper - xmlLocation: classpath:mapper/**/*.xml + basepackage: com.epri.fx.server.mapper + xmlLocation: classpath:mapper/*.xml mapper-locations: "classpath*:mapper/*.xml" #分页控件配置 diff --git a/server/src/main/resources/mapper/GateLogMapper.xml b/server/src/main/resources/mapper/GateLogMapper.xml new file mode 100644 index 0000000..7d0a165 --- /dev/null +++ b/server/src/main/resources/mapper/GateLogMapper.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + id, menu, opt, uri, crt_time, crt_user, crt_name, crt_host, body + + + + delete from gate_log + where id = #{id,jdbcType=INTEGER} + + + insert into gate_log (menu, opt, uri, + crt_time, crt_user, crt_name, + crt_host, body) + values (#{menu,jdbcType=VARCHAR}, #{opt,jdbcType=VARCHAR}, #{uri,jdbcType=VARCHAR}, + #{crtTime,jdbcType=TIMESTAMP}, #{crtUser,jdbcType=VARCHAR}, #{crtName,jdbcType=VARCHAR}, + #{crtHost,jdbcType=VARCHAR}, #{body,jdbcType=VARCHAR}) + + + insert into gate_log + + + menu, + + + opt, + + + uri, + + + crt_time, + + + crt_user, + + + crt_name, + + + crt_host, + + + body, + + + + + #{menu,jdbcType=VARCHAR}, + + + #{opt,jdbcType=VARCHAR}, + + + #{uri,jdbcType=VARCHAR}, + + + #{crtTime,jdbcType=TIMESTAMP}, + + + #{crtUser,jdbcType=VARCHAR}, + + + #{crtName,jdbcType=VARCHAR}, + + + #{crtHost,jdbcType=VARCHAR}, + + + #{body,jdbcType=VARCHAR}, + + + + + update gate_log + + + menu = #{menu,jdbcType=VARCHAR}, + + + opt = #{opt,jdbcType=VARCHAR}, + + + uri = #{uri,jdbcType=VARCHAR}, + + + crt_time = #{crtTime,jdbcType=TIMESTAMP}, + + + crt_user = #{crtUser,jdbcType=VARCHAR}, + + + crt_name = #{crtName,jdbcType=VARCHAR}, + + + crt_host = #{crtHost,jdbcType=VARCHAR}, + + + body = #{body,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update gate_log + set menu = #{menu,jdbcType=VARCHAR}, + opt = #{opt,jdbcType=VARCHAR}, + uri = #{uri,jdbcType=VARCHAR}, + crt_time = #{crtTime,jdbcType=TIMESTAMP}, + crt_user = #{crtUser,jdbcType=VARCHAR}, + crt_name = #{crtName,jdbcType=VARCHAR}, + crt_host = #{crtHost,jdbcType=VARCHAR}, + body = #{body,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + + + \ No newline at end of file