commit init
This commit is contained in:
		
							
								
								
									
										25
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# Compiled class file
 | 
				
			||||||
 | 
					*.class
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Log file
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# BlueJ files
 | 
				
			||||||
 | 
					*.ctxt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Mobile Tools for Java (J2ME)
 | 
				
			||||||
 | 
					.mtj.tmp/
 | 
				
			||||||
 | 
					target
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Package Files #
 | 
				
			||||||
 | 
					*.jar
 | 
				
			||||||
 | 
					*.war
 | 
				
			||||||
 | 
					*.ear
 | 
				
			||||||
 | 
					*.zip
 | 
				
			||||||
 | 
					*.tar.gz
 | 
				
			||||||
 | 
					*.rar
 | 
				
			||||||
 | 
					*.iml
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 | 
				
			||||||
 | 
					hs_err_pid*
 | 
				
			||||||
							
								
								
									
										227
									
								
								pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										227
									
								
								pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,227 @@
 | 
				
			|||||||
 | 
					<?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>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <groupId>com.cnbm</groupId>
 | 
				
			||||||
 | 
					    <artifactId>ym-pass</artifactId>
 | 
				
			||||||
 | 
					    <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    <modules>
 | 
				
			||||||
 | 
					        <module>ym-common</module>
 | 
				
			||||||
 | 
					        <module>ym-admin</module>
 | 
				
			||||||
 | 
					        <module>ym-generator</module>
 | 
				
			||||||
 | 
					        <module>ym-gateway</module>
 | 
				
			||||||
 | 
					        <module>ym-barcode</module>
 | 
				
			||||||
 | 
					        <module>ym-basic</module>
 | 
				
			||||||
 | 
					    </modules>
 | 
				
			||||||
 | 
					    <packaging>pom</packaging>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <name>ym-pass</name>
 | 
				
			||||||
 | 
					    <description>轻工业自动化研究所springboot框架</description>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					        <artifactId>spring-boot-starter-parent</artifactId>
 | 
				
			||||||
 | 
					        <version>2.7.0</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <properties>
 | 
				
			||||||
 | 
					        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
				
			||||||
 | 
					        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 | 
				
			||||||
 | 
					        <java.version>1.8</java.version>
 | 
				
			||||||
 | 
					        <junit.version>4.13.2</junit.version>
 | 
				
			||||||
 | 
					        <jedis.version>4.2.2</jedis.version>
 | 
				
			||||||
 | 
					<!--        <druid.version>1.2.9</druid.version>-->
 | 
				
			||||||
 | 
					        <mybatisplus.version>3.5.1</mybatisplus.version>
 | 
				
			||||||
 | 
					        <sqlserver.version>4.0</sqlserver.version>
 | 
				
			||||||
 | 
					        <oracle.version>11.2.0.3</oracle.version>
 | 
				
			||||||
 | 
					        <commons.lang.version>3.12.0</commons.lang.version>
 | 
				
			||||||
 | 
					        <commons.fileupload.version>1.4</commons.fileupload.version>
 | 
				
			||||||
 | 
					        <commons.io.version>2.11.0</commons.io.version>
 | 
				
			||||||
 | 
					        <commons.codec.version>1.15</commons.codec.version>
 | 
				
			||||||
 | 
					        <guava.version>31.0-jre</guava.version>
 | 
				
			||||||
 | 
					        <joda.time.version>2.10.14</joda.time.version>
 | 
				
			||||||
 | 
					        <hutool.version>5.7.22</hutool.version>
 | 
				
			||||||
 | 
					        <gson.version>2.9.0</gson.version>
 | 
				
			||||||
 | 
					        <jsoup.version>1.14.3</jsoup.version>
 | 
				
			||||||
 | 
					        <knife4j.version>2.0.2</knife4j.version>
 | 
				
			||||||
 | 
					        <lombok.version>1.18.24</lombok.version>
 | 
				
			||||||
 | 
					        <docker.plugin.version>1.1.1</docker.plugin.version>
 | 
				
			||||||
 | 
					        <easypoi.version>4.4.0</easypoi.version>
 | 
				
			||||||
 | 
					    </properties>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>junit</groupId>
 | 
				
			||||||
 | 
					            <artifactId>junit</artifactId>
 | 
				
			||||||
 | 
					            <version>${junit.version}</version>
 | 
				
			||||||
 | 
					            <scope>test</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-test</artifactId>
 | 
				
			||||||
 | 
					            <scope>test</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-web</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-aop</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-validation</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-context-support</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-data-redis</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-configuration-processor</artifactId>
 | 
				
			||||||
 | 
					            <optional>true</optional>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>redis.clients</groupId>
 | 
				
			||||||
 | 
					            <artifactId>jedis</artifactId>
 | 
				
			||||||
 | 
					            <version>${jedis.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <!-- mysql驱动 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>mysql</groupId>
 | 
				
			||||||
 | 
					            <artifactId>mysql-connector-java</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <!-- oracle驱动 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.oracle</groupId>
 | 
				
			||||||
 | 
					            <artifactId>ojdbc6</artifactId>
 | 
				
			||||||
 | 
					            <version>${oracle.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <!-- sqlserver驱动 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.microsoft.sqlserver</groupId>
 | 
				
			||||||
 | 
					            <artifactId>sqljdbc4</artifactId>
 | 
				
			||||||
 | 
					            <version>${sqlserver.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <!-- postgresql驱动 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.postgresql</groupId>
 | 
				
			||||||
 | 
					            <artifactId>postgresql</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-data-jdbc</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.afterturn</groupId>
 | 
				
			||||||
 | 
					            <artifactId>easypoi-base</artifactId>
 | 
				
			||||||
 | 
					            <version>${easypoi.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.afterturn</groupId>
 | 
				
			||||||
 | 
					            <artifactId>easypoi-web</artifactId>
 | 
				
			||||||
 | 
					            <version>${easypoi.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.baomidou</groupId>
 | 
				
			||||||
 | 
					            <artifactId>mybatis-plus-boot-starter</artifactId>
 | 
				
			||||||
 | 
					            <version>${mybatisplus.version}</version>
 | 
				
			||||||
 | 
					            <exclusions>
 | 
				
			||||||
 | 
					                <exclusion>
 | 
				
			||||||
 | 
					                    <groupId>com.baomidou</groupId>
 | 
				
			||||||
 | 
					                    <artifactId>mybatis-plus-generator</artifactId>
 | 
				
			||||||
 | 
					                </exclusion>
 | 
				
			||||||
 | 
					            </exclusions>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.apache.commons</groupId>
 | 
				
			||||||
 | 
					            <artifactId>commons-lang3</artifactId>
 | 
				
			||||||
 | 
					            <version>${commons.lang.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>commons-fileupload</groupId>
 | 
				
			||||||
 | 
					            <artifactId>commons-fileupload</artifactId>
 | 
				
			||||||
 | 
					            <version>${commons.fileupload.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>commons-io</groupId>
 | 
				
			||||||
 | 
					            <artifactId>commons-io</artifactId>
 | 
				
			||||||
 | 
					            <version>${commons.io.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>commons-codec</groupId>
 | 
				
			||||||
 | 
					            <artifactId>commons-codec</artifactId>
 | 
				
			||||||
 | 
					            <version>${commons.codec.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.google.guava</groupId>
 | 
				
			||||||
 | 
					            <artifactId>guava</artifactId>
 | 
				
			||||||
 | 
					            <version>${guava.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>joda-time</groupId>
 | 
				
			||||||
 | 
					            <artifactId>joda-time</artifactId>
 | 
				
			||||||
 | 
					            <version>${joda.time.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.google.code.gson</groupId>
 | 
				
			||||||
 | 
					            <artifactId>gson</artifactId>
 | 
				
			||||||
 | 
					            <version>${gson.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.hutool</groupId>
 | 
				
			||||||
 | 
					            <artifactId>hutool-all</artifactId>
 | 
				
			||||||
 | 
					            <version>${hutool.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.jsoup</groupId>
 | 
				
			||||||
 | 
					            <artifactId>jsoup</artifactId>
 | 
				
			||||||
 | 
					            <version>${jsoup.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.github.xiaoymin</groupId>
 | 
				
			||||||
 | 
					            <artifactId>knife4j-spring-boot-starter</artifactId>
 | 
				
			||||||
 | 
					            <version>${knife4j.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.projectlombok</groupId>
 | 
				
			||||||
 | 
					            <artifactId>lombok</artifactId>
 | 
				
			||||||
 | 
					            <version>${lombok.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 阿里云maven仓库 -->
 | 
				
			||||||
 | 
					    <repositories>
 | 
				
			||||||
 | 
					        <repository>
 | 
				
			||||||
 | 
					            <id>public</id>
 | 
				
			||||||
 | 
					            <name>aliyun nexus</name>
 | 
				
			||||||
 | 
					            <url>https://maven.aliyun.com/repository/public/</url>
 | 
				
			||||||
 | 
					            <releases>
 | 
				
			||||||
 | 
					                <enabled>true</enabled>
 | 
				
			||||||
 | 
					            </releases>
 | 
				
			||||||
 | 
					        </repository>
 | 
				
			||||||
 | 
					    </repositories>
 | 
				
			||||||
 | 
					    <pluginRepositories>
 | 
				
			||||||
 | 
					        <pluginRepository>
 | 
				
			||||||
 | 
					            <id>public</id>
 | 
				
			||||||
 | 
					            <name>aliyun nexus</name>
 | 
				
			||||||
 | 
					            <url>https://maven.aliyun.com/repository/public/</url>
 | 
				
			||||||
 | 
					            <releases>
 | 
				
			||||||
 | 
					                <enabled>true</enabled>
 | 
				
			||||||
 | 
					            </releases>
 | 
				
			||||||
 | 
					            <snapshots>
 | 
				
			||||||
 | 
					                <enabled>false</enabled>
 | 
				
			||||||
 | 
					            </snapshots>
 | 
				
			||||||
 | 
					        </pluginRepository>
 | 
				
			||||||
 | 
					    </pluginRepositories>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
							
								
								
									
										44
									
								
								ym-admin/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								ym-admin/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					<?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">
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <artifactId>ym-pass</artifactId>
 | 
				
			||||||
 | 
					        <groupId>com.cnbm</groupId>
 | 
				
			||||||
 | 
					        <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <artifactId>ym-admin</artifactId>
 | 
				
			||||||
 | 
					    <packaging>jar</packaging>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <properties>
 | 
				
			||||||
 | 
					        <quartz.version>2.3.2</quartz.version>
 | 
				
			||||||
 | 
					        <shiro.version>1.9.0</shiro.version>
 | 
				
			||||||
 | 
					        <captcha.version>1.6.2</captcha.version>
 | 
				
			||||||
 | 
					        <easypoi.version>4.1.0</easypoi.version>
 | 
				
			||||||
 | 
					        <qiniu.version>7.2.27</qiniu.version>
 | 
				
			||||||
 | 
					        <aliyun.oss.version>2.8.3</aliyun.oss.version>
 | 
				
			||||||
 | 
					        <aliyun.core.version>3.2.2</aliyun.core.version>
 | 
				
			||||||
 | 
					        <qcloud.cos.version>5.4.4</qcloud.cos.version>
 | 
				
			||||||
 | 
					    </properties>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-security</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>io.jsonwebtoken</groupId>
 | 
				
			||||||
 | 
					            <artifactId>jjwt</artifactId>
 | 
				
			||||||
 | 
					            <version>0.9.0</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.cnbm</groupId>
 | 
				
			||||||
 | 
					            <artifactId>ym-common</artifactId>
 | 
				
			||||||
 | 
					            <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.Expression;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysMenuEntity;
 | 
				
			||||||
 | 
					import org.springframework.security.core.Authentication;
 | 
				
			||||||
 | 
					import org.springframework.security.core.context.SecurityContextHolder;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/13 8:29 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Component("ex")
 | 
				
			||||||
 | 
					public class SGExpressionRoot {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean hasAuthority(String authority){
 | 
				
			||||||
 | 
					        //获取当前用户的权限
 | 
				
			||||||
 | 
					        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        List<String> permissions = loginUser.getPermissions();
 | 
				
			||||||
 | 
					        //判断用户权限集合中是否存在authority
 | 
				
			||||||
 | 
					        return permissions.contains(authority);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.annotation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.lang.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 9:40 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Target(ElementType.METHOD)
 | 
				
			||||||
 | 
					@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
 | 
					@Documented
 | 
				
			||||||
 | 
					public @interface LogOperation {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String value() default "";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,105 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.aspect;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysLogOperationEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.enums.OperationStatusEnum;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysLogOperationService;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.HttpContextUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.IpUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.JsonUtils;
 | 
				
			||||||
 | 
					import org.aspectj.lang.ProceedingJoinPoint;
 | 
				
			||||||
 | 
					import org.aspectj.lang.annotation.Around;
 | 
				
			||||||
 | 
					import org.aspectj.lang.annotation.Aspect;
 | 
				
			||||||
 | 
					import org.aspectj.lang.annotation.Pointcut;
 | 
				
			||||||
 | 
					import org.aspectj.lang.reflect.MethodSignature;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.http.HttpHeaders;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
				
			||||||
 | 
					import org.springframework.security.core.context.SecurityContextHolder;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import java.lang.reflect.Method;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 9:41 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Aspect
 | 
				
			||||||
 | 
					@Component
 | 
				
			||||||
 | 
					public class LogOperationAspect {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysLogOperationService sysLogOperationService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Pointcut("@annotation(com.cnbm.admin.annotation.LogOperation)")
 | 
				
			||||||
 | 
					    public void logPointCut() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Around("logPointCut()")
 | 
				
			||||||
 | 
					    public Object around(ProceedingJoinPoint point) throws Throwable {
 | 
				
			||||||
 | 
					        long beginTime = System.currentTimeMillis();
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            //执行方法
 | 
				
			||||||
 | 
					            Object result = point.proceed();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //执行时长(毫秒)
 | 
				
			||||||
 | 
					            long time = System.currentTimeMillis() - beginTime;
 | 
				
			||||||
 | 
					            //保存日志
 | 
				
			||||||
 | 
					            saveLog(point, time, OperationStatusEnum.SUCCESS.value());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return result;
 | 
				
			||||||
 | 
					        }catch(Exception e) {
 | 
				
			||||||
 | 
					            //执行时长(毫秒)
 | 
				
			||||||
 | 
					            long time = System.currentTimeMillis() - beginTime;
 | 
				
			||||||
 | 
					            //保存日志
 | 
				
			||||||
 | 
					            saveLog(point, time, OperationStatusEnum.FAIL.value());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            throw e;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void saveLog(ProceedingJoinPoint joinPoint, long time, Integer status) throws Exception {
 | 
				
			||||||
 | 
					        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
 | 
				
			||||||
 | 
					        Method method = joinPoint.getTarget().getClass().getDeclaredMethod(signature.getName(), signature.getParameterTypes());
 | 
				
			||||||
 | 
					        LogOperation annotation = method.getAnnotation(LogOperation.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        SysLogOperationEntity log = new SysLogOperationEntity();
 | 
				
			||||||
 | 
					        if(annotation != null){
 | 
				
			||||||
 | 
					            //注解上的描述
 | 
				
			||||||
 | 
					            log.setOperation(annotation.value());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //登录用户信息
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        if(loginUser != null){
 | 
				
			||||||
 | 
					            log.setCreatorName(loginUser.getUsername());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        log.setStatus(status);
 | 
				
			||||||
 | 
					        log.setRequestTime((int)time);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //请求相关信息
 | 
				
			||||||
 | 
					        HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
 | 
				
			||||||
 | 
					        log.setIp(IpUtils.getIpAddr(request));
 | 
				
			||||||
 | 
					        log.setUserAgent(request.getHeader(HttpHeaders.USER_AGENT));
 | 
				
			||||||
 | 
					        log.setRequestUri(request.getRequestURI());
 | 
				
			||||||
 | 
					        log.setRequestMethod(request.getMethod());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //请求参数
 | 
				
			||||||
 | 
					        Object[] args = joinPoint.getArgs();
 | 
				
			||||||
 | 
					        try{
 | 
				
			||||||
 | 
					            String params = JsonUtils.toJsonString(args[0]);
 | 
				
			||||||
 | 
					            log.setRequestParams(params);
 | 
				
			||||||
 | 
					        }catch (Exception e){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存到DB
 | 
				
			||||||
 | 
					        sysLogOperationService.save(log);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										30
									
								
								ym-admin/src/main/java/com/cnbm/admin/config/CorsConfig.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								ym-admin/src/main/java/com/cnbm/admin/config/CorsConfig.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.CorsRegistry;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 10:47 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Configuration
 | 
				
			||||||
 | 
					public class CorsConfig implements WebMvcConfigurer {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void addCorsMappings(CorsRegistry registry) {
 | 
				
			||||||
 | 
					        // 设置允许跨域的路径
 | 
				
			||||||
 | 
					        registry.addMapping("/**")
 | 
				
			||||||
 | 
					                // 设置允许跨域请求的域名
 | 
				
			||||||
 | 
					                .allowedOriginPatterns("*")
 | 
				
			||||||
 | 
					                // 是否允许cookie
 | 
				
			||||||
 | 
					                .allowCredentials(true)
 | 
				
			||||||
 | 
					                // 设置允许的请求方式
 | 
				
			||||||
 | 
					                .allowedMethods("GET", "POST", "DELETE", "PUT")
 | 
				
			||||||
 | 
					                // 设置允许的header属性
 | 
				
			||||||
 | 
					                .allowedHeaders("*")
 | 
				
			||||||
 | 
					                // 跨域允许时间
 | 
				
			||||||
 | 
					                .maxAge(3600);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.filter.JwtAuthenticationTokenFilter;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.AuthenticationManager;
 | 
				
			||||||
 | 
					import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
 | 
				
			||||||
 | 
					import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 | 
				
			||||||
 | 
					import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 | 
				
			||||||
 | 
					import org.springframework.security.config.http.SessionCreationPolicy;
 | 
				
			||||||
 | 
					import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 | 
				
			||||||
 | 
					import org.springframework.security.crypto.password.PasswordEncoder;
 | 
				
			||||||
 | 
					import org.springframework.security.web.AuthenticationEntryPoint;
 | 
				
			||||||
 | 
					import org.springframework.security.web.access.AccessDeniedHandler;
 | 
				
			||||||
 | 
					import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 1:51 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Configuration
 | 
				
			||||||
 | 
					@EnableGlobalMethodSecurity(prePostEnabled = true)
 | 
				
			||||||
 | 
					public class SecurityConfig extends WebSecurityConfigurerAdapter {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //创建BCryptPasswordEncoder注入容器
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    public PasswordEncoder passwordEncoder(){
 | 
				
			||||||
 | 
					        return new BCryptPasswordEncoder();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private AuthenticationEntryPoint authenticationEntryPoint;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private AccessDeniedHandler accessDeniedHandler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    protected void configure(HttpSecurity http) throws Exception {
 | 
				
			||||||
 | 
					        http
 | 
				
			||||||
 | 
					                //关闭csrf
 | 
				
			||||||
 | 
					                .csrf().disable()
 | 
				
			||||||
 | 
					                //不通过Session获取SecurityContext
 | 
				
			||||||
 | 
					                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
 | 
				
			||||||
 | 
					                .and()
 | 
				
			||||||
 | 
					                .authorizeRequests()
 | 
				
			||||||
 | 
					                // 对于登录接口 允许匿名访问
 | 
				
			||||||
 | 
					                .antMatchers("/login").anonymous()
 | 
				
			||||||
 | 
					//                .antMatchers("/testCors").hasAuthority("system:dept:list222")
 | 
				
			||||||
 | 
					                // 除上面外的所有请求全部需要鉴权认证
 | 
				
			||||||
 | 
					                .anyRequest().authenticated();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //添加过滤器
 | 
				
			||||||
 | 
					        http.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //配置异常处理器
 | 
				
			||||||
 | 
					        http.exceptionHandling()
 | 
				
			||||||
 | 
					                //配置认证失败处理器
 | 
				
			||||||
 | 
					                .authenticationEntryPoint(authenticationEntryPoint)
 | 
				
			||||||
 | 
					                .accessDeniedHandler(accessDeniedHandler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //允许跨域
 | 
				
			||||||
 | 
					        http.cors();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public AuthenticationManager authenticationManagerBean() throws Exception {
 | 
				
			||||||
 | 
					        return super.authenticationManagerBean();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.params.LoginParam;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.LoginService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.ResponseResult;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import lombok.extern.log4j.Log4j2;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.PostMapping;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestBody;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/7 3:55 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@Api(tags="登录管理")
 | 
				
			||||||
 | 
					@Log4j2
 | 
				
			||||||
 | 
					public class LoginController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private LoginService loginService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @RequestMapping("/hello")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:user:page')")
 | 
				
			||||||
 | 
					    public String hello(){
 | 
				
			||||||
 | 
					        log.info("hello");
 | 
				
			||||||
 | 
					        return "hello";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping("/login")
 | 
				
			||||||
 | 
					    @ApiOperation(value = "登录")
 | 
				
			||||||
 | 
					    public ResponseResult login(HttpServletRequest request, @RequestBody LoginParam loginParam) {
 | 
				
			||||||
 | 
					        return loginService.login(request,loginParam);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,90 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDeptDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysDeptService;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.AssertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.ValidatorUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:40 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("/sys/dept")
 | 
				
			||||||
 | 
					@Api(tags="部门管理")
 | 
				
			||||||
 | 
					public class SysDeptController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysDeptService sysDeptService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("list")
 | 
				
			||||||
 | 
					    @ApiOperation("列表")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dept:list')")
 | 
				
			||||||
 | 
					    public Result<List<SysDeptDTO>> list(){
 | 
				
			||||||
 | 
					        List<SysDeptDTO> list = sysDeptService.list(new HashMap<>(1));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<List<SysDeptDTO>>().ok(list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("信息")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dept:info')")
 | 
				
			||||||
 | 
					    public Result<SysDeptDTO> get(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        SysDeptDTO data = sysDeptService.get(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<SysDeptDTO>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping
 | 
				
			||||||
 | 
					    @ApiOperation("保存")
 | 
				
			||||||
 | 
					    @LogOperation("保存")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dept:save')")
 | 
				
			||||||
 | 
					    public Result save(@RequestBody SysDeptDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDeptService.save(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping
 | 
				
			||||||
 | 
					    @ApiOperation("修改")
 | 
				
			||||||
 | 
					    @LogOperation("修改")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dept:update')")
 | 
				
			||||||
 | 
					    public Result update(@RequestBody SysDeptDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDeptService.update(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @DeleteMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("删除")
 | 
				
			||||||
 | 
					    @LogOperation("删除")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dept:delete')")
 | 
				
			||||||
 | 
					    public Result delete(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        AssertUtils.isNull(id, "id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDeptService.delete(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDictDataDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysDictDataService;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.AssertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.ValidatorUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParams;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					import springfox.documentation.annotations.ApiIgnore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:55 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("sys/dict/data")
 | 
				
			||||||
 | 
					@Api(tags="字典数据")
 | 
				
			||||||
 | 
					public class SysDictDataController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysDictDataService sysDictDataService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("page")
 | 
				
			||||||
 | 
					    @ApiOperation("字典数据")
 | 
				
			||||||
 | 
					    @ApiImplicitParams({
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "dictLabel", value = "字典标签", paramType = "query", dataType="String"),
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "dictValue", value = "字典值", paramType = "query", dataType="String")
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dept:page')")
 | 
				
			||||||
 | 
					    public Result<PageData<SysDictDataDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
 | 
				
			||||||
 | 
					        //字典类型
 | 
				
			||||||
 | 
					        PageData<SysDictDataDTO> page = sysDictDataService.page(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<PageData<SysDictDataDTO>>().ok(page);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("信息")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:info')")
 | 
				
			||||||
 | 
					    public Result<SysDictDataDTO> get(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        SysDictDataDTO data = sysDictDataService.get(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<SysDictDataDTO>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping
 | 
				
			||||||
 | 
					    @ApiOperation("保存")
 | 
				
			||||||
 | 
					    @LogOperation("保存")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:save')")
 | 
				
			||||||
 | 
					    public Result save(@RequestBody SysDictDataDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDictDataService.save(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping
 | 
				
			||||||
 | 
					    @ApiOperation("修改")
 | 
				
			||||||
 | 
					    @LogOperation("修改")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:update')")
 | 
				
			||||||
 | 
					    public Result update(@RequestBody SysDictDataDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDictDataService.update(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @DeleteMapping
 | 
				
			||||||
 | 
					    @ApiOperation("删除")
 | 
				
			||||||
 | 
					    @LogOperation("删除")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:delete')")
 | 
				
			||||||
 | 
					    public Result delete(@RequestBody Long[] ids){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        AssertUtils.isArrayEmpty(ids, "id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDictDataService.delete(ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,112 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDictTypeDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.DictType;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysDictTypeService;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.AssertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.ValidatorUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParams;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					import springfox.documentation.annotations.ApiIgnore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:55 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("sys/dict/type")
 | 
				
			||||||
 | 
					@Api(tags="字典类型")
 | 
				
			||||||
 | 
					public class SysDictTypeController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysDictTypeService sysDictTypeService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("page")
 | 
				
			||||||
 | 
					    @ApiOperation("字典类型")
 | 
				
			||||||
 | 
					    @ApiImplicitParams({
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "dictType", value = "字典类型", paramType = "query", dataType="String"),
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "dictName", value = "字典名称", paramType = "query", dataType="String")
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:page')")
 | 
				
			||||||
 | 
					    public Result<PageData<SysDictTypeDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
 | 
				
			||||||
 | 
					        //字典类型
 | 
				
			||||||
 | 
					        PageData<SysDictTypeDTO> page = sysDictTypeService.page(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<PageData<SysDictTypeDTO>>().ok(page);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("信息")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:info')")
 | 
				
			||||||
 | 
					    public Result<SysDictTypeDTO> get(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        SysDictTypeDTO data = sysDictTypeService.get(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<SysDictTypeDTO>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping
 | 
				
			||||||
 | 
					    @ApiOperation("保存")
 | 
				
			||||||
 | 
					    @LogOperation("保存")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:save')")
 | 
				
			||||||
 | 
					    public Result save(@RequestBody SysDictTypeDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDictTypeService.save(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping
 | 
				
			||||||
 | 
					    @ApiOperation("修改")
 | 
				
			||||||
 | 
					    @LogOperation("修改")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:update')")
 | 
				
			||||||
 | 
					    public Result update(@RequestBody SysDictTypeDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDictTypeService.update(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @DeleteMapping
 | 
				
			||||||
 | 
					    @ApiOperation("删除")
 | 
				
			||||||
 | 
					    @LogOperation("删除")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:dict:delete')")
 | 
				
			||||||
 | 
					    public Result delete(@RequestBody Long[] ids){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        AssertUtils.isArrayEmpty(ids, "id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysDictTypeService.delete(ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("all")
 | 
				
			||||||
 | 
					    @ApiOperation("所有字典数据")
 | 
				
			||||||
 | 
					    public Result<List<DictType>> all(){
 | 
				
			||||||
 | 
					        List<DictType> list = sysDictTypeService.getAllList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<List<DictType>>().ok(list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,61 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysLogErrorDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.execl.SysLogErrorExcel;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysLogErrorService;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ExcelUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParams;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.GetMapping;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestParam;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
 | 
					import springfox.documentation.annotations.ApiIgnore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:06 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("sys/log/error")
 | 
				
			||||||
 | 
					@Api(tags="异常日志")
 | 
				
			||||||
 | 
					public class SysLogErrorController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysLogErrorService sysLogErrorService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("page")
 | 
				
			||||||
 | 
					    @ApiOperation("分页")
 | 
				
			||||||
 | 
					    @ApiImplicitParams({
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String")
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    public Result<PageData<SysLogErrorDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
 | 
				
			||||||
 | 
					        PageData<SysLogErrorDTO> page = sysLogErrorService.page(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<PageData<SysLogErrorDTO>>().ok(page);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("export")
 | 
				
			||||||
 | 
					    @ApiOperation("导出")
 | 
				
			||||||
 | 
					    @LogOperation("导出")
 | 
				
			||||||
 | 
					    public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
 | 
				
			||||||
 | 
					        List<SysLogErrorDTO> list = sysLogErrorService.list(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ExcelUtils.exportExcelToTarget(response, null, list, SysLogErrorExcel.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysLogOperationDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.execl.SysLogOperationExcel;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysLogOperationService;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ExcelUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParams;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.GetMapping;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestParam;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
 | 
					import springfox.documentation.annotations.ApiIgnore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 9:51 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("sys/log/operation")
 | 
				
			||||||
 | 
					@Api(tags="操作日志")
 | 
				
			||||||
 | 
					public class SysLogOperationController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysLogOperationService sysLogOperationService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("page")
 | 
				
			||||||
 | 
					    @ApiOperation("分页")
 | 
				
			||||||
 | 
					    @ApiImplicitParams({
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "status", value = "状态  0:失败    1:成功", paramType = "query", dataType="int")
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    public Result<PageData<SysLogOperationDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
 | 
				
			||||||
 | 
					        PageData<SysLogOperationDTO> page = sysLogOperationService.page(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<PageData<SysLogOperationDTO>>().ok(page);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("export")
 | 
				
			||||||
 | 
					    @ApiOperation("导出")
 | 
				
			||||||
 | 
					    @LogOperation("导出")
 | 
				
			||||||
 | 
					    public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
 | 
				
			||||||
 | 
					        List<SysLogOperationDTO> list = sysLogOperationService.list(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ExcelUtils.exportExcelToTarget(response, null, list, SysLogOperationExcel.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,136 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysMenuDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.enums.MenuTypeEnum;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysMenuService;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.ErrorCode;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.AssertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.ValidatorUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
				
			||||||
 | 
					import org.springframework.security.core.context.SecurityContextHolder;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:32 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("/sys/menu")
 | 
				
			||||||
 | 
					@Api(tags="菜单管理")
 | 
				
			||||||
 | 
					public class SysMenuController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysMenuService sysMenuService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("nav")
 | 
				
			||||||
 | 
					    @ApiOperation("导航")
 | 
				
			||||||
 | 
					    public Result<List<SysMenuDTO>> nav(){
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserEntity user = loginUser.getSysUserEntity();
 | 
				
			||||||
 | 
					        List<SysMenuDTO> list = sysMenuService.getUserMenuList(user, MenuTypeEnum.MENU.value());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<List<SysMenuDTO>>().ok(list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("permissions")
 | 
				
			||||||
 | 
					    @ApiOperation("权限标识")
 | 
				
			||||||
 | 
					    public Result<Set<String>> permissions(){
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserEntity user = loginUser.getSysUserEntity();
 | 
				
			||||||
 | 
					        Set<String> set = sysMenuService.getUserPermissions(user);
 | 
				
			||||||
 | 
					        return new Result<Set<String>>().ok(set);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("list")
 | 
				
			||||||
 | 
					    @ApiOperation("列表")
 | 
				
			||||||
 | 
					    @ApiImplicitParam(name = "type", value = "菜单类型 0:菜单 1:按钮  null:全部", paramType = "query", dataType="int")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:menu:list')")
 | 
				
			||||||
 | 
					    public Result<List<SysMenuDTO>> list(Integer type){
 | 
				
			||||||
 | 
					        List<SysMenuDTO> list = sysMenuService.getAllMenuList(type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<List<SysMenuDTO>>().ok(list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("信息")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:menu:info')")
 | 
				
			||||||
 | 
					    public Result<SysMenuDTO> get(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        SysMenuDTO data = sysMenuService.get(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<SysMenuDTO>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping
 | 
				
			||||||
 | 
					    @ApiOperation("保存")
 | 
				
			||||||
 | 
					    @LogOperation("保存")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:menu:save')")
 | 
				
			||||||
 | 
					    public Result save(@RequestBody SysMenuDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysMenuService.save(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping
 | 
				
			||||||
 | 
					    @ApiOperation("修改")
 | 
				
			||||||
 | 
					    @LogOperation("修改")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:menu:update')")
 | 
				
			||||||
 | 
					    public Result update(@RequestBody SysMenuDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysMenuService.update(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @DeleteMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("删除")
 | 
				
			||||||
 | 
					    @LogOperation("删除")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:menu:delete')")
 | 
				
			||||||
 | 
					    public Result delete(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        AssertUtils.isNull(id, "id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //判断是否有子菜单或按钮
 | 
				
			||||||
 | 
					        List<SysMenuDTO> list = sysMenuService.getListPid(id);
 | 
				
			||||||
 | 
					        if(list.size() > 0){
 | 
				
			||||||
 | 
					            return new Result().error(ErrorCode.SUB_MENU_EXIST);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysMenuService.delete(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("select")
 | 
				
			||||||
 | 
					    @ApiOperation("角色菜单权限")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:menu:select')")
 | 
				
			||||||
 | 
					    public Result<List<SysMenuDTO>> select(){
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserEntity user = loginUser.getSysUserEntity();
 | 
				
			||||||
 | 
					        List<SysMenuDTO> list = sysMenuService.getUserMenuList(user, null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<List<SysMenuDTO>>().ok(list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,116 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysParamsDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.execl.SysParamsExcel;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysParamsService;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ExcelUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.AssertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.ValidatorUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParams;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					import springfox.documentation.annotations.ApiIgnore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:20 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("sys/params")
 | 
				
			||||||
 | 
					@Api(tags="参数管理")
 | 
				
			||||||
 | 
					public class SysParamsController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysParamsService sysParamsService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("page")
 | 
				
			||||||
 | 
					    @ApiOperation("分页")
 | 
				
			||||||
 | 
					    @ApiImplicitParams({
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "paramCode", value = "参数编码", paramType = "query", dataType="String")
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:params:page')")
 | 
				
			||||||
 | 
					    public Result<PageData<SysParamsDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
 | 
				
			||||||
 | 
					        PageData<SysParamsDTO> page = sysParamsService.page(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<PageData<SysParamsDTO>>().ok(page);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("信息")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:params:info')")
 | 
				
			||||||
 | 
					    public Result<SysParamsDTO> get(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        SysParamsDTO data = sysParamsService.get(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<SysParamsDTO>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping
 | 
				
			||||||
 | 
					    @ApiOperation("保存")
 | 
				
			||||||
 | 
					    @LogOperation("保存")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:params:save')")
 | 
				
			||||||
 | 
					    public Result save(@RequestBody SysParamsDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysParamsService.save(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping
 | 
				
			||||||
 | 
					    @ApiOperation("修改")
 | 
				
			||||||
 | 
					    @LogOperation("修改")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:params:update')")
 | 
				
			||||||
 | 
					    public Result update(@RequestBody SysParamsDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysParamsService.update(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @DeleteMapping
 | 
				
			||||||
 | 
					    @ApiOperation("删除")
 | 
				
			||||||
 | 
					    @LogOperation("删除")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:params:delete')")
 | 
				
			||||||
 | 
					    public Result delete(@RequestBody Long[] ids){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        AssertUtils.isArrayEmpty(ids, "id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysParamsService.delete(ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("export")
 | 
				
			||||||
 | 
					    @ApiOperation("导出")
 | 
				
			||||||
 | 
					    @LogOperation("导出")
 | 
				
			||||||
 | 
					    @ApiImplicitParam(name = "paramCode", value = "参数编码", paramType = "query", dataType="String")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:params:export')")
 | 
				
			||||||
 | 
					    public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
 | 
				
			||||||
 | 
					        List<SysParamsDTO> list = sysParamsService.list(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ExcelUtils.exportExcelToTarget(response, null, list, SysParamsExcel.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,125 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysRoleDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleDataScopeService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleMenuService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleService;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.AssertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.ValidatorUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParams;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					import springfox.documentation.annotations.ApiIgnore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:04 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("/sys/role")
 | 
				
			||||||
 | 
					@Api(tags="角色管理")
 | 
				
			||||||
 | 
					public class SysRoleController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleService sysRoleService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleMenuService sysRoleMenuService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleDataScopeService sysRoleDataScopeService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("page")
 | 
				
			||||||
 | 
					    @ApiOperation("分页")
 | 
				
			||||||
 | 
					    @ApiImplicitParams({
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "name", value = "角色名", paramType = "query", dataType="String")
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:role:page')")
 | 
				
			||||||
 | 
					    public Result<PageData<SysRoleDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
 | 
				
			||||||
 | 
					        PageData<SysRoleDTO> page = sysRoleService.page(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<PageData<SysRoleDTO>>().ok(page);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("list")
 | 
				
			||||||
 | 
					    @ApiOperation("列表")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:role:list')")
 | 
				
			||||||
 | 
					    public Result<List<SysRoleDTO>> list(){
 | 
				
			||||||
 | 
					        List<SysRoleDTO> data = sysRoleService.list(new HashMap<>(1));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<List<SysRoleDTO>>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("信息")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:role:info')")
 | 
				
			||||||
 | 
					    public Result<SysRoleDTO> get(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        SysRoleDTO data = sysRoleService.get(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //查询角色对应的菜单
 | 
				
			||||||
 | 
					        List<Long> menuIdList = sysRoleMenuService.getMenuIdList(id);
 | 
				
			||||||
 | 
					        data.setMenuIdList(menuIdList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //查询角色对应的数据权限
 | 
				
			||||||
 | 
					        List<Long> deptIdList = sysRoleDataScopeService.getDeptIdList(id);
 | 
				
			||||||
 | 
					        data.setDeptIdList(deptIdList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<SysRoleDTO>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping
 | 
				
			||||||
 | 
					    @ApiOperation("保存")
 | 
				
			||||||
 | 
					    @LogOperation("保存")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:role:save')")
 | 
				
			||||||
 | 
					    public Result save(@RequestBody SysRoleDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysRoleService.save(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping
 | 
				
			||||||
 | 
					    @ApiOperation("修改")
 | 
				
			||||||
 | 
					    @LogOperation("修改")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:role:update')")
 | 
				
			||||||
 | 
					    public Result update(@RequestBody SysRoleDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysRoleService.update(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @DeleteMapping
 | 
				
			||||||
 | 
					    @ApiOperation("删除")
 | 
				
			||||||
 | 
					    @LogOperation("删除")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:role:delete')")
 | 
				
			||||||
 | 
					    public Result delete(@RequestBody Long[] ids){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        AssertUtils.isArrayEmpty(ids, "id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysRoleService.delete(ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,163 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.annotation.LogOperation;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.PasswordDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysUserDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.execl.SysUserExcel;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleUserService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysUserService;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ExcelUtils;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.PasswordUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.ErrorCode;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.AssertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.ValidatorUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import io.swagger.annotations.Api;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParam;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiImplicitParams;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiOperation;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
				
			||||||
 | 
					import org.springframework.security.core.context.SecurityContextHolder;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					import springfox.documentation.annotations.ApiIgnore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:23 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("/sys/user")
 | 
				
			||||||
 | 
					@Api(tags="用户管理")
 | 
				
			||||||
 | 
					public class SysUserController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysUserService sysUserService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleUserService sysRoleUserService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("page")
 | 
				
			||||||
 | 
					    @ApiOperation("分页")
 | 
				
			||||||
 | 
					    @ApiImplicitParams({
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") ,
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType="String"),
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "gender", value = "性别", paramType = "query", dataType="String"),
 | 
				
			||||||
 | 
					            @ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType="String")
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:user:page')")
 | 
				
			||||||
 | 
					    public Result<PageData<SysUserDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
 | 
				
			||||||
 | 
					        PageData<SysUserDTO> page = sysUserService.page(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<PageData<SysUserDTO>>().ok(page);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("{id}")
 | 
				
			||||||
 | 
					    @ApiOperation("信息")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:user:info')")
 | 
				
			||||||
 | 
					    public Result<SysUserDTO> get(@PathVariable("id") Long id){
 | 
				
			||||||
 | 
					        SysUserDTO data = sysUserService.get(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //用户角色列表
 | 
				
			||||||
 | 
					        List<Long> roleIdList = sysRoleUserService.getRoleIdList(id);
 | 
				
			||||||
 | 
					        data.setRoleIdList(roleIdList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result<SysUserDTO>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("info")
 | 
				
			||||||
 | 
					    @ApiOperation("登录用户信息")
 | 
				
			||||||
 | 
					    public Result<SysUserDTO> info(){
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserDTO data = ConvertUtils.sourceToTarget(loginUser.getSysUserEntity(), SysUserDTO.class);
 | 
				
			||||||
 | 
					        return new Result<SysUserDTO>().ok(data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping("password")
 | 
				
			||||||
 | 
					    @ApiOperation("修改密码")
 | 
				
			||||||
 | 
					    @LogOperation("修改密码")
 | 
				
			||||||
 | 
					    public Result password(@RequestBody PasswordDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserEntity user = loginUser.getSysUserEntity();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //原密码不正确
 | 
				
			||||||
 | 
					        if(!PasswordUtils.matches(dto.getPassword(), user.getPassword())){
 | 
				
			||||||
 | 
					            return new Result().error(ErrorCode.PASSWORD_ERROR);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysUserService.updatePassword(user.getId(), dto.getNewPassword());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostMapping
 | 
				
			||||||
 | 
					    @ApiOperation("保存")
 | 
				
			||||||
 | 
					    @LogOperation("保存")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:user:save')")
 | 
				
			||||||
 | 
					    public Result save(@RequestBody SysUserDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysUserService.save(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PutMapping
 | 
				
			||||||
 | 
					    @ApiOperation("修改")
 | 
				
			||||||
 | 
					    @LogOperation("修改")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:user:update')")
 | 
				
			||||||
 | 
					    public Result update(@RequestBody SysUserDTO dto){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysUserService.update(dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @DeleteMapping
 | 
				
			||||||
 | 
					    @ApiOperation("删除")
 | 
				
			||||||
 | 
					    @LogOperation("删除")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:user:delete')")
 | 
				
			||||||
 | 
					    public Result delete(@RequestBody Long[] ids){
 | 
				
			||||||
 | 
					        //效验数据
 | 
				
			||||||
 | 
					        AssertUtils.isArrayEmpty(ids, "id");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysUserService.deleteBatchIds(Arrays.asList(ids));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return new Result();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("export")
 | 
				
			||||||
 | 
					    @ApiOperation("导出")
 | 
				
			||||||
 | 
					    @LogOperation("导出")
 | 
				
			||||||
 | 
					    @ApiImplicitParam(name = "username", value = "用户名", paramType = "query", dataType="String")
 | 
				
			||||||
 | 
					    @PreAuthorize("@ex.hasAuthority('sys:user:export')")
 | 
				
			||||||
 | 
					    public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
 | 
				
			||||||
 | 
					        List<SysUserDTO> list = sysUserService.list(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ExcelUtils.exportExcelToTarget(response, null, list, SysUserExcel.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/LoginDao.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/LoginDao.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 9:20 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface LoginDao extends BaseMapper<SysUserEntity> {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										33
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysDeptDao.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysDeptDao.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDeptEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:40 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysDeptDao extends BaseDao<SysDeptEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<SysDeptEntity> getList(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysDeptEntity getById(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取所有部门的id、pid列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<SysDeptEntity> getIdAndPidList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据部门ID,获取所有子部门ID列表
 | 
				
			||||||
 | 
					     * @param id   部门ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getSubDeptIdList(String id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.DictData;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDictDataEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:56 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysDictDataDao extends BaseDao<SysDictDataEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 字典数据列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<DictData> getDictDataList();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.DictType;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDictTypeEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:56 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysDictTypeDao extends BaseDao<SysDictTypeEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 字典类型列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<DictType> getDictTypeList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysLogErrorEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:07 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysLogErrorDao extends BaseDao<SysLogErrorEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysLogOperationEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 9:54 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysLogOperationDao extends BaseDao<SysLogOperationEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										52
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysMenuDao.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysMenuDao.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysMenuEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Param;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:33 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysMenuDao extends BaseDao<SysMenuEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysMenuEntity getById(@Param("id") Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询所有菜单列表
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param type 菜单类型
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<SysMenuEntity> getMenuList(@Param("type") Integer type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询用户菜单列表
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param userId 用户ID
 | 
				
			||||||
 | 
					     * @param type 菜单类型
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<SysMenuEntity> getUserMenuList(@Param("userId") Long userId, @Param("type") Integer type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询用户权限列表
 | 
				
			||||||
 | 
					     * @param userId  用户ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<String> getUserPermissionsList(Long userId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询所有权限列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<String> getPermissionsList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据父菜单,查询子菜单
 | 
				
			||||||
 | 
					     * @param pid  父菜单ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<SysMenuEntity> getListPid(Long pid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										37
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysParamsDao.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysParamsDao.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysParamsEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Param;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:21 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysParamsDao extends BaseDao<SysParamsEntity> {
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据参数编码,查询value
 | 
				
			||||||
 | 
					     * @param paramCode 参数编码
 | 
				
			||||||
 | 
					     * @return          参数值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    String getValueByCode(String paramCode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取参数编码列表
 | 
				
			||||||
 | 
					     * @param ids  ids
 | 
				
			||||||
 | 
					     * @return     返回参数编码列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<String> getParamCodeList(Long[] ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据参数编码,更新value
 | 
				
			||||||
 | 
					     * @param paramCode  参数编码
 | 
				
			||||||
 | 
					     * @param paramValue  参数值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    int updateValueByCode(@Param("paramCode") String paramCode, @Param("paramValue") String paramValue);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysRoleDao.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysRoleDao.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:05 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysRoleDao extends BaseDao<SysRoleEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleDataScopeEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:15 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysRoleDataScopeDao extends BaseDao<SysRoleDataScopeEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色ID,获取部门ID列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getDeptIdList(Long roleId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取用户的部门数据权限列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getDataScopeList(Long userId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色id,删除角色数据权限关系
 | 
				
			||||||
 | 
					     * @param roleIds 角色ids
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByRoleIds(Long[] roleIds);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleMenuEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:15 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysRoleMenuDao extends BaseDao<SysRoleMenuEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色ID,获取菜单ID列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getMenuIdList(Long roleId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色id,删除角色菜单关系
 | 
				
			||||||
 | 
					     * @param roleIds 角色ids
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByRoleIds(Long[] roleIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据菜单id,删除角色菜单关系
 | 
				
			||||||
 | 
					     * @param menuId 菜单id
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByMenuId(Long menuId);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:35 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysRoleUserDao extends BaseDao<SysRoleUserEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色ids,删除角色用户关系
 | 
				
			||||||
 | 
					     * @param roleIds 角色ids
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByRoleIds(Long[] roleIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据用户id,删除角色用户关系
 | 
				
			||||||
 | 
					     * @param userIds 用户ids
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByUserIds(Long[] userIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 角色ID列表
 | 
				
			||||||
 | 
					     * @param userId  用户ID
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getRoleIdList(Long userId);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										36
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysUserDao.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/SysUserDao.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.dao.BaseDao;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Param;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:27 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface SysUserDao extends BaseDao<SysUserEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<SysUserEntity> getList(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysUserEntity getById(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysUserEntity getByUsername(String username);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int updatePassword(@Param("id") Long id, @Param("newPassword") String newPassword);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据部门ID,查询用户数
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    int getCountByDeptId(Long deptId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据部门ID,查询用户ID列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getUserIdListByDeptId(List<Long> deptIdList);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/UserDao.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								ym-admin/src/main/java/com/cnbm/admin/dao/UserDao.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/9 8:57 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Mapper
 | 
				
			||||||
 | 
					public interface UserDao extends BaseMapper<SysUserEntity> {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										28
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/PasswordDTO.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/PasswordDTO.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:59 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "修改密码")
 | 
				
			||||||
 | 
					public class PasswordDTO implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "原密码")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysuser.password.require}")
 | 
				
			||||||
 | 
					    private String password;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "新密码")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysuser.password.require}")
 | 
				
			||||||
 | 
					    private String newPassword;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										102
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysDeptDTO.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysDeptDTO.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.TreeNode;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.Min;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import javax.validation.constraints.Null;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:39 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@ApiModel(value = "部门管理")
 | 
				
			||||||
 | 
					public class SysDeptDTO extends TreeNode implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    @Null(message="{id.null}", groups = AddGroup.class)
 | 
				
			||||||
 | 
					    @NotNull(message="{id.require}", groups = UpdateGroup.class)
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "上级ID")
 | 
				
			||||||
 | 
					    @NotNull(message="{sysdept.pid.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Long pid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "部门名称")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysdept.name.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "排序")
 | 
				
			||||||
 | 
					    @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "上级部门名称")
 | 
				
			||||||
 | 
					    private String parentName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Long getId() {
 | 
				
			||||||
 | 
					        return id;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setId(Long id) {
 | 
				
			||||||
 | 
					        this.id = id;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Long getPid() {
 | 
				
			||||||
 | 
					        return pid;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setPid(Long pid) {
 | 
				
			||||||
 | 
					        this.pid = pid;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getName() {
 | 
				
			||||||
 | 
					        return name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setName(String name) {
 | 
				
			||||||
 | 
					        this.name = name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getSort() {
 | 
				
			||||||
 | 
					        return sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setSort(Integer sort) {
 | 
				
			||||||
 | 
					        this.sort = sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Date getCreateDate() {
 | 
				
			||||||
 | 
					        return createDate;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setCreateDate(Date createDate) {
 | 
				
			||||||
 | 
					        this.createDate = createDate;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getParentName() {
 | 
				
			||||||
 | 
					        return parentName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setParentName(String parentName) {
 | 
				
			||||||
 | 
					        this.parentName = parentName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.Min;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import javax.validation.constraints.Null;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:57 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "字典数据")
 | 
				
			||||||
 | 
					public class SysDictDataDTO implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    @Null(message="{id.null}", groups = AddGroup.class)
 | 
				
			||||||
 | 
					    @NotNull(message="{id.require}", groups = UpdateGroup.class)
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "字典类型ID")
 | 
				
			||||||
 | 
					    @NotNull(message="{sysdict.type.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Long dictTypeId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "字典标签")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysdict.label.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String dictLabel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "字典值")
 | 
				
			||||||
 | 
					    private String dictValue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "备注")
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "排序")
 | 
				
			||||||
 | 
					    @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "更新时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.Min;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import javax.validation.constraints.Null;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:57 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "字典类型")
 | 
				
			||||||
 | 
					public class SysDictTypeDTO implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    @Null(message="{id.null}", groups = AddGroup.class)
 | 
				
			||||||
 | 
					    @NotNull(message="{id.require}", groups = UpdateGroup.class)
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "字典类型")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysdict.type.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String dictType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "字典名称")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysdict.name.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String dictName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "备注")
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "排序")
 | 
				
			||||||
 | 
					    @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "更新时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:07 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "异常日志")
 | 
				
			||||||
 | 
					public class SysLogErrorDTO implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "请求URI")
 | 
				
			||||||
 | 
					    private String requestUri;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "请求方式")
 | 
				
			||||||
 | 
					    private String requestMethod;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "请求参数")
 | 
				
			||||||
 | 
					    private String requestParams;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "用户代理")
 | 
				
			||||||
 | 
					    private String userAgent;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "操作IP")
 | 
				
			||||||
 | 
					    private String ip;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "异常信息")
 | 
				
			||||||
 | 
					    private String errorInfo;
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 9:53 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "操作日志")
 | 
				
			||||||
 | 
					public class SysLogOperationDTO implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "用户操作")
 | 
				
			||||||
 | 
					    private String operation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "请求URI")
 | 
				
			||||||
 | 
					    private String requestUri;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "请求方式")
 | 
				
			||||||
 | 
					    private String requestMethod;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "请求参数")
 | 
				
			||||||
 | 
					    private String requestParams;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "请求时长(毫秒)")
 | 
				
			||||||
 | 
					    private Integer requestTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "用户代理")
 | 
				
			||||||
 | 
					    private String userAgent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "操作IP")
 | 
				
			||||||
 | 
					    private String ip;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "状态  0:失败   1:成功")
 | 
				
			||||||
 | 
					    private Integer status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "用户名")
 | 
				
			||||||
 | 
					    private String creatorName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										148
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysMenuDTO.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysMenuDTO.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,148 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.TreeNode;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import org.hibernate.validator.constraints.Range;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.Min;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import javax.validation.constraints.Null;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:33 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@ApiModel(value = "菜单管理")
 | 
				
			||||||
 | 
					public class SysMenuDTO extends TreeNode<SysMenuDTO> implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    @Null(message="{id.null}", groups = AddGroup.class)
 | 
				
			||||||
 | 
					    @NotNull(message="{id.require}", groups = UpdateGroup.class)
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "上级ID")
 | 
				
			||||||
 | 
					    @NotNull(message="{sysmenu.pid.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Long pid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "菜单名称")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysmenu.name.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "菜单URL")
 | 
				
			||||||
 | 
					    private String url;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "类型  0:菜单   1:按钮")
 | 
				
			||||||
 | 
					    @Range(min=0, max=1, message = "{sysmenu.type.range}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Integer type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "菜单图标")
 | 
				
			||||||
 | 
					    private String icon;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "授权(多个用逗号分隔,如:sys:user:list,sys:user:save)")
 | 
				
			||||||
 | 
					    private String permissions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "排序")
 | 
				
			||||||
 | 
					    @Min(value = 0, message = "{sort.number}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "上级菜单名称")
 | 
				
			||||||
 | 
					    private String parentName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Long getId() {
 | 
				
			||||||
 | 
					        return id;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setId(Long id) {
 | 
				
			||||||
 | 
					        this.id = id;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Long getPid() {
 | 
				
			||||||
 | 
					        return pid;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setPid(Long pid) {
 | 
				
			||||||
 | 
					        this.pid = pid;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getName() {
 | 
				
			||||||
 | 
					        return name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setName(String name) {
 | 
				
			||||||
 | 
					        this.name = name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getUrl() {
 | 
				
			||||||
 | 
					        return url;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setUrl(String url) {
 | 
				
			||||||
 | 
					        this.url = url;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getType() {
 | 
				
			||||||
 | 
					        return type;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setType(Integer type) {
 | 
				
			||||||
 | 
					        this.type = type;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getIcon() {
 | 
				
			||||||
 | 
					        return icon;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setIcon(String icon) {
 | 
				
			||||||
 | 
					        this.icon = icon;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getPermissions() {
 | 
				
			||||||
 | 
					        return permissions;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setPermissions(String permissions) {
 | 
				
			||||||
 | 
					        this.permissions = permissions;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getSort() {
 | 
				
			||||||
 | 
					        return sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setSort(Integer sort) {
 | 
				
			||||||
 | 
					        this.sort = sort;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Date getCreateDate() {
 | 
				
			||||||
 | 
					        return createDate;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setCreateDate(Date createDate) {
 | 
				
			||||||
 | 
					        this.createDate = createDate;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getParentName() {
 | 
				
			||||||
 | 
					        return parentName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setParentName(String parentName) {
 | 
				
			||||||
 | 
					        this.parentName = parentName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										51
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysParamsDTO.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysParamsDTO.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import javax.validation.constraints.Null;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:21 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "参数管理")
 | 
				
			||||||
 | 
					public class SysParamsDTO implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    @Null(message="{id.null}", groups = AddGroup.class)
 | 
				
			||||||
 | 
					    @NotNull(message="{id.require}", groups = UpdateGroup.class)
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "参数编码")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysparams.paramcode.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String paramCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "参数值")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysparams.paramvalue.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String paramValue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "备注")
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "更新时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										50
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysRoleDTO.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysRoleDTO.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import javax.validation.constraints.Null;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:06 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "角色管理")
 | 
				
			||||||
 | 
					public class SysRoleDTO implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    @Null(message="{id.null}", groups = AddGroup.class)
 | 
				
			||||||
 | 
					    @NotNull(message="{id.require}", groups = UpdateGroup.class)
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "角色名称")
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysrole.name.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "备注")
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "菜单ID列表")
 | 
				
			||||||
 | 
					    private List<Long> menuIdList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "部门ID列表")
 | 
				
			||||||
 | 
					    private List<Long> deptIdList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										84
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysUserDTO.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								ym-admin/src/main/java/com/cnbm/admin/dto/SysUserDTO.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.AddGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.DefaultGroup;
 | 
				
			||||||
 | 
					import com.cnbm.common.validator.group.UpdateGroup;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import org.hibernate.validator.constraints.Range;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.Email;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
 | 
					import javax.validation.constraints.Null;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:26 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "用户管理")
 | 
				
			||||||
 | 
					public class SysUserDTO implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "id")
 | 
				
			||||||
 | 
					    @Null(message="{id.null}", groups = AddGroup.class)
 | 
				
			||||||
 | 
					    @NotNull(message="{id.require}", groups = UpdateGroup.class)
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "用户名", required = true)
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysuser.username.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String username;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "密码")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysuser.password.require}", groups = AddGroup.class)
 | 
				
			||||||
 | 
					    private String password;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "姓名", required = true)
 | 
				
			||||||
 | 
					    @NotBlank(message="{sysuser.realname.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String realName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "头像")
 | 
				
			||||||
 | 
					    private String headUrl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "性别   0:男   1:女    2:保密", required = true)
 | 
				
			||||||
 | 
					    @Range(min=0, max=2, message = "{sysuser.gender.range}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Integer gender;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "邮箱")
 | 
				
			||||||
 | 
					    @Email(message="{sysuser.email.error}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private String email;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "手机号")
 | 
				
			||||||
 | 
					    private String mobile;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "部门ID", required = true)
 | 
				
			||||||
 | 
					    @NotNull(message="{sysuser.deptId.require}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Long deptId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "状态  0:停用    1:正常", required = true)
 | 
				
			||||||
 | 
					    @Range(min=0, max=1, message = "{sysuser.status.range}", groups = DefaultGroup.class)
 | 
				
			||||||
 | 
					    private Integer status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "创建时间")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "超级管理员   0:否   1:是")
 | 
				
			||||||
 | 
					    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
 | 
				
			||||||
 | 
					    private Integer superAdmin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "角色ID列表")
 | 
				
			||||||
 | 
					    private List<Long> roleIdList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "部门名称")
 | 
				
			||||||
 | 
					    private String deptName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										17
									
								
								ym-admin/src/main/java/com/cnbm/admin/entity/DictData.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								ym-admin/src/main/java/com/cnbm/admin/entity/DictData.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonIgnore;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 11:01 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class DictData {
 | 
				
			||||||
 | 
					    @JsonIgnore
 | 
				
			||||||
 | 
					    private Long dictTypeId;
 | 
				
			||||||
 | 
					    private String dictLabel;
 | 
				
			||||||
 | 
					    private String dictValue;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								ym-admin/src/main/java/com/cnbm/admin/entity/DictType.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								ym-admin/src/main/java/com/cnbm/admin/entity/DictType.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonIgnore;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 11:00 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class DictType {
 | 
				
			||||||
 | 
					    @JsonIgnore
 | 
				
			||||||
 | 
					    private Long id;
 | 
				
			||||||
 | 
					    private String dictType;
 | 
				
			||||||
 | 
					    private List<DictData> dataList = new ArrayList<>();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										83
									
								
								ym-admin/src/main/java/com/cnbm/admin/entity/LoginUser.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								ym-admin/src/main/java/com/cnbm/admin/entity/LoginUser.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,83 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonIgnore;
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
 | 
					import org.springframework.security.core.GrantedAuthority;
 | 
				
			||||||
 | 
					import org.springframework.security.core.authority.SimpleGrantedAuthority;
 | 
				
			||||||
 | 
					import org.springframework.security.core.userdetails.UserDetails;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Collection;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 1:56 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@NoArgsConstructor
 | 
				
			||||||
 | 
					@JsonIgnoreProperties(ignoreUnknown = true)
 | 
				
			||||||
 | 
					public class LoginUser implements UserDetails {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private SysUserEntity sysUserEntity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private List<String> permissions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public LoginUser(SysUserEntity sysUserEntity, List<String> permissions) {
 | 
				
			||||||
 | 
					        this.sysUserEntity = sysUserEntity;
 | 
				
			||||||
 | 
					        this.permissions = permissions;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonIgnore
 | 
				
			||||||
 | 
					    private List<SimpleGrantedAuthority> authorities;
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Collection<? extends GrantedAuthority> getAuthorities() {
 | 
				
			||||||
 | 
					        if(authorities!=null){
 | 
				
			||||||
 | 
					            return authorities;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //把permissions中String类型的权限信息封装成SimpleGrantedAuthority对象
 | 
				
			||||||
 | 
					//       authorities = new ArrayList<>();
 | 
				
			||||||
 | 
					//        for (String permission : permissions) {
 | 
				
			||||||
 | 
					//            SimpleGrantedAuthority authority = new SimpleGrantedAuthority(permission);
 | 
				
			||||||
 | 
					//            authorities.add(authority);
 | 
				
			||||||
 | 
					//        }
 | 
				
			||||||
 | 
					        authorities = permissions.stream()
 | 
				
			||||||
 | 
					                .map(SimpleGrantedAuthority::new)
 | 
				
			||||||
 | 
					                .collect(Collectors.toList());
 | 
				
			||||||
 | 
					        return authorities;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public String getPassword() {
 | 
				
			||||||
 | 
					        return sysUserEntity.getPassword();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public String getUsername() {
 | 
				
			||||||
 | 
					        return sysUserEntity.getUsername();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean isAccountNonExpired() {
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean isAccountNonLocked() {
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean isCredentialsNonExpired() {
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean isEnabled() {
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.FieldFill;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:39 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_dept")
 | 
				
			||||||
 | 
					public class SysDeptEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 上级ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long pid;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 所有上级ID,用逗号分开
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String pids;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 部门名称
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 排序
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新者
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Long updater;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新时间
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 上级部门名称
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(exist = false)
 | 
				
			||||||
 | 
					    private String parentName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.FieldFill;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:57 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_dict_data")
 | 
				
			||||||
 | 
					public class SysDictDataEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 字典类型ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long dictTypeId;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 字典标签
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String dictLabel;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 字典值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String dictValue;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 备注
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 排序
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新者
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Long updater;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新时间
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.FieldFill;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:58 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_dict_type")
 | 
				
			||||||
 | 
					public class SysDictTypeEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 字典类型
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String dictType;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 字典名称
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String dictName;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 备注
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 排序
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新者
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Long updater;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新时间
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:08 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_log_error")
 | 
				
			||||||
 | 
					public class SysLogErrorEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 请求URI
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String requestUri;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 请求方式
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String requestMethod;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 请求参数
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String requestParams;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户代理
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String userAgent;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 操作IP
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String ip;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 异常信息
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String errorInfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 9:49 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_log_operation")
 | 
				
			||||||
 | 
					public class SysLogOperationEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户操作
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String operation;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 请求URI
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String requestUri;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 请求方式
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String requestMethod;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 请求参数
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String requestParams;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 请求时长(毫秒)
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer requestTime;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户代理
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String userAgent;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 操作IP
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String ip;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 状态  0:失败   1:成功
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer status;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户名
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String creatorName;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.FieldFill;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:28 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_menu")
 | 
				
			||||||
 | 
					public class SysMenuEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 父菜单ID,一级菜单为0
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long pid;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 菜单名称
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 菜单URL
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String url;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 授权(多个用逗号分隔,如:sys:user:list,sys:user:save)
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String permissions;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 类型   0:菜单   1:按钮
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer type;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 菜单图标
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String icon;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 排序
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer sort;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新者
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Long updater;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新时间
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 上级菜单名称
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(exist = false)
 | 
				
			||||||
 | 
					    private String parentName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.FieldFill;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:22 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_params")
 | 
				
			||||||
 | 
					public class SysParamsEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 参数编码
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String paramCode;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 参数值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String paramValue;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 类型   0:系统参数   1:非系统参数
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer paramType;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 备注
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新者
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Long updater;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新时间
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:14 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_role_data_scope")
 | 
				
			||||||
 | 
					public class SysRoleDataScopeEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 角色ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long roleId;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 部门ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long deptId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.FieldFill;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:06 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_role")
 | 
				
			||||||
 | 
					public class SysRoleEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 角色名称
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 备注
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 部门ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT)
 | 
				
			||||||
 | 
					    private Long deptId;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新者
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Long updater;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新时间
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:16 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_role_menu")
 | 
				
			||||||
 | 
					public class SysRoleMenuEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 角色ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long roleId;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 菜单ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long menuId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:34 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_role_user")
 | 
				
			||||||
 | 
					public class SysRoleUserEntity extends BaseEntity {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 角色ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long roleId;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long userId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1,80 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.FieldFill;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
 | 
					import com.cnbm.common.entity.BaseEntity;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.EqualsAndHashCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 9:19 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@EqualsAndHashCode(callSuper=false)
 | 
				
			||||||
 | 
					@TableName("sys_user")
 | 
				
			||||||
 | 
					public class SysUserEntity extends BaseEntity implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户名
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String username;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 密码
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String password;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 姓名
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String realName;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 头像
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String headUrl;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 性别   0:男   1:女    2:保密
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer gender;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 邮箱
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String email;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 手机号
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String mobile;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 部门ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Long deptId;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 超级管理员   0:否   1:是
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer superAdmin;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 状态  0:停用   1:正常
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private Integer status;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新者
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Long updater;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新时间
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(fill = FieldFill.INSERT_UPDATE)
 | 
				
			||||||
 | 
					    private Date updateDate;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 部门名称
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @TableField(exist=false)
 | 
				
			||||||
 | 
					    private String deptName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 3:01 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public enum MenuTypeEnum {
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 菜单
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    MENU(0),
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 按钮
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    BUTTON(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private int value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MenuTypeEnum(int value) {
 | 
				
			||||||
 | 
					        this.value = value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public int value() {
 | 
				
			||||||
 | 
					        return this.value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 10:10 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public enum OperationStatusEnum {
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 失败
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    FAIL(0),
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 成功
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    SUCCESS(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private int value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    OperationStatusEnum(int value) {
 | 
				
			||||||
 | 
					        this.value = value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public int value() {
 | 
				
			||||||
 | 
					        return this.value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.enums;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:02 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public enum SuperAdminEnum {
 | 
				
			||||||
 | 
					    YES(1),
 | 
				
			||||||
 | 
					    NO(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private int value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SuperAdminEnum(int value) {
 | 
				
			||||||
 | 
					        this.value = value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public int value() {
 | 
				
			||||||
 | 
					        return this.value;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,87 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.exception;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.map.MapUtil;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysLogErrorEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysLogErrorService;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.ErrorCode;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.ExceptionUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.RenException;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.HttpContextUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.IpUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.JsonUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.Result;
 | 
				
			||||||
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
 | 
					import org.slf4j.LoggerFactory;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.dao.DuplicateKeyException;
 | 
				
			||||||
 | 
					import org.springframework.http.HttpHeaders;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.ExceptionHandler;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RestControllerAdvice;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:05 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					//@RestControllerAdvice
 | 
				
			||||||
 | 
					//public class RenExceptionHandler {
 | 
				
			||||||
 | 
					//    private static final Logger logger = LoggerFactory.getLogger(RenExceptionHandler.class);
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    @Autowired
 | 
				
			||||||
 | 
					//    private SysLogErrorService sysLogErrorService;
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 处理自定义异常
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    @ExceptionHandler(RenException.class)
 | 
				
			||||||
 | 
					//    public Result handleRenException(RenException ex){
 | 
				
			||||||
 | 
					//        Result result = new Result();
 | 
				
			||||||
 | 
					//        result.error(ex.getCode(), ex.getMsg());
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//        return result;
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    @ExceptionHandler(DuplicateKeyException.class)
 | 
				
			||||||
 | 
					//    public Result handleDuplicateKeyException(DuplicateKeyException ex){
 | 
				
			||||||
 | 
					//        Result result = new Result();
 | 
				
			||||||
 | 
					//        result.error(ErrorCode.DB_RECORD_EXISTS);
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//        return result;
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    @ExceptionHandler(Exception.class)
 | 
				
			||||||
 | 
					//    public Result handleException(Exception ex){
 | 
				
			||||||
 | 
					//        logger.error(ex.getMessage(), ex);
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//        saveLog(ex);
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//        return new Result().error();
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//    /**
 | 
				
			||||||
 | 
					//     * 保存异常日志
 | 
				
			||||||
 | 
					//     */
 | 
				
			||||||
 | 
					//    private void saveLog(Exception ex){
 | 
				
			||||||
 | 
					//        SysLogErrorEntity log = new SysLogErrorEntity();
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//        //请求相关信息
 | 
				
			||||||
 | 
					//        HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
 | 
				
			||||||
 | 
					//        log.setIp(IpUtils.getIpAddr(request));
 | 
				
			||||||
 | 
					//        log.setUserAgent(request.getHeader(HttpHeaders.USER_AGENT));
 | 
				
			||||||
 | 
					//        log.setRequestUri(request.getRequestURI());
 | 
				
			||||||
 | 
					//        log.setRequestMethod(request.getMethod());
 | 
				
			||||||
 | 
					//        Map<String, String> params = HttpContextUtils.getParameterMap(request);
 | 
				
			||||||
 | 
					//        if(MapUtil.isNotEmpty(params)){
 | 
				
			||||||
 | 
					//            log.setRequestParams(JsonUtils.toJsonString(params));
 | 
				
			||||||
 | 
					//        }
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//        //异常信息
 | 
				
			||||||
 | 
					//        log.setErrorInfo(ExceptionUtils.getErrorStackTrace(ex));
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//        //保存
 | 
				
			||||||
 | 
					//        sysLogErrorService.save(log);
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					//}
 | 
				
			||||||
@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.execl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.afterturn.easypoi.excel.annotation.Excel;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:14 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class SysLogErrorExcel {
 | 
				
			||||||
 | 
					    @Excel(name = "请求URI")
 | 
				
			||||||
 | 
					    private String requestUri;
 | 
				
			||||||
 | 
					    @Excel(name = "请求方式")
 | 
				
			||||||
 | 
					    private String requestMethod;
 | 
				
			||||||
 | 
					    @Excel(name = "请求参数")
 | 
				
			||||||
 | 
					    private String requestParams;
 | 
				
			||||||
 | 
					    @Excel(name = "User-Agent")
 | 
				
			||||||
 | 
					    private String userAgent;
 | 
				
			||||||
 | 
					    @Excel(name = "操作IP")
 | 
				
			||||||
 | 
					    private String ip;
 | 
				
			||||||
 | 
					    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss")
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.execl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.afterturn.easypoi.excel.annotation.Excel;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 10:06 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class SysLogOperationExcel {
 | 
				
			||||||
 | 
					    @Excel(name = "用户操作")
 | 
				
			||||||
 | 
					    private String operation;
 | 
				
			||||||
 | 
					    @Excel(name = "请求URI")
 | 
				
			||||||
 | 
					    private String requestUri;
 | 
				
			||||||
 | 
					    @Excel(name = "请求方式")
 | 
				
			||||||
 | 
					    private String requestMethod;
 | 
				
			||||||
 | 
					    @Excel(name = "请求参数")
 | 
				
			||||||
 | 
					    private String requestParams;
 | 
				
			||||||
 | 
					    @Excel(name = "请求时长(毫秒)")
 | 
				
			||||||
 | 
					    private Integer requestTime;
 | 
				
			||||||
 | 
					    @Excel(name = "User-Agent")
 | 
				
			||||||
 | 
					    private String userAgent;
 | 
				
			||||||
 | 
					    @Excel(name = "操作IP")
 | 
				
			||||||
 | 
					    private String ip;
 | 
				
			||||||
 | 
					    @Excel(name = "状态", replace = {"失败_0", "成功_1"})
 | 
				
			||||||
 | 
					    private Integer status;
 | 
				
			||||||
 | 
					    @Excel(name = "用户名")
 | 
				
			||||||
 | 
					    private String creatorName;
 | 
				
			||||||
 | 
					    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss")
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.execl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.afterturn.easypoi.excel.annotation.Excel;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:26 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class SysParamsExcel {
 | 
				
			||||||
 | 
					    @Excel(name = "参数编码")
 | 
				
			||||||
 | 
					    private String paramCode;
 | 
				
			||||||
 | 
					    @Excel(name = "参数值")
 | 
				
			||||||
 | 
					    private String paramValue;
 | 
				
			||||||
 | 
					    @Excel(name = "备注")
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.execl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.afterturn.easypoi.excel.annotation.Excel;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:25 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					public class SysUserExcel {
 | 
				
			||||||
 | 
					    @Excel(name = "用户名")
 | 
				
			||||||
 | 
					    private String username;
 | 
				
			||||||
 | 
					    @Excel(name = "姓名")
 | 
				
			||||||
 | 
					    private String realName;
 | 
				
			||||||
 | 
					    @Excel(name = "性别", replace = {"男_0", "女_1", "保密_2"})
 | 
				
			||||||
 | 
					    private Integer gender;
 | 
				
			||||||
 | 
					    @Excel(name = "邮箱")
 | 
				
			||||||
 | 
					    private String email;
 | 
				
			||||||
 | 
					    @Excel(name = "手机号")
 | 
				
			||||||
 | 
					    private String mobile;
 | 
				
			||||||
 | 
					    @Excel(name = "部门名称")
 | 
				
			||||||
 | 
					    private String deptName;
 | 
				
			||||||
 | 
					    @Excel(name = "状态", replace = {"停用_0", "正常_1"})
 | 
				
			||||||
 | 
					    private Integer status;
 | 
				
			||||||
 | 
					    @Excel(name = "备注")
 | 
				
			||||||
 | 
					    private String remark;
 | 
				
			||||||
 | 
					    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss")
 | 
				
			||||||
 | 
					    private Date createDate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.filter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.JwtUtil;
 | 
				
			||||||
 | 
					import io.jsonwebtoken.Claims;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.data.redis.core.RedisTemplate;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
				
			||||||
 | 
					import org.springframework.security.core.context.SecurityContextHolder;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					import org.springframework.util.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.web.filter.OncePerRequestFilter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.FilterChain;
 | 
				
			||||||
 | 
					import javax.servlet.ServletException;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.util.Objects;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 1:51 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Component
 | 
				
			||||||
 | 
					public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private RedisTemplate redisTemplate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
 | 
				
			||||||
 | 
					        //获取token
 | 
				
			||||||
 | 
					//        String token = request.getHeader("Authorization");
 | 
				
			||||||
 | 
					        String token = request.getHeader("token");
 | 
				
			||||||
 | 
					        if (!StringUtils.hasText(token)) {
 | 
				
			||||||
 | 
					            //放行
 | 
				
			||||||
 | 
					            filterChain.doFilter(request, response);
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //解析token
 | 
				
			||||||
 | 
					        String userid;
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            Claims claims = JwtUtil.parseJWT(token);
 | 
				
			||||||
 | 
					            userid = claims.getSubject();
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            e.printStackTrace();
 | 
				
			||||||
 | 
					            throw new RuntimeException("token非法");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //从redis中获取用户信息
 | 
				
			||||||
 | 
					        String redisKey = "login:" + userid;
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) redisTemplate.opsForValue().get(redisKey);
 | 
				
			||||||
 | 
					        if(Objects.isNull(loginUser)){
 | 
				
			||||||
 | 
					            throw new RuntimeException("用户未登录");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //存入SecurityContextHolder
 | 
				
			||||||
 | 
					        //TODO 获取权限信息封装到Authentication中
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authenticationToken =
 | 
				
			||||||
 | 
					                new UsernamePasswordAuthenticationToken(loginUser,null,loginUser.getAuthorities());
 | 
				
			||||||
 | 
					        SecurityContextHolder.getContext().setAuthentication(authenticationToken);
 | 
				
			||||||
 | 
					        //放行
 | 
				
			||||||
 | 
					        filterChain.doFilter(request, response);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.handler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.ResponseResult;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.WebUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.JsonUtils;
 | 
				
			||||||
 | 
					import org.springframework.http.HttpStatus;
 | 
				
			||||||
 | 
					import org.springframework.security.access.AccessDeniedException;
 | 
				
			||||||
 | 
					import org.springframework.security.web.access.AccessDeniedHandler;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.ServletException;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/9 11:55 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Component
 | 
				
			||||||
 | 
					public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
 | 
				
			||||||
 | 
					        ResponseResult result = new ResponseResult(HttpStatus.FORBIDDEN.value(),"您的权限不足");
 | 
				
			||||||
 | 
					        String json = JsonUtils.toJsonString(result);
 | 
				
			||||||
 | 
					        //处理异常
 | 
				
			||||||
 | 
					        WebUtils.renderString(response,json);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.handler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.ResponseResult;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.WebUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.JsonUtils;
 | 
				
			||||||
 | 
					import org.springframework.http.HttpStatus;
 | 
				
			||||||
 | 
					import org.springframework.security.core.AuthenticationException;
 | 
				
			||||||
 | 
					import org.springframework.security.web.AuthenticationEntryPoint;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.ServletException;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/9 1:27 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Component
 | 
				
			||||||
 | 
					public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint {
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
 | 
				
			||||||
 | 
					        ResponseResult result = new ResponseResult(HttpStatus.UNAUTHORIZED.value(),"用户认证失败请查询登录");
 | 
				
			||||||
 | 
					        String json = JsonUtils.toJsonString(result);
 | 
				
			||||||
 | 
					        //处理异常
 | 
				
			||||||
 | 
					        WebUtils.renderString(response,json);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										36
									
								
								ym-admin/src/main/java/com/cnbm/admin/params/LoginParam.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								ym-admin/src/main/java/com/cnbm/admin/params/LoginParam.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.params;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModel;
 | 
				
			||||||
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.validation.constraints.NotBlank;
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 9:29 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@ApiModel(value = "登录表单")
 | 
				
			||||||
 | 
					public class LoginParam implements Serializable {
 | 
				
			||||||
 | 
					    private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "用户名", required = true)
 | 
				
			||||||
 | 
					    @NotBlank(message="用户名不能为空")
 | 
				
			||||||
 | 
					    private String username;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "密码" , required = true)
 | 
				
			||||||
 | 
					    @NotBlank(message="密码不能为空")
 | 
				
			||||||
 | 
					    private String password;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "验证码" , required = true)
 | 
				
			||||||
 | 
					    @NotBlank(message="验证码不能为空")
 | 
				
			||||||
 | 
					    private String captcha;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @ApiModelProperty(value = "唯一标识" , required = true)
 | 
				
			||||||
 | 
					    @NotBlank(message="uuid不能为空")
 | 
				
			||||||
 | 
					    private String uuid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.redis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.common.redis.RedisKeys;
 | 
				
			||||||
 | 
					import com.cnbm.common.redis.RedisUtils;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:48 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Component
 | 
				
			||||||
 | 
					public class SysParamsRedis {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private RedisUtils redisUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void delete(Object[] paramCodes) {
 | 
				
			||||||
 | 
					        String key = RedisKeys.getSysParamsKey();
 | 
				
			||||||
 | 
					        redisUtils.hDel(key, paramCodes);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void set(String paramCode, String paramValue){
 | 
				
			||||||
 | 
					        if(paramValue == null){
 | 
				
			||||||
 | 
					            return ;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        String key = RedisKeys.getSysParamsKey();
 | 
				
			||||||
 | 
					        redisUtils.hSet(key, paramCode, paramValue);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String get(String paramCode){
 | 
				
			||||||
 | 
					        String key = RedisKeys.getSysParamsKey();
 | 
				
			||||||
 | 
					        return (String)redisUtils.hGet(key, paramCode);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 8:55 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface CaptchaService {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.params.LoginParam;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.ResponseResult;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 9:17 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface LoginService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ResponseResult login(HttpServletRequest request, LoginParam loginParam);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDeptDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDeptEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:38 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysDeptService extends BaseService<SysDeptEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<SysDeptDTO> list(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysDeptDTO get(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysDeptDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void update(SysDeptDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void delete(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据部门ID,获取本部门及子部门ID列表
 | 
				
			||||||
 | 
					     * @param id   部门ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getSubDeptIdList(Long id);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDictDataDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDictDataEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:58 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysDictDataService extends BaseService<SysDictDataEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PageData<SysDictDataDTO> page(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysDictDataDTO get(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysDictDataDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void update(SysDictDataDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void delete(Long[] ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDictTypeDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.DictType;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDictTypeEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:58 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysDictTypeService extends BaseService<SysDictTypeEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PageData<SysDictTypeDTO> page(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysDictTypeDTO get(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysDictTypeDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void update(SysDictTypeDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void delete(Long[] ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取所有字典
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<DictType> getAllList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysLogErrorDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysLogErrorEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:08 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysLogErrorService extends BaseService<SysLogErrorEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PageData<SysLogErrorDTO> page(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<SysLogErrorDTO> list(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysLogErrorEntity entity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysLogOperationDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysLogOperationEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 9:52 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysLogOperationService extends BaseService<SysLogOperationEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PageData<SysLogOperationDTO> page(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<SysLogOperationDTO> list(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysLogOperationEntity entity);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysMenuDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysMenuEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:34 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysMenuService extends BaseService<SysMenuEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysMenuDTO get(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysMenuDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void update(SysMenuDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void delete(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 菜单列表
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param type 菜单类型
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<SysMenuDTO> getAllMenuList(Integer type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户菜单列表
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param user  用户
 | 
				
			||||||
 | 
					     * @param type 菜单类型
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<SysMenuDTO> getUserMenuList(SysUserEntity user, Integer type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据父菜单,查询子菜单
 | 
				
			||||||
 | 
					     * @param pid  父菜单ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<SysMenuDTO> getListPid(Long pid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Set<String> getUserPermissions(SysUserEntity user);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysParamsDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysParamsEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:23 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysParamsService extends BaseService<SysParamsEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PageData<SysParamsDTO> page(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<SysParamsDTO> list(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysParamsDTO get(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysParamsDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void update(SysParamsDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void delete(Long[] ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据参数编码,获取参数的value值
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param paramCode  参数编码
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    String getValue(String paramCode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据参数编码,获取value的Object对象
 | 
				
			||||||
 | 
					     * @param paramCode  参数编码
 | 
				
			||||||
 | 
					     * @param clazz  Object对象
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    <T> T getValueObject(String paramCode, Class<T> clazz);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据参数编码,更新value
 | 
				
			||||||
 | 
					     * @param paramCode  参数编码
 | 
				
			||||||
 | 
					     * @param paramValue  参数值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    int updateValueByCode(String paramCode, String paramValue);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleDataScopeEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:13 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysRoleDataScopeService extends BaseService<SysRoleDataScopeEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色ID,获取部门ID列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getDeptIdList(Long roleId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 保存或修改
 | 
				
			||||||
 | 
					     * @param roleId      角色ID
 | 
				
			||||||
 | 
					     * @param deptIdList  部门ID列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void saveOrUpdate(Long roleId, List<Long> deptIdList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色id,删除角色数据权限关系
 | 
				
			||||||
 | 
					     * @param roleId 角色ids
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByRoleIds(Long[] roleId);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleMenuEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 3:02 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysRoleMenuService extends BaseService<SysRoleMenuEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色ID,获取菜单ID列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getMenuIdList(Long roleId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 保存或修改
 | 
				
			||||||
 | 
					     * @param roleId      角色ID
 | 
				
			||||||
 | 
					     * @param menuIdList  菜单ID列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void saveOrUpdate(Long roleId, List<Long> menuIdList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色id,删除角色菜单关系
 | 
				
			||||||
 | 
					     * @param roleIds 角色ids
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByRoleIds(Long[] roleIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据菜单id,删除角色菜单关系
 | 
				
			||||||
 | 
					     * @param menuId 菜单id
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByMenuId(Long menuId);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysRoleDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:07 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysRoleService extends BaseService<SysRoleEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PageData<SysRoleDTO> page(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<SysRoleDTO> list(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysRoleDTO get(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysRoleDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void update(SysRoleDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void delete(Long[] ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:33 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysRoleUserService extends BaseService<SysRoleUserEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 保存或修改
 | 
				
			||||||
 | 
					     * @param userId      用户ID
 | 
				
			||||||
 | 
					     * @param roleIdList  角色ID列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void saveOrUpdate(Long userId, List<Long> roleIdList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据角色ids,删除角色用户关系
 | 
				
			||||||
 | 
					     * @param roleIds 角色ids
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByRoleIds(Long[] roleIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据用户id,删除角色用户关系
 | 
				
			||||||
 | 
					     * @param userIds 用户ids
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void deleteByUserIds(Long[] userIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 角色ID列表
 | 
				
			||||||
 | 
					     * @param userId  用户ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getRoleIdList(Long userId);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysUserDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.BaseService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:24 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface SysUserService extends BaseService<SysUserEntity> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PageData<SysUserDTO> page(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<SysUserDTO> list(Map<String, Object> params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysUserDTO get(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SysUserDTO getByUsername(String username);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void save(SysUserDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void update(SysUserDTO dto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void delete(Long[] ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 修改密码
 | 
				
			||||||
 | 
					     * @param id           用户ID
 | 
				
			||||||
 | 
					     * @param newPassword  新密码
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void updatePassword(Long id, String newPassword);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据部门ID,查询用户数
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    int getCountByDeptId(Long deptId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 根据部门ID,查询用户Id列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Long> getUserIdListByDeptId(List<Long> deptIdList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.params.LoginParam;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.JwtUtil;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.LoginService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.ResponseResult;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.data.redis.core.RedisTemplate;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.AuthenticationManager;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
				
			||||||
 | 
					import org.springframework.security.core.Authentication;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Objects;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 9:17 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class LoginServiceImpl implements LoginService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private RedisTemplate redisTemplate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private AuthenticationManager authenticationManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public ResponseResult login(HttpServletRequest request, LoginParam loginParam) {
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginParam.getUsername(),loginParam.getPassword());
 | 
				
			||||||
 | 
					        Authentication authenticate = authenticationManager.authenticate(authenticationToken);
 | 
				
			||||||
 | 
					        if (Objects.isNull(authenticate)) {
 | 
				
			||||||
 | 
					            throw new RuntimeException("登录失败");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //如果认证通过了,使用userid生成一个jwt jwt存入ResponseResult返回
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authenticate.getPrincipal();
 | 
				
			||||||
 | 
					        String userid = loginUser.getSysUserEntity().getId().toString();
 | 
				
			||||||
 | 
					        String jwt = JwtUtil.createJWT(userid);
 | 
				
			||||||
 | 
					        Map<String,String> map = new HashMap<>();
 | 
				
			||||||
 | 
					        map.put("token",jwt);
 | 
				
			||||||
 | 
					        //把完整的用户信息存入redis  userid作为key
 | 
				
			||||||
 | 
					        redisTemplate.opsForValue().set("login:"+userid,loginUser);
 | 
				
			||||||
 | 
					        return new ResponseResult(200,"登录成功",map);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,165 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysDeptDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysUserDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDeptDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDeptEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.enums.SuperAdminEnum;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysDeptService;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.ErrorCode;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.RenException;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.TreeUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
				
			||||||
 | 
					import org.springframework.security.core.context.SecurityContextHolder;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:38 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntity> implements SysDeptService {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysUserDao sysUserDao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysDeptDTO> list(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        //普通管理员,只能查询所属部门及子部门的数据
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserEntity user = loginUser.getSysUserEntity();
 | 
				
			||||||
 | 
					        if(user.getSuperAdmin() == SuperAdminEnum.NO.value()) {
 | 
				
			||||||
 | 
					            params.put("deptIdList", getSubDeptIdList(user.getDeptId()));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //查询部门列表
 | 
				
			||||||
 | 
					        List<SysDeptEntity> entityList = baseDao.getList(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<SysDeptDTO> dtoList = ConvertUtils.sourceToTarget(entityList, SysDeptDTO.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return TreeUtils.build(dtoList);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SysDeptDTO get(Long id) {
 | 
				
			||||||
 | 
					        //超级管理员,部门ID为null
 | 
				
			||||||
 | 
					        if(id == null){
 | 
				
			||||||
 | 
					            return null;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        SysDeptEntity entity = baseDao.getById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entity, SysDeptDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysDeptDTO dto) {
 | 
				
			||||||
 | 
					        SysDeptEntity entity = ConvertUtils.sourceToTarget(dto, SysDeptEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        entity.setPids(getPidList(entity.getPid()));
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void update(SysDeptDTO dto) {
 | 
				
			||||||
 | 
					        SysDeptEntity entity = ConvertUtils.sourceToTarget(dto, SysDeptEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //上级部门不能为自身
 | 
				
			||||||
 | 
					        if(entity.getId().equals(entity.getPid())){
 | 
				
			||||||
 | 
					            throw new RenException(ErrorCode.SUPERIOR_DEPT_ERROR);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //上级部门不能为下级部门
 | 
				
			||||||
 | 
					        List<Long> subDeptList = getSubDeptIdList(entity.getId());
 | 
				
			||||||
 | 
					        if(subDeptList.contains(entity.getPid())){
 | 
				
			||||||
 | 
					            throw new RenException(ErrorCode.SUPERIOR_DEPT_ERROR);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        entity.setPids(getPidList(entity.getPid()));
 | 
				
			||||||
 | 
					        updateById(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void delete(Long id) {
 | 
				
			||||||
 | 
					        //判断是否有子部门
 | 
				
			||||||
 | 
					        List<Long> subList = getSubDeptIdList(id);
 | 
				
			||||||
 | 
					        if(subList.size() > 1){
 | 
				
			||||||
 | 
					            throw new RenException(ErrorCode.DEPT_SUB_DELETE_ERROR);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //判断部门下面是否有用户
 | 
				
			||||||
 | 
					        int count = sysUserDao.getCountByDeptId(id);
 | 
				
			||||||
 | 
					        if(count > 0){
 | 
				
			||||||
 | 
					            throw new RenException(ErrorCode.DEPT_USER_DELETE_ERROR);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //删除
 | 
				
			||||||
 | 
					        baseDao.deleteById(id);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<Long> getSubDeptIdList(Long id) {
 | 
				
			||||||
 | 
					        List<Long> deptIdList = baseDao.getSubDeptIdList("%" + id + "%");
 | 
				
			||||||
 | 
					        deptIdList.add(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return deptIdList;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取所有上级部门ID
 | 
				
			||||||
 | 
					     * @param pid 上级ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private String getPidList(Long pid){
 | 
				
			||||||
 | 
					        //顶级部门,无上级部门
 | 
				
			||||||
 | 
					        if(Constant.DEPT_ROOT.equals(pid)){
 | 
				
			||||||
 | 
					            return Constant.DEPT_ROOT + "";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //所有部门的id、pid列表
 | 
				
			||||||
 | 
					        List<SysDeptEntity> deptList = baseDao.getIdAndPidList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //list转map
 | 
				
			||||||
 | 
					        Map<Long, SysDeptEntity> map = new HashMap<>(deptList.size());
 | 
				
			||||||
 | 
					        for(SysDeptEntity entity : deptList){
 | 
				
			||||||
 | 
					            map.put(entity.getId(), entity);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //递归查询所有上级部门ID列表
 | 
				
			||||||
 | 
					        List<Long> pidList = new ArrayList<>();
 | 
				
			||||||
 | 
					        getPidTree(pid, map, pidList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return StringUtils.join(pidList, ",");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void getPidTree(Long pid, Map<Long, SysDeptEntity> map, List<Long> pidList) {
 | 
				
			||||||
 | 
					        //顶级部门,无上级部门
 | 
				
			||||||
 | 
					        if(Constant.DEPT_ROOT.equals(pid)){
 | 
				
			||||||
 | 
					            return ;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //上级部门存在
 | 
				
			||||||
 | 
					        SysDeptEntity parent = map.get(pid);
 | 
				
			||||||
 | 
					        if(parent != null){
 | 
				
			||||||
 | 
					            getPidTree(parent.getPid(), map, pidList);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        pidList.add(pid);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,80 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysDictDataDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDictDataDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDictDataEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysDictDataService;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:59 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysDictDataServiceImpl extends BaseServiceImpl<SysDictDataDao, SysDictDataEntity> implements SysDictDataService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PageData<SysDictDataDTO> page(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        IPage<SysDictDataEntity> page = baseDao.selectPage(
 | 
				
			||||||
 | 
					                getPage(params, "sort", true),
 | 
				
			||||||
 | 
					                getWrapper(params)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return getPageData(page, SysDictDataDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private QueryWrapper<SysDictDataEntity> getWrapper(Map<String, Object> params){
 | 
				
			||||||
 | 
					        String dictTypeId = (String) params.get("dictTypeId");
 | 
				
			||||||
 | 
					        String dictLabel = (String) params.get("dictLabel");
 | 
				
			||||||
 | 
					        String dictValue = (String) params.get("dictValue");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QueryWrapper<SysDictDataEntity> wrapper = new QueryWrapper<>();
 | 
				
			||||||
 | 
					        wrapper.eq("dict_type_id", dictTypeId);
 | 
				
			||||||
 | 
					        wrapper.like(StringUtils.isNotBlank(dictLabel), "dict_label", dictLabel);
 | 
				
			||||||
 | 
					        wrapper.like(StringUtils.isNotBlank(dictValue), "dict_value", dictValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return wrapper;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SysDictDataDTO get(Long id) {
 | 
				
			||||||
 | 
					        SysDictDataEntity entity = baseDao.selectById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entity, SysDictDataDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysDictDataDTO dto) {
 | 
				
			||||||
 | 
					        SysDictDataEntity entity = ConvertUtils.sourceToTarget(dto, SysDictDataEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void update(SysDictDataDTO dto) {
 | 
				
			||||||
 | 
					        SysDictDataEntity entity = ConvertUtils.sourceToTarget(dto, SysDictDataEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        updateById(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void delete(Long[] ids) {
 | 
				
			||||||
 | 
					        //删除
 | 
				
			||||||
 | 
					        deleteBatchIds(Arrays.asList(ids));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,98 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysDictDataDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysDictTypeDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysDictTypeDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.DictData;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.DictType;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysDictTypeEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysDictTypeService;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:59 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysDictTypeServiceImpl extends BaseServiceImpl<SysDictTypeDao, SysDictTypeEntity> implements SysDictTypeService {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysDictDataDao sysDictDataDao;
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PageData<SysDictTypeDTO> page(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        IPage<SysDictTypeEntity> page = baseDao.selectPage(
 | 
				
			||||||
 | 
					                getPage(params, "sort", true),
 | 
				
			||||||
 | 
					                getWrapper(params)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return getPageData(page, SysDictTypeDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private QueryWrapper<SysDictTypeEntity> getWrapper(Map<String, Object> params){
 | 
				
			||||||
 | 
					        String dictType = (String) params.get("dictType");
 | 
				
			||||||
 | 
					        String dictName = (String) params.get("dictName");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QueryWrapper<SysDictTypeEntity> wrapper = new QueryWrapper<>();
 | 
				
			||||||
 | 
					        wrapper.like(StringUtils.isNotBlank(dictType), "dict_type", dictType);
 | 
				
			||||||
 | 
					        wrapper.like(StringUtils.isNotBlank(dictName), "dict_name", dictName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return wrapper;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SysDictTypeDTO get(Long id) {
 | 
				
			||||||
 | 
					        SysDictTypeEntity entity = baseDao.selectById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entity, SysDictTypeDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysDictTypeDTO dto) {
 | 
				
			||||||
 | 
					        SysDictTypeEntity entity = ConvertUtils.sourceToTarget(dto, SysDictTypeEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void update(SysDictTypeDTO dto) {
 | 
				
			||||||
 | 
					        SysDictTypeEntity entity = ConvertUtils.sourceToTarget(dto, SysDictTypeEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        updateById(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void delete(Long[] ids) {
 | 
				
			||||||
 | 
					        //删除
 | 
				
			||||||
 | 
					        deleteBatchIds(Arrays.asList(ids));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<DictType> getAllList() {
 | 
				
			||||||
 | 
					        List<DictType> typeList = baseDao.getDictTypeList();
 | 
				
			||||||
 | 
					        List<DictData> dataList = sysDictDataDao.getDictDataList();
 | 
				
			||||||
 | 
					        for(DictType type : typeList){
 | 
				
			||||||
 | 
					            for(DictData data : dataList){
 | 
				
			||||||
 | 
					                if(type.getId().equals(data.getDictTypeId())){
 | 
				
			||||||
 | 
					                    type.getDataList().add(data);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return typeList;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysLogErrorDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysLogErrorDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysLogErrorEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysLogErrorService;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:09 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysLogErrorServiceImpl extends BaseServiceImpl<SysLogErrorDao, SysLogErrorEntity> implements SysLogErrorService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PageData<SysLogErrorDTO> page(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        IPage<SysLogErrorEntity> page = baseDao.selectPage(
 | 
				
			||||||
 | 
					                getPage(params, Constant.CREATE_DATE, false),
 | 
				
			||||||
 | 
					                getWrapper(params)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return getPageData(page, SysLogErrorDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysLogErrorDTO> list(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        List<SysLogErrorEntity> entityList = baseDao.selectList(getWrapper(params));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entityList, SysLogErrorDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private QueryWrapper<SysLogErrorEntity> getWrapper(Map<String, Object> params){
 | 
				
			||||||
 | 
					        QueryWrapper<SysLogErrorEntity> wrapper = new QueryWrapper<>();
 | 
				
			||||||
 | 
					        return wrapper;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysLogErrorEntity entity) {
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,60 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysLogOperationDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysLogOperationDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysLogOperationEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysLogOperationService;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 9:52 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysLogOperationServiceImpl extends BaseServiceImpl<SysLogOperationDao, SysLogOperationEntity> implements SysLogOperationService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PageData<SysLogOperationDTO> page(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        IPage<SysLogOperationEntity> page = baseDao.selectPage(
 | 
				
			||||||
 | 
					                getPage(params, Constant.CREATE_DATE, false),
 | 
				
			||||||
 | 
					                getWrapper(params)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return getPageData(page, SysLogOperationDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysLogOperationDTO> list(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        List<SysLogOperationEntity> entityList = baseDao.selectList(getWrapper(params));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entityList, SysLogOperationDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private QueryWrapper<SysLogOperationEntity> getWrapper(Map<String, Object> params){
 | 
				
			||||||
 | 
					        String status = (String) params.get("status");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QueryWrapper<SysLogOperationEntity> wrapper = new QueryWrapper<>();
 | 
				
			||||||
 | 
					        wrapper.eq(StringUtils.isNotBlank(status), "status", status);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return wrapper;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysLogOperationEntity entity) {
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,136 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysMenuDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysMenuDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysMenuEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.enums.SuperAdminEnum;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysMenuService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleMenuService;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.ErrorCode;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.RenException;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.TreeUtils;
 | 
				
			||||||
 | 
					import lombok.extern.log4j.Log4j2;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 2:35 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					@Log4j2
 | 
				
			||||||
 | 
					public class SysMenuServiceImpl extends BaseServiceImpl<SysMenuDao, SysMenuEntity> implements SysMenuService {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleMenuService sysRoleMenuService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysMenuDao sysMenuDao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SysMenuDTO get(Long id) {
 | 
				
			||||||
 | 
					        SysMenuEntity entity = baseDao.getById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        SysMenuDTO dto = ConvertUtils.sourceToTarget(entity, SysMenuDTO.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return dto;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysMenuDTO dto) {
 | 
				
			||||||
 | 
					        SysMenuEntity entity = ConvertUtils.sourceToTarget(dto, SysMenuEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存菜单
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void update(SysMenuDTO dto) {
 | 
				
			||||||
 | 
					        SysMenuEntity entity = ConvertUtils.sourceToTarget(dto, SysMenuEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //上级菜单不能为自身
 | 
				
			||||||
 | 
					        if(entity.getId().equals(entity.getPid())){
 | 
				
			||||||
 | 
					            throw new RenException(ErrorCode.SUPERIOR_MENU_ERROR);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //更新菜单
 | 
				
			||||||
 | 
					        updateById(entity);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void delete(Long id) {
 | 
				
			||||||
 | 
					        //删除菜单
 | 
				
			||||||
 | 
					        deleteById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //删除角色菜单关系
 | 
				
			||||||
 | 
					        sysRoleMenuService.deleteByMenuId(id);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysMenuDTO> getAllMenuList(Integer type) {
 | 
				
			||||||
 | 
					        List<SysMenuEntity> menuList = baseDao.getMenuList(type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<SysMenuDTO> dtoList = ConvertUtils.sourceToTarget(menuList, SysMenuDTO.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return TreeUtils.build(dtoList, Constant.MENU_ROOT);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysMenuDTO> getUserMenuList(SysUserEntity user, Integer type) {
 | 
				
			||||||
 | 
					        List<SysMenuEntity> menuList = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //系统管理员,拥有最高权限
 | 
				
			||||||
 | 
					        if(!Objects.isNull(user.getSuperAdmin()) && user.getSuperAdmin() == SuperAdminEnum.YES.value()){
 | 
				
			||||||
 | 
					            menuList = baseDao.getMenuList(type);
 | 
				
			||||||
 | 
					        }else {
 | 
				
			||||||
 | 
					            menuList = baseDao.getUserMenuList(user.getId(), type);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<SysMenuDTO> dtoList = ConvertUtils.sourceToTarget(menuList, SysMenuDTO.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return TreeUtils.build(dtoList);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysMenuDTO> getListPid(Long pid) {
 | 
				
			||||||
 | 
					        List<SysMenuEntity> menuList = baseDao.getListPid(pid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(menuList, SysMenuDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Set<String> getUserPermissions(SysUserEntity user) {
 | 
				
			||||||
 | 
					        //系统管理员,拥有最高权限
 | 
				
			||||||
 | 
					        List<String> permissionsList;
 | 
				
			||||||
 | 
					        if(user.getSuperAdmin() == SuperAdminEnum.YES.value()) {
 | 
				
			||||||
 | 
					            permissionsList = sysMenuDao.getPermissionsList();
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					            permissionsList = sysMenuDao.getUserPermissionsList(user.getId());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //用户权限列表
 | 
				
			||||||
 | 
					        Set<String> permsSet = new HashSet<>();
 | 
				
			||||||
 | 
					        for(String permissions : permissionsList){
 | 
				
			||||||
 | 
					            if(StringUtils.isBlank(permissions)){
 | 
				
			||||||
 | 
					                continue;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            permsSet.addAll(Arrays.asList(permissions.trim().split(",")));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return permsSet;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,133 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysParamsDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysParamsDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysParamsEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.redis.SysParamsRedis;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysParamsService;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.ErrorCode;
 | 
				
			||||||
 | 
					import com.cnbm.common.exception.RenException;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.JsonUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:24 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysParamsServiceImpl extends BaseServiceImpl<SysParamsDao, SysParamsEntity> implements SysParamsService {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysParamsRedis sysParamsRedis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PageData<SysParamsDTO> page(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        IPage<SysParamsEntity> page = baseDao.selectPage(
 | 
				
			||||||
 | 
					                getPage(params, Constant.CREATE_DATE, false),
 | 
				
			||||||
 | 
					                getWrapper(params)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return getPageData(page, SysParamsDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysParamsDTO> list(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        List<SysParamsEntity> entityList = baseDao.selectList(getWrapper(params));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entityList, SysParamsDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private QueryWrapper<SysParamsEntity> getWrapper(Map<String, Object> params){
 | 
				
			||||||
 | 
					        String paramCode = (String) params.get("paramCode");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QueryWrapper<SysParamsEntity> wrapper = new QueryWrapper<>();
 | 
				
			||||||
 | 
					        wrapper.eq("param_type", 1);
 | 
				
			||||||
 | 
					        wrapper.like(StringUtils.isNotBlank(paramCode), "param_code", paramCode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return wrapper;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SysParamsDTO get(Long id) {
 | 
				
			||||||
 | 
					        SysParamsEntity entity = baseDao.selectById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entity, SysParamsDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysParamsDTO dto) {
 | 
				
			||||||
 | 
					        SysParamsEntity entity = ConvertUtils.sourceToTarget(dto, SysParamsEntity.class);
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysParamsRedis.set(entity.getParamCode(), entity.getParamValue());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void update(SysParamsDTO dto) {
 | 
				
			||||||
 | 
					        SysParamsEntity entity = ConvertUtils.sourceToTarget(dto, SysParamsEntity.class);
 | 
				
			||||||
 | 
					        updateById(entity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sysParamsRedis.set(entity.getParamCode(), entity.getParamValue());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void delete(Long[] ids) {
 | 
				
			||||||
 | 
					        //删除Redis数据
 | 
				
			||||||
 | 
					        List<String> paramCodeList = baseDao.getParamCodeList(ids);
 | 
				
			||||||
 | 
					        String[] paramCodes = paramCodeList.toArray(new String[paramCodeList.size()]);
 | 
				
			||||||
 | 
					        sysParamsRedis.delete(paramCodes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //删除
 | 
				
			||||||
 | 
					        deleteBatchIds(Arrays.asList(ids));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public String getValue(String paramCode) {
 | 
				
			||||||
 | 
					        String paramValue = sysParamsRedis.get(paramCode);
 | 
				
			||||||
 | 
					        if(paramValue == null){
 | 
				
			||||||
 | 
					            paramValue = baseDao.getValueByCode(paramCode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            sysParamsRedis.set(paramCode, paramValue);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return paramValue;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public <T> T getValueObject(String paramCode, Class<T> clazz) {
 | 
				
			||||||
 | 
					        String paramValue = getValue(paramCode);
 | 
				
			||||||
 | 
					        if(StringUtils.isNotBlank(paramValue)){
 | 
				
			||||||
 | 
					            return JsonUtils.parseObject(paramValue, clazz);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            return clazz.newInstance();
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            throw new RenException(ErrorCode.PARAMS_GET_ERROR);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public int updateValueByCode(String paramCode, String paramValue) {
 | 
				
			||||||
 | 
					        int count = baseDao.updateValueByCode(paramCode, paramValue);
 | 
				
			||||||
 | 
					        sysParamsRedis.set(paramCode, paramValue);
 | 
				
			||||||
 | 
					        return count;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.collection.CollUtil;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysRoleDataScopeDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleDataScopeEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleDataScopeService;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:13 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysRoleDataScopeServiceImpl extends BaseServiceImpl<SysRoleDataScopeDao, SysRoleDataScopeEntity>
 | 
				
			||||||
 | 
					        implements SysRoleDataScopeService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<Long> getDeptIdList(Long roleId) {
 | 
				
			||||||
 | 
					        return baseDao.getDeptIdList(roleId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void saveOrUpdate(Long roleId, List<Long> deptIdList) {
 | 
				
			||||||
 | 
					        //先删除角色数据权限关系
 | 
				
			||||||
 | 
					        deleteByRoleIds(new Long[]{roleId});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //角色没有一个数据权限的情况
 | 
				
			||||||
 | 
					        if(CollUtil.isEmpty(deptIdList)){
 | 
				
			||||||
 | 
					            return ;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存角色数据权限关系
 | 
				
			||||||
 | 
					        for(Long deptId : deptIdList){
 | 
				
			||||||
 | 
					            SysRoleDataScopeEntity sysRoleDataScopeEntity = new SysRoleDataScopeEntity();
 | 
				
			||||||
 | 
					            sysRoleDataScopeEntity.setDeptId(deptId);
 | 
				
			||||||
 | 
					            sysRoleDataScopeEntity.setRoleId(roleId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //保存
 | 
				
			||||||
 | 
					            insert(sysRoleDataScopeEntity);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void deleteByRoleIds(Long[] roleIds) {
 | 
				
			||||||
 | 
					        baseDao.deleteByRoleIds(roleIds);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,60 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.collection.CollUtil;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysRoleMenuDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleMenuEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleMenuService;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 3:04 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysRoleMenuServiceImpl extends BaseServiceImpl<SysRoleMenuDao, SysRoleMenuEntity> implements SysRoleMenuService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void saveOrUpdate(Long roleId, List<Long> menuIdList) {
 | 
				
			||||||
 | 
					        //先删除角色菜单关系
 | 
				
			||||||
 | 
					        deleteByRoleIds(new Long[]{roleId});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //角色没有一个菜单权限的情况
 | 
				
			||||||
 | 
					        if(CollUtil.isEmpty(menuIdList)){
 | 
				
			||||||
 | 
					            return ;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存角色菜单关系
 | 
				
			||||||
 | 
					        for(Long menuId : menuIdList){
 | 
				
			||||||
 | 
					            SysRoleMenuEntity sysRoleMenuEntity = new SysRoleMenuEntity();
 | 
				
			||||||
 | 
					            sysRoleMenuEntity.setMenuId(menuId);
 | 
				
			||||||
 | 
					            sysRoleMenuEntity.setRoleId(roleId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //保存
 | 
				
			||||||
 | 
					            insert(sysRoleMenuEntity);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<Long> getMenuIdList(Long roleId){
 | 
				
			||||||
 | 
					        return baseDao.getMenuIdList(roleId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void deleteByRoleIds(Long[] roleIds) {
 | 
				
			||||||
 | 
					        baseDao.deleteByRoleIds(roleIds);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void deleteByMenuId(Long menuId) {
 | 
				
			||||||
 | 
					        baseDao.deleteByMenuId(menuId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,132 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysRoleDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysRoleDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.enums.SuperAdminEnum;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.*;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
				
			||||||
 | 
					import org.springframework.security.core.context.SecurityContextHolder;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Objects;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/12 10:08 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntity> implements SysRoleService {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleMenuService sysRoleMenuService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleDataScopeService sysRoleDataScopeService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleUserService sysRoleUserService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysDeptService sysDeptService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PageData<SysRoleDTO> page(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        IPage<SysRoleEntity> page = baseDao.selectPage(
 | 
				
			||||||
 | 
					                getPage(params, Constant.CREATE_DATE, false),
 | 
				
			||||||
 | 
					                getWrapper(params)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return getPageData(page, SysRoleDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysRoleDTO> list(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        List<SysRoleEntity> entityList = baseDao.selectList(getWrapper(params));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entityList, SysRoleDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private QueryWrapper<SysRoleEntity> getWrapper(Map<String, Object> params){
 | 
				
			||||||
 | 
					        String name = (String)params.get("name");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QueryWrapper<SysRoleEntity> wrapper = new QueryWrapper<>();
 | 
				
			||||||
 | 
					        wrapper.like(StringUtils.isNotBlank(name), "name", name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //普通管理员,只能查询所属部门及子部门的数据
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserEntity user = loginUser.getSysUserEntity();
 | 
				
			||||||
 | 
					        if(!Objects.isNull(user.getSuperAdmin()) && user.getSuperAdmin() == SuperAdminEnum.NO.value()) {
 | 
				
			||||||
 | 
					            List<Long> deptIdList = sysDeptService.getSubDeptIdList(user.getDeptId());
 | 
				
			||||||
 | 
					            wrapper.in(deptIdList != null, "dept_id", deptIdList);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return wrapper;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SysRoleDTO get(Long id) {
 | 
				
			||||||
 | 
					        SysRoleEntity entity = baseDao.selectById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entity, SysRoleDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysRoleDTO dto) {
 | 
				
			||||||
 | 
					        SysRoleEntity entity = ConvertUtils.sourceToTarget(dto, SysRoleEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存角色
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存角色菜单关系
 | 
				
			||||||
 | 
					        sysRoleMenuService.saveOrUpdate(entity.getId(), dto.getMenuIdList());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存角色数据权限关系
 | 
				
			||||||
 | 
					        sysRoleDataScopeService.saveOrUpdate(entity.getId(), dto.getDeptIdList());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void update(SysRoleDTO dto) {
 | 
				
			||||||
 | 
					        SysRoleEntity entity = ConvertUtils.sourceToTarget(dto, SysRoleEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //更新角色
 | 
				
			||||||
 | 
					        updateById(entity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //更新角色菜单关系
 | 
				
			||||||
 | 
					        sysRoleMenuService.saveOrUpdate(entity.getId(), dto.getMenuIdList());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //更新角色数据权限关系
 | 
				
			||||||
 | 
					        sysRoleDataScopeService.saveOrUpdate(entity.getId(), dto.getDeptIdList());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void delete(Long[] ids) {
 | 
				
			||||||
 | 
					        //删除角色
 | 
				
			||||||
 | 
					        baseDao.deleteBatchIds(Arrays.asList(ids));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //删除角色用户关系
 | 
				
			||||||
 | 
					        sysRoleUserService.deleteByRoleIds(ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //删除角色菜单关系
 | 
				
			||||||
 | 
					        sysRoleMenuService.deleteByRoleIds(ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //删除角色数据权限关系
 | 
				
			||||||
 | 
					        sysRoleDataScopeService.deleteByRoleIds(ids);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.collection.CollUtil;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysRoleUserDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysRoleUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleUserService;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:34 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysRoleUserServiceImpl extends BaseServiceImpl<SysRoleUserDao, SysRoleUserEntity> implements SysRoleUserService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void saveOrUpdate(Long userId, List<Long> roleIdList) {
 | 
				
			||||||
 | 
					        //先删除角色用户关系
 | 
				
			||||||
 | 
					        deleteByUserIds(new Long[]{userId});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //用户没有一个角色权限的情况
 | 
				
			||||||
 | 
					        if(CollUtil.isEmpty(roleIdList)){
 | 
				
			||||||
 | 
					            return ;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存角色用户关系
 | 
				
			||||||
 | 
					        for(Long roleId : roleIdList){
 | 
				
			||||||
 | 
					            SysRoleUserEntity sysRoleUserEntity = new SysRoleUserEntity();
 | 
				
			||||||
 | 
					            sysRoleUserEntity.setUserId(userId);
 | 
				
			||||||
 | 
					            sysRoleUserEntity.setRoleId(roleId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //保存
 | 
				
			||||||
 | 
					            insert(sysRoleUserEntity);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void deleteByRoleIds(Long[] roleIds) {
 | 
				
			||||||
 | 
					        baseDao.deleteByRoleIds(roleIds);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void deleteByUserIds(Long[] userIds) {
 | 
				
			||||||
 | 
					        baseDao.deleteByUserIds(userIds);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<Long> getRoleIdList(Long userId) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return baseDao.getRoleIdList(userId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,154 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.SysUserDao;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysUserDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.enums.SuperAdminEnum;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysDeptService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysRoleUserService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysUserService;
 | 
				
			||||||
 | 
					import com.cnbm.admin.utils.PasswordUtils;
 | 
				
			||||||
 | 
					import com.cnbm.common.constant.Constant;
 | 
				
			||||||
 | 
					import com.cnbm.common.page.PageData;
 | 
				
			||||||
 | 
					import com.cnbm.common.service.impl.BaseServiceImpl;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 | 
				
			||||||
 | 
					import org.springframework.security.core.context.SecurityContextHolder;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:24 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntity> implements SysUserService {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysRoleUserService sysRoleUserService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysDeptService sysDeptService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PageData<SysUserDTO> page(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        //转换成like
 | 
				
			||||||
 | 
					        paramsToLike(params, "username");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //分页
 | 
				
			||||||
 | 
					        IPage<SysUserEntity> page = getPage(params, Constant.CREATE_DATE, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //普通管理员,只能查询所属部门及子部门的数据
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserEntity user = loginUser.getSysUserEntity();
 | 
				
			||||||
 | 
					        if(user.getSuperAdmin() == SuperAdminEnum.NO.value()) {
 | 
				
			||||||
 | 
					            params.put("deptIdList", sysDeptService.getSubDeptIdList(user.getDeptId()));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //查询
 | 
				
			||||||
 | 
					        List<SysUserEntity> list = baseDao.getList(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return getPageData(list, page.getTotal(), SysUserDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<SysUserDTO> list(Map<String, Object> params) {
 | 
				
			||||||
 | 
					        //普通管理员,只能查询所属部门及子部门的数据
 | 
				
			||||||
 | 
					        UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
 | 
				
			||||||
 | 
					        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
 | 
				
			||||||
 | 
					        SysUserEntity user = loginUser.getSysUserEntity();
 | 
				
			||||||
 | 
					        if(user.getSuperAdmin() == SuperAdminEnum.NO.value()) {
 | 
				
			||||||
 | 
					            params.put("deptIdList", sysDeptService.getSubDeptIdList(user.getDeptId()));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<SysUserEntity> entityList = baseDao.getList(params);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entityList, SysUserDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SysUserDTO get(Long id) {
 | 
				
			||||||
 | 
					        SysUserEntity entity = baseDao.getById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entity, SysUserDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SysUserDTO getByUsername(String username) {
 | 
				
			||||||
 | 
					        SysUserEntity entity = baseDao.getByUsername(username);
 | 
				
			||||||
 | 
					        return ConvertUtils.sourceToTarget(entity, SysUserDTO.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void save(SysUserDTO dto) {
 | 
				
			||||||
 | 
					        SysUserEntity entity = ConvertUtils.sourceToTarget(dto, SysUserEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //密码加密
 | 
				
			||||||
 | 
					        String password = PasswordUtils.encode(entity.getPassword());
 | 
				
			||||||
 | 
					        entity.setPassword(password);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存用户
 | 
				
			||||||
 | 
					        entity.setSuperAdmin(SuperAdminEnum.NO.value());
 | 
				
			||||||
 | 
					        insert(entity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //保存角色用户关系
 | 
				
			||||||
 | 
					        sysRoleUserService.saveOrUpdate(entity.getId(), dto.getRoleIdList());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void update(SysUserDTO dto) {
 | 
				
			||||||
 | 
					        SysUserEntity entity = ConvertUtils.sourceToTarget(dto, SysUserEntity.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //密码加密
 | 
				
			||||||
 | 
					        if(StringUtils.isBlank(dto.getPassword())){
 | 
				
			||||||
 | 
					            entity.setPassword(null);
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					            String password = PasswordUtils.encode(entity.getPassword());
 | 
				
			||||||
 | 
					            entity.setPassword(password);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //更新用户
 | 
				
			||||||
 | 
					        updateById(entity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //更新角色用户关系
 | 
				
			||||||
 | 
					        sysRoleUserService.saveOrUpdate(entity.getId(), dto.getRoleIdList());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void delete(Long[] ids) {
 | 
				
			||||||
 | 
					        //删除用户
 | 
				
			||||||
 | 
					        baseDao.deleteBatchIds(Arrays.asList(ids));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //删除角色用户关系
 | 
				
			||||||
 | 
					        sysRoleUserService.deleteByUserIds(ids);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    public void updatePassword(Long id, String newPassword) {
 | 
				
			||||||
 | 
					        newPassword = PasswordUtils.encode(newPassword);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        baseDao.updatePassword(id, newPassword);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int getCountByDeptId(Long deptId) {
 | 
				
			||||||
 | 
					        return baseDao.getCountByDeptId(deptId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<Long> getUserIdListByDeptId(List<Long> deptIdList) {
 | 
				
			||||||
 | 
					        return baseDao.getUserIdListByDeptId(deptIdList);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cnbm.admin.dao.UserDao;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysMenuDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.dto.SysUserDTO;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.LoginUser;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysMenuEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.entity.SysUserEntity;
 | 
				
			||||||
 | 
					import com.cnbm.admin.service.SysMenuService;
 | 
				
			||||||
 | 
					import com.cnbm.common.utils.ConvertUtils;
 | 
				
			||||||
 | 
					import lombok.extern.log4j.Log4j2;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.security.core.userdetails.UserDetails;
 | 
				
			||||||
 | 
					import org.springframework.security.core.userdetails.UserDetailsService;
 | 
				
			||||||
 | 
					import org.springframework.security.core.userdetails.UsernameNotFoundException;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Objects;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 8:57 AM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					@Log4j2
 | 
				
			||||||
 | 
					public class UserDetailsServiceImpl implements UserDetailsService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private UserDao userDao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private SysMenuService sysMenuService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        LambdaQueryWrapper<SysUserEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 | 
				
			||||||
 | 
					        lambdaQueryWrapper.eq(SysUserEntity::getUsername,username);
 | 
				
			||||||
 | 
					        SysUserEntity sysUserEntity = userDao.selectOne(lambdaQueryWrapper);
 | 
				
			||||||
 | 
					        if (Objects.isNull(sysUserEntity)) {
 | 
				
			||||||
 | 
					            throw new UsernameNotFoundException("用户名不存在");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        log.info("sysUserEntity的值是"+sysUserEntity.toString());
 | 
				
			||||||
 | 
					        log.info("sysUserEntity.getSuperAdmin()=="+sysUserEntity.getSuperAdmin());
 | 
				
			||||||
 | 
					        Set<String> userPermissions = sysMenuService.getUserPermissions(sysUserEntity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<String> list = userPermissions.stream().collect(Collectors.toList());
 | 
				
			||||||
 | 
					        log.info("list==="+list.toString());
 | 
				
			||||||
 | 
					        return new LoginUser(sysUserEntity,list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										115
									
								
								ym-admin/src/main/java/com/cnbm/admin/utils/JwtUtil.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								ym-admin/src/main/java/com/cnbm/admin/utils/JwtUtil.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,115 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.utils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.jsonwebtoken.Claims;
 | 
				
			||||||
 | 
					import io.jsonwebtoken.JwtBuilder;
 | 
				
			||||||
 | 
					import io.jsonwebtoken.Jwts;
 | 
				
			||||||
 | 
					import io.jsonwebtoken.SignatureAlgorithm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.crypto.SecretKey;
 | 
				
			||||||
 | 
					import javax.crypto.spec.SecretKeySpec;
 | 
				
			||||||
 | 
					import java.util.Base64;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/8 1:43 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class JwtUtil {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //有效期为
 | 
				
			||||||
 | 
					    public static final Long JWT_TTL = 60 * 60 *1000L;// 60 * 60 *1000  一个小时
 | 
				
			||||||
 | 
					    //设置秘钥明文
 | 
				
			||||||
 | 
					    public static final String JWT_KEY = "why";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static String getUUID(){
 | 
				
			||||||
 | 
					        String token = UUID.randomUUID().toString().replaceAll("-", "");
 | 
				
			||||||
 | 
					        return token;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 生成jtw
 | 
				
			||||||
 | 
					     * @param subject token中要存放的数据(json格式)
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static String createJWT(String subject) {
 | 
				
			||||||
 | 
					        JwtBuilder builder = getJwtBuilder(subject, null, getUUID());// 设置过期时间
 | 
				
			||||||
 | 
					        return builder.compact();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 生成jtw
 | 
				
			||||||
 | 
					     * @param subject token中要存放的数据(json格式)
 | 
				
			||||||
 | 
					     * @param ttlMillis token超时时间
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static String createJWT(String subject, Long ttlMillis) {
 | 
				
			||||||
 | 
					        JwtBuilder builder = getJwtBuilder(subject, ttlMillis, getUUID());// 设置过期时间
 | 
				
			||||||
 | 
					        return builder.compact();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static JwtBuilder getJwtBuilder(String subject, Long ttlMillis, String uuid) {
 | 
				
			||||||
 | 
					        SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
 | 
				
			||||||
 | 
					        SecretKey secretKey = generalKey();
 | 
				
			||||||
 | 
					        long nowMillis = System.currentTimeMillis();
 | 
				
			||||||
 | 
					        Date now = new Date(nowMillis);
 | 
				
			||||||
 | 
					        if(ttlMillis==null){
 | 
				
			||||||
 | 
					            ttlMillis=JwtUtil.JWT_TTL;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        long expMillis = nowMillis + ttlMillis;
 | 
				
			||||||
 | 
					        Date expDate = new Date(expMillis);
 | 
				
			||||||
 | 
					        return Jwts.builder()
 | 
				
			||||||
 | 
					                .setId(uuid)              //唯一的ID
 | 
				
			||||||
 | 
					                .setSubject(subject)   // 主题  可以是JSON数据
 | 
				
			||||||
 | 
					                .setIssuer("why")     // 签发者
 | 
				
			||||||
 | 
					                .setIssuedAt(now)      // 签发时间
 | 
				
			||||||
 | 
					                .signWith(signatureAlgorithm, secretKey) //使用HS256对称加密算法签名, 第二个参数为秘钥
 | 
				
			||||||
 | 
					                .setExpiration(expDate);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 创建token
 | 
				
			||||||
 | 
					     * @param id
 | 
				
			||||||
 | 
					     * @param subject
 | 
				
			||||||
 | 
					     * @param ttlMillis
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static String createJWT(String id, String subject, Long ttlMillis) {
 | 
				
			||||||
 | 
					        JwtBuilder builder = getJwtBuilder(subject, ttlMillis, id);// 设置过期时间
 | 
				
			||||||
 | 
					        return builder.compact();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static void main(String[] args) throws Exception {
 | 
				
			||||||
 | 
					//        String jwt = createJWT("123");
 | 
				
			||||||
 | 
					        Claims claims = parseJWT("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI5OWNhNGJhMjg5ZjU0OTVjODE5YTM0N2ExZmNlZjc0YSIsInN1YiI6IjEyMyIsImlzcyI6IndoeSIsImlhdCI6MTY1NDc1OTg5NiwiZXhwIjoxNjU0NzYzNDk2fQ.CTgS6yQjfXSGPJUTu-_rqjkh_KB_F9SzPThFfnvB5yg");
 | 
				
			||||||
 | 
					        String subject = claims.getSubject();
 | 
				
			||||||
 | 
					        System.out.println(subject);
 | 
				
			||||||
 | 
					//        System.out.println(claims);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 生成加密后的秘钥 secretKey
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static SecretKey generalKey() {
 | 
				
			||||||
 | 
					        byte[] encodedKey = Base64.getDecoder().decode(JwtUtil.JWT_KEY);
 | 
				
			||||||
 | 
					        SecretKey key = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
 | 
				
			||||||
 | 
					        return key;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 解析
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param jwt
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     * @throws Exception
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static Claims parseJWT(String jwt) throws Exception {
 | 
				
			||||||
 | 
					        SecretKey secretKey = generalKey();
 | 
				
			||||||
 | 
					        return Jwts.parser()
 | 
				
			||||||
 | 
					                .setSigningKey(secretKey)
 | 
				
			||||||
 | 
					                .parseClaimsJws(jwt)
 | 
				
			||||||
 | 
					                .getBody();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					package com.cnbm.admin.utils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 | 
				
			||||||
 | 
					import org.springframework.security.crypto.password.PasswordEncoder;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author weihongyang
 | 
				
			||||||
 | 
					 * @Date 2022/6/10 1:57 PM
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class PasswordUtils {
 | 
				
			||||||
 | 
					    private static PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 加密
 | 
				
			||||||
 | 
					     * @param str  字符串
 | 
				
			||||||
 | 
					     * @return     返回加密字符串
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static String encode(String str){
 | 
				
			||||||
 | 
					        return passwordEncoder.encode(str);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 比较密码是否相等
 | 
				
			||||||
 | 
					     * @param str  明文密码
 | 
				
			||||||
 | 
					     * @param  password  加密后密码
 | 
				
			||||||
 | 
					     * @return     true:成功    false:失败
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static boolean matches(String str, String password){
 | 
				
			||||||
 | 
					        return passwordEncoder.matches(str, password);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static void main(String[] args) {
 | 
				
			||||||
 | 
					        String str = "admin";
 | 
				
			||||||
 | 
					        String password = encode(str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        System.out.println(password);
 | 
				
			||||||
 | 
					        System.out.println(matches(str, password));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user