日志记录
This commit is contained in:
parent
6e18ab8df8
commit
f55f7ceb3f
|
@ -5,7 +5,6 @@
|
|||
<database-info product="MySQL" version="8.0.28" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0)" dbms="MYSQL" exact-version="8.0.28" exact-driver-version="8.0">
|
||||
<extra-name-characters>#@</extra-name-characters>
|
||||
<identifier-quote-string>`</identifier-quote-string>
|
||||
<jdbc-catalog-is-schema>true</jdbc-catalog-is-schema>
|
||||
</database-info>
|
||||
<case-sensitivity plain-identifiers="exact" quoted-identifiers="exact" />
|
||||
<secret-storage>master_key</secret-storage>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/spzx-common/common-log/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/spzx-common/common-service/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/spzx-common/common-util/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/spzx-common/src/main/java" charset="UTF-8" />
|
||||
|
|
|
@ -9,5 +9,6 @@
|
|||
<option name="callCheckString" value="java.io.File,.*,java.io.InputStream,read|skip|available|markSupported,java.io.Reader,read|skip|ready|markSupported,java.lang.AbstractStringBuilder,capacity|codePointAt|codePointBefore|codePointCount|indexOf|lastIndexOf|offsetByCodePoints|substring|subSequence,java.lang.Boolean,.*,java.lang.Byte,.*,java.lang.Character,.*,java.lang.Double,.*,java.lang.Float,.*,java.lang.Integer,.*,java.lang.Long,.*,java.lang.Math,.*,java.lang.Object,equals|hashCode|toString,java.lang.Short,.*,java.lang.StrictMath,.*,java.lang.String,.*,java.lang.Thread,interrupted,java.math.BigDecimal,.*,java.math.BigInteger,.*,java.net.InetAddress,.*,java.net.URI,.*,java.nio.channels.AsynchronousChannelGroup,.*,java.nio.channels.Channel,isOpen,java.nio.channels.FileChannel,open|map|lock|tryLock|write,java.nio.channels.ScatteringByteChannel,read,java.nio.channels.SocketChannel,open|socket|isConnected|isConnectionPending,java.util.Arrays,.*,java.util.Collections,(?!addAll).*,java.util.List,of,java.util.Map,of|ofEntries|entry,java.util.Set,of,java.util.UUID,.*,java.util.concurrent.BlockingQueue,offer|remove,java.util.concurrent.CountDownLatch,await|getCount,java.util.concurrent.ExecutorService,awaitTermination|isShutdown|isTerminated,java.util.concurrent.ForkJoinPool,awaitQuiescence,java.util.concurrent.Semaphore,tryAcquire|availablePermits|isFair|hasQueuedThreads|getQueueLength|getQueuedThreads,java.util.concurrent.locks.Condition,await|awaitNanos|awaitUntil,java.util.concurrent.locks.Lock,tryLock|newCondition,java.util.regex.Matcher,pattern|toMatchResult|start|end|group|groupCount|matches|find|lookingAt|quoteReplacement|replaceAll|replaceFirst|regionStart|regionEnd|hasTransparentBounds|hasAnchoringBounds|hitEnd|requireEnd,java.util.regex.Pattern,.*,java.util.stream.BaseStream,.*,java.util.stream.DoubleStream,.*,java.util.stream.IntStream,.*,java.util.stream.LongStream,.*,java.util.stream.Stream,.*" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="RawUseOfParameterizedType" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="ThrowablePrintStackTrace" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
</profile>
|
||||
</component>
|
|
@ -0,0 +1,124 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
|
@ -4,15 +4,27 @@
|
|||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="94fab532-0084-41f1-bb0f-d2d2811915a7" name="Changes" comment="订单数据统计-每天两点统计-定时任务">
|
||||
<change afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/controller/OrderInfoController.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/service/OrderInfoService.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/service/impl/OrderInfoServiceImpl.java" afterDir="false" />
|
||||
<list default="true" id="94fab532-0084-41f1-bb0f-d2d2811915a7" name="Changes" comment="日志记录">
|
||||
<change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-common/common-log/pom.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-common/common-log/src/main/java/cn/bunny/log/annotation/EnableLogAspect.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-common/common-log/src/main/java/cn/bunny/log/annotation/Log.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-common/common-log/src/main/java/cn/bunny/log/aspect/LogAspect.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-common/common-log/src/main/java/cn/bunny/log/enums/OperatorType.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-common/common-log/src/main/java/cn/bunny/log/service/AsyncOperLogService.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-common/common-log/src/main/java/cn/bunny/log/utils/LogUtils.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/mapper/SysOperLogMapper.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/service/impl/AsyncOperLogServiceImpl.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/spzx-manager/src/main/resources/mapper/log/SysOperLogMapper.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/dataSources.local.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources.local.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/mapper/OrderStatisticsMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/mapper/OrderStatisticsMapper.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/spzx-manager/src/main/resources/mapper/order/OrderStatisticsMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/spzx-manager/src/main/resources/mapper/order/OrderStatisticsMapper.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/spzx-model/src/main/java/cn/bunny/common/spzx/model/dto/order/OrderStatisticsDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/spzx-model/src/main/java/cn/bunny/common/spzx/model/dto/order/OrderStatisticsDto.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/spzx-common/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/spzx-common/pom.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/spzx-manager/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/spzx-manager/pom.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/MangerApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/MangerApplication.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/controller/OrderInfoController.java" beforeDir="false" afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/controller/OrderInfoController.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/service/CategoryBrandService.java" beforeDir="false" afterPath="$PROJECT_DIR$/spzx-manager/src/main/java/cn/bunny/service/CategoryBrandService.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
@ -22,9 +34,9 @@
|
|||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Mybatis" />
|
||||
<option value="Interface" />
|
||||
<option value="Class" />
|
||||
<option value="Mybatis" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
|
@ -57,8 +69,10 @@
|
|||
"RequestMappingsPanelWidth1": "75",
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||
"WebServerToolWindowFactoryState": "false",
|
||||
"git-widget-placeholder": "master",
|
||||
"jdk.selected.JAVA_MODULE": "corretto-17",
|
||||
"last_opened_file_path": "G:/File/Java/spzx-parent/spzx-manager/src/main/resources/mapper",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
|
@ -67,7 +81,7 @@
|
|||
"project.structure.last.edited": "Modules",
|
||||
"project.structure.proportion": "0.0",
|
||||
"project.structure.side.proportion": "0.0",
|
||||
"settings.editor.selected.configurable": "reference.projectsettings.compiler.javacompiler",
|
||||
"settings.editor.selected.configurable": "preferences.lookFeel",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
},
|
||||
"keyToStringList": {
|
||||
|
@ -114,6 +128,7 @@
|
|||
<updated>1702710124940</updated>
|
||||
<workItem from="1702710126987" duration="661000" />
|
||||
<workItem from="1702713203759" duration="17069000" />
|
||||
<workItem from="1702737429361" duration="3216000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="商品管理查询分页">
|
||||
<option name="closed" value="true" />
|
||||
|
@ -147,7 +162,15 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1702735339646</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="5" />
|
||||
<task id="LOCAL-00005" summary="统计查询">
|
||||
<option name="closed" value="true" />
|
||||
<created>1702737501213</created>
|
||||
<option name="number" value="00005" />
|
||||
<option name="presentableId" value="LOCAL-00005" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1702737501213</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="6" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
|
@ -158,7 +181,9 @@
|
|||
<MESSAGE value="商品管理添加删除" />
|
||||
<MESSAGE value="商品管理完成" />
|
||||
<MESSAGE value="订单数据统计-每天两点统计-定时任务" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="订单数据统计-每天两点统计-定时任务" />
|
||||
<MESSAGE value="统计查询" />
|
||||
<MESSAGE value="日志记录" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="日志记录" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>cn.bunny</groupId>
|
||||
<artifactId>spzx-common</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>common-log</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.bunny</groupId>
|
||||
<artifactId>spzx-model</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-aop</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.bunny</groupId>
|
||||
<artifactId>common-util</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,15 @@
|
|||
package cn.bunny.log.annotation;
|
||||
|
||||
import cn.bunny.log.aspect.LogAspect;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Import(value = LogAspect.class)
|
||||
public @interface EnableLogAspect {
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package cn.bunny.log.annotation;
|
||||
|
||||
|
||||
import cn.bunny.log.enums.OperatorType;
|
||||
import org.apache.poi.ss.usermodel.DataValidationConstraint;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface Log {
|
||||
public String title() ; // 模块名称
|
||||
public OperatorType operatorType() default OperatorType.MANAGE; // 操作人类别
|
||||
public int businessType() ; // 业务类型(0其它 1新增 2修改 3删除)
|
||||
public boolean isSaveRequestData() default true; // 是否保存请求的参数
|
||||
public boolean isSaveResponseData() default true; // 是否保存响应的参数
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package cn.bunny.log.aspect;
|
||||
|
||||
import cn.bunny.common.spzx.model.entity.system.SysOperLog;
|
||||
import cn.bunny.log.annotation.Log;
|
||||
import cn.bunny.log.service.AsyncOperLogService;
|
||||
import cn.bunny.log.utils.LogUtils;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Aspect
|
||||
@Component
|
||||
@Log4j2
|
||||
public class LogAspect {
|
||||
@Autowired
|
||||
private AsyncOperLogService asyncOperLogService;
|
||||
|
||||
@Around(value = "@annotation(sysLog)")
|
||||
public Object doAroundAdvice(ProceedingJoinPoint joinPoint, Log sysLog) {
|
||||
SysOperLog sysOperLog = new SysOperLog();
|
||||
LogUtils.beforeHandleLog(sysLog,joinPoint,sysOperLog);
|
||||
|
||||
Object proceed = null;
|
||||
try {
|
||||
proceed = joinPoint.proceed();
|
||||
LogUtils.afterHandlLog(sysLog,proceed,sysOperLog,0,null);
|
||||
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
LogUtils.afterHandlLog(sysLog, proceed, sysOperLog, 1, e.getMessage());
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
asyncOperLogService.saveSysOperLog(sysOperLog);
|
||||
return proceed;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package cn.bunny.log.enums;
|
||||
|
||||
public enum OperatorType {
|
||||
OTHER, // 其他
|
||||
MANAGE, // 后台用户
|
||||
MOBILE // 手机端用户
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package cn.bunny.log.service;
|
||||
|
||||
import cn.bunny.common.spzx.model.entity.system.SysOperLog;
|
||||
|
||||
public interface AsyncOperLogService {
|
||||
// 保存日志数据
|
||||
public abstract void saveSysOperLog(SysOperLog sysOperLog) ;
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package cn.bunny.log.utils;
|
||||
|
||||
import cn.bunny.common.AuthContextUtil;
|
||||
import cn.bunny.common.spzx.model.entity.system.SysOperLog;
|
||||
import cn.bunny.log.annotation.Log;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.reflect.MethodSignature;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class LogUtils {
|
||||
//操作执行之后调用
|
||||
public static void afterHandlLog(Log sysLog, Object proceed,
|
||||
SysOperLog sysOperLog, int status ,
|
||||
String errorMsg) {
|
||||
if(sysLog.isSaveResponseData()) {
|
||||
sysOperLog.setJsonResult(JSON.toJSONString(proceed));
|
||||
}
|
||||
sysOperLog.setStatus(status);
|
||||
sysOperLog.setErrorMsg(errorMsg);
|
||||
}
|
||||
|
||||
//操作执行之前调用
|
||||
public static void beforeHandleLog(Log sysLog,
|
||||
ProceedingJoinPoint joinPoint,
|
||||
SysOperLog sysOperLog) {
|
||||
|
||||
// 设置操作模块名称
|
||||
sysOperLog.setTitle(sysLog.title());
|
||||
sysOperLog.setOperatorType(sysLog.operatorType().name());
|
||||
|
||||
// 获取目标方法信息
|
||||
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature() ;
|
||||
Method method = methodSignature.getMethod();
|
||||
sysOperLog.setMethod(method.getDeclaringClass().getName());
|
||||
|
||||
// 获取请求相关参数
|
||||
ServletRequestAttributes requestAttributes = (ServletRequestAttributes)
|
||||
RequestContextHolder.getRequestAttributes();
|
||||
HttpServletRequest request = requestAttributes.getRequest();
|
||||
sysOperLog.setRequestMethod(request.getMethod());
|
||||
sysOperLog.setOperUrl(request.getRequestURI());
|
||||
sysOperLog.setOperIp(request.getRemoteAddr());
|
||||
|
||||
// 设置请求参数
|
||||
if(sysLog.isSaveRequestData()) {
|
||||
String requestMethod = sysOperLog.getRequestMethod();
|
||||
if (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod)) {
|
||||
String params = Arrays.toString(joinPoint.getArgs());
|
||||
sysOperLog.setOperParam(params);
|
||||
}
|
||||
}
|
||||
sysOperLog.setOperName(AuthContextUtil.get().getUserName());
|
||||
}
|
||||
}
|
|
@ -14,6 +14,7 @@
|
|||
<modules>
|
||||
<module>common-util</module>
|
||||
<module>common-service</module>
|
||||
<module>common-log</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
|
|
|
@ -61,5 +61,12 @@
|
|||
<artifactId>pagehelper-spring-boot-starter</artifactId>
|
||||
<version>1.4.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.bunny</groupId>
|
||||
<artifactId>common-log</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
|
@ -1,5 +1,6 @@
|
|||
package cn.bunny;
|
||||
|
||||
import cn.bunny.log.annotation.EnableLogAspect;
|
||||
import cn.bunny.properties.MinioProperties;
|
||||
import cn.bunny.properties.UserProperties;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
|
@ -7,6 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
@EnableLogAspect
|
||||
@SpringBootApplication
|
||||
@EnableConfigurationProperties(value = {UserProperties.class, MinioProperties.class})
|
||||
@EnableScheduling
|
||||
|
|
|
@ -4,6 +4,7 @@ import cn.bunny.common.spzx.model.dto.order.OrderStatisticsDto;
|
|||
import cn.bunny.common.spzx.model.vo.common.Result;
|
||||
import cn.bunny.common.spzx.model.vo.common.ResultCodeEnum;
|
||||
import cn.bunny.common.spzx.model.vo.order.OrderStatisticsVo;
|
||||
import cn.bunny.log.annotation.Log;
|
||||
import cn.bunny.service.OrderInfoService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
@ -19,6 +20,7 @@ public class OrderInfoController {
|
|||
@Autowired
|
||||
private OrderInfoService orderInfoService;
|
||||
|
||||
@Log(title = "统计查询接口", businessType = 1)
|
||||
@Operation(summary = "统计查询", description = "统计查询")
|
||||
@GetMapping("getOrderStatisticsData")
|
||||
public Result getOrderStatisticsData(OrderStatisticsDto orderStatisticsDto) {
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package cn.bunny.mapper;
|
||||
|
||||
import cn.bunny.common.spzx.model.entity.system.SysOperLog;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface SysOperLogMapper {
|
||||
// 保存日志数据
|
||||
public void insert(SysOperLog sysOperLog);
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package cn.bunny.service;
|
|||
import cn.bunny.common.spzx.model.dto.product.CategoryBrandDto;
|
||||
import cn.bunny.common.spzx.model.entity.product.Brand;
|
||||
import cn.bunny.common.spzx.model.entity.product.CategoryBrand;
|
||||
import cn.bunny.common.spzx.model.entity.system.SysOperLog;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -22,4 +23,10 @@ public interface CategoryBrandService {
|
|||
|
||||
// 根据id查询对应商品数据
|
||||
List<Brand> findBrandByCategoryId(Long categoryId);
|
||||
|
||||
interface AsyncOperLogService {
|
||||
|
||||
// 保存日志数据
|
||||
public abstract void saveSysOperLog(SysOperLog sysOperLog) ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package cn.bunny.service.impl;
|
||||
|
||||
import cn.bunny.common.spzx.model.entity.system.SysOperLog;
|
||||
import cn.bunny.log.service.AsyncOperLogService;
|
||||
import cn.bunny.mapper.SysOperLogMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class AsyncOperLogServiceImpl implements AsyncOperLogService {
|
||||
@Autowired
|
||||
private SysOperLogMapper sysOperLogMapper;
|
||||
|
||||
|
||||
// 保存日志数据
|
||||
@Override
|
||||
public void saveSysOperLog(SysOperLog sysOperLog) {
|
||||
sysOperLogMapper.insert(sysOperLog);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="cn.bunny.mapper.SysOperLogMapper">
|
||||
|
||||
|
||||
<!-- 保存日志数据 -->
|
||||
<insert id="insert">
|
||||
insert into sys_oper_log (
|
||||
id,
|
||||
title,
|
||||
method,
|
||||
request_method,
|
||||
operator_type,
|
||||
oper_name,
|
||||
oper_url,
|
||||
oper_ip,
|
||||
oper_param,
|
||||
json_result,
|
||||
status,
|
||||
error_msg
|
||||
) values (
|
||||
#{id},
|
||||
#{title},
|
||||
#{method},
|
||||
#{requestMethod},
|
||||
#{operatorType},
|
||||
#{operName},
|
||||
#{operUrl},
|
||||
#{operIp},
|
||||
#{operParam},
|
||||
#{jsonResult},
|
||||
#{status},
|
||||
#{errorMsg}
|
||||
)
|
||||
</insert>
|
||||
</mapper>
|
Loading…
Reference in New Issue