commit
1047eb13d0
@ -0,0 +1,6 @@ |
||||
|
||||
程序员小强-统一认证中心 |
||||
|
||||
sso-auth-center-service 统一认证中心服务端项目 |
||||
|
||||
sso-auth-center-vue 页面后台(vue) |
@ -0,0 +1,52 @@ |
||||
# Compiled class file |
||||
*.class |
||||
|
||||
# Log file |
||||
*.log |
||||
|
||||
# BlueJ files |
||||
*.ctxt |
||||
|
||||
# Mobile Tools for Java (J2ME) |
||||
.mtj.tmp/ |
||||
|
||||
# Package Files # |
||||
*.jar |
||||
*.war |
||||
*.ear |
||||
*.zip |
||||
*.tar.gz |
||||
*.rar |
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml |
||||
hs_err_pid* |
||||
|
||||
# Maven |
||||
target/ |
||||
pom.xml.tag |
||||
pom.xml.releaseBackup |
||||
pom.xml.versionsBackup |
||||
pom.xml.next |
||||
release.properties |
||||
dependency-reduced-pom.xml |
||||
buildNumber.properties |
||||
.mvn/timing.properties |
||||
|
||||
# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) |
||||
!/.mvn/wrapper/maven-wrapper.jar |
||||
|
||||
# Eclipse |
||||
.classpath |
||||
.project |
||||
.settings/ |
||||
|
||||
# Intellij |
||||
.idea/ |
||||
*.iml |
||||
*.iws |
||||
|
||||
# Mac |
||||
.DS_Store |
||||
|
||||
/D:/ |
||||
/logs/ |
@ -0,0 +1,3 @@ |
||||
# sso-auth-center |
||||
|
||||
统一认证中心服务端 |
@ -0,0 +1,220 @@ |
||||
<?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.sso</groupId> |
||||
<artifactId>sso-auth-center-service</artifactId> |
||||
<version>1.0.0</version> |
||||
|
||||
<name>sso-auth-center-service</name> |
||||
<description>程序员小强-统一认证中心</description> |
||||
|
||||
<modules> |
||||
<module>sso-auth-center</module> |
||||
<module>sso-framework</module> |
||||
<module>sso-business</module> |
||||
<module>sso-common</module> |
||||
</modules> |
||||
<packaging>pom</packaging> |
||||
|
||||
<properties> |
||||
<sso-auth-center.version>1.0.0</sso-auth-center.version> |
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
||||
<java.version>1.8</java.version> |
||||
<spring-boot.version>2.1.17.RELEASE</spring-boot.version> |
||||
<lombok.version>1.18.10</lombok.version> |
||||
<guava.version>30.0-jre</guava.version> |
||||
<bitwalker.version>1.21</bitwalker.version> |
||||
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> |
||||
<mybatis.boot.version>1.3.2</mybatis.boot.version> |
||||
<druid.version>1.2.4</druid.version> |
||||
<kaptcha.version>2.3.2</kaptcha.version> |
||||
<fastjson.version>1.2.75</fastjson.version> |
||||
<jna.version>5.5.0</jna.version> |
||||
<commons.io.version>2.5</commons.io.version> |
||||
<commons.fileupload.version>1.3.3</commons.fileupload.version> |
||||
<poi.version>3.17</poi.version> |
||||
<jwt.version>0.9.1</jwt.version> |
||||
<jedis.version>3.2.0</jedis.version> |
||||
<hutool-all.version>5.4.3</hutool-all.version> |
||||
<hibernate-validator.version>6.0.20.Final</hibernate-validator.version> |
||||
<skipTests>true</skipTests> |
||||
</properties> |
||||
|
||||
<!-- 依赖声明 --> |
||||
<dependencyManagement> |
||||
<dependencies> |
||||
<!-- SpringBoot的依赖配置--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-dependencies</artifactId> |
||||
<version>${spring-boot.version}</version> |
||||
<type>pom</type> |
||||
<scope>import</scope> |
||||
</dependency> |
||||
|
||||
<!-- mybatis --> |
||||
<dependency> |
||||
<groupId>org.mybatis.spring.boot</groupId> |
||||
<artifactId>mybatis-spring-boot-starter</artifactId> |
||||
<version>${mybatis.boot.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- druid --> |
||||
<dependency> |
||||
<groupId>com.alibaba</groupId> |
||||
<artifactId>druid-spring-boot-starter</artifactId> |
||||
<version>${druid.version}</version> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>redis.clients</groupId> |
||||
<artifactId>jedis</artifactId> |
||||
<version>${jedis.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- io --> |
||||
<dependency> |
||||
<groupId>commons-io</groupId> |
||||
<artifactId>commons-io</artifactId> |
||||
<version>${commons.io.version}</version> |
||||
</dependency> |
||||
|
||||
<!--文件上传 --> |
||||
<dependency> |
||||
<groupId>commons-fileupload</groupId> |
||||
<artifactId>commons-fileupload</artifactId> |
||||
<version>${commons.fileupload.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- excel --> |
||||
<dependency> |
||||
<groupId>org.apache.poi</groupId> |
||||
<artifactId>poi-ooxml</artifactId> |
||||
<version>${poi.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- fastjson --> |
||||
<dependency> |
||||
<groupId>com.alibaba</groupId> |
||||
<artifactId>fastjson</artifactId> |
||||
<version>${fastjson.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- jwt 用于 token生成与解析--> |
||||
<dependency> |
||||
<groupId>io.jsonwebtoken</groupId> |
||||
<artifactId>jjwt</artifactId> |
||||
<version>${jwt.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 验证码 --> |
||||
<dependency> |
||||
<groupId>com.github.penggle</groupId> |
||||
<artifactId>kaptcha</artifactId> |
||||
<version>${kaptcha.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- guava --> |
||||
<dependency> |
||||
<groupId>com.google.guava</groupId> |
||||
<artifactId>guava</artifactId> |
||||
<version>${guava.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 解析客户端操作系统、浏览器等 --> |
||||
<dependency> |
||||
<groupId>eu.bitwalker</groupId> |
||||
<artifactId>UserAgentUtils</artifactId> |
||||
<version>${bitwalker.version}</version> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>org.projectlombok</groupId> |
||||
<artifactId>lombok</artifactId> |
||||
<version>${lombok.version}</version> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>cn.hutool</groupId> |
||||
<artifactId>hutool-all</artifactId> |
||||
<version>${hutool-all.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 参数校验 --> |
||||
<dependency> |
||||
<groupId>org.hibernate</groupId> |
||||
<artifactId>hibernate-validator</artifactId> |
||||
<version>${hibernate-validator.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 核心配置模块 --> |
||||
<dependency> |
||||
<groupId>com.sso</groupId> |
||||
<artifactId>sso-framework</artifactId> |
||||
<version>${sso-auth-center.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 业务模块--> |
||||
<dependency> |
||||
<groupId>com.sso</groupId> |
||||
<artifactId>sso-business</artifactId> |
||||
<version>${sso-auth-center.version}</version> |
||||
</dependency> |
||||
|
||||
<!-- 通用工具--> |
||||
<dependency> |
||||
<groupId>com.sso</groupId> |
||||
<artifactId>sso-common</artifactId> |
||||
<version>${sso-auth-center.version}</version> |
||||
</dependency> |
||||
|
||||
|
||||
</dependencies> |
||||
</dependencyManagement> |
||||
|
||||
<dependencies> |
||||
</dependencies> |
||||
|
||||
|
||||
<build> |
||||
<finalName>sso-auth-center</finalName> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
<configuration> |
||||
<executable>true</executable> |
||||
</configuration> |
||||
</plugin> |
||||
</plugins> |
||||
</build> |
||||
|
||||
<repositories> |
||||
<repository> |
||||
<id>repo</id> |
||||
<url>http://mvn.taofen8.com/artifactory/repo</url> |
||||
<snapshots> |
||||
<enabled>true</enabled> |
||||
<updatePolicy>always</updatePolicy> |
||||
</snapshots> |
||||
</repository> |
||||
</repositories> |
||||
|
||||
<distributionManagement> |
||||
<repository> |
||||
<id>taofen8.repo</id> |
||||
<name>taofen8 Repository</name> |
||||
<url>http://mvn.taofen8.com/artifactory/local</url> |
||||
</repository> |
||||
<snapshotRepository> |
||||
<id>taofen8.repo</id> |
||||
<name>taofen8 Repository</name> |
||||
<url>http://mvn.taofen8.com/artifactory/snapshot</url> |
||||
</snapshotRepository> |
||||
</distributionManagement> |
||||
|
||||
</project> |
@ -0,0 +1,84 @@ |
||||
<?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> |
||||
<groupId>com.sso</groupId> |
||||
<artifactId>sso-auth-center-service</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<packaging>jar</packaging> |
||||
<artifactId>sso-auth-center</artifactId> |
||||
|
||||
<description> |
||||
web服务入口 |
||||
</description> |
||||
|
||||
|
||||
<repositories> |
||||
<repository> |
||||
<id>taofen8.repo</id> |
||||
<url>http://mvn.taofen8.com/artifactory/repo</url> |
||||
<snapshots> |
||||
<enabled>true</enabled> |
||||
<updatePolicy>always</updatePolicy> |
||||
</snapshots> |
||||
</repository> |
||||
</repositories> |
||||
|
||||
|
||||
<dependencies> |
||||
|
||||
<!-- spring-boot-devtools --> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-devtools</artifactId> |
||||
<optional>true</optional> <!-- 表示依赖不会传递 --> |
||||
</dependency> |
||||
|
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-test</artifactId> |
||||
<scope>test</scope> |
||||
</dependency> |
||||
|
||||
|
||||
<!-- Mysql驱动包 --> |
||||
<dependency> |
||||
<groupId>mysql</groupId> |
||||
<artifactId>mysql-connector-java</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 业务模块 --> |
||||
<dependency> |
||||
<groupId>com.sso</groupId> |
||||
<artifactId>sso-business</artifactId> |
||||
</dependency> |
||||
|
||||
</dependencies> |
||||
|
||||
<build> |
||||
<finalName>${project.artifactId}</finalName> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
<version>2.1.1.RELEASE</version> |
||||
<configuration> |
||||
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 --> |
||||
<executable>true</executable> |
||||
</configuration> |
||||
<executions> |
||||
<execution> |
||||
<goals> |
||||
<goal>repackage</goal> |
||||
</goals> |
||||
</execution> |
||||
</executions> |
||||
</plugin> |
||||
</plugins> |
||||
</build> |
||||
|
||||
|
||||
</project> |
@ -0,0 +1,25 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso; |
||||
|
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; |
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; |
||||
import org.springframework.transaction.annotation.EnableTransactionManagement; |
||||
|
||||
/** |
||||
* 统一认证中心服务端 - 启动类 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@EnableTransactionManagement |
||||
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class}) |
||||
public class AuthCenterAdminApplication { |
||||
|
||||
public static void main(String[] args) { |
||||
SpringApplication.run(AuthCenterAdminApplication.class, args); |
||||
} |
||||
} |
@ -0,0 +1,89 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.aspect; |
||||
|
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.apache.commons.lang3.RandomStringUtils; |
||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
||||
import org.apache.commons.lang3.builder.ToStringStyle; |
||||
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.slf4j.MDC; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
import java.lang.reflect.Method; |
||||
|
||||
/** |
||||
* controller 日志打印 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Slf4j |
||||
@Aspect |
||||
@Component |
||||
public class LogPrintlnAspect { |
||||
|
||||
/** |
||||
* 配置织入点 |
||||
*/ |
||||
@Pointcut("execution(public * com.sso.controller.admin..*.*(..))") |
||||
public void allMethod() { |
||||
} |
||||
|
||||
@Around("allMethod()") |
||||
public Object doAround(ProceedingJoinPoint call) throws Throwable { |
||||
MethodSignature signature = (MethodSignature) call.getSignature(); |
||||
Method method = signature.getMethod(); |
||||
|
||||
String[] classNameArray = method.getDeclaringClass().getName().split("\\."); |
||||
String methodName = classNameArray[classNameArray.length - 1] + "." + method.getName(); |
||||
|
||||
String params = buildParamsDefault(call); |
||||
|
||||
long start = System.currentTimeMillis(); |
||||
Object result = null; |
||||
try { |
||||
MDC.put("logId", String.format("[%s]", RandomStringUtils.randomAlphanumeric(10))); |
||||
log.info("[ {} ] requestParam: {}", methodName, params); |
||||
result = call.proceed(); |
||||
return result; |
||||
} finally { |
||||
log.info("[ {} ] runTime: {} ms", methodName, (System.currentTimeMillis() - start)); |
||||
} |
||||
} |
||||
|
||||
private String buildParamsDefault(ProceedingJoinPoint call) { |
||||
StringBuilder params = new StringBuilder(" ["); |
||||
for (int i = 0; i < call.getArgs().length; i++) { |
||||
Object obj = call.getArgs()[i]; |
||||
if (null != obj) { |
||||
if (obj instanceof HttpServletRequest) { |
||||
continue; |
||||
} |
||||
if (obj instanceof HttpServletResponse) { |
||||
continue; |
||||
} |
||||
String str = obj.toString(); |
||||
if (obj.getClass() != String.class) { |
||||
str = ToStringBuilder.reflectionToString(obj, ToStringStyle.JSON_STYLE); |
||||
} |
||||
if (i != call.getArgs().length - 1) { |
||||
params.append(str).append(","); |
||||
} else { |
||||
params.append(str).append(" ]"); |
||||
} |
||||
} |
||||
if (params.length() == 1) { |
||||
params.append("]"); |
||||
} |
||||
} |
||||
return params.toString(); |
||||
} |
||||
} |
@ -0,0 +1,35 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.service.admin.CaptchaService; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
/** |
||||
* 验证码操作处理 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
public class CaptchaController { |
||||
|
||||
@Autowired |
||||
private CaptchaService captchaService; |
||||
|
||||
/** |
||||
* 生成验证码 |
||||
*/ |
||||
@RequestMapping("/captchaImage") |
||||
public ResultModel<?> getCode(HttpServletResponse response) { |
||||
return ResultModel.success(captchaService.genCode(response)); |
||||
} |
||||
} |
@ -0,0 +1,106 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
|
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.model.bo.SysCodeBO; |
||||
import com.sso.model.bo.dept.DeptDeleteBO; |
||||
import com.sso.model.bo.dept.DeptMgmtTreeBO; |
||||
import com.sso.model.bo.dept.DeptSaveBO; |
||||
import com.sso.model.bo.dept.DeptUpdateBO; |
||||
import com.sso.model.vo.dept.DeptDetailVO; |
||||
import com.sso.service.admin.DeptService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 部门管理接口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/dept") |
||||
public class DeptController { |
||||
|
||||
@Autowired |
||||
private DeptService deptService; |
||||
|
||||
/** |
||||
* 部门管理页-部门树 |
||||
* |
||||
* @param treeBO |
||||
*/ |
||||
@GetMapping("/listDeptMgmtTree") |
||||
@PreAuthorize("@ss.hasPermission('dept:listDeptMgmtTree')") |
||||
public ResultModel<?> listDeptMgmtTree(@Valid DeptMgmtTreeBO treeBO) { |
||||
return ResultModel.success(deptService.listDeptMgmtTree(treeBO)); |
||||
} |
||||
|
||||
/** |
||||
* 部门下拉-部门树 |
||||
* |
||||
* @param sysCodeBO |
||||
*/ |
||||
@RequestMapping("/listDeptOptionTree") |
||||
public ResultModel<?> listDeptOptionTree(@Valid SysCodeBO sysCodeBO) { |
||||
return ResultModel.success(deptService.listDeptOptionTree(sysCodeBO.getSysCode())); |
||||
} |
||||
|
||||
/** |
||||
* 部门详情 |
||||
* |
||||
* @param deptId |
||||
*/ |
||||
@RequestMapping("/detail/{deptId}") |
||||
public ResultModel<DeptDetailVO> getDeptDetail(@PathVariable Long deptId) { |
||||
return ResultModel.success(deptService.getDeptDetail(deptId)); |
||||
} |
||||
|
||||
/** |
||||
* 添加部门 |
||||
* |
||||
* @param saveBO |
||||
*/ |
||||
@PostMapping("/add") |
||||
@PreAuthorize("@ss.hasPermission('dept:add')") |
||||
public ResultModel<?> addDept(@Valid @RequestBody DeptSaveBO saveBO) { |
||||
saveBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
deptService.addDept(saveBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改部门 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/update") |
||||
@PreAuthorize("@ss.hasPermission('dept:update')") |
||||
public ResultModel<?> updateDept(@Valid @RequestBody DeptUpdateBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
deptService.updateDept(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 删除部门 |
||||
* |
||||
* @param deptId 部门ID |
||||
*/ |
||||
@DeleteMapping("/delete/{deptId}") |
||||
@PreAuthorize("@ss.hasPermission('dept:delete')") |
||||
public ResultModel<?> deleteDept(@PathVariable Long deptId) { |
||||
DeptDeleteBO deptDeleteBO = new DeptDeleteBO(); |
||||
deptDeleteBO.setDeptId(deptId); |
||||
deptDeleteBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
deptService.deleteDept(deptDeleteBO); |
||||
return ResultModel.success(); |
||||
} |
||||
} |
@ -0,0 +1,57 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
|
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.model.bo.login.LoginBO; |
||||
import com.sso.model.vo.login.LoginTokenVO; |
||||
import com.sso.model.vo.login.LoginUserInfoVO; |
||||
import com.sso.service.admin.login.SsoLoginService; |
||||
import com.sso.service.admin.login.SysPermissionService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 登录验证 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@RestController |
||||
public class LoginController { |
||||
|
||||
@Autowired |
||||
private SsoLoginService ssoLoginService; |
||||
|
||||
@Autowired |
||||
private SysPermissionService permissionService; |
||||
|
||||
/** |
||||
* 登录方法 |
||||
* |
||||
* @param loginBO 登录信息 |
||||
* @return 结果 |
||||
*/ |
||||
@PostMapping("/login") |
||||
public ResultModel<LoginTokenVO> login(@Valid @RequestBody LoginBO loginBO) { |
||||
return ResultModel.success(ssoLoginService.login(loginBO)); |
||||
} |
||||
|
||||
/** |
||||
* 获取用户信息 |
||||
* |
||||
* @return 用户信息 |
||||
*/ |
||||
@GetMapping("getUserInfo") |
||||
public ResultModel<?> getInfo() { |
||||
LoginUserInfoVO userInfo = permissionService.getLoginUserInfo(); |
||||
return ResultModel.success(userInfo); |
||||
} |
||||
} |
@ -0,0 +1,42 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
|
||||
import com.sso.common.model.result.ResultPageModel; |
||||
import com.sso.model.bo.login.LoginLogListPageBO; |
||||
import com.sso.model.vo.login.LoginLogPageVO; |
||||
import com.sso.service.admin.LoginLogService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 登录日志管理接口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/login/log") |
||||
public class LoginLogController { |
||||
|
||||
@Autowired |
||||
private LoginLogService loginLogService; |
||||
|
||||
/** |
||||
* 登录日志分页列表 |
||||
* |
||||
* @param pageBO |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermission('login:log:listPage')") |
||||
@RequestMapping("/listPage") |
||||
public ResultPageModel<LoginLogPageVO> listPage(@Valid LoginLogListPageBO pageBO) { |
||||
return loginLogService.listPageUser(pageBO); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,105 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.model.bo.menu.MenuDeleteBO; |
||||
import com.sso.model.bo.menu.MenuSaveBO; |
||||
import com.sso.model.bo.menu.MenuTreeBO; |
||||
import com.sso.model.bo.menu.MenuUpdateBO; |
||||
import com.sso.model.vo.menu.MenuDetailVO; |
||||
import com.sso.service.admin.MenuService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 菜单管理接口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/menu") |
||||
public class MenuController { |
||||
|
||||
@Autowired |
||||
private MenuService menuService; |
||||
|
||||
/** |
||||
* 菜单管理页-菜单树 |
||||
* |
||||
* @param treeBO |
||||
*/ |
||||
@GetMapping("/listMenuTree") |
||||
@PreAuthorize("@ss.hasPermission('menu:listMenuTree')") |
||||
public ResultModel<?> listDeptMgmtTree(@Valid MenuTreeBO treeBO) { |
||||
return ResultModel.success(menuService.listMenuTree(treeBO)); |
||||
} |
||||
|
||||
/** |
||||
* 菜单管理页-菜单树下拉列表 |
||||
* |
||||
* @param treeBO |
||||
*/ |
||||
@GetMapping("/listMenuOptionTree") |
||||
public ResultModel<?> listMenuOptionTree(@Valid MenuTreeBO treeBO) { |
||||
return ResultModel.success(menuService.listMenuOptionTree(treeBO)); |
||||
} |
||||
|
||||
/** |
||||
* 菜单详情 |
||||
* |
||||
* @param menuId |
||||
*/ |
||||
@RequestMapping("/detail/{menuId}") |
||||
public ResultModel<MenuDetailVO> getMenuDetail(@PathVariable Long menuId) { |
||||
return ResultModel.success(menuService.getMenuDetail(menuId)); |
||||
} |
||||
|
||||
/** |
||||
* 添加菜单 |
||||
* |
||||
* @param saveBO |
||||
*/ |
||||
@PostMapping("/add") |
||||
@PreAuthorize("@ss.hasPermission('menu:add')") |
||||
public ResultModel<?> addDept(@Valid @RequestBody MenuSaveBO saveBO) { |
||||
saveBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
menuService.addMenu(saveBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改菜单 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/update") |
||||
@PreAuthorize("@ss.hasPermission('menu:update')") |
||||
public ResultModel<?> updateMenu(@Valid @RequestBody MenuUpdateBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
menuService.updateMenu(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 删除菜单 |
||||
* |
||||
* @param menuId 菜单ID |
||||
*/ |
||||
@DeleteMapping("/delete/{menuId}") |
||||
@PreAuthorize("@ss.hasPermission('menu:delete')") |
||||
public ResultModel<?> deleteMenu(@PathVariable Long menuId) { |
||||
MenuDeleteBO deptDeleteBO = new MenuDeleteBO(); |
||||
deptDeleteBO.setMenuId(menuId); |
||||
deptDeleteBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
menuService.deleteMenu(deptDeleteBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,118 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
|
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.model.result.ResultPageModel; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.model.bo.role.*; |
||||
import com.sso.model.vo.role.RoleDetailVO; |
||||
import com.sso.model.vo.role.RolePageVO; |
||||
import com.sso.service.admin.RoleService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 角色接口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/role") |
||||
public class RoleController { |
||||
|
||||
@Autowired |
||||
private RoleService roleService; |
||||
|
||||
/** |
||||
* 角色分页列表 |
||||
* |
||||
* @param pageBO |
||||
*/ |
||||
@RequestMapping("/listPage") |
||||
@PreAuthorize("@ss.hasPermission('role:listPage')") |
||||
public ResultPageModel<RolePageVO> listPage(@Valid RoleListPageBO pageBO) { |
||||
return roleService.listPageRole(pageBO); |
||||
} |
||||
|
||||
/** |
||||
* 角色-下拉选项列表 |
||||
* |
||||
* @param optionBO |
||||
*/ |
||||
@RequestMapping("/listOption") |
||||
public ResultModel<?> listRoleOption(@Valid RoleListOptionBO optionBO) { |
||||
return ResultModel.success(roleService.listRoleOption(optionBO)); |
||||
} |
||||
|
||||
/** |
||||
* 角色详情 |
||||
* |
||||
* @param roleId |
||||
*/ |
||||
@RequestMapping("/detail/{roleId}") |
||||
public ResultModel<RoleDetailVO> getDeptDetail(@PathVariable Long roleId) { |
||||
return ResultModel.success(roleService.getDeptDetail(roleId)); |
||||
} |
||||
|
||||
/** |
||||
* 添加角色 |
||||
* |
||||
* @param saveBO |
||||
*/ |
||||
@PostMapping("/add") |
||||
@PreAuthorize("@ss.hasPermission('role:add')") |
||||
public ResultModel<?> addRole(@Valid @RequestBody RoleSaveBO saveBO) { |
||||
saveBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
roleService.addRole(saveBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改角色 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/update") |
||||
@PreAuthorize("@ss.hasPermission('role:update')") |
||||
public ResultModel<?> updateRole(@Valid @RequestBody RoleUpdateBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
roleService.updateRole(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 删除角色 |
||||
* |
||||
* @param roleId 角色ID |
||||
*/ |
||||
@DeleteMapping("/delete/{roleId}") |
||||
@PreAuthorize("@ss.hasPermission('role:delete')") |
||||
public ResultModel<?> deleteDept(@PathVariable Long roleId) { |
||||
RoleDeleteBO deptDeleteBO = new RoleDeleteBO(); |
||||
deptDeleteBO.setRoleId(roleId); |
||||
deptDeleteBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
roleService.deleteRole(deptDeleteBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 移除角色用户绑定关系 |
||||
* |
||||
* @param removeUserBO |
||||
*/ |
||||
@PutMapping("/removeUser") |
||||
@PreAuthorize("@ss.hasPermission('role:removeUser')") |
||||
public ResultModel<?> removeUserRole(@Valid @RequestBody RoleRemoveUserBO removeUserBO) { |
||||
removeUserBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
roleService.removeUserRole(removeUserBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,143 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.model.bo.platform.*; |
||||
import com.sso.model.vo.platform.SystemDetailVO; |
||||
import com.sso.service.admin.FileUploadService; |
||||
import com.sso.service.admin.SystemService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.*; |
||||
import org.springframework.web.multipart.MultipartFile; |
||||
|
||||
import javax.annotation.Resource; |
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 目标系统平台相关接口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/system") |
||||
public class SystemController { |
||||
|
||||
@Autowired |
||||
private SystemService systemService; |
||||
|
||||
@Resource |
||||
private FileUploadService fileUploadService; |
||||
|
||||
/** |
||||
* 我的平台列表 |
||||
* |
||||
* @return 系统列表 |
||||
*/ |
||||
@GetMapping("/myList") |
||||
public ResultModel<?> myList() { |
||||
return ResultModel.success(systemService.listMySystem()); |
||||
} |
||||
|
||||
/** |
||||
* 我的平台-排序 |
||||
* |
||||
* @return 系统列表 |
||||
*/ |
||||
@PostMapping("/sortMy") |
||||
public ResultModel<?> sortMySystem(@Valid @RequestBody SystemSortBO sortBO) { |
||||
systemService.sortMySystem(sortBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 系统平台详情 |
||||
* |
||||
* @param sysCode |
||||
* @return 系统平台详情 |
||||
*/ |
||||
@GetMapping("/getDetailBySysCode") |
||||
@PreAuthorize("@ss.hasPermission('system:getDetailBySysCode')") |
||||
public ResultModel<SystemDetailVO> getDetailBySysCode(String sysCode) { |
||||
return ResultModel.success(systemService.getDetailBySysCode(sysCode)); |
||||
} |
||||
|
||||
/** |
||||
* 平台管理-列表 |
||||
* |
||||
* @return 平台列表 |
||||
*/ |
||||
@GetMapping("/mgmtList") |
||||
@PreAuthorize("@ss.hasPermission('system:mgmtList')") |
||||
public ResultModel<?> list() { |
||||
return ResultModel.success(systemService.listMyMgmtSystem()); |
||||
} |
||||
|
||||
/** |
||||
* 新增-目标系统 |
||||
* |
||||
* @param saveBO |
||||
*/ |
||||
@PostMapping("/add") |
||||
@PreAuthorize("@ss.hasPermission('system:add')") |
||||
public ResultModel<?> addSystem(@Valid @RequestBody SystemSaveBO saveBO) { |
||||
saveBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
systemService.addSystem(saveBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改-目标系统 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/update") |
||||
@PreAuthorize("@ss.hasPermission('system:update')") |
||||
public ResultModel<?> updateSystem(@Valid @RequestBody SystemUpdateBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
systemService.updateSystem(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 添加或修改-秘钥 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/updateSecret") |
||||
@PreAuthorize("@ss.hasPermission('system:updateSecret')") |
||||
public ResultModel<?> updateSecret(@Valid @RequestBody SystemUpdateSecretBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
systemService.updateSystemSecret(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改系统图标 |
||||
*/ |
||||
@PostMapping("/uploadIcon/{sysId}") |
||||
public ResultModel<?> uploadIcon(@PathVariable("sysId") Long sysId, @RequestParam("iconFile") MultipartFile iconFile) { |
||||
String operateName = SecurityUtils.getOperateName(); |
||||
return ResultModel.success(fileUploadService.uploadSystemIcon(sysId, operateName, iconFile)); |
||||
} |
||||
|
||||
/** |
||||
* 删除-目标系统 |
||||
* |
||||
* @param sysId 系统ID |
||||
*/ |
||||
@DeleteMapping("/delete/{sysId}") |
||||
@PreAuthorize("@ss.hasPermission('system:delete')") |
||||
public ResultModel<?> deleteSystem(@PathVariable Long sysId) { |
||||
SystemDeleteBO deptDeleteBO = new SystemDeleteBO(); |
||||
deptDeleteBO.setSysId(sysId); |
||||
deptDeleteBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
systemService.deleteSystem(deptDeleteBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,84 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.model.result.ResultPageModel; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.model.bo.platform.SystemMgmtListPageBO; |
||||
import com.sso.model.bo.platform.SystemMgmtRemoveBO; |
||||
import com.sso.model.bo.platform.SystemMgmtSaveBO; |
||||
import com.sso.model.bo.platform.SystemMgmtStatusBO; |
||||
import com.sso.model.vo.platform.SystemMgmtPageVO; |
||||
import com.sso.service.admin.SystemMgmtService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 系统管理员相关操作 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/systemMgmt") |
||||
public class SystemMgmtController { |
||||
|
||||
@Autowired |
||||
private SystemMgmtService systemMgmtService; |
||||
|
||||
/** |
||||
* 系统管理员-用户分页列表 |
||||
* |
||||
* @param pageBO |
||||
* @return 用户 |
||||
*/ |
||||
@RequestMapping("/listPage") |
||||
@PreAuthorize("@ss.hasPermission('systemMgmt:updateSystemMgmt')") |
||||
public ResultPageModel<SystemMgmtPageVO> listPage(@Valid SystemMgmtListPageBO pageBO) { |
||||
return systemMgmtService.listPageSysMgmtUser(pageBO); |
||||
} |
||||
|
||||
/** |
||||
* 新增-管理员权限 |
||||
* |
||||
* @param addBO |
||||
*/ |
||||
@PostMapping("/add") |
||||
@PreAuthorize("@ss.hasPermission('systemMgmt:updateSystemMgmt')") |
||||
public ResultModel<?> addSystemMgmt(@Valid @RequestBody SystemMgmtSaveBO addBO) { |
||||
addBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
systemMgmtService.addSystemMgmt(addBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改-管理员权限账号状态 |
||||
* |
||||
* @param addBO |
||||
*/ |
||||
@PutMapping("/updateStatus") |
||||
@PreAuthorize("@ss.hasPermission('systemMgmt:updateSystemMgmt')") |
||||
public ResultModel<?> updateStatus(@Valid @RequestBody SystemMgmtStatusBO addBO) { |
||||
addBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
systemMgmtService.updateStatus(addBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 移除-用户管理员权限 |
||||
* |
||||
* @param removeBO |
||||
*/ |
||||
@RequestMapping("/remove") |
||||
@PreAuthorize("@ss.hasPermission('systemMgmt:updateSystemMgmt')") |
||||
public ResultModel<?> removeUserSystemMgmt(@Valid @RequestBody SystemMgmtRemoveBO removeBO) { |
||||
removeBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
systemMgmtService.removeUserSystemMgmt(removeBO); |
||||
return ResultModel.success(); |
||||
} |
||||
} |
@ -0,0 +1,196 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
|
||||
import com.sso.common.model.login.LoginUserVO; |
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.model.result.ResultPageModel; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.model.bo.user.*; |
||||
import com.sso.model.vo.user.UserDetailVO; |
||||
import com.sso.model.vo.user.UserOptionVO; |
||||
import com.sso.model.vo.user.UserPageVO; |
||||
import com.sso.model.vo.user.UserProfileVO; |
||||
import com.sso.service.admin.UserService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 用户管理接口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/user") |
||||
public class UserController { |
||||
|
||||
@Autowired |
||||
private UserService userService; |
||||
|
||||
/** |
||||
* 用户分页列表 |
||||
* |
||||
* @param pageBO |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermission('user:listPage')") |
||||
@RequestMapping("/listPage") |
||||
public ResultPageModel<UserPageVO> listPage(@Valid UserListPageBO pageBO) { |
||||
return userService.listPageUser(pageBO); |
||||
} |
||||
|
||||
/** |
||||
* 用户详情 |
||||
* |
||||
* @param detailBO 用户ID |
||||
*/ |
||||
@RequestMapping("/detail") |
||||
public ResultModel<UserDetailVO> getUserDetail(@Valid @RequestBody UserDetailBO detailBO) { |
||||
return ResultModel.success(userService.getUserDetail(detailBO)); |
||||
} |
||||
|
||||
/** |
||||
* 个人详情 |
||||
*/ |
||||
@RequestMapping("/profile") |
||||
public ResultModel<UserProfileVO> getUserProfile() { |
||||
LoginUserVO loginUser = SecurityUtils.getLoginUser(); |
||||
return ResultModel.success(userService.getUserProfile(loginUser.getUserId())); |
||||
} |
||||
|
||||
/** |
||||
* 根据手机号查询用户 |
||||
* |
||||
* @param phone 手机号 |
||||
*/ |
||||
@RequestMapping("/getUserByPhone/{phone}") |
||||
public ResultModel<UserOptionVO> getUserByPhone(@PathVariable String phone) { |
||||
return ResultModel.success(userService.getUserByPhone(phone)); |
||||
} |
||||
|
||||
/** |
||||
* 根据用户名查询用户 |
||||
* |
||||
* @param username 用户名 |
||||
*/ |
||||
@RequestMapping("/getUserByUserName/{username}") |
||||
public ResultModel<UserOptionVO> getByPhone(@PathVariable String username) { |
||||
return ResultModel.success(userService.getUserByUserName(username)); |
||||
} |
||||
|
||||
/** |
||||
* 根据-关键字搜索用户 |
||||
* |
||||
* @param keywords 关键字模糊 |
||||
*/ |
||||
@RequestMapping("/listUserOption") |
||||
public ResultModel<?> listUserOption(@RequestParam(required = false) String keywords) { |
||||
return ResultModel.success(userService.listUserOption(keywords)); |
||||
} |
||||
|
||||
/** |
||||
* 添加用户 |
||||
* |
||||
* @param addBO |
||||
*/ |
||||
@PostMapping("/add") |
||||
@PreAuthorize("@ss.hasPermission('user:add')") |
||||
public ResultModel<?> addUser(@Valid @RequestBody UserAddBO addBO) { |
||||
addBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.addUser(addBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 添加用户系统关系 |
||||
* |
||||
* @param addBO |
||||
*/ |
||||
@PostMapping("/addUserPlatformRelation") |
||||
public ResultModel<?> addUserPlatformRelation(@Valid @RequestBody UserPlatformAddBO addBO) { |
||||
addBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.addUserPlatformRelation(addBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改用户 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/update") |
||||
@PreAuthorize("@ss.hasPermission('user:update')") |
||||
public ResultModel<?> updateUser(@Valid @RequestBody UserUpdateBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.updateUser(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 移除用户与系统关系 |
||||
* |
||||
* @param removeBO |
||||
*/ |
||||
@RequestMapping("/removeUserSystem") |
||||
@PreAuthorize("@ss.hasPermission('user:removeUserSystem')") |
||||
public ResultModel<?> removeUserSystem(@Valid @RequestBody UserSystemRemoveBO removeBO) { |
||||
removeBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.removeUserSystem(removeBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改个人信息 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/updateProfile") |
||||
public ResultModel<?> updateProfile(@Valid @RequestBody UserUpdateProfileBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.updateProfile(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改个人密码 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/updatePwd") |
||||
public ResultModel<?> updatePwd(@Valid @RequestBody UserUpdatePwdBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.updatePwd(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 重置密码 |
||||
* |
||||
* @param restPwdBO |
||||
*/ |
||||
@PutMapping("/resetPwd") |
||||
@PreAuthorize("@ss.hasPermission('user:resetPwd')") |
||||
public ResultModel<?> resetPwd(@Valid @RequestBody UserRestPwdBO restPwdBO) { |
||||
restPwdBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.resetPwd(restPwdBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 删除用户 |
||||
* |
||||
* @param deleteBO |
||||
*/ |
||||
@RequestMapping("/delete") |
||||
@PreAuthorize("@ss.hasPermission('user:delete')") |
||||
public ResultModel<?> deleteUser(@Valid @RequestBody UserDeleteBO deleteBO) { |
||||
deleteBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.deleteUser(deleteBO); |
||||
return ResultModel.success(); |
||||
} |
||||
} |
@ -0,0 +1,75 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
|
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.model.result.ResultPageModel; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.model.bo.user.UserOnlineListPageBO; |
||||
import com.sso.model.vo.user.UserOnlinePageVO; |
||||
import com.sso.model.vo.user.UserOnlineSysVO; |
||||
import com.sso.service.admin.UserOnlineService; |
||||
import com.sso.service.base.SsoTokenService; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.PathVariable; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import javax.annotation.Resource; |
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 在线用户管理接口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
@RequestMapping("/user/online") |
||||
public class UserOnlineController { |
||||
|
||||
@Resource |
||||
private SsoTokenService ssoTokenService; |
||||
@Resource |
||||
private UserOnlineService userOnlineService; |
||||
|
||||
/** |
||||
* 在线用户分页列表 |
||||
* |
||||
* @param pageBO |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermission('user:online:listPage')") |
||||
@RequestMapping("/listPage") |
||||
public ResultPageModel<UserOnlinePageVO> listPage(@Valid UserOnlineListPageBO pageBO) { |
||||
return userOnlineService.listPageUser(pageBO); |
||||
} |
||||
|
||||
/** |
||||
* 查看用户已登录的子系统 |
||||
* |
||||
* @param userId 用户ID |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermission('user:online:listOnlineSys')") |
||||
@RequestMapping("/listOnlineSys/{userId}") |
||||
public ResultPageModel<UserOnlineSysVO> listOnlineSys(@PathVariable Long userId) { |
||||
return ResultPageModel.success(userOnlineService.listOnlineSys(userId)); |
||||
} |
||||
|
||||
/** |
||||
* 强退认证中心+所有已登录子系统 |
||||
* |
||||
* @param userId 用户ID |
||||
*/ |
||||
@PreAuthorize("@ss.hasPermission('user:online:retreatUser')") |
||||
@RequestMapping("/retreatUser/{userId}") |
||||
public ResultModel<UserOnlineSysVO> retreatUser(@PathVariable Long userId) { |
||||
ssoTokenService.logoOutUser(userId); |
||||
log.info("[ 强退用户 ] >> userId:{}, operateBy:{}", userId, SecurityUtils.getOperateName()); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,83 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.admin; |
||||
|
||||
|
||||
import com.sso.common.model.login.LoginUserVO; |
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.model.bo.user.UserUpdateProfileBO; |
||||
import com.sso.model.bo.user.UserUpdatePwdBO; |
||||
import com.sso.model.vo.user.UserProfileVO; |
||||
import com.sso.service.admin.FileUploadService; |
||||
import com.sso.service.admin.UserService; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.*; |
||||
import org.springframework.web.multipart.MultipartFile; |
||||
|
||||
import javax.annotation.Resource; |
||||
import javax.validation.Valid; |
||||
|
||||
/** |
||||
* 用户-个人详情接口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
@RequestMapping("/user/profile") |
||||
public class UserProfileController { |
||||
|
||||
@Autowired |
||||
private UserService userService; |
||||
|
||||
@Resource |
||||
private FileUploadService fileUploadService; |
||||
|
||||
/** |
||||
* 个人详情 |
||||
*/ |
||||
@RequestMapping("/detail") |
||||
public ResultModel<UserProfileVO> getUserProfile() { |
||||
LoginUserVO loginUser = SecurityUtils.getLoginUser(); |
||||
return ResultModel.success(userService.getUserProfile(loginUser.getUserId())); |
||||
} |
||||
|
||||
/** |
||||
* 修改个人信息 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/update") |
||||
public ResultModel<?> updateProfile(@Valid @RequestBody UserUpdateProfileBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.updateProfile(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 修改个人密码 |
||||
* |
||||
* @param updateBO |
||||
*/ |
||||
@PutMapping("/updatePwd") |
||||
public ResultModel<?> updatePwd(@Valid @RequestBody UserUpdatePwdBO updateBO) { |
||||
updateBO.setOperateBy(SecurityUtils.getOperateName()); |
||||
userService.updatePwd(updateBO); |
||||
return ResultModel.success(); |
||||
} |
||||
|
||||
/** |
||||
* 个人-头像上传 |
||||
*/ |
||||
@PostMapping("/avatar") |
||||
public ResultModel<?> avatar(@RequestParam("avatarFile") MultipartFile avatarFile) { |
||||
LoginUserVO loginUser = SecurityUtils.getLoginUser(); |
||||
String operateName = SecurityUtils.getOperateName(); |
||||
return ResultModel.success(fileUploadService.uploadUserAvatar(loginUser.getUserId(), operateName, avatarFile)); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,65 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.controller.getway; |
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.utils.SystemClock; |
||||
import com.sso.model.bo.getway.GetWayReqBO; |
||||
import com.sso.service.getway.ApiClient; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.apache.commons.lang3.RandomStringUtils; |
||||
import org.slf4j.MDC; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
import org.springframework.web.util.WebUtils; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.validation.Valid; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 统一网关 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
@RequestMapping("/open") |
||||
public class OpenApiController { |
||||
|
||||
@Autowired |
||||
private ApiClient apiClient; |
||||
|
||||
/** |
||||
* 统一网关入口 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@PostMapping("/gateway") |
||||
public ResultModel<?> gateway(@Valid GetWayReqBO reqBO, |
||||
HttpServletRequest request) throws Throwable { |
||||
Map<String, Object> mapParams = WebUtils.getParametersStartingWith(request, ""); |
||||
//日志ID (请求的唯一标识+5位随机数)
|
||||
MDC.put("logId", String.format("[%s-%s]", reqBO.getApiRequestId(), RandomStringUtils.randomAlphanumeric(5))); |
||||
|
||||
log.info("[ 统一认证开放接口 start ] >> method={} mapParams = {}", reqBO.getMethod(), mapParams); |
||||
long start = SystemClock.millisClock().now(); |
||||
|
||||
//校验请求时间戳间隔
|
||||
apiClient.checkTimestamp(reqBO, mapParams); |
||||
|
||||
//验签
|
||||
apiClient.checkSign(reqBO, mapParams); |
||||
|
||||
//请求接口
|
||||
ResultModel<?> result = apiClient.invoke(reqBO); |
||||
|
||||
log.info("[ 统一认证开放接口 end ] >> method={},result = {}, times = {} ms", reqBO.getMethod(), JSON.toJSONString(result), (SystemClock.millisClock().now() - start)); |
||||
|
||||
return result; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,147 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.security; |
||||
|
||||
import com.sso.security.filter.TokenAuthenticationFilter; |
||||
import com.sso.security.handle.AuthenticationEntryPointImpl; |
||||
import com.sso.security.handle.LogoutSuccessHandlerImpl; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.http.HttpMethod; |
||||
import org.springframework.security.authentication.AuthenticationManager; |
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; |
||||
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.core.userdetails.UserDetailsService; |
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
||||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; |
||||
import org.springframework.security.web.authentication.logout.LogoutFilter; |
||||
import org.springframework.web.filter.CorsFilter; |
||||
|
||||
import javax.annotation.Resource; |
||||
|
||||
/** |
||||
* spring security配置 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) |
||||
public class SecurityConfig extends WebSecurityConfigurerAdapter { |
||||
|
||||
/** |
||||
* 自定义用户认证逻辑 |
||||
*/ |
||||
@Resource |
||||
private UserDetailsService userDetailsService; |
||||
/** |
||||
* 认证失败处理类 |
||||
*/ |
||||
@Autowired |
||||
private AuthenticationEntryPointImpl unauthorizedHandler; |
||||
/** |
||||
* 退出处理类 |
||||
*/ |
||||
@Autowired |
||||
private LogoutSuccessHandlerImpl logoutSuccessHandler; |
||||
/** |
||||
* token认证过滤器 |
||||
*/ |
||||
@Autowired |
||||
private TokenAuthenticationFilter tokenAuthenticationFilter; |
||||
/** |
||||
* 跨域过滤器 |
||||
*/ |
||||
@Autowired |
||||
private CorsFilter corsFilter; |
||||
|
||||
/** |
||||
* 解决 无法直接注入 AuthenticationManager |
||||
* |
||||
* @return |
||||
* @throws Exception |
||||
*/ |
||||
@Bean |
||||
@Override |
||||
public AuthenticationManager authenticationManagerBean() throws Exception { |
||||
return super.authenticationManagerBean(); |
||||
} |
||||
|
||||
/** |
||||
* Security 配置 |
||||
* 规则如下: |
||||
* anyRequest -> 匹配所有请求路径 |
||||
* access -> SpringEl表达式结果为true时可以访问 |
||||
* anonymous -> 匿名可以访问 |
||||
* denyAll -> 用户不能访问 |
||||
* fullyAuthenticated -> 用户完全认证可以访问(非remember-me下自动登录) |
||||
* hasAnyAuthority -> 如果有参数,参数表示权限,则其中任何一个权限可以访问 |
||||
* hasAnyRole -> 如果有参数,参数表示角色,则其中任何一个角色可以访问 |
||||
* hasAuthority -> 如果有参数,参数表示权限,则其权限可以访问 |
||||
* hasIpAddress -> 如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问 |
||||
* hasRole -> 如果有参数,参数表示角色,则其角色可以访问 |
||||
* permitAll -> 用户可以任意访问 |
||||
* rememberMe -> 允许通过remember-me登录的用户访问 |
||||
* authenticated -> 用户登录后可访问 |
||||
*/ |
||||
@Override |
||||
protected void configure(HttpSecurity httpSecurity) throws Exception { |
||||
httpSecurity |
||||
// CSRF禁用,因为不使用session
|
||||
.csrf().disable() |
||||
// 认证失败处理类
|
||||
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and() |
||||
// 基于token,所以不需要session
|
||||
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() |
||||
// 过滤请求
|
||||
.authorizeRequests() |
||||
// 对于登录login 验证码captchaImage 允许匿名访问
|
||||
.antMatchers("/**/login", "/**/captchaImage").anonymous() |
||||
.antMatchers( |
||||
HttpMethod.GET, |
||||
"/*.html", |
||||
"/**/*.html", |
||||
"/**/*.css", |
||||
"/**/*.js", |
||||
"/**/*.ico" |
||||
).permitAll() |
||||
.antMatchers("/profile/**").anonymous() |
||||
.antMatchers("/**/webjars/**").anonymous() |
||||
.antMatchers("/**/api-docs").anonymous() |
||||
.antMatchers("/**/druid/**").anonymous() |
||||
//开放接口不拦截-内部有验签
|
||||
.antMatchers("/open/gateway").anonymous() |
||||
// 除上面外的所有请求全部需要鉴权认证
|
||||
.anyRequest().authenticated() |
||||
.and() |
||||
.headers().frameOptions().disable(); |
||||
// 退出登录处理器
|
||||
httpSecurity.logout().logoutUrl("/**/logout").logoutSuccessHandler(logoutSuccessHandler); |
||||
// 添加账号校验 filter
|
||||
httpSecurity.addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); |
||||
// 添加CORS filter
|
||||
httpSecurity.addFilterBefore(corsFilter, TokenAuthenticationFilter.class); |
||||
// 登出
|
||||
httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 强散列哈希加密实现 |
||||
*/ |
||||
@Bean |
||||
public BCryptPasswordEncoder bCryptPasswordEncoder() { |
||||
return new BCryptPasswordEncoder(); |
||||
} |
||||
|
||||
/** |
||||
* 身份-认证接口 |
||||
*/ |
||||
@Override |
||||
protected void configure(AuthenticationManagerBuilder auth) throws Exception { |
||||
auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder()); |
||||
} |
||||
} |
@ -0,0 +1,47 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.security.filter; |
||||
|
||||
import com.sso.common.model.login.LoginResultVO; |
||||
import com.sso.common.utils.ObjectUtils; |
||||
import com.sso.common.utils.SecurityUtils; |
||||
import com.sso.service.base.SsoTokenService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; |
||||
import org.springframework.stereotype.Component; |
||||
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; |
||||
|
||||
/** |
||||
* token过滤器 验证token有效性 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Component |
||||
public class TokenAuthenticationFilter extends OncePerRequestFilter { |
||||
|
||||
@Autowired |
||||
private SsoTokenService ssoTokenService; |
||||
|
||||
@Override |
||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) |
||||
throws ServletException, IOException { |
||||
LoginResultVO loginResultVO = ssoTokenService.getLoginUser(request); |
||||
if (ObjectUtils.isNotNull(loginResultVO) && ObjectUtils.isNull(SecurityUtils.getAuthentication())) { |
||||
ssoTokenService.renewTokenByAdminWeb(loginResultVO); |
||||
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginResultVO, null, loginResultVO.getAuthorities()); |
||||
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); |
||||
SecurityContextHolder.getContext().setAuthentication(authenticationToken); |
||||
} |
||||
chain.doFilter(request, response); |
||||
} |
||||
} |
@ -0,0 +1,38 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.security.handle; |
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import com.sso.common.enums.exception.SysResStatusEnum; |
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.utils.ServletUtils; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.security.core.AuthenticationException; |
||||
import org.springframework.security.web.AuthenticationEntryPoint; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 认证失败处理类 返回未授权 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable { |
||||
|
||||
private static final long serialVersionUID = -6355792444057575911L; |
||||
|
||||
@Override |
||||
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) { |
||||
int code = SysResStatusEnum.UNAUTHORIZED.getCode(); |
||||
String msg = String.format("请求访问:%s,认证失败,无法访问系统资源", request.getRequestURI()); |
||||
log.error("请求访问:{},认证失败,无法访问系统资源", request.getRequestURI()); |
||||
ServletUtils.renderString(response, JSON.toJSONString(ResultModel.error(code, msg))); |
||||
} |
||||
} |
@ -0,0 +1,45 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.security.handle; |
||||
|
||||
import com.alibaba.fastjson.JSON; |
||||
import com.sso.common.enums.exception.SysResStatusEnum; |
||||
import com.sso.common.model.login.LoginResultVO; |
||||
import com.sso.common.model.result.ResultModel; |
||||
import com.sso.common.utils.ServletUtils; |
||||
import com.sso.service.base.SsoTokenService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.security.core.Authentication; |
||||
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; |
||||
import org.springframework.util.ObjectUtils; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpServletResponse; |
||||
|
||||
/** |
||||
* 自定义退出处理类 返回成功 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Configuration |
||||
public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler { |
||||
|
||||
@Autowired |
||||
private SsoTokenService ssoTokenService; |
||||
|
||||
/** |
||||
* 用户退出处理 |
||||
*/ |
||||
@Override |
||||
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { |
||||
LoginResultVO loginResultVO = ssoTokenService.getLoginUser(request); |
||||
if (!ObjectUtils.isEmpty(loginResultVO)) { |
||||
//用户退出处理
|
||||
ssoTokenService.logoOutUser(loginResultVO); |
||||
} |
||||
ServletUtils.renderString(response, JSON.toJSONString(ResultModel.error(SysResStatusEnum.SUCCESS.getCode(), "退出成功"))); |
||||
} |
||||
} |
@ -0,0 +1,2 @@ |
||||
|
||||
spring.profiles.active=dev |
@ -0,0 +1,23 @@ |
||||
${AnsiColor.BRIGHT_RED} |
||||
---------------------------------------- |
||||
_______ _______ _______ |
||||
( ____ \( ____ \( ___ ) |
||||
| ( \/| ( \/| ( ) | |
||||
| (_____ | (_____ | | | | |
||||
(_____ )(_____ )| | | | |
||||
) | ) || | | | |
||||
/\____) |/\____) || (___) | |
||||
\_______)\_______)(_______) |
||||
|
||||
---------------------------------------- |
||||
${AnsiColor.GREEN} |
||||
Application Env: ${spring.profiles.active} |
||||
Application Port: ${server.port} |
||||
Root Log Level: ${logging.level.root} |
||||
Project Log Level: ${logging.level.com.sso} |
||||
Spring Boot Version: ${spring-boot.version} |
||||
${AnsiColor.BRIGHT_RED} |
||||
温馨提示: |
||||
编码千万行,注释第一行。 |
||||
代码不规范,复盘两行泪。 |
||||
${AnsiColor.GREEN} |
@ -0,0 +1,104 @@ |
||||
server.port=9901 |
||||
|
||||
#日志配置 |
||||
logging.level.root=info |
||||
logging.level.com.sso=info |
||||
logging.level.org.springframework=warn |
||||
#日志文件路径 |
||||
log.root.path=${user.home}/logs/sso-auth-center |
||||
|
||||
# jackson时间格式化(解决时区问题) |
||||
spring.jackson.time-zone=GMT+8 |
||||
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss |
||||
|
||||
|
||||
#redis 基础配置 |
||||
# Redis数据库索引(默认为0) |
||||
spring.redis.database=0 |
||||
# Redis服务器地址 |
||||
spring.redis.host=localhost |
||||
# Redis服务器连接密码(默认为空) |
||||
spring.redis.password=123456 |
||||
# Redis服务器连接端口 |
||||
spring.redis.port=6379 |
||||
# 连接超时时间(毫秒) |
||||
spring.redis.timeout=0 |
||||
|
||||
#redis 连接池配置 |
||||
#池中最大链接数 |
||||
spring.redis.pool-config.max-total=256 |
||||
# 连接池中的最大空闲连接 |
||||
spring.redis.pool-config.max-idle=128 |
||||
# 连接池中的最小空闲连接 |
||||
spring.redis.pool-config.min-idle=8 |
||||
# 连接池最大阻塞等待时间(使用负值表示没有限制) |
||||
spring.redis.pool-config.max-wait-millis=1000 |
||||
# 调用者获取链接时,是否检测当前链接有效性 |
||||
spring.redis.pool-config.test-on-borrow=false |
||||
# 向链接池中归还链接时,是否检测链接有效性 |
||||
spring.redis.pool-config.test-on-return=false |
||||
# 调用者获取链接时,是否检测空闲超时, 如果超时,则会被移除- |
||||
spring.redis.pool-config.test-while-idle=true |
||||
# 空闲链接检测线程一次运行检测多少条链接 |
||||
spring.redis.pool-config.num-tests-per-eviction-run=8 |
||||
#空闲链接检测线程检测周期。如果为负值,表示不运行检测线程。(单位:毫秒,默认为-1) |
||||
spring.redis.pool-config.time-between-eviction-runs-millis=60000 |
||||
#配置一个连接在池中最小生存的时间,单位是毫秒 |
||||
spring.redis.pool-config.min-evictable-idle-time-millis=300000 |
||||
|
||||
|
||||
# 管理后台系统模块数据源 |
||||
spring.datasource.admin.url=jdbc:mysql://localhost:3306/my-sso?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true |
||||
spring.datasource.admin.username=root |
||||
spring.datasource.admin.password=123456 |
||||
spring.datasource.admin.driver-class-name=com.mysql.cj.jdbc.Driver |
||||
spring.datasource.admin.initial-size=5 |
||||
spring.datasource.admin.max-active=20 |
||||
spring.datasource.admin.max-wait=60000 |
||||
spring.datasource.admin.min-evictable-idle-time-millis=30000 |
||||
spring.datasource.admin.min-idle=5 |
||||
spring.datasource.admin.test-on-borrow=false |
||||
spring.datasource.admin.test-on-return=false |
||||
spring.datasource.admin.test-while-idle=true |
||||
spring.datasource.admin.time-between-eviction-runs-millis=60000 |
||||
spring.datasource.admin.validation-query=SELECT 1 FROM DUAL |
||||
|
||||
# 验证码类型: math-数组计算;char-字符验证 |
||||
sys.config.captchaType=math |
||||
# token配置 |
||||
# 令牌自定义标识 |
||||
sys.config.tokenHeader=Authorization |
||||
# 令牌密钥 |
||||
sys.config.tokenSecret=abcdefghijklmnopqrstuvwxyz |
||||
#认证中心系统编码 |
||||
sys.config.authSsoSysCode=auth-test |
||||
# 超级管理员用户(用户ID|用户名) |
||||
sys.config.supperAdminUser=1000|admin |
||||
|
||||
# 令牌有效期(默认180分钟) |
||||
sys.config.tokenExpireTime=180 |
||||
#统一认证中心登录地址 |
||||
sys.config.ssoLoginUrl=http://www.myauth.com:9528/login |
||||
|
||||
#文件上传目录 |
||||
# 文件路径 示例( Windows配置D:/xqiang/uploadPath,Linux配置 /home/xqiang/uploadPath) |
||||
sys.config.fileProfile=/Users/mengqiang/files/upload |
||||
|
||||
|
||||
|
||||
# 开发环境配置 |
||||
# 应用的访问路径 |
||||
server.servlet.context-path=/api/ |
||||
# tomcat的URI编码 |
||||
server.tomcat.uri-encoding=UTF-8 |
||||
# tomcat最大线程数,默认为200 |
||||
server.tomcat.max-threads=800 |
||||
# Tomcat启动初始化的线程数,默认值25 |
||||
server.tomcat.min-spare-threads=30 |
||||
|
||||
# Spring配置 |
||||
# 文件上传 |
||||
# 单个文件大小 |
||||
spring.servlet.multipart.max-file-size=10MB |
||||
# 设置总上传的文件大小 |
||||
spring.servlet.multipart.max-request-size=20MB |
@ -0,0 +1,55 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<configuration> |
||||
<!-- 日志存放路径 --> |
||||
<springProperty scope="context" name="log.path" source="log.root.path"/> |
||||
<springProperty scope="context" name="log.level" source="logging.level.com.sso"/> |
||||
<!-- 日志输出格式 --> |
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符--> |
||||
<property name="log.pattern" |
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %mdc{logId} [%thread] %logger{0} [%method:%line] - %msg%n"/> |
||||
<!-- 控制台输出 --> |
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> |
||||
<encoder> |
||||
<pattern>${log.pattern}</pattern> |
||||
</encoder> |
||||
</appender> |
||||
|
||||
<!-- 系统日志输出 --> |
||||
<appender name="system_log" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
<file>${log.path}/sso-auth-center.log</file> |
||||
<!-- 循环政策:基于时间创建日志文件 --> |
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||
<!-- 日志文件名格式 --> |
||||
<fileNamePattern>${log.path}/sso-auth-center.log.%d{yyyy-MM-dd}</fileNamePattern> |
||||
<!-- 日志最大的历史 40天 --> |
||||
<maxHistory>40</maxHistory> |
||||
</rollingPolicy> |
||||
<encoder> |
||||
<pattern>${log.pattern}</pattern> |
||||
</encoder> |
||||
<!--日志文件最大的大小--> |
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> |
||||
<MaxFileSize>20MB</MaxFileSize> |
||||
</triggeringPolicy> |
||||
</appender> |
||||
|
||||
<!-- |
||||
<!– 系统模块日志级别控制 trace<debug<info<warn<error –> |
||||
<logger name="com.fast.admin" level="info"/> |
||||
<!– Spring日志级别控制 –> |
||||
<logger name="org.springframework" level="warn"/> |
||||
--> |
||||
|
||||
<root level="${log.level}"> |
||||
<appender-ref ref="console"/> |
||||
</root> |
||||
|
||||
<!-- Spring日志级别控制 --> |
||||
<logger name="org.springframework" level="warn"/> |
||||
|
||||
<!--系统操作日志--> |
||||
<root level="${log.level}"> |
||||
<appender-ref ref="system_log"/> |
||||
</root> |
||||
|
||||
</configuration> |
@ -0,0 +1,34 @@ |
||||
<?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> |
||||
<groupId>com.sso</groupId> |
||||
<artifactId>sso-auth-center-service</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
|
||||
<artifactId>sso-business</artifactId> |
||||
|
||||
<description> |
||||
system系统模块 |
||||
</description> |
||||
|
||||
<dependencies> |
||||
|
||||
<!-- 通用模块 --> |
||||
<dependency> |
||||
<groupId>com.sso</groupId> |
||||
<artifactId>sso-common</artifactId> |
||||
</dependency> |
||||
|
||||
<!-- 核心配置模块 --> |
||||
<dependency> |
||||
<groupId>com.sso</groupId> |
||||
<artifactId>sso-framework</artifactId> |
||||
</dependency> |
||||
|
||||
</dependencies> |
||||
|
||||
</project> |
@ -0,0 +1,24 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.dto; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 角色统计 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class RoleCountDTO implements Serializable { |
||||
private static final long serialVersionUID = -9112752803214125220L; |
||||
|
||||
private Long roleId; |
||||
|
||||
private Integer count; |
||||
|
||||
} |
@ -0,0 +1,109 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.dto; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 登录日志实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-23 10:45:22 |
||||
*/ |
||||
@Data |
||||
public class SsoOnlineUserDTO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -8922037654548424632L; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String username; |
||||
|
||||
/** |
||||
* 手机号码 |
||||
*/ |
||||
private String phone; |
||||
|
||||
/** |
||||
* 密码 |
||||
*/ |
||||
private String password; |
||||
|
||||
/** |
||||
* 用户昵称 |
||||
*/ |
||||
private String nickName; |
||||
|
||||
/** |
||||
* 真实姓名 |
||||
*/ |
||||
private String realName; |
||||
|
||||
/** |
||||
* 请求标识 |
||||
*/ |
||||
private String requestId; |
||||
|
||||
/** |
||||
* 来源IP |
||||
*/ |
||||
private String sourceIp; |
||||
|
||||
/** |
||||
* 来源地址 |
||||
*/ |
||||
private String sourceAddress; |
||||
|
||||
/** |
||||
* 浏览器 |
||||
*/ |
||||
private String browserName; |
||||
|
||||
/** |
||||
* 操作系统 |
||||
*/ |
||||
private String operateSystem; |
||||
|
||||
/** |
||||
* 登录状态 0-成功;1-失败 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 登录时间戳 |
||||
*/ |
||||
private Long loginTime; |
||||
|
||||
/** |
||||
* 主动退出时间戳 |
||||
*/ |
||||
private Long loginOutTime; |
||||
|
||||
/** |
||||
* 失效时间戳 |
||||
*/ |
||||
private Long expireTime; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,36 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.dto; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 部门实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SsoUserDeptDTO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -2778006438843424841L; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 部门ID |
||||
*/ |
||||
private Long deptId; |
||||
|
||||
/** |
||||
* 部门名称 |
||||
*/ |
||||
private String deptName; |
||||
|
||||
} |
@ -0,0 +1,91 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.dto; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 用户-系统管理 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-02 17:20:41 |
||||
*/ |
||||
@Data |
||||
public class SsoUserMgmtDTO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -7065547317808718215L; |
||||
|
||||
|
||||
private Long id; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String username; |
||||
|
||||
/** |
||||
* 用户昵称 |
||||
*/ |
||||
private String nickName; |
||||
|
||||
/** |
||||
* 真实姓名 |
||||
*/ |
||||
private String realName; |
||||
|
||||
/** |
||||
* 用户性别 0-男;1-女;2-未知 |
||||
*/ |
||||
private Integer sex; |
||||
|
||||
/** |
||||
* 手机号码 |
||||
*/ |
||||
private String phone; |
||||
|
||||
/** |
||||
* 邮箱 |
||||
*/ |
||||
private String email; |
||||
|
||||
/** |
||||
* 用户状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer userStatus; |
||||
|
||||
/** |
||||
* 关系状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer relationStatus; |
||||
|
||||
/** |
||||
* 创建者 |
||||
*/ |
||||
private String createBy; |
||||
|
||||
/** |
||||
* 最后修改者 |
||||
*/ |
||||
private String updateBy; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
} |
@ -0,0 +1,36 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.dto; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 用户角色 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2020-12-27 18:07:20 |
||||
*/ |
||||
@Data |
||||
public class SsoUserRoleDTO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 219537171519448483L; |
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 角色id多个逗号分隔 |
||||
*/ |
||||
private String roleIds; |
||||
|
||||
/** |
||||
* 角色名称多个逗号分隔 |
||||
*/ |
||||
private String roleNames; |
||||
|
||||
} |
@ -0,0 +1,84 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 部门实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2020-12-27 18:07:20 |
||||
*/ |
||||
@Data |
||||
public class SsoDept implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 4501341919143820458L; |
||||
|
||||
/** |
||||
* 部门ID |
||||
*/ |
||||
private Long deptId; |
||||
|
||||
/** |
||||
* 部门名称 |
||||
*/ |
||||
private String deptName; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 父部门ID |
||||
*/ |
||||
private Long deptParentId; |
||||
|
||||
/** |
||||
* 顺序 |
||||
*/ |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
private String remarks; |
||||
|
||||
/** |
||||
* 创建者 |
||||
*/ |
||||
private String createBy; |
||||
|
||||
/** |
||||
* 最后修改者 |
||||
*/ |
||||
private String updateBy; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,34 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
|
||||
/** |
||||
* 部门祖先/后代关系实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2020-12-27 18:07:20 |
||||
*/ |
||||
@Data |
||||
public class SsoDeptTreePath implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -8794488706755626248L; |
||||
|
||||
/** |
||||
* 祖先 |
||||
*/ |
||||
private Long ancestor; |
||||
|
||||
/** |
||||
* 后代 |
||||
*/ |
||||
private Long descendant; |
||||
|
||||
|
||||
} |
@ -0,0 +1,84 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 登录日志实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-23 10:45:22 |
||||
*/ |
||||
@Data |
||||
public class SsoLoginLog implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -7814417622883518147L; |
||||
|
||||
/** |
||||
* ID |
||||
*/ |
||||
private Long id; |
||||
|
||||
/** |
||||
* 请求标识 |
||||
*/ |
||||
private String requestId; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String username; |
||||
|
||||
/** |
||||
* 来源IP |
||||
*/ |
||||
private String sourceIp; |
||||
|
||||
/** |
||||
* 来源地址 |
||||
*/ |
||||
private String sourceAddress; |
||||
|
||||
/** |
||||
* 浏览器 |
||||
*/ |
||||
private String browserName; |
||||
|
||||
/** |
||||
* 操作系统 |
||||
*/ |
||||
private String operateSystem; |
||||
|
||||
/** |
||||
* 登录状态 0-成功;1-失败 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 登录时间戳 |
||||
*/ |
||||
private Long loginTime; |
||||
|
||||
/** |
||||
* 返回结果 |
||||
*/ |
||||
private String operateMsg; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,119 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 菜单权限实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-08 18:01:08 |
||||
*/ |
||||
@Data |
||||
public class SsoMenu implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -1115470419419879842L; |
||||
|
||||
/** |
||||
* 菜单ID |
||||
*/ |
||||
private Long menuId; |
||||
|
||||
/** |
||||
* 菜单名称 |
||||
*/ |
||||
private String menuName; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 菜单类型(M目录 C菜单 F按钮) |
||||
*/ |
||||
private String menuType; |
||||
|
||||
/** |
||||
* 父菜单ID |
||||
*/ |
||||
private Long menuParentId; |
||||
|
||||
/** |
||||
* 显示顺序 |
||||
*/ |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 菜单路由地址 |
||||
*/ |
||||
private String path; |
||||
|
||||
/** |
||||
* 菜单图标 |
||||
*/ |
||||
private String icon; |
||||
|
||||
/** |
||||
* 组件路径 |
||||
*/ |
||||
private String component; |
||||
|
||||
/** |
||||
* 权限标识,多个|分隔 |
||||
*/ |
||||
private String permissions; |
||||
|
||||
/** |
||||
* 使用类型 0-授权访问;1-开放访问; |
||||
*/ |
||||
private Integer useType; |
||||
|
||||
/** |
||||
* 是否显示 0-显示;1-隐藏 |
||||
*/ |
||||
private Integer visible; |
||||
|
||||
/** |
||||
* 菜单状态 0-正常;1停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
private String remarks; |
||||
|
||||
/** |
||||
* 创建者 |
||||
*/ |
||||
private String createBy; |
||||
|
||||
/** |
||||
* 最后修改者 |
||||
*/ |
||||
private String updateBy; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,87 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 在线用户实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SsoOnlineUser implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 4271347681726609352L; |
||||
|
||||
/** |
||||
* ID |
||||
*/ |
||||
private Long id; |
||||
|
||||
/** |
||||
* 请求标识 |
||||
*/ |
||||
private String requestId; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 来源IP |
||||
*/ |
||||
private String sourceIp; |
||||
|
||||
/** |
||||
* 来源地址 |
||||
*/ |
||||
private String sourceAddress; |
||||
|
||||
/** |
||||
* 浏览器 |
||||
*/ |
||||
private String browserName; |
||||
|
||||
/** |
||||
* 操作系统 |
||||
*/ |
||||
private String operateSystem; |
||||
|
||||
/** |
||||
* 登录时间戳 |
||||
*/ |
||||
private Long loginTime; |
||||
|
||||
/** |
||||
* 主动退出时间戳 |
||||
*/ |
||||
private Long loginOutTime; |
||||
|
||||
/** |
||||
* 失效时间戳 |
||||
*/ |
||||
private Long expireTime; |
||||
|
||||
/** |
||||
* 返回结果 |
||||
*/ |
||||
private String operateMsg; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
} |
@ -0,0 +1,84 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 角色信息实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-07 15:56:40 |
||||
*/ |
||||
@Data |
||||
public class SsoRole implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -9193130704066823912L; |
||||
|
||||
/** |
||||
* 角色ID |
||||
*/ |
||||
private Long roleId; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 角色名称 |
||||
*/ |
||||
private String roleName; |
||||
|
||||
/** |
||||
* 角色标识key |
||||
*/ |
||||
private String roleKey; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 显示顺序 |
||||
*/ |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
private String remarks; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
/** |
||||
* 创建者 |
||||
*/ |
||||
private String createBy; |
||||
|
||||
/** |
||||
* 最后修改者 |
||||
*/ |
||||
private String updateBy; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,50 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
|
||||
/** |
||||
* 角色和菜单关系实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-08 18:01:08 |
||||
*/ |
||||
@Data |
||||
public class SsoRoleMenu implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -8633658293267783613L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 角色ID |
||||
*/ |
||||
private Long roleId; |
||||
|
||||
/** |
||||
* 菜单ID |
||||
*/ |
||||
private Long menuId; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,110 @@ |
||||
/** |
||||
* haifenbb.com |
||||
* Copyright (C) 2019-2020 All Rights Reserved. |
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
|
||||
/** |
||||
* 目标系统实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2020-12-27 10:59:43 |
||||
*/ |
||||
@Data |
||||
public class SsoSystem implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -4911126816387035L; |
||||
|
||||
/** |
||||
* 系统平台ID |
||||
*/ |
||||
private Long sysId; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 系统名称 |
||||
*/ |
||||
private String sysName; |
||||
|
||||
/** |
||||
* 系统权限编码 |
||||
*/ |
||||
private String sysGrantCode; |
||||
|
||||
/** |
||||
* 系统链接 |
||||
*/ |
||||
private String sysUrl; |
||||
|
||||
/** |
||||
* 系统图标 |
||||
*/ |
||||
private String sysIcon; |
||||
|
||||
/** |
||||
* 系统环境 0-测试 1-beta 2-生产 |
||||
*/ |
||||
private Integer sysEnv; |
||||
|
||||
/** |
||||
* 排序,数字越小排在越前面 |
||||
*/ |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 签名类型 0-无;1-MD5;2-RSA; |
||||
*/ |
||||
private Integer signType; |
||||
|
||||
/** |
||||
* 网关验签公钥 |
||||
*/ |
||||
private String publicKey; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
private String remarks; |
||||
|
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
/** |
||||
* 创建者 |
||||
*/ |
||||
private String createBy; |
||||
|
||||
/** |
||||
* 最后修改者 |
||||
*/ |
||||
private String updateBy; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private String createTime; |
||||
|
||||
/** |
||||
* 更新时间 |
||||
*/ |
||||
private String updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,69 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 平台管理员关系实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-16 10:22:57 |
||||
*/ |
||||
@Data |
||||
public class SsoSystemManager implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 8221382605127103730L; |
||||
|
||||
/** |
||||
* ID |
||||
*/ |
||||
private Long id; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 状态 0-启用;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
/** |
||||
* 创建者 |
||||
*/ |
||||
private String createBy; |
||||
|
||||
/** |
||||
* 最后修改者 |
||||
*/ |
||||
private String updateBy; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,113 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 用户实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-02 17:20:41 |
||||
*/ |
||||
@Data |
||||
public class SsoUser implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -3634941666611687795L; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String username; |
||||
|
||||
/** |
||||
* 密码 |
||||
*/ |
||||
private String password; |
||||
|
||||
/** |
||||
* 用户昵称 |
||||
*/ |
||||
private String nickName; |
||||
|
||||
/** |
||||
* 真实姓名 |
||||
*/ |
||||
private String realName; |
||||
|
||||
/** |
||||
* 用户性别 0-男;1-女;2-未知 |
||||
*/ |
||||
private Integer sex; |
||||
|
||||
/** |
||||
* 手机号码 |
||||
*/ |
||||
private String phone; |
||||
|
||||
/** |
||||
* 邮箱 |
||||
*/ |
||||
private String email; |
||||
|
||||
/** |
||||
* 头像 |
||||
*/ |
||||
private String avatar; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 最后登录IP |
||||
*/ |
||||
private String loginIp; |
||||
|
||||
/** |
||||
* 最后登录时间 |
||||
*/ |
||||
private Date lastLoginTime; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
private String remarks; |
||||
|
||||
/** |
||||
* 创建者 |
||||
*/ |
||||
private String createBy; |
||||
|
||||
/** |
||||
* 最后修改者 |
||||
*/ |
||||
private String updateBy; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
} |
@ -0,0 +1,49 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 用户部门关系实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-02 17:20:41 |
||||
*/ |
||||
@Data |
||||
public class SsoUserDept implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -8391256763118936557L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 部门ID |
||||
*/ |
||||
private Long deptId; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,49 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
|
||||
/** |
||||
* 用户和角色关联实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-08 15:41:48 |
||||
*/ |
||||
@Data |
||||
public class SsoUserRole implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -3171194295603566556L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 角色ID |
||||
*/ |
||||
private Long roleId; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
} |
@ -0,0 +1,69 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* 用户与目标系统关系实体类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-10 22:22:34 |
||||
*/ |
||||
@Data |
||||
public class SsoUserSystem implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -6154959745933571133L; |
||||
|
||||
/** |
||||
* 自增ID |
||||
*/ |
||||
private Long id; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 显示顺序 |
||||
*/ |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
/** |
||||
* 创建者 |
||||
*/ |
||||
private String createBy; |
||||
|
||||
/** |
||||
* 最后修改者 |
||||
*/ |
||||
private String updateBy; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
/** |
||||
* 修改时间 |
||||
*/ |
||||
private Date updateTime; |
||||
|
||||
|
||||
} |
@ -0,0 +1,113 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
|
||||
import com.sso.dao.dto.SsoUserDeptDTO; |
||||
import com.sso.dao.entity.SsoDept; |
||||
import com.sso.dao.query.SsoDeptQuery; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 部门基础mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2020-12-27 18:07:20 |
||||
*/ |
||||
public interface SsoDeptMapper { |
||||
|
||||
/** |
||||
* 根据 部门ID 查询 |
||||
* |
||||
* @param deptId 部门ID |
||||
* @return 部门实体 |
||||
*/ |
||||
SsoDept getByDeptId(Long deptId); |
||||
|
||||
/** |
||||
* 根据 系统编码与用户ID 查询 |
||||
* |
||||
* @param sysCode 用户ID |
||||
* @param userIdList 用户ID |
||||
* @return 部门实体 |
||||
*/ |
||||
List<SsoUserDeptDTO> getDeptBySysCodeAndUserIdList(@Param("sysCode") String sysCode, @Param("userIdList") List<Long> userIdList); |
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoDept 部门实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoDept ssoDept); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoDept 部门实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoDept ssoDept); |
||||
|
||||
/** |
||||
* 根据自增主键编辑 |
||||
* |
||||
* @param ssoDept 部门实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByDeptId(SsoDept ssoDept); |
||||
|
||||
/** |
||||
* 更新所有父级的状态 |
||||
* |
||||
* @param ssoDept |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateAllParentStatus(SsoDept ssoDept); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑 |
||||
* |
||||
* @param ssoDept 部门实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByDeptIdSelective(SsoDept ssoDept); |
||||
|
||||
/** |
||||
* 根据条件-查询 |
||||
* |
||||
* @param query 过滤条件 |
||||
* @return 统计数 |
||||
*/ |
||||
List<SsoDept> listByCondition(SsoDeptQuery query); |
||||
|
||||
/** |
||||
* 根据条件统计 |
||||
* |
||||
* @param query 过滤条件 |
||||
* @return 统计数 |
||||
*/ |
||||
int countByCondition(SsoDeptQuery query); |
||||
|
||||
/** |
||||
* 根据父部门ID与状态统计 |
||||
* |
||||
* @param deptParentId |
||||
* @param status |
||||
* @return 统计数 |
||||
*/ |
||||
int countByDeptParentIdAndStatus(@Param("deptParentId") Long deptParentId, @Param("status") Integer status); |
||||
|
||||
/** |
||||
* 根据 系统编码 统计 |
||||
* |
||||
* @param syCode |
||||
* @return 统计数 |
||||
*/ |
||||
int countBySysCode(@Param("sysCode") String syCode); |
||||
|
||||
} |
@ -0,0 +1,61 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
import com.sso.dao.entity.SsoDept; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 部门祖先/后代关系 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2020-12-27 18:07:20 |
||||
*/ |
||||
public interface SsoDeptTreePathMapper { |
||||
|
||||
/** |
||||
* 插入新节点 |
||||
* |
||||
* @param deptId |
||||
* @param deptParentId |
||||
* @return 行数 |
||||
*/ |
||||
int insertBatch(@Param("deptId") Long deptId, @Param("deptParentId") Long deptParentId); |
||||
|
||||
/** |
||||
* 删除叶子节点 |
||||
* |
||||
* @param deptId |
||||
* @return 行数 |
||||
*/ |
||||
int deleteLeaf(Long deptId); |
||||
|
||||
/** |
||||
* 删除子树 |
||||
* |
||||
* @param deptId |
||||
* @return 行数 |
||||
*/ |
||||
int deleteChildTree(Long deptId); |
||||
|
||||
/** |
||||
* 查询所有祖先 |
||||
* |
||||
* @param deptId |
||||
* @return 部门列表 |
||||
*/ |
||||
List<SsoDept> getAllParent(Long deptId); |
||||
|
||||
/** |
||||
* 查询所有后代 |
||||
* |
||||
* @param deptId |
||||
* @return 部门列表 |
||||
*/ |
||||
List<SsoDept> getAllChild(Long deptId); |
||||
|
||||
} |
@ -0,0 +1,91 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
import com.sso.dao.entity.SsoLoginLog; |
||||
import com.sso.dao.query.LoginLogQuery; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 登录日志基础mapper接口 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-23 10:45:22 |
||||
*/ |
||||
public interface SsoLoginLogMapper { |
||||
|
||||
/** |
||||
* 根据 requestId 查询接口 |
||||
* |
||||
* @param requestId 自增主键 |
||||
* @return 登录日志实体 |
||||
* @date 20-01-19 10:45:22 |
||||
*/ |
||||
SsoLoginLog getByRequestId(String requestId); |
||||
|
||||
/** |
||||
* 统计 |
||||
* |
||||
* @param query |
||||
* @return 统计值 |
||||
*/ |
||||
int countByCondition(LoginLogQuery query); |
||||
|
||||
/** |
||||
* 查询列表 |
||||
* |
||||
* @param query |
||||
* @return 日志列表 |
||||
*/ |
||||
List<SsoLoginLog> listPageByCondition(LoginLogQuery query); |
||||
|
||||
/** |
||||
* 新增接口 |
||||
* |
||||
* @param ssoLoginLog 登录日志实体 |
||||
* @return 新增的行数 |
||||
* @date 2021-01-23 10:45:22 |
||||
*/ |
||||
int insert(SsoLoginLog ssoLoginLog); |
||||
|
||||
/** |
||||
* 动态参数新增接口 |
||||
* |
||||
* @param ssoLoginLog 登录日志实体 |
||||
* @return 新增的行数 |
||||
* @date 2021-01-23 10:45:22 |
||||
*/ |
||||
int insertSelective(SsoLoginLog ssoLoginLog); |
||||
|
||||
/** |
||||
* 根据自增主键删除接口 |
||||
* |
||||
* @param id 自增主键主键 |
||||
* @return 删除的行数 |
||||
* @date 2021-01-23 10:45:22 |
||||
*/ |
||||
int deleteByPrimaryKey(Long id); |
||||
|
||||
/** |
||||
* 根据自增主键编辑接口 |
||||
* |
||||
* @param ssoLoginLog 登录日志实体 |
||||
* @return 编辑的行数 |
||||
* @date 2021-01-23 10:45:22 |
||||
*/ |
||||
int updateByPrimaryKey(SsoLoginLog ssoLoginLog); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑接口 |
||||
* |
||||
* @param ssoLoginLog 登录日志实体 |
||||
* @return 编辑的行数 |
||||
* @date 2021-01-23 10:45:22 |
||||
*/ |
||||
int updateByPrimaryKeySelective(SsoLoginLog ssoLoginLog); |
||||
|
||||
|
||||
} |
@ -0,0 +1,112 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
import com.sso.dao.entity.SsoMenu; |
||||
import com.sso.dao.query.SsoMenuQuery; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 菜单权限基础mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-08 18:03:31 |
||||
*/ |
||||
public interface SsoMenuMapper { |
||||
|
||||
/** |
||||
* 根据 menuId 查询 |
||||
* |
||||
* @param menuId 自增主键 |
||||
* @return 菜单权限 |
||||
*/ |
||||
SsoMenu getByMenuId(Long menuId); |
||||
|
||||
/** |
||||
* 根据系统编码与角色名称查询 |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @param menuName 菜单名称 |
||||
* @return 角色信息 |
||||
*/ |
||||
SsoMenu getBySysCodeAndName(@Param("sysCode") String sysCode, @Param("menuName") String menuName); |
||||
|
||||
/** |
||||
* 根据系统编码查询-未删除-并且启用的菜单 |
||||
* |
||||
* @param sysCode |
||||
* @return 权限集 |
||||
*/ |
||||
List<SsoMenu> getEnableMenuListBySysCode(@Param("sysCode") String sysCode); |
||||
|
||||
/** |
||||
* 根据系统编码与用户ID查询权限查询-未删除-并且启用的菜单 |
||||
* |
||||
* @param sysCode |
||||
* @param userId |
||||
* @return 权限集 |
||||
*/ |
||||
List<SsoMenu> getMenuListBySysCodeAndUserId(@Param("sysCode") String sysCode, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 根据条件统计 |
||||
* |
||||
* @param query 过滤条件 |
||||
* @return 统计数 |
||||
*/ |
||||
int countByCondition(SsoMenuQuery query); |
||||
|
||||
/** |
||||
* 根据条件-查询 |
||||
* |
||||
* @param query 过滤条件 |
||||
* @return 统计数 |
||||
*/ |
||||
List<SsoMenu> listByCondition(SsoMenuQuery query); |
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoMenu 菜单权限 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoMenu ssoMenu); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoMenu 菜单权限 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoMenu ssoMenu); |
||||
|
||||
/** |
||||
* 根据 菜单ID 编辑 |
||||
* |
||||
* @param ssoMenu 菜单权限 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByMenuId(SsoMenu ssoMenu); |
||||
|
||||
/** |
||||
* 根据 菜单ID 动态参数编辑 |
||||
* |
||||
* @param ssoMenu 菜单权限 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByMenuIdSelective(SsoMenu ssoMenu); |
||||
|
||||
/** |
||||
* 根据 系统编码 统计 |
||||
* |
||||
* @param syCode |
||||
* @return 统计数 |
||||
*/ |
||||
int countBySysCode(@Param("sysCode") String syCode); |
||||
|
||||
|
||||
} |
@ -0,0 +1,111 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
import com.sso.dao.dto.SsoOnlineUserDTO; |
||||
import com.sso.dao.entity.SsoOnlineUser; |
||||
import com.sso.dao.query.UserOnlineQuery; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 在线用户基础mapper接口 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-30 |
||||
*/ |
||||
public interface SsoOnlineUserMapper { |
||||
|
||||
/** |
||||
* 根据 requestId 查询接口 |
||||
* |
||||
* @param requestId 请求标识 |
||||
* @return 在线用户实体 |
||||
* @date 2021-01-30 11:47:18 |
||||
*/ |
||||
SsoOnlineUser getByRequestId(String requestId); |
||||
|
||||
/** |
||||
* 新增接口 |
||||
* |
||||
* @param ssoOnlineUser 在线用户实体 |
||||
* @return 新增的行数 |
||||
* @date 2021-01-30 11:47:18 |
||||
*/ |
||||
int insert(SsoOnlineUser ssoOnlineUser); |
||||
|
||||
/** |
||||
* 动态参数新增接口 |
||||
* |
||||
* @param ssoOnlineUser 在线用户实体 |
||||
* @return 新增的行数 |
||||
* @date 2021-01-30 11:47:18 |
||||
*/ |
||||
int insertSelective(SsoOnlineUser ssoOnlineUser); |
||||
|
||||
/** |
||||
* 根据自增主键删除接口 |
||||
* |
||||
* @param id 自增主键主键 |
||||
* @return 删除的行数 |
||||
* @date 2021-01-30 11:47:18 |
||||
*/ |
||||
int deleteByPrimaryKey(Long id); |
||||
|
||||
/** |
||||
* 根据自增主键编辑接口 |
||||
* |
||||
* @param ssoOnlineUser 在线用户实体 |
||||
* @return 编辑的行数 |
||||
* @date 2021-01-30 11:47:18 |
||||
*/ |
||||
int updateByPrimaryKey(SsoOnlineUser ssoOnlineUser); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑接口 |
||||
* |
||||
* @param ssoOnlineUser 在线用户实体 |
||||
* @return 编辑的行数 |
||||
* @date 2021-01-30 11:47:18 |
||||
*/ |
||||
int updateByPrimaryKeySelective(SsoOnlineUser ssoOnlineUser); |
||||
|
||||
/** |
||||
* 统计 |
||||
* |
||||
* @param query |
||||
* @return 统计值 |
||||
*/ |
||||
int countByCondition(UserOnlineQuery query); |
||||
|
||||
/** |
||||
* 查询列表 |
||||
* |
||||
* @param query |
||||
* @return 日志列表 |
||||
*/ |
||||
List<SsoOnlineUserDTO> listPageByCondition(UserOnlineQuery query); |
||||
|
||||
/** |
||||
* 根据请求标识-刷新效期时间 |
||||
* |
||||
* @param requestId |
||||
* @param expireTime |
||||
* @return |
||||
*/ |
||||
int refreshExpireTimeByRequestId(@Param("requestId") String requestId, @Param("expireTime") Long expireTime); |
||||
|
||||
/** |
||||
* 退出时-根据请求标识-更新效期时间 |
||||
* |
||||
* @param requestId |
||||
* @param expireTime |
||||
* @param loginOutTime |
||||
* @return |
||||
*/ |
||||
int updateByLogoOut(@Param("requestId") String requestId, @Param("expireTime") Long expireTime, @Param("loginOutTime") Long loginOutTime); |
||||
|
||||
} |
@ -0,0 +1,112 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
import com.sso.dao.entity.SsoRole; |
||||
import com.sso.dao.query.SsoRoleQuery; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 角色信息mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-07 15:56:40 |
||||
*/ |
||||
public interface SsoRoleMapper { |
||||
|
||||
/** |
||||
* 根据 角色ID 查询 |
||||
* |
||||
* @param roleId 角色ID |
||||
* @return 角色信息 |
||||
*/ |
||||
SsoRole getByRoleId(Long roleId); |
||||
|
||||
/** |
||||
* 根据系统编码与角色名称查询 |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @param roleName 角色名称 |
||||
* @return 角色信息 |
||||
*/ |
||||
SsoRole getBySysCodeAndName(@Param("sysCode") String sysCode, @Param("roleName") String roleName); |
||||
|
||||
/** |
||||
* 根据系统编码与角色key查询 |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @param roleKey 角色名称 |
||||
* @return 角色信息 |
||||
*/ |
||||
SsoRole getBySysCodeAndRoleKey(@Param("sysCode") String sysCode, @Param("roleKey") String roleKey); |
||||
|
||||
/** |
||||
* 根据 系统编码 与 用户ID查询角色key |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @param userId 用户ID |
||||
* @return 角色信息 |
||||
*/ |
||||
List<String> getRoleKeyBySysCodeAndUserId(@Param("sysCode") String sysCode, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 根据条件统计 |
||||
* |
||||
* @param query 过滤条件 |
||||
* @return 统计数 |
||||
*/ |
||||
int countByCondition(SsoRoleQuery query); |
||||
|
||||
/** |
||||
* 根据条件-查询 |
||||
* |
||||
* @param query 过滤条件 |
||||
* @return 统计数 |
||||
*/ |
||||
List<SsoRole> listPageByCondition(SsoRoleQuery query); |
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoRole 角色信息实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoRole ssoRole); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoRole 角色信息实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoRole ssoRole); |
||||
|
||||
/** |
||||
* 根据自增主键编辑 |
||||
* |
||||
* @param ssoRole 角色信息 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByRoleId(SsoRole ssoRole); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑 |
||||
* |
||||
* @param ssoRole 角色信息 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByRoleIdSelective(SsoRole ssoRole); |
||||
|
||||
/** |
||||
* 根据 系统编码 统计 |
||||
* |
||||
* @param syCode |
||||
* @return 统计数 |
||||
*/ |
||||
int countBySysCode(@Param("sysCode") String syCode); |
||||
|
||||
} |
@ -0,0 +1,86 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
|
||||
import com.sso.dao.entity.SsoRoleMenu; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 角色和菜单关系基础mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-08 18:03:32 |
||||
*/ |
||||
public interface SsoRoleMenuMapper { |
||||
|
||||
/** |
||||
* 根据自增主键id查询 |
||||
* |
||||
* @param roleId 角色ID |
||||
* @return 角色和菜单关系 |
||||
*/ |
||||
List<Long> getMenuIdListByRoleId(Long roleId); |
||||
|
||||
/** |
||||
* 批量新增 |
||||
* |
||||
* @param list |
||||
* @return 新增的行数 |
||||
*/ |
||||
int batchSave(List<SsoRoleMenu> list); |
||||
|
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoRoleMenu 角色和菜单关系 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoRoleMenu ssoRoleMenu); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoRoleMenu 角色和菜单关系 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoRoleMenu ssoRoleMenu); |
||||
|
||||
/** |
||||
* 根据 roleId 删除 |
||||
* |
||||
* @param roleId 角色ID |
||||
* @return 删除的行数 |
||||
*/ |
||||
int deleteByRoleId(Long roleId); |
||||
|
||||
/** |
||||
* 根据 menuId 删除 |
||||
* |
||||
* @param menuId 菜单ID |
||||
* @return 删除的行数 |
||||
*/ |
||||
int deleteByMenuId(Long menuId); |
||||
|
||||
/** |
||||
* 根据自增主键编辑 |
||||
* |
||||
* @param ssoRoleMenu 角色和菜单关系 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByPrimaryKey(SsoRoleMenu ssoRoleMenu); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑 |
||||
* |
||||
* @param ssoRoleMenu 角色和菜单关系 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByPrimaryKeySelective(SsoRoleMenu ssoRoleMenu); |
||||
|
||||
|
||||
} |
@ -0,0 +1,100 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
|
||||
import com.sso.dao.dto.SsoUserMgmtDTO; |
||||
import com.sso.dao.entity.SsoSystemManager; |
||||
import com.sso.dao.query.SystemMgmtPageQuery; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 平台管理员关系基础mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-16 10:22:57 |
||||
*/ |
||||
public interface SsoSystemManagerMapper { |
||||
|
||||
/** |
||||
* 根据自增主键id查询 |
||||
* |
||||
* @param id 自增主键 |
||||
* @return SsoSystemManager |
||||
* @date 2021-01-16 10:22:57 |
||||
*/ |
||||
SsoSystemManager getById(Long id); |
||||
|
||||
/** |
||||
* 根据-系统编码和用户ID查询 |
||||
* |
||||
* @param sysCode 自增主键 |
||||
* @param userId 自增主键 |
||||
* @return SsoSystemManager |
||||
* @date 2021-01-16 10:22:57 |
||||
*/ |
||||
SsoSystemManager getBySysCodeAndUserId(@Param("sysCode") String sysCode, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 根据-自增主键id统计 |
||||
* |
||||
* @param sysCode 自增主键 |
||||
* @param userId 自增主键 |
||||
* @return SsoSystemManager |
||||
* @date 2021-01-16 10:22:57 |
||||
*/ |
||||
int countBySysCodeAndUserId(@Param("sysCode") String sysCode, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 统计-平台管理员用户 |
||||
* |
||||
* @param query 用户 |
||||
* @return 用户集合 |
||||
*/ |
||||
int countSysMgmtUser(SystemMgmtPageQuery query); |
||||
|
||||
/** |
||||
* 查询平台管理员用户列表 |
||||
* |
||||
* @param query 用户 |
||||
* @return 用户集合 |
||||
*/ |
||||
List<SsoUserMgmtDTO> listPageSysMgmtUser(SystemMgmtPageQuery query); |
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoSystemManager |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoSystemManager ssoSystemManager); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoSystemManager |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoSystemManager ssoSystemManager); |
||||
|
||||
/** |
||||
* 根据 自增ID 编辑 |
||||
* |
||||
* @param ssoSystemManager |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateById(SsoSystemManager ssoSystemManager); |
||||
|
||||
/** |
||||
* 根据用户ID与系统编码更新 |
||||
* |
||||
* @param ssoSystemManager |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateBySysCodeAndUserId(SsoSystemManager ssoSystemManager); |
||||
|
||||
} |
@ -0,0 +1,128 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
|
||||
import com.sso.dao.entity.SsoSystem; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 目标系统基础mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2020-12-27 10:59:43 |
||||
*/ |
||||
public interface SsoSystemMapper { |
||||
|
||||
/** |
||||
* 根据系统编码-查询 |
||||
* |
||||
* @param sysId 系统ID |
||||
* @return 目标系统实体 |
||||
*/ |
||||
SsoSystem getBySysId(@Param("sysId") Long sysId); |
||||
|
||||
/** |
||||
* 根据系统编码-查询 |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @return 目标系统实体 |
||||
*/ |
||||
SsoSystem getBySysCode(@Param("sysCode") String sysCode); |
||||
|
||||
/** |
||||
* 根据系统编码集-查询 |
||||
* |
||||
* @param sysCodeList 系统编码集 |
||||
* @return 目标系统实体 |
||||
*/ |
||||
List<SsoSystem> getBySysCodeList(@Param("sysCodeList") List<String> sysCodeList); |
||||
|
||||
/** |
||||
* 根据状态查询 |
||||
* |
||||
* @param statusList |
||||
* @return 目标系统实体 |
||||
*/ |
||||
List<SsoSystem> listByStatusList(@Param("statusList") List<Integer> statusList); |
||||
|
||||
/** |
||||
* 根据用户ID查询-管理员权限的系统 |
||||
* |
||||
* @param userId |
||||
* @return 目标系统实体 |
||||
*/ |
||||
List<SsoSystem> listMySystemByAdmin(@Param("userId") Long userId, @Param("statusList") List<Integer> statusList); |
||||
|
||||
/** |
||||
* 根据用户ID查询-拥有跳转权限的系统 |
||||
* |
||||
* @param userId |
||||
* @return 目标系统实体 |
||||
*/ |
||||
List<SsoSystem> listMySystemByUserId(@Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 根据用户ID查询-拥有管理权限的系统平台 |
||||
* |
||||
* @param userId |
||||
* @return 目标系统实体 |
||||
*/ |
||||
List<SsoSystem> listSystemMgmtByUserId(@Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoSystem 目标系统实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoSystem ssoSystem); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoSystem 目标系统实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoSystem ssoSystem); |
||||
|
||||
/** |
||||
* 根据 sysId 编辑 |
||||
* |
||||
* @param ssoSystem 目标系统实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateBySysId(SsoSystem ssoSystem); |
||||
|
||||
/** |
||||
* 根据 sysId 修改秘钥属性 |
||||
* |
||||
* @param ssoSystem 目标系统实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateSecretBySysId(SsoSystem ssoSystem); |
||||
|
||||
/** |
||||
* 修改图标 |
||||
* |
||||
* @param sysId 系统ID |
||||
* @param sysIcon 头像地址 |
||||
* @param updateBy 最后修改人 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateIconBySysId(@Param("sysId") Long sysId, @Param("sysIcon") String sysIcon, @Param("updateBy") String updateBy); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑 |
||||
* |
||||
* @param ssoSystem 目标系统实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateBySysIdSelective(SsoSystem ssoSystem); |
||||
|
||||
|
||||
} |
@ -0,0 +1,85 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
import com.sso.dao.entity.SsoUserDept; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
/** |
||||
* 用户部门关系基础mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-02 17:20:41 |
||||
*/ |
||||
public interface SsoUserDeptMapper { |
||||
|
||||
/** |
||||
* 根据 系统编码与用户ID 查询 |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @param userId 用户ID |
||||
* @return 用户部门关系实体 |
||||
*/ |
||||
SsoUserDept getDeptBySysCodeAndUserId(@Param("sysCode") String sysCode, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoUserDept 用户部门关系实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoUserDept ssoUserDept); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoUserDept 用户部门关系实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoUserDept ssoUserDept); |
||||
|
||||
/** |
||||
* 根据 系统编码与 用户ID 删除 |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @param userId 用户ID |
||||
* @return 删除的行数 |
||||
*/ |
||||
int deleteBySysCodeAndUserId(@Param("sysCode") String sysCode, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 根据 系统编码与 部门ID 删除 |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @param deptId 部门ID |
||||
* @return 删除的行数 |
||||
*/ |
||||
int deleteBySysCodeAndDeptId(@Param("sysCode") String sysCode, @Param("deptId") Long deptId); |
||||
|
||||
/** |
||||
* 根据自增主键编辑 |
||||
* |
||||
* @param ssoUserDept 用户部门关系实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByPrimaryKey(SsoUserDept ssoUserDept); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑 |
||||
* |
||||
* @param ssoUserDept 用户部门关系实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByPrimaryKeySelective(SsoUserDept ssoUserDept); |
||||
|
||||
/** |
||||
* 根据部门ID统计 |
||||
* |
||||
* @param deptId |
||||
* @return 统计行数 |
||||
*/ |
||||
int countByDeptId(Long deptId); |
||||
|
||||
} |
@ -0,0 +1,159 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
|
||||
import com.sso.dao.entity.SsoUser; |
||||
import com.sso.dao.query.UserPageQuery; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 用户基础mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-02 17:20:41 |
||||
*/ |
||||
public interface SsoUserMapper { |
||||
|
||||
/** |
||||
* 根据 userId 查询 |
||||
* |
||||
* @param userId 用户ID |
||||
* @return 用户信息 |
||||
*/ |
||||
SsoUser getByUserId(Long userId); |
||||
|
||||
/** |
||||
* 根据用户名-查询 |
||||
* |
||||
* @param userName 用户 |
||||
* @return 用户 |
||||
*/ |
||||
SsoUser getByUserName(String userName); |
||||
|
||||
/** |
||||
* 根据手机号-查询 |
||||
* |
||||
* @param phone 用户手机号 |
||||
* @return 用户 |
||||
*/ |
||||
SsoUser getByPhone(String phone); |
||||
|
||||
/** |
||||
* 根据邮箱-查询 |
||||
* |
||||
* @param email 用户邮箱 |
||||
* @return 用户 |
||||
*/ |
||||
SsoUser getByEmail(String email); |
||||
|
||||
/** |
||||
* 根据手机号或用户名-查询 |
||||
* |
||||
* @param keywords 关键字 |
||||
* @param limit |
||||
* @return 用户 |
||||
*/ |
||||
List<SsoUser> listByPhoneOrUserNameLike(@Param("keywords") String keywords, @Param("limit") Integer limit); |
||||
|
||||
/** |
||||
* 统计用户 |
||||
* |
||||
* @param query 用户 |
||||
* @return 用户集合 |
||||
*/ |
||||
int countByCondition(UserPageQuery query); |
||||
|
||||
/** |
||||
* 查询用户列表 |
||||
* |
||||
* @param query 用户 |
||||
* @return 用户集合 |
||||
*/ |
||||
List<SsoUser> listPageByCondition(UserPageQuery query); |
||||
|
||||
/** |
||||
* 根据自增主键id查询 |
||||
* |
||||
* @param id 自增主键 |
||||
* @return 用户实体 |
||||
*/ |
||||
SsoUser selectByPrimaryKey(Long id); |
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoUser 用户实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoUser ssoUser); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoUser 用户实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoUser ssoUser); |
||||
|
||||
/** |
||||
* 根据 用户ID 编辑 |
||||
* |
||||
* @param ssoUser 用户实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByUserId(SsoUser ssoUser); |
||||
|
||||
/** |
||||
* 修改个人信息 |
||||
* |
||||
* @param ssoUser 用户实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateProfileByUserId(SsoUser ssoUser); |
||||
|
||||
/** |
||||
* 更新 |
||||
* |
||||
* @param userId 用户userId |
||||
* @param loginIp 用户loginIp |
||||
* @param lastLoginTime 登录时间 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateLastLogin(@Param("userId") Long userId, @Param("loginIp") String loginIp, @Param("lastLoginTime") Date lastLoginTime); |
||||
|
||||
/** |
||||
* 修改密码 |
||||
* |
||||
* @param userId 用户ID |
||||
* @param password 密码 |
||||
* @param updateBy 最后修改人 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updatePwd(@Param("userId") Long userId, @Param("password") String password, @Param("updateBy") String updateBy); |
||||
|
||||
/** |
||||
* 修改头像 |
||||
* |
||||
* @param userId 用户ID |
||||
* @param avatar 头像地址 |
||||
* @param updateBy 最后修改人 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateAvatar(@Param("userId") Long userId, @Param("avatar") String avatar, @Param("updateBy") String updateBy); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑 |
||||
* |
||||
* @param ssoUser 用户实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByUserIdSelective(SsoUser ssoUser); |
||||
|
||||
|
||||
} |
@ -0,0 +1,121 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
import com.sso.dao.dto.RoleCountDTO; |
||||
import com.sso.dao.dto.SsoUserRoleDTO; |
||||
import com.sso.dao.entity.SsoUserRole; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 用户和角色关联基础mapper |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-08 15:41:48 |
||||
*/ |
||||
public interface SsoUserRoleMapper { |
||||
|
||||
/** |
||||
* 根据自增主键id查询 |
||||
* |
||||
* @param id 自增主键 |
||||
* @return 用户和角色关联实体 |
||||
*/ |
||||
SsoUserRole selectByPrimaryKey(Long id); |
||||
|
||||
/** |
||||
* 根据系统编码 与用户ID 查询角色ID |
||||
* |
||||
* @param sysCode |
||||
* @param userId |
||||
* @return 角色ID集 |
||||
*/ |
||||
List<Long> getRoleIdListBySysCodeAndUserId(@Param("sysCode") String sysCode, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 根据 系统编码与用户ID 查询 |
||||
* |
||||
* @param sysCode 用户ID |
||||
* @param userIdList 用户ID |
||||
* @return 部门实体 |
||||
*/ |
||||
List<SsoUserRoleDTO> getRoleBySysCodeAndUserIdList(@Param("sysCode") String sysCode, @Param("userIdList") List<Long> userIdList); |
||||
|
||||
/** |
||||
* 新增 |
||||
* |
||||
* @param ssoUserRole 用户和角色关联实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoUserRole ssoUserRole); |
||||
|
||||
/** |
||||
* 动态参数新增 |
||||
* |
||||
* @param ssoUserRole 用户和角色关联实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoUserRole ssoUserRole); |
||||
|
||||
/** |
||||
* 批量新增 |
||||
* |
||||
* @param list |
||||
* @return |
||||
*/ |
||||
int batchSave(List<SsoUserRole> list); |
||||
|
||||
/** |
||||
* 根据用户ID删除 |
||||
* |
||||
* @param sysCode 系统编码 |
||||
* @param userId 用户ID |
||||
* @return 删除的行数 |
||||
*/ |
||||
int deleteBySysCodeAndUserId(@Param("sysCode") String sysCode, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 根据用户ID删除 |
||||
* |
||||
* @param roleId 角色ID |
||||
* @param userId 用户ID |
||||
* @return 删除的行数 |
||||
*/ |
||||
int deleteByRoleIdAndUserId(@Param("roleId") Long roleId, @Param("userId") Long userId); |
||||
|
||||
/** |
||||
* 根据自增主键编辑 |
||||
* |
||||
* @param ssoUserRole 用户和角色关联实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByPrimaryKey(SsoUserRole ssoUserRole); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑 |
||||
* |
||||
* @param ssoUserRole 用户和角色关联实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByPrimaryKeySelective(SsoUserRole ssoUserRole); |
||||
|
||||
/** |
||||
* 根据 角色ID 统计 |
||||
* |
||||
* @param roleId 角色ID |
||||
* @return 统计数 |
||||
*/ |
||||
int countByRoleId(Long roleId); |
||||
|
||||
/** |
||||
* 根据 角色ID 统计 |
||||
* |
||||
* @param roleIdList 角色ID集 |
||||
* @return 统计数 |
||||
*/ |
||||
List<RoleCountDTO> countByRoleIdList(@Param("roleIdList") List<Long> roleIdList); |
||||
} |
@ -0,0 +1,95 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.mapper; |
||||
|
||||
import com.sso.dao.entity.SsoUserSystem; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 用户与目标系统关系基础mapper接口 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2021-01-10 22:22:34 |
||||
*/ |
||||
public interface SsoUserSystemMapper { |
||||
|
||||
/** |
||||
* 根据用户ID与 系统编码查询 |
||||
* |
||||
* @param userId 用户ID |
||||
* @param sysCode 系统编码 |
||||
* @return 用户与目标系统关系实体 |
||||
*/ |
||||
SsoUserSystem getByUserIdAndSysCode(@Param("userId") Long userId, @Param("sysCode") String sysCode); |
||||
|
||||
/** |
||||
* 根据用户ID集 与 系统编码查询 |
||||
* |
||||
* @param userIdList 用户ID集 |
||||
* @param sysCode 系统编码 |
||||
* @return 用户与目标系统关系实体 |
||||
*/ |
||||
List<SsoUserSystem> listBySysCodeAndUserIdList(@Param("sysCode") String sysCode, @Param("userIdList") List<Long> userIdList); |
||||
|
||||
/** |
||||
* 新增接口 |
||||
* |
||||
* @param ssoUserSystem 用户与目标系统关系实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insert(SsoUserSystem ssoUserSystem); |
||||
|
||||
/** |
||||
* 动态参数新增接口 |
||||
* |
||||
* @param ssoUserSystem 用户与目标系统关系实体 |
||||
* @return 新增的行数 |
||||
*/ |
||||
int insertSelective(SsoUserSystem ssoUserSystem); |
||||
|
||||
/** |
||||
* 根据自增主键删除接口 |
||||
* |
||||
* @param id 自增主键主键 |
||||
* @return 删除的行数 |
||||
*/ |
||||
int deleteByPrimaryKey(Long id); |
||||
|
||||
/** |
||||
* 根据自增主键编辑接口 |
||||
* |
||||
* @param ssoUserSystem 用户与目标系统关系实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateById(SsoUserSystem ssoUserSystem); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑接口 |
||||
* |
||||
* @param ssoUserSystem 用户与目标系统关系实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateByIdSelective(SsoUserSystem ssoUserSystem); |
||||
|
||||
/** |
||||
* 根据自增主键动态参数编辑接口 |
||||
* |
||||
* @param ssoUserSystem 用户与目标系统关系实体 |
||||
* @return 编辑的行数 |
||||
*/ |
||||
int updateBySysCodeAndUserIdSelective(SsoUserSystem ssoUserSystem); |
||||
|
||||
/** |
||||
* 根据 系统编码 统计 |
||||
* |
||||
* @param syCode |
||||
* @return 统计数 |
||||
*/ |
||||
int countBySysCode(@Param("sysCode") String syCode); |
||||
|
||||
|
||||
} |
@ -0,0 +1,89 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.query; |
||||
|
||||
import com.sso.common.model.page.BasePageQuery; |
||||
|
||||
/** |
||||
* 登录日志分页查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
public class LoginLogQuery extends BasePageQuery { |
||||
|
||||
private static final long serialVersionUID = -7137359307341275655L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String usernameLike; |
||||
|
||||
/** |
||||
* 登录状态 0-成功;1-失败 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 登录开始时间 |
||||
*/ |
||||
private Long loginStartTime; |
||||
|
||||
/** |
||||
* 登录截止时间 |
||||
*/ |
||||
private Long loginEndTime; |
||||
|
||||
|
||||
public String getSysCode() { |
||||
return sysCode; |
||||
} |
||||
|
||||
public LoginLogQuery setSysCode(String sysCode) { |
||||
this.sysCode = sysCode; |
||||
return this; |
||||
} |
||||
|
||||
public String getUsernameLike() { |
||||
return usernameLike; |
||||
} |
||||
|
||||
public LoginLogQuery setUsernameLike(String usernameLike) { |
||||
this.usernameLike = usernameLike; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getStatus() { |
||||
return status; |
||||
} |
||||
|
||||
public LoginLogQuery setStatus(Integer status) { |
||||
this.status = status; |
||||
return this; |
||||
} |
||||
|
||||
public Long getLoginStartTime() { |
||||
return loginStartTime; |
||||
} |
||||
|
||||
public LoginLogQuery setLoginStartTime(Long loginStartTime) { |
||||
this.loginStartTime = loginStartTime; |
||||
return this; |
||||
} |
||||
|
||||
public Long getLoginEndTime() { |
||||
return loginEndTime; |
||||
} |
||||
|
||||
public LoginLogQuery setLoginEndTime(Long loginEndTime) { |
||||
this.loginEndTime = loginEndTime; |
||||
return this; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,117 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.query; |
||||
|
||||
import com.sso.common.model.page.BasePageQuery; |
||||
|
||||
/** |
||||
* 部门查询 |
||||
* mapper 层 xml 入参 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
public class SsoDeptQuery extends BasePageQuery { |
||||
|
||||
private static final long serialVersionUID = 9032669004611549658L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 父部门ID |
||||
*/ |
||||
private Long deptParentId; |
||||
|
||||
/** |
||||
* 需要排除的-部门ID |
||||
*/ |
||||
private Long excludeDeptId; |
||||
|
||||
/** |
||||
* 部门名称 |
||||
*/ |
||||
private String deptName; |
||||
|
||||
/** |
||||
* 部门右模糊 |
||||
*/ |
||||
private String deptNameLike; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
|
||||
public String getSysCode() { |
||||
return sysCode; |
||||
} |
||||
|
||||
public SsoDeptQuery setSysCode(String sysCode) { |
||||
this.sysCode = sysCode; |
||||
return this; |
||||
} |
||||
|
||||
public Long getDeptParentId() { |
||||
return deptParentId; |
||||
} |
||||
|
||||
public SsoDeptQuery setDeptParentId(Long deptParentId) { |
||||
this.deptParentId = deptParentId; |
||||
return this; |
||||
} |
||||
|
||||
public Long getExcludeDeptId() { |
||||
return excludeDeptId; |
||||
} |
||||
|
||||
public SsoDeptQuery setExcludeDeptId(Long excludeDeptId) { |
||||
this.excludeDeptId = excludeDeptId; |
||||
return this; |
||||
} |
||||
|
||||
public String getDeptName() { |
||||
return deptName; |
||||
} |
||||
|
||||
public SsoDeptQuery setDeptName(String deptName) { |
||||
this.deptName = deptName; |
||||
return this; |
||||
} |
||||
|
||||
public String getDeptNameLike() { |
||||
return deptNameLike; |
||||
} |
||||
|
||||
public SsoDeptQuery setDeptNameLike(String deptNameLike) { |
||||
this.deptNameLike = deptNameLike; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getStatus() { |
||||
return status; |
||||
} |
||||
|
||||
public SsoDeptQuery setStatus(Integer status) { |
||||
this.status = status; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getDelFlag() { |
||||
return delFlag; |
||||
} |
||||
|
||||
public SsoDeptQuery setDelFlag(Integer delFlag) { |
||||
this.delFlag = delFlag; |
||||
return this; |
||||
} |
||||
} |
@ -0,0 +1,117 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.query; |
||||
|
||||
|
||||
import com.sso.common.model.page.BasePageQuery; |
||||
|
||||
/** |
||||
* 菜单查询 |
||||
* mapper 层 xml 入参 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
public class SsoMenuQuery extends BasePageQuery { |
||||
|
||||
private static final long serialVersionUID = -4210187210718040578L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 父菜单ID |
||||
*/ |
||||
private Long menuParentId; |
||||
|
||||
/** |
||||
* 需要排除的-菜单ID |
||||
*/ |
||||
private Long excludeMenuId; |
||||
|
||||
/** |
||||
* 菜单名称 |
||||
*/ |
||||
private String menuName; |
||||
|
||||
/** |
||||
* 菜单名称右模糊 |
||||
*/ |
||||
private String menuNameLike; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
public String getSysCode() { |
||||
return sysCode; |
||||
} |
||||
|
||||
public SsoMenuQuery setSysCode(String sysCode) { |
||||
this.sysCode = sysCode; |
||||
return this; |
||||
} |
||||
|
||||
public Long getMenuParentId() { |
||||
return menuParentId; |
||||
} |
||||
|
||||
public SsoMenuQuery setMenuParentId(Long menuParentId) { |
||||
this.menuParentId = menuParentId; |
||||
return this; |
||||
} |
||||
|
||||
public Long getExcludeMenuId() { |
||||
return excludeMenuId; |
||||
} |
||||
|
||||
public SsoMenuQuery setExcludeMenuId(Long excludeMenuId) { |
||||
this.excludeMenuId = excludeMenuId; |
||||
return this; |
||||
} |
||||
|
||||
public String getMenuName() { |
||||
return menuName; |
||||
} |
||||
|
||||
public SsoMenuQuery setMenuName(String menuName) { |
||||
this.menuName = menuName; |
||||
return this; |
||||
} |
||||
|
||||
public String getMenuNameLike() { |
||||
return menuNameLike; |
||||
} |
||||
|
||||
public SsoMenuQuery setMenuNameLike(String menuNameLike) { |
||||
this.menuNameLike = menuNameLike; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getStatus() { |
||||
return status; |
||||
} |
||||
|
||||
public SsoMenuQuery setStatus(Integer status) { |
||||
this.status = status; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getDelFlag() { |
||||
return delFlag; |
||||
} |
||||
|
||||
public SsoMenuQuery setDelFlag(Integer delFlag) { |
||||
this.delFlag = delFlag; |
||||
return this; |
||||
} |
||||
} |
@ -0,0 +1,127 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.query; |
||||
|
||||
|
||||
import com.sso.common.model.page.BasePageModel; |
||||
import com.sso.common.model.page.BasePageQuery; |
||||
|
||||
/** |
||||
* 角色查询 |
||||
* mapper 层 xml 入参 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
public class SsoRoleQuery extends BasePageQuery { |
||||
|
||||
private static final long serialVersionUID = 4663369561352780923L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 需要排除的角色ID |
||||
*/ |
||||
private Long excludeRoleId; |
||||
|
||||
/** |
||||
* 角色名称 |
||||
*/ |
||||
private String roleName; |
||||
|
||||
/** |
||||
* 角色名称 右模糊 |
||||
*/ |
||||
private String roleNameLike; |
||||
|
||||
/** |
||||
* 角色key 右模糊 |
||||
*/ |
||||
private String roleKeyLike; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
public SsoRoleQuery() { |
||||
} |
||||
|
||||
|
||||
public SsoRoleQuery(BasePageModel pageModel) { |
||||
this.setPage(pageModel.getPage()); |
||||
this.setPageSize(pageModel.getPageSize()); |
||||
} |
||||
|
||||
public String getSysCode() { |
||||
return sysCode; |
||||
} |
||||
|
||||
public SsoRoleQuery setSysCode(String sysCode) { |
||||
this.sysCode = sysCode; |
||||
return this; |
||||
} |
||||
|
||||
public Long getExcludeRoleId() { |
||||
return excludeRoleId; |
||||
} |
||||
|
||||
public SsoRoleQuery setExcludeRoleId(Long excludeRoleId) { |
||||
this.excludeRoleId = excludeRoleId; |
||||
return this; |
||||
} |
||||
|
||||
public String getRoleName() { |
||||
return roleName; |
||||
} |
||||
|
||||
public SsoRoleQuery setRoleName(String roleName) { |
||||
this.roleName = roleName; |
||||
return this; |
||||
} |
||||
|
||||
public String getRoleNameLike() { |
||||
return roleNameLike; |
||||
} |
||||
|
||||
public SsoRoleQuery setRoleNameLike(String roleNameLike) { |
||||
this.roleNameLike = roleNameLike; |
||||
return this; |
||||
} |
||||
|
||||
public String getRoleKeyLike() { |
||||
return roleKeyLike; |
||||
} |
||||
|
||||
public SsoRoleQuery setRoleKeyLike(String roleKeyLike) { |
||||
this.roleKeyLike = roleKeyLike; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getStatus() { |
||||
return status; |
||||
} |
||||
|
||||
public SsoRoleQuery setStatus(Integer status) { |
||||
this.status = status; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getDelFlag() { |
||||
return delFlag; |
||||
} |
||||
|
||||
public SsoRoleQuery setDelFlag(Integer delFlag) { |
||||
this.delFlag = delFlag; |
||||
return this; |
||||
} |
||||
} |
@ -0,0 +1,129 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.query; |
||||
|
||||
import com.sso.common.model.page.BasePageQuery; |
||||
|
||||
/** |
||||
* 系统管理员权限-分页查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
public class SystemMgmtPageQuery extends BasePageQuery { |
||||
|
||||
private static final long serialVersionUID = 7588427768619166745L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String usernameLike; |
||||
|
||||
/** |
||||
* 用户昵称 |
||||
*/ |
||||
private String nickNameLike; |
||||
|
||||
/** |
||||
* 真实姓名 |
||||
*/ |
||||
private String realNameLike; |
||||
|
||||
/** |
||||
* 手机号码 |
||||
*/ |
||||
private String phoneLike; |
||||
|
||||
/** |
||||
* 用户状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer userStatus; |
||||
|
||||
/** |
||||
* 绑定关系状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer relationStatus; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
public String getSysCode() { |
||||
return sysCode; |
||||
} |
||||
|
||||
public SystemMgmtPageQuery setSysCode(String sysCode) { |
||||
this.sysCode = sysCode; |
||||
return this; |
||||
} |
||||
|
||||
public String getUsernameLike() { |
||||
return usernameLike; |
||||
} |
||||
|
||||
public SystemMgmtPageQuery setUsernameLike(String usernameLike) { |
||||
this.usernameLike = usernameLike; |
||||
return this; |
||||
} |
||||
|
||||
public String getNickNameLike() { |
||||
return nickNameLike; |
||||
} |
||||
|
||||
public SystemMgmtPageQuery setNickNameLike(String nickNameLike) { |
||||
this.nickNameLike = nickNameLike; |
||||
return this; |
||||
} |
||||
|
||||
public String getRealNameLike() { |
||||
return realNameLike; |
||||
} |
||||
|
||||
public SystemMgmtPageQuery setRealNameLike(String realNameLike) { |
||||
this.realNameLike = realNameLike; |
||||
return this; |
||||
} |
||||
|
||||
public String getPhoneLike() { |
||||
return phoneLike; |
||||
} |
||||
|
||||
public SystemMgmtPageQuery setPhoneLike(String phoneLike) { |
||||
this.phoneLike = phoneLike; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getUserStatus() { |
||||
return userStatus; |
||||
} |
||||
|
||||
public SystemMgmtPageQuery setUserStatus(Integer userStatus) { |
||||
this.userStatus = userStatus; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getRelationStatus() { |
||||
return relationStatus; |
||||
} |
||||
|
||||
public SystemMgmtPageQuery setRelationStatus(Integer relationStatus) { |
||||
this.relationStatus = relationStatus; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getDelFlag() { |
||||
return delFlag; |
||||
} |
||||
|
||||
public SystemMgmtPageQuery setDelFlag(Integer delFlag) { |
||||
this.delFlag = delFlag; |
||||
return this; |
||||
} |
||||
} |
@ -0,0 +1,87 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.query; |
||||
|
||||
import com.sso.common.model.page.BasePageQuery; |
||||
|
||||
/** |
||||
* 在线用户分页查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
public class UserOnlineQuery extends BasePageQuery { |
||||
|
||||
private static final long serialVersionUID = 6745860184771356374L; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String usernameLike; |
||||
|
||||
/** |
||||
* 手机号 |
||||
*/ |
||||
private String phoneLike; |
||||
|
||||
/** |
||||
* 效期开始时间 |
||||
*/ |
||||
private Long expireStartTime; |
||||
|
||||
/** |
||||
* 登录开始时间 |
||||
*/ |
||||
private Long loginStartTime; |
||||
|
||||
/** |
||||
* 登录截止时间 |
||||
*/ |
||||
private Long loginEndTime; |
||||
|
||||
public String getUsernameLike() { |
||||
return usernameLike; |
||||
} |
||||
|
||||
public UserOnlineQuery setUsernameLike(String usernameLike) { |
||||
this.usernameLike = usernameLike; |
||||
return this; |
||||
} |
||||
|
||||
public String getPhoneLike() { |
||||
return phoneLike; |
||||
} |
||||
|
||||
public UserOnlineQuery setPhoneLike(String phoneLike) { |
||||
this.phoneLike = phoneLike; |
||||
return this; |
||||
} |
||||
|
||||
public Long getExpireStartTime() { |
||||
return expireStartTime; |
||||
} |
||||
|
||||
public UserOnlineQuery setExpireStartTime(Long expireStartTime) { |
||||
this.expireStartTime = expireStartTime; |
||||
return this; |
||||
} |
||||
|
||||
public Long getLoginStartTime() { |
||||
return loginStartTime; |
||||
} |
||||
|
||||
public UserOnlineQuery setLoginStartTime(Long loginStartTime) { |
||||
this.loginStartTime = loginStartTime; |
||||
return this; |
||||
} |
||||
|
||||
public Long getLoginEndTime() { |
||||
return loginEndTime; |
||||
} |
||||
|
||||
public UserOnlineQuery setLoginEndTime(Long loginEndTime) { |
||||
this.loginEndTime = loginEndTime; |
||||
return this; |
||||
} |
||||
} |
@ -0,0 +1,129 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.dao.query; |
||||
|
||||
import com.sso.common.model.page.BasePageQuery; |
||||
|
||||
/** |
||||
* 用户分页查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
public class UserPageQuery extends BasePageQuery { |
||||
|
||||
private static final long serialVersionUID = -7892866355117742382L; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String usernameLike; |
||||
|
||||
/** |
||||
* 用户昵称 |
||||
*/ |
||||
private String nickNameLike; |
||||
|
||||
/** |
||||
* 真实姓名 |
||||
*/ |
||||
private String realNameLike; |
||||
|
||||
/** |
||||
* 手机号码 |
||||
*/ |
||||
private String phoneLike; |
||||
|
||||
/** |
||||
* 所属部门ID |
||||
*/ |
||||
private Long deptId; |
||||
|
||||
/** |
||||
* 角色ID |
||||
*/ |
||||
private Long roleId; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 删除标志 0-正常;1-删除 |
||||
*/ |
||||
private Integer delFlag; |
||||
|
||||
public String getUsernameLike() { |
||||
return usernameLike; |
||||
} |
||||
|
||||
public UserPageQuery setUsernameLike(String usernameLike) { |
||||
this.usernameLike = usernameLike; |
||||
return this; |
||||
} |
||||
|
||||
public String getNickNameLike() { |
||||
return nickNameLike; |
||||
} |
||||
|
||||
public UserPageQuery setNickNameLike(String nickNameLike) { |
||||
this.nickNameLike = nickNameLike; |
||||
return this; |
||||
} |
||||
|
||||
public String getRealNameLike() { |
||||
return realNameLike; |
||||
} |
||||
|
||||
public UserPageQuery setRealNameLike(String realNameLike) { |
||||
this.realNameLike = realNameLike; |
||||
return this; |
||||
} |
||||
|
||||
public String getPhoneLike() { |
||||
return phoneLike; |
||||
} |
||||
|
||||
public UserPageQuery setPhoneLike(String phoneLike) { |
||||
this.phoneLike = phoneLike; |
||||
return this; |
||||
} |
||||
|
||||
public Long getDeptId() { |
||||
return deptId; |
||||
} |
||||
|
||||
public UserPageQuery setDeptId(Long deptId) { |
||||
this.deptId = deptId; |
||||
return this; |
||||
} |
||||
|
||||
public Long getRoleId() { |
||||
return roleId; |
||||
} |
||||
|
||||
public UserPageQuery setRoleId(Long roleId) { |
||||
this.roleId = roleId; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getStatus() { |
||||
return status; |
||||
} |
||||
|
||||
public UserPageQuery setStatus(Integer status) { |
||||
this.status = status; |
||||
return this; |
||||
} |
||||
|
||||
public Integer getDelFlag() { |
||||
return delFlag; |
||||
} |
||||
|
||||
public UserPageQuery setDelFlag(Integer delFlag) { |
||||
this.delFlag = delFlag; |
||||
return this; |
||||
} |
||||
} |
@ -0,0 +1,30 @@ |
||||
/** |
||||
* Copyright ( @程序员小强 ) All Rights Reserved. |
||||
* 博客地址:https://blog.csdn.net/qq_38011415
|
||||
*/ |
||||
package com.sso.model.bo; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import java.io.Serializable; |
||||
|
||||
|
||||
/** |
||||
* 系统编码参数类 |
||||
* |
||||
* @author 程序员小强 |
||||
* @date 2020-12-27 10:59:43 |
||||
*/ |
||||
@Data |
||||
public class SysCodeBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -878095644963838466L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
} |
@ -0,0 +1,29 @@ |
||||
package com.sso.model.bo.dept; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 部门删除bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class DeptDeleteBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = 1912530599252047615L; |
||||
|
||||
/** |
||||
* 部门ID |
||||
*/ |
||||
@NotNull(message = "部门ID不为空") |
||||
private Long deptId; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format(" deptId:%d , , operateBy:%s", this.deptId, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,24 @@ |
||||
package com.sso.model.bo.dept; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 部门详情bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class DeptIdQueryBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -5367920763344359224L; |
||||
|
||||
/** |
||||
* 部门ID |
||||
*/ |
||||
@NotNull(message = "部门ID不为空") |
||||
private Long deptId; |
||||
|
||||
} |
@ -0,0 +1,34 @@ |
||||
package com.sso.model.bo.dept; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 部门树查询 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class DeptMgmtTreeBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1912530599252047615L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 部门名称 |
||||
*/ |
||||
private String deptNameLike; |
||||
|
||||
/** |
||||
* 状态 -1全部 0-启用;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
} |
@ -0,0 +1,63 @@ |
||||
package com.sso.model.bo.dept; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.Max; |
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.NotNull; |
||||
import javax.validation.constraints.Size; |
||||
|
||||
/** |
||||
* 部门添加 bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class DeptSaveBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = 7434128948642870592L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 部门名称 |
||||
*/ |
||||
@NotBlank(message = "部门名称不能为空") |
||||
private String deptName; |
||||
|
||||
/** |
||||
* 父部门ID |
||||
*/ |
||||
@NotNull(message = "父部门ID不为空") |
||||
private Long deptParentId; |
||||
|
||||
/** |
||||
* 顺序 |
||||
*/ |
||||
@NotNull(message = "顺序不为空") |
||||
@Max(value = 1000000000, message = "显示顺序最大长度不能超过{max}") |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 状态 0-启用;1-停用 |
||||
*/ |
||||
@NotNull(message = "状态不为空") |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
@Size(max = 200, message = "备注最大长度不超{max}") |
||||
private String remarks; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysCode:%s , deptName:%s , operateBy:%s", this.sysCode, this.deptName, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,67 @@ |
||||
package com.sso.model.bo.dept; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.NotNull; |
||||
import javax.validation.constraints.Size; |
||||
|
||||
/** |
||||
* 部门修改BO |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class DeptUpdateBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = 6373997550677086520L; |
||||
|
||||
/** |
||||
* 部门ID |
||||
*/ |
||||
@NotNull(message = "部门ID不为空") |
||||
private Long deptId; |
||||
|
||||
/** |
||||
* 部门名称 |
||||
*/ |
||||
@NotBlank(message = "部门名称不能为空") |
||||
private String deptName; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 父部门ID |
||||
*/ |
||||
@NotNull(message = "父部门ID不为空") |
||||
private Long deptParentId; |
||||
|
||||
/** |
||||
* 顺序 |
||||
*/ |
||||
@NotNull(message = "顺序不为空") |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 状态 0-启用;1-停用 |
||||
*/ |
||||
@NotNull(message = "状态不为空") |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
@Size(max = 200, message = "备注最大长度不超{max}") |
||||
private String remarks; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysCode:%s , deptId:%d , deptName:%s , operateBy:%s", this.sysCode, this.deptId, this.deptName, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,45 @@ |
||||
package com.sso.model.bo.getway; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 申请认证参数 |
||||
* |
||||
* @author 程序员小强 |
||||
* @version ApplyAuthBO.java |
||||
*/ |
||||
@Data |
||||
public class ApplyAuthBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -3755046680856409972L; |
||||
|
||||
/** |
||||
* 退出登录访问地址 |
||||
*/ |
||||
private String loginOutUrl; |
||||
|
||||
/** |
||||
* 菜单类型 |
||||
* 1-列表; 2-树形列表 |
||||
*/ |
||||
private String menuType; |
||||
|
||||
/** |
||||
* 跳转url |
||||
*/ |
||||
private String redirectUrl; |
||||
|
||||
/** |
||||
* 登录token |
||||
*/ |
||||
private String ssoToken; |
||||
|
||||
/** |
||||
* 来源IP |
||||
*/ |
||||
private String sourceIp; |
||||
|
||||
|
||||
} |
@ -0,0 +1,49 @@ |
||||
package com.sso.model.bo.getway; |
||||
|
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.Pattern; |
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* GetWay 请求公共参数 |
||||
* |
||||
* @author 程序员小强 |
||||
* @version GetWayReqBO.java |
||||
*/ |
||||
@Data |
||||
public class GetWayReqBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 2055965490262675225L; |
||||
|
||||
/** |
||||
* 请求唯一标识 |
||||
* 推荐使用UUID,要求唯一性 |
||||
*/ |
||||
@NotBlank(message = "请求标识不能为空") |
||||
private String apiRequestId; |
||||
|
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
@NotBlank(message = "方法名不能为空") |
||||
private String method; |
||||
|
||||
@NotBlank(message = "版本号不能为空") |
||||
private String version; |
||||
|
||||
@NotBlank(message = "签名类型不能为空") |
||||
@Pattern(regexp = "[1-3]", message = "签名类型只能为1或2或3") |
||||
private String signType; |
||||
|
||||
@NotBlank(message = "请求时间戳不能为空") |
||||
@Pattern(regexp = "^16\\d{11}$", message = "时间戳格式错误") |
||||
private String timestamp; |
||||
|
||||
private String sign; |
||||
|
||||
private String content; |
||||
|
||||
} |
@ -0,0 +1,42 @@ |
||||
package com.sso.model.bo.login; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 用户登录对象 |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class LoginBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 3516676046779777417L; |
||||
|
||||
/** |
||||
* 用户名 |
||||
*/ |
||||
@NotBlank(message = "用户名不为空") |
||||
private String username; |
||||
|
||||
/** |
||||
* 用户密码 |
||||
*/ |
||||
@NotBlank(message = "用户密码不为空") |
||||
private String password; |
||||
|
||||
/** |
||||
* 验证码 |
||||
*/ |
||||
@NotBlank(message = "验证码不为空") |
||||
private String captchaCode; |
||||
|
||||
/** |
||||
* 请求唯一标识 |
||||
*/ |
||||
@NotBlank(message = "请求唯一标识不为空") |
||||
private String requestId; |
||||
|
||||
} |
@ -0,0 +1,41 @@ |
||||
package com.sso.model.bo.login; |
||||
|
||||
import com.sso.common.model.page.BasePageModel; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 登录日志分页查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class LoginLogListPageBO extends BasePageModel { |
||||
|
||||
private static final long serialVersionUID = -3442414830796499182L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String usernameLike; |
||||
|
||||
/** |
||||
* 登录状态 0-成功;1-失败 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 登录开始时间 |
||||
*/ |
||||
private String loginStartTime; |
||||
|
||||
/** |
||||
* 登录截止时间 |
||||
*/ |
||||
private String loginEndTime; |
||||
|
||||
} |
@ -0,0 +1,30 @@ |
||||
package com.sso.model.bo.menu; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 菜单删除 bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class MenuDeleteBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -8354384638349511426L; |
||||
|
||||
/** |
||||
* 菜单ID |
||||
*/ |
||||
@NotNull(message = "菜单ID不能为空") |
||||
private Long menuId; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("menuId:%d, operateBy:%s", |
||||
this.menuId, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,102 @@ |
||||
package com.sso.model.bo.menu; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.Digits; |
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.NotNull; |
||||
import javax.validation.constraints.Size; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 菜单添加 bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class MenuSaveBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -2219298721551456293L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 菜单名称 |
||||
*/ |
||||
@NotBlank(message = "菜单名称不能为空") |
||||
private String menuName; |
||||
|
||||
/** |
||||
* 菜单类型(M目录 C菜单 F按钮) |
||||
*/ |
||||
@NotBlank(message = "菜单类型不能为空") |
||||
private String menuType; |
||||
|
||||
/** |
||||
* 父菜单ID |
||||
*/ |
||||
@NotNull(message = "父菜单ID不能为空") |
||||
private Long menuParentId; |
||||
|
||||
/** |
||||
* 显示顺序 |
||||
*/ |
||||
@NotNull(message = "显示顺序不能为空") |
||||
@Digits(integer = 999999999, fraction = 0, message = "显示顺序最大长度不能超过{integer}") |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 菜单路由地址 |
||||
*/ |
||||
private String path; |
||||
|
||||
/** |
||||
* 菜单图标 |
||||
*/ |
||||
private String icon; |
||||
|
||||
/** |
||||
* 组件路径 |
||||
*/ |
||||
private String component; |
||||
|
||||
/** |
||||
* 权限标识,多个|分隔 |
||||
*/ |
||||
@Size(max = 10, message = "权限标识最多不超过{max}") |
||||
private List<String> permissionList; |
||||
|
||||
/** |
||||
* 使用类型 0-授权访问;1-开放访问; |
||||
*/ |
||||
private Integer useType; |
||||
|
||||
/** |
||||
* 是否显示 0-显示;1-隐藏 |
||||
*/ |
||||
private Integer visible; |
||||
|
||||
/** |
||||
* 菜单状态 0-正常;1停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
@Size(max = 200, message = "备注最大长度不超{max}") |
||||
private String remarks; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysCode:%s , menuName:%s , menuParentId:%d ,permissionList:%s, operateBy:%s", this.sysCode, this.menuName, this.menuParentId, |
||||
this.permissionList, this.getOperateBy()); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,33 @@ |
||||
package com.sso.model.bo.menu; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 菜单树查询BO |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class MenuTreeBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = -4094219434105471621L; |
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 菜单名称 |
||||
*/ |
||||
private String menuNameLike; |
||||
|
||||
/** |
||||
* 状态 -1全部 0-启用;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
} |
@ -0,0 +1,30 @@ |
||||
package com.sso.model.bo.menu; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 菜单修改 bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class MenuUpdateBO extends MenuSaveBO { |
||||
|
||||
private static final long serialVersionUID = 6016756261051760463L; |
||||
|
||||
/** |
||||
* 菜单ID |
||||
*/ |
||||
@NotNull(message = "菜单ID不能为空") |
||||
private Long menuId; |
||||
|
||||
|
||||
@Override |
||||
public String getLogValue() { |
||||
return String.format("menuId:%d,sysCode:%s menuName:%s , menuParentId:%d ,permissionList:%s, operateBy:%s", |
||||
this.menuId, this.getSysCode(), this.getMenuName(), this.getMenuParentId(), this.getPermissionList(), this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,26 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* 修改平台新增bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemDeleteBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = 4340162202000538970L; |
||||
|
||||
/** |
||||
* 系统平台ID |
||||
*/ |
||||
private Long sysId; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysId:%d, operateBy:%s", this.sysId, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,54 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import com.sso.common.model.page.BasePageModel; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
|
||||
/** |
||||
* 用户-系统关系分页查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemMgmtListPageBO extends BasePageModel { |
||||
|
||||
private static final long serialVersionUID = -27397984110384822L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String usernameLike; |
||||
|
||||
/** |
||||
* 用户昵称 |
||||
*/ |
||||
private String nickNameLike; |
||||
|
||||
/** |
||||
* 真实姓名 |
||||
*/ |
||||
private String realNameLike; |
||||
|
||||
/** |
||||
* 手机号码 |
||||
*/ |
||||
private String phoneLike; |
||||
|
||||
/** |
||||
* 用户状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer userStatus; |
||||
|
||||
/** |
||||
* 绑定关系状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer relationStatus; |
||||
|
||||
} |
@ -0,0 +1,35 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 系统管理权限移除BO |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemMgmtRemoveBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = 7991373166717611704L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
@NotNull(message = "用户ID不为空") |
||||
private Long userId; |
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysCode:%s, userId:%s , operateBy:%s", this.sysCode, this.userId, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,41 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 系统管理权限-新增BO |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemMgmtSaveBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -3496085022363517714L; |
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
@NotNull(message = "用户ID不为空") |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 状态 |
||||
*/ |
||||
@NotNull(message = "状态不为空") |
||||
private Integer status; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("userId:%d, sysCode:%s , operateBy:%s", this.userId, this.sysCode, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,33 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 系统管理权限-新增BO |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemMgmtStatusBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -5187844120648189372L; |
||||
|
||||
/** |
||||
* ID |
||||
*/ |
||||
@NotNull(message = "ID不为空") |
||||
private Long id; |
||||
|
||||
/** |
||||
* 状态 |
||||
*/ |
||||
@NotNull(message = "状态不为空") |
||||
private Integer status; |
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysId:%d, status:%s , operateBy:%s", this.id, this.status, this.getOperateBy()); |
||||
} |
||||
} |
@ -0,0 +1,62 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 目标平台新增bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemSaveBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = 1163633182173991403L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 系统名称 |
||||
*/ |
||||
@NotBlank(message = "系统名称不为空") |
||||
private String sysName; |
||||
|
||||
/** |
||||
* 系统链接 |
||||
*/ |
||||
@NotBlank(message = "系统跳转链接不为空") |
||||
private String sysUrl; |
||||
|
||||
/** |
||||
* 系统图标 |
||||
*/ |
||||
private String sysIcon; |
||||
|
||||
/** |
||||
* 系统环境 0-测试 1-beta 2-生产 |
||||
*/ |
||||
@NotNull(message = "系统环境不为空") |
||||
private Integer sysEnv; |
||||
|
||||
/** |
||||
* 排序,数字越小排在越前面 |
||||
*/ |
||||
@NotNull(message = "排序不为空") |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
private String remarks; |
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysCode:%s , sysName:%s , operateBy:%s", this.sysCode, this.sysName, this.getOperateBy()); |
||||
} |
||||
} |
@ -0,0 +1,26 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
import javax.validation.constraints.Size; |
||||
import java.io.Serializable; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 目标平台排序bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemSortBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 2105261198839002918L; |
||||
|
||||
/** |
||||
* 系统编码集合 |
||||
*/ |
||||
@NotNull(message = "系统编码集不为空") |
||||
@Size(min = 1, message = "系统编码集不为空") |
||||
private List<String> sysCodeList; |
||||
} |
@ -0,0 +1,33 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 修改平台新增bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemUpdateBO extends SystemSaveBO { |
||||
|
||||
private static final long serialVersionUID = 1163633182173991403L; |
||||
|
||||
/** |
||||
* 系统平台ID |
||||
*/ |
||||
@NotNull(message = "系统平台ID不为空") |
||||
private Long sysId; |
||||
|
||||
/** |
||||
* 状态 |
||||
*/ |
||||
@NotNull(message = "状态不为空") |
||||
private Integer status; |
||||
|
||||
@Override |
||||
public String getLogValue() { |
||||
return String.format("sysId:%d, sysCode:%s , sysName:%s , operateBy:%s", this.sysId, this.getSysCode(), this.getSysName(), this.getOperateBy()); |
||||
} |
||||
} |
@ -0,0 +1,40 @@ |
||||
package com.sso.model.bo.platform; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 修改平台新增bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class SystemUpdateSecretBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -7361402011394142030L; |
||||
|
||||
/** |
||||
* 系统平台ID |
||||
*/ |
||||
@NotNull(message = "系统平台ID不为空") |
||||
private Long sysId; |
||||
|
||||
/** |
||||
* 签名类型 0-无;1-MD5;2-RSA; |
||||
*/ |
||||
@NotNull(message = "签名类型不为空") |
||||
private Integer signType; |
||||
|
||||
/** |
||||
* 网关验签公钥 |
||||
*/ |
||||
private String publicKey; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysId:%d, signType:%s , operateBy:%s", this.sysId, this.signType, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,28 @@ |
||||
package com.sso.model.bo.role; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 角色删除bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class RoleDeleteBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -4350853964122690858L; |
||||
|
||||
/** |
||||
* 角色ID |
||||
*/ |
||||
@NotNull(message = "角色ID不为空") |
||||
private Long roleId; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("roleId:%d , operateBy:%s", this.roleId, this.getOperateBy()); |
||||
} |
||||
} |
@ -0,0 +1,30 @@ |
||||
package com.sso.model.bo.role; |
||||
|
||||
import com.sso.common.model.page.BasePageModel; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
|
||||
/** |
||||
* 角色-下拉选项查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class RoleListOptionBO extends BasePageModel { |
||||
|
||||
private static final long serialVersionUID = 8961034980910026149L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 角色名称右模糊 |
||||
*/ |
||||
private String roleNameLike; |
||||
|
||||
|
||||
} |
@ -0,0 +1,40 @@ |
||||
package com.sso.model.bo.role; |
||||
|
||||
import com.sso.common.model.page.BasePageModel; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
|
||||
/** |
||||
* 角色分页查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class RoleListPageBO extends BasePageModel { |
||||
|
||||
private static final long serialVersionUID = -8206942361131504869L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 角色名称 右模糊 |
||||
*/ |
||||
private String roleNameLike; |
||||
|
||||
/** |
||||
* 角色key 右模糊 |
||||
*/ |
||||
private String roleKeyLike; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
|
||||
} |
@ -0,0 +1,34 @@ |
||||
package com.sso.model.bo.role; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 角色删除bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class RoleRemoveUserBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -4350853964122690858L; |
||||
|
||||
/** |
||||
* 角色ID |
||||
*/ |
||||
@NotNull(message = "角色ID不为空") |
||||
private Long roleId; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
@NotNull(message = "用户ID不为空") |
||||
private Long userId; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("roleId:%d , userId:%d, operateBy:%s", this.roleId, this.userId, this.getOperateBy()); |
||||
} |
||||
} |
@ -0,0 +1,64 @@ |
||||
package com.sso.model.bo.role; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.NotNull; |
||||
import javax.validation.constraints.Size; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 角色添加 bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class RoleSaveBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -2662983486894971210L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 状态 |
||||
*/ |
||||
@NotNull(message = "状态不为空") |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 显示顺序 |
||||
*/ |
||||
@NotNull(message = "显示顺序不为空") |
||||
private Integer sortNum; |
||||
|
||||
/** |
||||
* 角色名称 |
||||
*/ |
||||
@NotBlank(message = "角色名称不能为空") |
||||
private String roleName; |
||||
|
||||
/** |
||||
* 角色key |
||||
*/ |
||||
private String roleKey; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
@Size(max = 200, message = "备注最大长度不超{max}") |
||||
private String remarks; |
||||
|
||||
/** |
||||
* 菜单ID集 |
||||
*/ |
||||
private List<Long> menuIdList; |
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysCode:%s , roleName:%s , roleKey:%s ,operateBy:%s", this.sysCode, this.roleName, this.roleKey, this.getOperateBy()); |
||||
} |
||||
} |
@ -0,0 +1,28 @@ |
||||
package com.sso.model.bo.role; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotNull; |
||||
|
||||
/** |
||||
* 角色修改 bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class RoleUpdateBO extends RoleSaveBO { |
||||
|
||||
private static final long serialVersionUID = -7337969581151948190L; |
||||
|
||||
/** |
||||
* 角色ID |
||||
*/ |
||||
@NotNull(message = "角色ID") |
||||
private Long roleId; |
||||
|
||||
|
||||
@Override |
||||
public String getLogValue() { |
||||
return String.format("sysCode:%s , roleId:%d , roleName:%s , roleKey:%s ,operateBy:%s", this.getSysCode(), roleId, this.getRoleName(), this.getRoleKey(), this.getOperateBy()); |
||||
} |
||||
} |
@ -0,0 +1,90 @@ |
||||
package com.sso.model.bo.user; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.Size; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 用户新增bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class UserAddBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -8559961404756899677L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
@NotBlank(message = "用户登录名不为空") |
||||
private String username; |
||||
|
||||
/** |
||||
* 密码 |
||||
*/ |
||||
@NotBlank(message = "用户登录密码不为空") |
||||
@Size(max = 20, message = "密码最大长度{max}") |
||||
private String password; |
||||
|
||||
/** |
||||
* 用户昵称 |
||||
*/ |
||||
private String nickName; |
||||
|
||||
/** |
||||
* 真实姓名 |
||||
*/ |
||||
private String realName; |
||||
|
||||
/** |
||||
* 所属部门 |
||||
*/ |
||||
private Long deptId; |
||||
|
||||
/** |
||||
* 角色ID集 |
||||
*/ |
||||
private List<Long> roleIdList; |
||||
|
||||
/** |
||||
* 用户性别 0-男;1-女;2-未知 |
||||
*/ |
||||
private Integer sex; |
||||
|
||||
/** |
||||
* 手机号码 |
||||
*/ |
||||
private String phone; |
||||
|
||||
/** |
||||
* 邮箱 |
||||
*/ |
||||
private String email; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
private String remarks; |
||||
|
||||
|
||||
public String getLogValue() { |
||||
return String.format("sysCode:%s , username:%s , realName:%s , phone:%s, deptId:%d , roleIdList:%s , operateBy:%s", |
||||
this.sysCode, this.username, this.realName, this.phone, this.deptId, this.roleIdList, this.getOperateBy()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,32 @@ |
||||
package com.sso.model.bo.user; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.Size; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 用户删除bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class UserBatchDeleteBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = 6811621712453725799L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
@Size(min = 1, message = "用户ID不为空") |
||||
private List<Long> userIdList; |
||||
|
||||
} |
@ -0,0 +1,32 @@ |
||||
package com.sso.model.bo.user; |
||||
|
||||
import com.sso.common.model.BaseOperateBO; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.Size; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 用户删除bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class UserDeleteBO extends BaseOperateBO { |
||||
|
||||
private static final long serialVersionUID = -6260789437671185007L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
@Size(min = 1, message = "用户ID不为空") |
||||
private List<Long> userIdList; |
||||
|
||||
} |
@ -0,0 +1,31 @@ |
||||
package com.sso.model.bo.user; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
import javax.validation.constraints.NotNull; |
||||
import java.io.Serializable; |
||||
|
||||
/** |
||||
* 用户查询详情bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class UserDetailBO implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 8048715426913745373L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户ID |
||||
*/ |
||||
@NotNull(message = "用户ID不为空") |
||||
private Long userId; |
||||
|
||||
} |
@ -0,0 +1,60 @@ |
||||
package com.sso.model.bo.user; |
||||
|
||||
import com.sso.common.model.page.BasePageModel; |
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
|
||||
/** |
||||
* 用户分页查询bo |
||||
* |
||||
* @author 程序员小强 |
||||
*/ |
||||
@Data |
||||
public class UserListPageBO extends BasePageModel { |
||||
|
||||
private static final long serialVersionUID = 4627460201144477292L; |
||||
|
||||
/** |
||||
* 系统编码 |
||||
*/ |
||||
@NotBlank(message = "系统编码不能为空") |
||||
private String sysCode; |
||||
|
||||
/** |
||||
* 用户登录名 |
||||
*/ |
||||
private String usernameLike; |
||||
|
||||
/** |
||||
* 用户昵称 |
||||
*/ |
||||
private String nickNameLike; |
||||
|
||||
/** |
||||
* 真实姓名 |
||||
*/ |
||||
private String realNameLike; |
||||
|
||||
/** |
||||
* 手机号码 |
||||
*/ |
||||
private String phoneLike; |
||||
|
||||
/** |
||||
* 所属部门ID |
||||
*/ |
||||
private Long deptId; |
||||
|
||||
/** |
||||
* 角色ID |
||||
*/ |
||||
private Long roleId; |
||||
|
||||
/** |
||||
* 状态 0-正常;1-停用 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
|
||||
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue