From 8fe9b95f86116d1622baa38b22118515164c2b97 Mon Sep 17 00:00:00 2001 From: djz236 Date: Thu, 31 Mar 2022 16:51:44 +0800 Subject: [PATCH] =?UTF-8?q?2022-03-31=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 + .idea/compiler.xml | 34 + .idea/encodings.xml | 14 + .idea/git_toolbox_prj.xml | 15 + .idea/jarRepositories.xml | 40 + .idea/misc.xml | 12 + .idea/runConfigurations.xml | 10 + .idea/vcs.xml | 6 + HELP.md | 14 + README.md | 30 + doc/demo.sql | 88 ++ open-api/open-api.iml | 15 + open-api/pom.xml | 15 + pom.xml | 461 ++++++++ yyd-base/pom.xml | 21 + yyd-base/yyd-base-common/pom.xml | 191 ++++ .../yyd/base/common/domain/BaseEntity.java | 158 +++ .../com/yyd/base/common/domain/Entity.java | 7 + .../yyd/base/common/domain/EntityWithId.java | 48 + .../java/com/yyd/base/common/dto/Dto.java | 52 + .../com/yyd/base/common/query/PagerQuery.java | 126 +++ .../java/com/yyd/base/common/query/Query.java | 45 + .../yyd/base/common/result/AppResultData.java | 30 + .../yyd/base/common/result/HttpStatus.java | 20 + .../base/common/result/IResultCodeMsg.java | 44 + .../yyd/base/common/result/ResultBean.java | 304 ++++++ .../base/common/result/ResultBeanOfEnum.java | 332 ++++++ .../com/yyd/base/common/utils/PagerUtil.java | 102 ++ .../java/com/yyd/base/common/vo/PagerVo.java | 108 ++ .../java/com/yyd/base/common/vo/Tail.java | 46 + .../java/com/yyd/base/common/vo/TailBean.java | 59 ++ .../main/java/com/yyd/base/common/vo/Vo.java | 60 ++ yyd-base/yyd-base-handler/pom.xml | 202 ++++ .../GlobalExceptionHandler.java | 99 ++ yyd-base/yyd-base-jdbc/pom.xml | 194 ++++ .../com/yyd/base/jdbc/MybatisPlusConfig.java | 67 ++ .../base/jdbc/service/MybatisBaseService.java | 416 ++++++++ yyd-base/yyd-base-redis/pom.xml | 39 + .../java/com/yyd/base/redis/RedisConfig.java | 107 ++ .../java/com/yyd/base/redis/RedisUtil.java | 322 ++++++ yyd-center/pom.xml | 18 + yyd-center/yyd-center-gateway/pom.xml | 117 ++ .../main/java/com/yyd/gateway/AuthFilter.java | 265 +++++ .../com/yyd/gateway/GateWayApplication.java | 28 + .../com/yyd/gateway/KafkaProducerService.java | 45 + .../com/yyd/gateway/utils/CacheConstants.java | 25 + .../com/yyd/gateway/utils/CharsetKit.java | 86 ++ .../java/com/yyd/gateway/utils/Constants.java | 29 + .../java/com/yyd/gateway/utils/Convert.java | 999 ++++++++++++++++++ .../gateway/utils/IgnoreWhiteProperties.java | 42 + .../main/java/com/yyd/gateway/utils/R.java | 104 ++ .../com/yyd/gateway/utils/StrFormatter.java | 91 ++ .../com/yyd/gateway/utils/StringUtils.java | 526 +++++++++ .../src/main/resources/application-devv.yml | 19 + .../src/main/resources/application-pro.yml | 19 + .../src/main/resources/application-test.yml | 19 + .../src/main/resources/application.yml | 53 + .../src/main/resources/log4j.xml | 41 + yyd-demo/demo-api/pom.xml | 46 + .../java/com/yyd/demo/sysuser/SysUser.java | 53 + .../java/com/yyd/demo/sysuser/SysUserDto.java | 28 + .../com/yyd/demo/sysuser/SysUserFeign.java | 29 + .../demo/sysuser/SysUserFeignFallback.java | 20 + .../com/yyd/demo/sysuser/SysUserQuery.java | 45 + .../java/com/yyd/demo/sysuser/SysUserVo.java | 59 ++ yyd-demo/demo-biz/pom.xml | 252 +++++ .../java/com/yyd/demo/DemoApplication.java | 24 + .../com/yyd/demo/config/Swagger2Config.java | 36 + .../com/yyd/demo/sysuser/SysUserMapper.java | 79 ++ .../com/yyd/demo/sysuser/SysUserMapper.xml | 119 +++ .../com/yyd/demo/sysuser/SysUserRest.java | 116 ++ .../com/yyd/demo/sysuser/SysUserService.java | 157 +++ .../src/main/resources/application-devv.yml | 32 + .../src/main/resources/application-pro.yml | 30 + .../src/main/resources/application-test.yml | 30 + .../src/main/resources/application.yml | 47 + .../demo-biz/src/main/resources/log4j.xml | 41 + yyd-demo/pom.xml | 19 + yyd-log/pom.xml | 17 + yyd-log/yyd-log-api/pom.xml | 46 + .../main/java/com/yyd/log/api/SystemLog.java | 44 + .../java/com/yyd/log/api/SystemLogDto.java | 46 + .../java/com/yyd/log/api/SystemLogFeign.java | 65 ++ .../yyd/log/api/SystemLogFeignFallback.java | 64 ++ .../java/com/yyd/log/api/SystemLogQuery.java | 44 + .../java/com/yyd/log/api/SystemLogVo.java | 44 + yyd-log/yyd-log-biz/pom.xml | 80 ++ .../main/java/com/yyd/log/LogApplication.java | 30 + .../com/yyd/log/biz/KafkaConsumerService.java | 67 ++ .../java/com/yyd/log/biz/SystemLogMapper.java | 40 + .../java/com/yyd/log/biz/SystemLogMapper.xml | 13 + .../java/com/yyd/log/biz/SystemLogRest.java | 103 ++ .../com/yyd/log/biz/SystemLogService.java | 109 ++ .../src/main/resources/application-devv.yml | 32 + .../src/main/resources/application-pro.yml | 30 + .../src/main/resources/application-test.yml | 30 + .../src/main/resources/application.yml | 55 + .../src/main/resources/logback-spring.xml | 50 + 98 files changed, 8758 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/git_toolbox_prj.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml create mode 100644 HELP.md create mode 100644 README.md create mode 100644 doc/demo.sql create mode 100644 open-api/open-api.iml create mode 100644 open-api/pom.xml create mode 100644 pom.xml create mode 100644 yyd-base/pom.xml create mode 100644 yyd-base/yyd-base-common/pom.xml create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/BaseEntity.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/Entity.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/EntityWithId.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/dto/Dto.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/query/PagerQuery.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/query/Query.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/AppResultData.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/HttpStatus.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/IResultCodeMsg.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/ResultBean.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/ResultBeanOfEnum.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/utils/PagerUtil.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/PagerVo.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/Tail.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/TailBean.java create mode 100644 yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/Vo.java create mode 100644 yyd-base/yyd-base-handler/pom.xml create mode 100644 yyd-base/yyd-base-handler/src/main/java/com.yyd.base.handler/GlobalExceptionHandler.java create mode 100644 yyd-base/yyd-base-jdbc/pom.xml create mode 100644 yyd-base/yyd-base-jdbc/src/main/java/com/yyd/base/jdbc/MybatisPlusConfig.java create mode 100644 yyd-base/yyd-base-jdbc/src/main/java/com/yyd/base/jdbc/service/MybatisBaseService.java create mode 100644 yyd-base/yyd-base-redis/pom.xml create mode 100644 yyd-base/yyd-base-redis/src/main/java/com/yyd/base/redis/RedisConfig.java create mode 100644 yyd-base/yyd-base-redis/src/main/java/com/yyd/base/redis/RedisUtil.java create mode 100644 yyd-center/pom.xml create mode 100644 yyd-center/yyd-center-gateway/pom.xml create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/AuthFilter.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/GateWayApplication.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/KafkaProducerService.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/CacheConstants.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/CharsetKit.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/Constants.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/Convert.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/IgnoreWhiteProperties.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/R.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/StrFormatter.java create mode 100644 yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/StringUtils.java create mode 100644 yyd-center/yyd-center-gateway/src/main/resources/application-devv.yml create mode 100644 yyd-center/yyd-center-gateway/src/main/resources/application-pro.yml create mode 100644 yyd-center/yyd-center-gateway/src/main/resources/application-test.yml create mode 100644 yyd-center/yyd-center-gateway/src/main/resources/application.yml create mode 100644 yyd-center/yyd-center-gateway/src/main/resources/log4j.xml create mode 100644 yyd-demo/demo-api/pom.xml create mode 100644 yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUser.java create mode 100644 yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserDto.java create mode 100644 yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserFeign.java create mode 100644 yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserFeignFallback.java create mode 100644 yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserQuery.java create mode 100644 yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserVo.java create mode 100644 yyd-demo/demo-biz/pom.xml create mode 100644 yyd-demo/demo-biz/src/main/java/com/yyd/demo/DemoApplication.java create mode 100644 yyd-demo/demo-biz/src/main/java/com/yyd/demo/config/Swagger2Config.java create mode 100644 yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserMapper.java create mode 100644 yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserMapper.xml create mode 100644 yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserRest.java create mode 100644 yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserService.java create mode 100644 yyd-demo/demo-biz/src/main/resources/application-devv.yml create mode 100644 yyd-demo/demo-biz/src/main/resources/application-pro.yml create mode 100644 yyd-demo/demo-biz/src/main/resources/application-test.yml create mode 100644 yyd-demo/demo-biz/src/main/resources/application.yml create mode 100644 yyd-demo/demo-biz/src/main/resources/log4j.xml create mode 100644 yyd-demo/pom.xml create mode 100644 yyd-log/pom.xml create mode 100644 yyd-log/yyd-log-api/pom.xml create mode 100644 yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLog.java create mode 100644 yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogDto.java create mode 100644 yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogFeign.java create mode 100644 yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogFeignFallback.java create mode 100644 yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogQuery.java create mode 100644 yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogVo.java create mode 100644 yyd-log/yyd-log-biz/pom.xml create mode 100644 yyd-log/yyd-log-biz/src/main/java/com/yyd/log/LogApplication.java create mode 100644 yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/KafkaConsumerService.java create mode 100644 yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogMapper.java create mode 100644 yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogMapper.xml create mode 100644 yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogRest.java create mode 100644 yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogService.java create mode 100644 yyd-log/yyd-log-biz/src/main/resources/application-devv.yml create mode 100644 yyd-log/yyd-log-biz/src/main/resources/application-pro.yml create mode 100644 yyd-log/yyd-log-biz/src/main/resources/application-test.yml create mode 100644 yyd-log/yyd-log-biz/src/main/resources/application.yml create mode 100644 yyd-log/yyd-log-biz/src/main/resources/logback-spring.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..d5bc2c5 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..fbca249 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml new file mode 100644 index 0000000..02b915b --- /dev/null +++ b/.idea/git_toolbox_prj.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..1cd1655 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d5cd614 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..797acea --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/HELP.md b/HELP.md new file mode 100644 index 0000000..b546390 --- /dev/null +++ b/HELP.md @@ -0,0 +1,14 @@ +# Getting Started + +### Reference Documentation +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.4.1/maven-plugin/reference/html/) +* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.4.1/maven-plugin/reference/html/#build-image) + +### Guides +The following guides illustrate how to use some features concretely: + +* [Service Registration and Discovery](https://spring.io/guides/gs/service-registration-and-discovery/) + diff --git a/README.md b/README.md new file mode 100644 index 0000000..36b9eeb --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ + +## 赢乒网项目结构 +### 一、目录说明 +``` +ttvictory -- 根项目 + │ ├─yyd-base -- 微服务的基础设施中心 + │ │ ├─yyd-base-common -- DTO/VO/QUERY/BASEENTITY等的声明 + │ │ ├─yyd-base-handler -- 全局异常处理模块 + │ │ ├─yyd-base-jdbc -- 数据库访问层集成了mybaties + │ │ ├─yyd-base-reids -- 公共的 redis 操作模块 + │ ├─yyd-center -- 公共基础依赖模块 + │ │ ├─yyd-center-gateway -- 提供统一的路由方式和网关基本的功能,例如:安全,监控/指标,和限流。通过kafak记录请求日志。 + │ ├─yyd-demo --业务模块: 练习演示 + │ │ ├─yyd-demo-api -- 演示模块的 DTO、VO、FEIGN 等的声明和定义 + │ │ ├─yyd-demo-biz -- 演示模块的 Feign 远程调用模块,包含controller层、service层、dao层的代码实现 + │ ├─yyd-log --日志模块: 通过消费kafa消息来实现平台访问日志的存储 + │ │ ├─yyd-log-api -- DTO、VO、FEIGN 等的声明和定义 + │ │ ├─yyd-log-biz -- Feign 远程调用模块,包含controller层、service层、dao层的代码实现 +``` +### 二、项目用到的组件 +``` +1、nacos +2、redis +3、zookeeper +4、kafka +5、mybaties +6、mysql +7、SpringClude +8、gateway +``` \ No newline at end of file diff --git a/doc/demo.sql b/doc/demo.sql new file mode 100644 index 0000000..efb3ecc --- /dev/null +++ b/doc/demo.sql @@ -0,0 +1,88 @@ +/* +SQLyog v10.2 +MySQL - 8.0.22 : Database - demo +********************************************************************* +*/ + + +/*!40101 SET NAMES utf8 */; + +/*!40101 SET SQL_MODE=''*/; + +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +CREATE DATABASE /*!32312 IF NOT EXISTS*/`demo` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */; + +USE `demo`; + +/*Table structure for table `sys_user` */ + +DROP TABLE IF EXISTS `sys_user`; + +CREATE TABLE `sys_user` ( + `id` int NOT NULL AUTO_INCREMENT, + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int NOT NULL DEFAULT '0' COMMENT '记录版本,锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', + `modifyTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录最后修改时间', + `isEnable` int NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用', + `state` int DEFAULT '1' COMMENT '隐藏本部门:隐藏本部门开启后,本部门将不会显示在公司通讯录中', + `isDelete` int DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建者', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '更新者', + `userName` varchar(64) DEFAULT NULL COMMENT '登录名,登录名不能相同', + `password` varchar(50) DEFAULT NULL COMMENT '密码(加密或签名后)', + `pwdDayslimit` varchar(11) DEFAULT NULL COMMENT '密码修改时限', + `pwdModifyTime` datetime DEFAULT NULL COMMENT '最后一次密码修改时间', + `onlineState` int DEFAULT NULL COMMENT '在线状态(0为离线、1为在线)', + `token` varchar(255) DEFAULT NULL COMMENT '用户登录时随机生成身份验证字符串', + `isAdmin` varchar(1) DEFAULT NULL COMMENT '是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员', + `appId` varchar(100) DEFAULT NULL COMMENT '手机登录唯一标识,手机与用户绑定字段', + `staffSid` varchar(36) DEFAULT NULL COMMENT '关联的人员sid', + `mobile` varchar(11) DEFAULT NULL COMMENT '手机号', + `userType` int DEFAULT NULL COMMENT '用户类型:1员工、2客户、3供应商', + `headImage` varchar(255) DEFAULT NULL COMMENT '用户头像', + PRIMARY KEY (`id`), + KEY `staffsid_index` (`staffSid`) +) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COMMENT='用户表'; + +/*Data for the table `sys_user` */ + +insert into `sys_user`(`id`,`sid`,`lockVersion`,`createTime`,`modifyTime`,`isEnable`,`state`,`isDelete`,`remarks`,`createBySid`,`updateBySid`,`userName`,`password`,`pwdDayslimit`,`pwdModifyTime`,`onlineState`,`token`,`isAdmin`,`appId`,`staffSid`,`mobile`,`userType`,`headImage`) values (19,'0d8d8119-d476-47ce-89c2-075cd809dda6',43,'2021-09-07 09:44:10','2021-10-08 13:48:29',1,1,0,NULL,NULL,NULL,'15097329653','435d6b71ca083adda32844da3a452bd9',NULL,NULL,NULL,NULL,'1',NULL,'0251fb5d-b110-4a5c-94b8-9accc24779ec','15097329653',2,'http://120.46.131.15:8111/upload/appImage/headImage.jpg'),(23,'427a2fb0-60c5-409f-bea4-4eb441041ae6',1,'2021-09-11 09:16:27','2021-09-13 09:49:50',1,1,0,NULL,NULL,NULL,'13028639395','c4fd31684f3c9bec8202553f2d4c433d',NULL,NULL,NULL,'AppeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiIyMyIsImlzcyI6IldCSyIsImV4cCI6MTYzMjcyMjE1OH0.y26IzegfIxPziATEUGqnxtJ89isECXkeWZXZ0jSDdXQ','1',NULL,'e73f6e2c-1bda-4a4d-8390-ac7a2bf25854','13028639395',1,NULL),(24,'271caa91-15cf-11ec-867b-fa163e0cb33c',3,'2021-09-15 10:47:16','2021-10-08 13:48:52',1,1,0,NULL,NULL,NULL,'15027758181','a5c9311ca0ca04dd80ad5b790dc43ac6',NULL,NULL,NULL,'AppeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiIyNCIsImlzcyI6IldCSyIsImV4cCI6MTYzMjg3ODUwMH0.LQp0S3_Bq-zqUhb0V-sLJTY-2ewP71gBPQym3GGmwGA','1','866370035001056','84ad9481-15cf-11ec-867b-fa163e0cb33c','15027758181',1,'http://120.46.131.15:8111/upload/20210925/1632580467510007417639925698805.jpeg'),(25,'54d80b14-1847-11ec-9205-6479f0dd0373',1,'2021-09-18 14:12:58','2021-09-18 14:13:00',1,1,0,NULL,NULL,NULL,'11111111111','8ee032c2f0b2db72c45ac82007c8dac3',NULL,NULL,NULL,'AppeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiIyNSIsImlzcyI6IldCSyIsImV4cCI6MTYzNTA0NzI5NH0.GAS_wMLV1Ie5Bkv1H3WprREaLMd8-sGHQywy3c_4KJg','1','CD91A73825FE473F795D2682D2B3CED34E75B51F','986c55c6-1847-11ec-9205-6479f0dd0373','11111111111',1,'http://120.46.131.15:8111/upload/20211016/163436154792209708264777054085.jpg'),(26,'4d074bf5-1c11-11ec-867b-fa163e0cb33c',4,'2021-09-23 09:56:01','2021-10-08 11:49:18',1,1,0,NULL,NULL,NULL,'13521535236','06c0b20d3c277ef9e0efc01c4b882496',NULL,NULL,NULL,'AppeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiIyNiIsImlzcyI6IldCSyIsImV4cCI6MTYzNDM3NzMxM30.GcUFL4ghYuOdza56MbBqXKmKF1Yuv0_UaZHeoyKhxFc','1','B42E81D5CB700F38BF18BFA559A76B12B82DBF11','697cc954-1c11-11ec-867b-fa163e0cb33c','13521535236',1,'http://120.46.131.15:8111/upload/20210925/1632550340701047756407535704326.jpg'),(29,'884714de-1e8e-11ec-867b-fa163e0cb33c',1,'2021-09-26 13:57:33','2021-09-26 13:57:35',1,1,0,NULL,NULL,NULL,'17778266271','06c0b20d3c277ef9e0efc01c4b882496',NULL,NULL,NULL,'AppeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiIyOSIsImlzcyI6IldCSyIsImV4cCI6MTYzNTA2MTM3OH0.KPpNPLlfO65WDYiuwDMdVw4FZUUsAxBDnrL7bH97iIc','1','A4B5F71CEA1D1E139B8F310CB792DC8A37E99139','9d60cfa5-1e8f-11ec-867b-fa163e0cb33c','17778266271',1,'http://120.46.131.15:8111/upload/20211016/16343699056380434548451588893.png'),(30,'2af18381-c043-4af5-82b1-22a77982fa84',7,'2021-09-28 13:41:24','2021-10-08 14:08:35',1,1,0,NULL,NULL,NULL,'15832538126','4d6017ba7a372b0725344ee5837f04ad',NULL,NULL,NULL,NULL,'1',NULL,'c71a2cb6-21fe-48a6-879a-38f2a994787b','15832538126',2,'http://120.46.131.15:8111/upload/appImage/headImage.jpg'),(38,'9ff6a706-8028-4ee2-bb54-e4106aa38821',0,'2021-10-19 08:50:52','2021-10-19 08:50:52',1,1,0,NULL,NULL,NULL,'13623307393','8ee032c2f0b2db72c45ac82007c8dac3',NULL,NULL,NULL,NULL,NULL,NULL,'c18e8645-314d-4810-83f0-1beda7c7a259','13623307393',2,'http://120.46.131.15:8111/upload/appImage/headImage.jpg'),(39,'5818cd7a-070e-4e65-9426-be5b5488b9cd',0,'2021-10-19 09:39:58','2021-10-19 09:39:58',1,1,0,NULL,NULL,NULL,'13733217919','d0871a120f629163bc09101acffaa8d9',NULL,NULL,NULL,NULL,NULL,NULL,'74fe4e97-23d6-47d5-bce4-87d8bae23fee','13733217919',2,'http://120.46.131.15:8111/upload/appImage/headImage.jpg'),(40,'16969f23-231c-4037-be41-4445c81d3ba4',0,'2021-10-25 08:41:23','2021-10-25 08:41:23',1,1,0,NULL,NULL,NULL,'15831219661','3e8a8c2c724ea73265563e3da38c8e6f',NULL,NULL,NULL,NULL,'1',NULL,'1a2d5fe1-b948-422c-bbac-34630e8b7229','15831219661',1,NULL),(41,'d3e0c2e5-9143-45b7-9770-03d431d08281',0,'2021-10-25 11:46:07','2021-10-25 11:46:07',1,1,0,NULL,NULL,NULL,'18833283113','8ee032c2f0b2db72c45ac82007c8dac3',NULL,NULL,NULL,'AppeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTm8iOiI0MSIsImlzcyI6IldCSyIsImV4cCI6MTYzNTIyMDMwM30.bbh0gUAVsnY-dpsRXwJk7xCg6OqJidbDMNgTrCoQv94','1','BB76A73B990D782C740D69BC1F3C7F54D6B1D2F4','eb264f02-ff8d-4360-8f2f-bb6818f613e6','18833283113',1,NULL); + +/*Table structure for table `system_log` */ + +DROP TABLE IF EXISTS `system_log`; + +CREATE TABLE `system_log` ( + `id` int NOT NULL AUTO_INCREMENT, + `sid` varchar(64) NOT NULL, + `lockVersion` int DEFAULT NULL, + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `isEnable` int DEFAULT '1', + `state` int DEFAULT '1', + `isDelete` int DEFAULT '0', + `remarks` varchar(255) DEFAULT NULL, + `createBySid` varchar(64) DEFAULT NULL, + `updateBySid` varchar(64) DEFAULT NULL, + `eventName` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件名称或类别', + `eventContent` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '事件内容', + `eventUrl` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '事件url', + `userSid` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户sid', + `userName` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户名', + `userIp` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户iP', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=810 DEFAULT CHARSET=utf8 COMMENT='系统日志表'; + +/*Data for the table `system_log` */ + +insert into `system_log`(`id`,`sid`,`lockVersion`,`createTime`,`modifyTime`,`isEnable`,`state`,`isDelete`,`remarks`,`createBySid`,`updateBySid`,`eventName`,`eventContent`,`eventUrl`,`userSid`,`userName`,`userIp`) values (1,'808c914b-d079-430f-ac19-4480e2f2e003',0,'2021-08-26 17:24:57','2021-08-26 17:24:58',1,1,0,NULL,NULL,NULL,'用户模块-用户列表',NULL,NULL,'15097329653',NULL,'0.0.0.0'),(2,'bc778929-3a59-44e7-b259-e3bf7053ba1a',0,'2021-08-26 21:40:43','2021-08-26 21:40:44',1,1,0,NULL,NULL,NULL,'系统管理-日志列表',NULL,NULL,'15097329653',NULL,'0.0.0.0'),(3,'fe2aab71-52e3-4527-bc58-753e829c3792',0,'2021-08-26 21:40:46','2021-08-26 21:40:47',1,1,0,NULL,NULL,NULL,'系统管理-日志列表',NULL,NULL,'15097329653',NULL,'0.0.0.0'),(4,'3ae79a44-4a03-496b-a5cb-b0cd81b54bb3',0,'2021-08-26 21:40:53','2021-08-26 21:40:53',1,1,0,NULL,NULL,NULL,'系统管理-日志列表',NULL,NULL,'15097329653',NULL,'0.0.0.0'),(5,'1b8ef73e-562c-4aa5-82b2-1626bafd1eb7',0,'2021-08-27 14:13:06','2021-08-27 14:13:06',1,1,0,NULL,NULL,NULL,'0.0.0.0',NULL,NULL,NULL,'123456','0.0.0.0'),(6,'44195544-b006-440b-aa8f-a2b067b08911',0,'2021-08-27 15:19:03','2021-08-27 15:19:03',1,1,0,NULL,NULL,NULL,'0.0.0.0',NULL,NULL,NULL,'123456','0.0.0.0'),(7,'cbda9a2e-82b8-43aa-be0a-adbaa7345300',0,'2021-08-30 15:15:34','2021-08-30 15:15:34',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(8,'47c10577-8a98-4ce6-9e2a-99055d2f26cc',0,'2021-08-30 15:17:12','2021-08-30 15:17:12',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(9,'ea00ee6a-0359-4b0d-9301-2f4c4ab53253',0,'2021-08-30 15:17:38','2021-08-30 15:17:38',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(10,'89c60d12-f951-4609-8d08-04ac1b30bcc2',0,'2021-08-30 15:22:08','2021-08-30 15:22:08',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(11,'389177b1-61b1-4f9e-b721-d5f77505723d',0,'2021-08-30 15:32:53','2021-08-30 15:32:53',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(12,'c4f3ce1e-99f8-4322-b259-5333ddc3c3ed',0,'2021-08-30 15:34:44','2021-08-30 15:34:44',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(13,'7c243aea-2cb0-40f8-ab3b-2bcaa80a6c65',0,'2021-08-30 15:35:24','2021-08-30 15:35:24',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(14,'dde547c1-36e1-48cc-bf74-3304b88a9b68',0,'2021-08-30 15:36:10','2021-08-30 15:36:10',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(15,'866690b9-6510-4b3d-ba5a-c305537be429',0,'2021-08-30 15:39:34','2021-08-30 15:39:34',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(16,'a33e3a26-9b13-4ad0-abf5-76a444209e9b',0,'2021-08-30 15:52:39','2021-08-30 15:52:39',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(17,'5e828615-5e6b-429e-8d4f-d9295680071c',0,'2021-08-30 16:04:05','2021-08-30 16:04:05',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(18,'12a8f464-8805-4c19-bdb4-d99277d7dc13',0,'2021-08-30 16:04:09','2021-08-30 16:04:09',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(19,'317260a0-ec2f-45d5-88e3-90c7d0681174',0,'2021-08-30 16:06:02','2021-08-30 16:06:02',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(20,'244cc87c-79c6-44ab-802a-a48071f9c148',0,'2021-08-30 16:08:41','2021-08-30 16:08:41',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(21,'90d68efb-58d2-4860-8bea-fc2423fd2de4',0,'2021-08-30 16:14:55','2021-08-30 16:14:55',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(22,'70b8003c-94a3-42f3-9d45-b9ccb8840762',0,'2021-08-30 16:15:00','2021-08-30 16:15:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(23,'caa205b3-5313-4951-9f2b-8083c369c674',0,'2021-08-30 16:18:16','2021-08-30 16:18:16',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(24,'10fdeb08-f77e-428e-b4ee-2d492c090237',0,'2021-08-30 16:18:19','2021-08-30 16:18:19',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(25,'9903f812-b264-4ff9-8edf-df0495cd538f',0,'2021-08-30 16:18:56','2021-08-30 16:18:56',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(26,'6740a57e-d6bd-49cf-ac01-4258a495ae13',0,'2021-08-30 16:34:42','2021-08-30 16:34:42',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(27,'b3db216d-da0b-430b-820a-8c750386aa25',0,'2021-08-30 16:34:59','2021-08-30 16:34:59',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(28,'faad3c51-201e-4e53-b102-a66770308fea',0,'2021-08-30 16:35:02','2021-08-30 16:35:02',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(29,'da7a7cb8-f49e-4c45-8288-8642b870bbf6',0,'2021-08-30 16:44:41','2021-08-30 16:44:41',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(30,'4a3a195b-a6f3-4c64-8f6f-4ad69e02ec40',0,'2021-08-30 16:54:35','2021-08-30 16:54:35',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(31,'0891c24a-1e7f-4f57-8a2a-cfc9983dac96',0,'2021-08-30 16:55:11','2021-08-30 16:55:11',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(32,'7a76720a-fb62-4ab4-b3b5-e712b3b95c6c',0,'2021-08-30 16:55:17','2021-08-30 16:55:17',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(33,'c74ccfea-10e0-4cf8-881f-c07bbdd5cb47',0,'2021-08-30 17:05:10','2021-08-30 17:05:10',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(34,'2e9e1bd4-e84a-47ef-b192-619a08c31615',0,'2021-08-30 17:05:42','2021-08-30 17:05:42',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(35,'1d0dd358-b5d3-40fc-aa9f-84856bf62eb3',0,'2021-08-30 17:05:48','2021-08-30 17:05:48',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(36,'9a045953-eb53-472d-a27f-9098d7202765',0,'2021-08-30 17:05:58','2021-08-30 17:05:58',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(37,'ec1fc6cc-3318-4053-a139-519102a77ac9',0,'2021-08-30 17:06:12','2021-08-30 17:06:12',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(38,'2490fb3f-015e-47fe-9a06-32d39647e522',0,'2021-08-30 17:06:22','2021-08-30 17:06:22',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(39,'06b93f38-1825-46ee-a757-ce662c85c28f',0,'2021-08-30 17:06:27','2021-08-30 17:06:27',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(40,'0e696b3d-8155-405b-94f8-bd6643e6d8ca',0,'2021-08-30 17:06:43','2021-08-30 17:06:43',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(41,'eb8bcc26-cb2a-4ea9-921d-734f2a0746d9',0,'2021-08-30 17:10:02','2021-08-30 17:10:02',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(42,'9d3e0b0f-bf08-4f0f-a9d7-5500567f49a5',0,'2021-08-30 17:14:53','2021-08-30 17:14:53',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(43,'ede5540f-3968-4256-b099-b6656d2ec81a',0,'2021-08-30 17:17:12','2021-08-30 17:17:12',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(44,'3f6e98cc-7042-4e62-9c09-50160efa4718',0,'2021-08-30 17:17:19','2021-08-30 17:17:19',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(45,'54e618ca-e65e-43f9-97ca-cf1bd120d126',0,'2021-08-30 17:17:35','2021-08-30 17:17:35',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(46,'da983182-e54f-4925-8fbf-4303e0d2a3d6',0,'2021-08-30 17:17:44','2021-08-30 17:17:44',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(47,'bd59bebd-f4fb-41bb-8fd3-43323018621f',0,'2021-08-30 17:18:28','2021-08-30 17:18:28',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(48,'feca77b2-d78a-4f59-ae2c-40517fafc23b',0,'2021-08-30 17:18:31','2021-08-30 17:18:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(49,'1075bcbd-0826-4d67-8387-8b9932a8843e',0,'2021-08-30 17:18:54','2021-08-30 17:18:54',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(50,'e757956c-6bb4-4e07-b241-0c82c67f1bd0',0,'2021-08-30 17:19:06','2021-08-30 17:19:06',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(51,'c489da85-c114-4970-ae73-d5ad875d4e2a',0,'2021-08-30 17:19:21','2021-08-30 17:19:21',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(52,'10d319ce-6c4e-4e7f-a50a-80c3d76b001b',0,'2021-08-30 17:31:50','2021-08-30 17:31:50',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(53,'1e904e71-1d55-44c1-85bc-a4785a414697',0,'2021-08-30 17:39:56','2021-08-30 17:39:56',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(54,'4b72292b-3a07-4cd3-8753-a5c190507d42',0,'2021-08-30 17:40:00','2021-08-30 17:40:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(55,'9256cf78-ee1e-40c7-9a94-62f197f2ba53',0,'2021-08-30 18:14:39','2021-08-30 18:14:39',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(56,'30079996-7ec1-41ac-8dc2-5d2de52eb417',0,'2021-08-30 18:14:57','2021-08-30 18:14:57',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(57,'1e0d7883-f09d-4765-bdd7-dada8e9a2c0a',0,'2021-08-30 18:22:57','2021-08-30 18:22:57',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(58,'dd2725da-1f21-458e-a75a-f12eebeb05a4',0,'2021-08-30 18:23:05','2021-08-30 18:23:05',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(59,'3cf5d104-3390-49b0-b0a9-ff2d862cb903',0,'2021-08-30 20:06:22','2021-08-30 20:06:22',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(60,'39fe56b2-6780-4547-9d91-371cf060c094',0,'2021-08-31 15:35:44','2021-08-31 15:35:44',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(61,'38a0bb43-aa51-47ac-b405-aaac1c7ea67a',0,'2021-08-31 15:36:31','2021-08-31 15:36:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(62,'e54c3177-ca9a-41b8-83e0-fff4d25b05a2',0,'2021-08-31 15:36:31','2021-08-31 15:36:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(63,'a4e18068-9cd1-4679-88d1-2ee7a01073cb',0,'2021-08-31 15:36:36','2021-08-31 15:36:36',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(64,'aee08e32-b7ec-454f-9ac8-f57c21f8771a',0,'2021-08-31 15:39:56','2021-08-31 15:39:56',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(65,'f5198eb5-0fa4-4518-a720-c0bfe097ee7a',0,'2021-08-31 15:40:01','2021-08-31 15:40:01',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(66,'8ba66dfd-d2ba-4352-85c3-d676219b8bf6',0,'2021-08-31 15:41:28','2021-08-31 15:41:28',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(67,'6f11701d-e0b4-431e-b19b-23bbf056d3d3',0,'2021-08-31 15:51:31','2021-08-31 15:51:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(68,'1237ce4c-95c8-4957-909b-028f918b3c6f',0,'2021-08-31 15:51:49','2021-08-31 15:51:49',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(69,'101c5381-65af-46d9-bdd4-d18a32e2b083',0,'2021-08-31 15:53:37','2021-08-31 15:53:37',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(70,'bf0e00b6-7e1b-4b18-a56d-28056b094552',0,'2021-08-31 15:53:49','2021-08-31 15:53:49',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(71,'ab0dd624-a9b2-4cf2-ad6a-6fe1d36934f4',0,'2021-09-01 09:18:31','2021-09-01 09:18:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(72,'a8872187-013d-4238-b512-c6cbc879c042',0,'2021-09-01 11:13:15','2021-09-01 11:13:15',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(73,'01a252eb-fc22-4eed-9a81-d6f7f695e265',0,'2021-09-01 11:13:25','2021-09-01 11:13:25',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(74,'f54d79e5-3ffc-4f50-9f34-aff9ff3ff69d',0,'2021-09-01 11:13:41','2021-09-01 11:13:41',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(75,'c5f45c9f-2e5e-4393-8787-d9b6d5f59f19',0,'2021-09-01 11:13:54','2021-09-01 11:13:54',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(76,'1c313bcb-9d12-42f8-bea1-5a754e8957ea',0,'2021-09-01 11:13:57','2021-09-01 11:13:57',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(77,'6a4d26be-3b3c-41ce-a1b0-bcd1f0da2b8d',0,'2021-09-01 11:21:24','2021-09-01 11:21:24',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(78,'7a218d38-2680-4359-b049-bf69df48c4b9',0,'2021-09-01 11:22:27','2021-09-01 11:22:27',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(79,'68d921ec-67aa-4d68-a161-a38b219c9dde',0,'2021-09-03 11:02:22','2021-09-03 11:02:22',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(80,'ff85b0bb-3358-4f4d-bf66-574e7b3f19ef',0,'2021-09-03 11:02:48','2021-09-03 11:02:48',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(81,'143422a3-fc0b-4404-a39a-4ff2e6086e1b',0,'2021-09-03 11:22:58','2021-09-03 11:22:58',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(82,'5cfa2e8a-b8f2-44e5-9552-2e3e9194700e',0,'2021-09-03 11:23:04','2021-09-03 11:23:04',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(83,'10a57727-fbb8-4f94-ab93-de98e2aa9b91',0,'2021-09-03 15:49:00','2021-09-03 15:49:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(84,'154fe3ac-6797-4ab3-8739-ea5a29886658',0,'2021-09-03 16:20:34','2021-09-03 16:20:34',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(85,'1138b916-808b-437f-8050-7d55c1b3a955',0,'2021-09-03 16:45:13','2021-09-03 16:45:13',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(86,'1c6b312f-b87f-48cf-ad6e-cb40aa983836',0,'2021-09-03 16:49:25','2021-09-03 16:49:25',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(87,'01b8f8bb-b0b3-49eb-8b89-b538d6e13e9b',0,'2021-09-03 16:50:13','2021-09-03 16:50:13',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(88,'f53e3ec1-2796-47bb-a21c-d2849bd6440c',0,'2021-09-04 14:49:40','2021-09-04 14:49:40',1,1,0,NULL,NULL,NULL,'22222',NULL,NULL,NULL,'11112',NULL),(89,'34f15b0b-c8be-44b7-9312-6d65be14911f',0,'2021-09-04 15:38:34','2021-09-04 15:38:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','0:0:0:0:0:0:0:1'),(90,'43be6b2f-68db-4e76-adc2-3aaf7eeea925',0,'2021-09-04 16:51:04','2021-09-04 16:51:04',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','0:0:0:0:0:0:0:1'),(91,'1b6704cf-f2fb-4eac-a70f-044a8d0b91a6',0,'2021-09-04 17:01:02','2021-09-04 17:01:02',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','0:0:0:0:0:0:0:1'),(92,'c0046e55-6b80-4a69-8999-a7fae81c821a',0,'2021-09-04 18:13:03','2021-09-04 18:13:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','0:0:0:0:0:0:0:1'),(93,'3bd12ab9-e115-4275-b3d3-c103d05e0cb9',0,'2021-09-04 18:40:22','2021-09-04 18:40:22',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(94,'52864660-f0cf-4d12-85cb-726295fbb365',0,'2021-09-06 10:13:55','2021-09-06 10:13:55',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','192.168.1.102,127.0.0.1'),(95,'607b8149-fff6-4065-9e99-8ea96f747cba',0,'2021-09-06 11:18:23','2021-09-06 11:18:23',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(96,'dbff7723-daf9-455c-8299-dbf9b7358403',0,'2021-09-06 11:19:31','2021-09-06 11:19:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0b4d1362-b3a1-4487-9046-a5ed56bd8f59','15097329653','0.0.0.0'),(97,'faf17974-5eed-45a9-bb43-6a373ce51008',0,'2021-09-06 11:28:32','2021-09-06 11:28:32',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','192.168.1.102,127.0.0.1'),(98,'c368f711-4745-401e-ab05-0cfd5911b26e',0,'2021-09-06 14:43:41','2021-09-06 14:43:41',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(99,'8864e45a-1ea7-40c3-ba6e-114297e73291',0,'2021-09-06 15:27:14','2021-09-06 15:27:14',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(100,'c6cdb2a4-2b0d-4107-a256-e461ef0793fe',0,'2021-09-06 15:41:05','2021-09-06 15:41:05',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(101,'433db301-fac3-4f78-b1e2-63158db257f9',0,'2021-09-06 16:10:01','2021-09-06 16:10:01',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(102,'cbdd7c8e-7e03-4b93-a6bc-49c2ebc61c0b',0,'2021-09-06 16:10:36','2021-09-06 16:10:36',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(103,'1d09e31b-3b8a-4a06-b52c-b9f897e0978a',0,'2021-09-06 16:29:22','2021-09-06 16:29:22',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(104,'1e04e29d-69d5-4e3d-9be4-b522499372bd',0,'2021-09-06 16:30:58','2021-09-06 16:30:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13171888236','127.0.0.1'),(105,'7e1cc35c-5d76-4b3c-ad1e-b93e5167d8f5',0,'2021-09-06 16:45:38','2021-09-06 16:45:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','0:0:0:0:0:0:0:1'),(106,'0d074bc4-28fa-4172-b04d-8d3ec76a5de3',0,'2021-09-07 09:17:15','2021-09-07 09:17:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','192.168.1.102,127.0.0.1'),(107,'f94c1844-3815-4fd2-80b9-a96cbea4f2df',0,'2021-09-07 09:19:04','2021-09-07 09:19:04',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','0:0:0:0:0:0:0:1'),(108,'3e46620c-fd78-4598-9993-431aed563119',0,'2021-09-07 09:29:43','2021-09-07 09:29:43',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','192.168.1.102,127.0.0.1'),(109,'d0ec8a63-7489-4873-b1ff-6c0efce697ab',0,'2021-09-07 09:30:03','2021-09-07 09:30:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','192.168.1.102,127.0.0.1'),(110,'325a1334-f2bc-43c4-a1e7-cc7dea7e0d6a',0,'2021-09-07 09:37:25','2021-09-07 09:37:25',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','192.168.1.102,127.0.0.1'),(111,'c1ceb2a7-bf90-41d4-8be9-5fe2d4c712ec',0,'2021-09-07 09:42:52','2021-09-07 09:42:52',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','192.168.1.102,127.0.0.1'),(112,'cac5c675-1484-4121-92ee-2eb9ddedd006',0,'2021-09-07 10:38:20','2021-09-07 10:38:20',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(113,'d820ce06-a85e-4980-83bd-c20514b4ec37',0,'2021-09-07 10:42:31','2021-09-07 10:42:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(114,'ccc1e8c3-5730-4933-8672-55b0e7f53668',0,'2021-09-07 10:45:52','2021-09-07 10:45:52',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(115,'f2e43076-ac6f-46a9-8b9c-fb06da35f3a4',0,'2021-09-07 11:10:57','2021-09-07 11:10:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(116,'00e21f19-9a5a-4a77-a5aa-59ff0f5f97af',0,'2021-09-07 11:22:27','2021-09-07 11:22:27',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(117,'1ea36ac0-c7a0-424b-9cae-2a0dc705a906',0,'2021-09-07 11:33:26','2021-09-07 11:33:26',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(118,'f07fe2df-5b46-4ce3-a152-803447d9dd38',0,'2021-09-07 11:34:41','2021-09-07 11:34:41',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(119,'91d1a362-7079-478f-bc6a-ace31005254e',0,'2021-09-07 11:35:19','2021-09-07 11:35:19',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(120,'a444b218-62f0-44b9-aa71-a7cf1c01dc9d',0,'2021-09-07 11:37:17','2021-09-07 11:37:17',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(121,'3391c278-a371-4ca3-beac-fc30b7216e00',0,'2021-09-07 11:38:53','2021-09-07 11:38:53',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(122,'78a2ac23-7103-4808-a783-9ee2334c574d',0,'2021-09-07 11:39:06','2021-09-07 11:39:06',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(123,'e8fe7436-7b7e-48fd-9e0f-df395e7db05b',0,'2021-09-07 11:41:46','2021-09-07 11:41:46',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(124,'54b97e9d-e57e-4f6a-aae5-7ce2388d4cf9',0,'2021-09-07 11:44:10','2021-09-07 11:44:10',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(125,'fd7d0144-833d-4fae-a1d5-d14d298148e3',0,'2021-09-07 11:44:18','2021-09-07 11:44:18',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(126,'806823fb-230c-4740-b07e-0c0249f4755c',0,'2021-09-07 11:44:24','2021-09-07 11:44:24',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(127,'fdca45d5-da2b-4afd-985d-ab13dfa6614c',0,'2021-09-07 11:45:52','2021-09-07 11:45:52',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(128,'94d98bd2-3b27-45a7-939c-d2f0c0c6806f',0,'2021-09-07 11:47:04','2021-09-07 11:47:04',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(129,'d487e7d6-2ea8-466f-8cab-d14a4ae5c493',0,'2021-09-07 11:49:02','2021-09-07 11:49:02',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(130,'378925ce-2b02-4a81-8cdd-2fb2562ff4f3',0,'2021-09-07 11:51:22','2021-09-07 11:51:22',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(131,'a6165480-4e79-45bf-83b2-33f3fa930f69',0,'2021-09-07 11:52:19','2021-09-07 11:52:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(132,'284cad3e-e45e-461a-b223-b0db5612d8e1',0,'2021-09-07 13:49:48','2021-09-07 13:49:48',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(133,'9fd1249f-e511-4b05-aabc-112b6acc360b',0,'2021-09-07 14:01:01','2021-09-07 14:01:01',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(134,'48f1c14c-e563-4cd4-b3d9-8f446eccc588',0,'2021-09-07 14:02:06','2021-09-07 14:02:06',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(135,'bc40e89f-9065-40ab-9a62-4628dd0ec799',0,'2021-09-07 14:03:19','2021-09-07 14:03:19',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(136,'1e4f3616-e46a-4fa1-b265-9db5aeaad36c',0,'2021-09-07 14:04:10','2021-09-07 14:04:10',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(137,'a55ebd34-5aa0-4dd8-81b0-b3ebd142f3c0',0,'2021-09-07 14:04:28','2021-09-07 14:04:28',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(138,'b6deca9c-0c6c-4feb-84a9-4357c6a3a82d',0,'2021-09-07 14:15:48','2021-09-07 14:15:48',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','0:0:0:0:0:0:0:1'),(139,'c2819a1e-5722-4570-bafe-04efe63a22b1',0,'2021-09-07 15:02:40','2021-09-07 15:02:40',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(140,'902ec0f0-1a19-4562-b040-28ecb369abcd',0,'2021-09-07 15:10:44','2021-09-07 15:10:44',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(141,'7a973de7-936f-4632-9e65-30bdb09c96e0',0,'2021-09-07 15:11:07','2021-09-07 15:11:07',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(142,'4000b3f6-1c5c-4174-b362-ab652c351881',0,'2021-09-07 15:11:32','2021-09-07 15:11:32',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','0:0:0:0:0:0:0:1'),(143,'4d4d3857-88bc-4534-802e-4ff1389e18c5',0,'2021-09-07 15:26:01','2021-09-07 15:26:01',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(144,'a3a9cc98-cd9d-4d89-8c96-24dd9035ad75',0,'2021-09-07 15:26:38','2021-09-07 15:26:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(145,'05c2c24c-d0b9-4072-b60c-0d2344f50984',0,'2021-09-07 15:34:13','2021-09-07 15:34:13',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(146,'0d85bd14-e3ea-4930-b5dc-d80fe0da696d',0,'2021-09-07 15:34:19','2021-09-07 15:34:19',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(147,'40fb5bbc-f33e-4bca-88a0-a5d358da6204',0,'2021-09-07 15:34:33','2021-09-07 15:34:33',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(148,'7060843c-c351-4c55-8971-04234446460a',0,'2021-09-07 15:34:37','2021-09-07 15:34:37',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(149,'03491a7c-567b-4fd0-8118-2101d3bb6dba',0,'2021-09-07 15:34:44','2021-09-07 15:34:44',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(150,'f82a6d76-18f5-4378-869e-562a9091bd4d',0,'2021-09-07 15:34:51','2021-09-07 15:34:51',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(151,'1dc098cc-5192-4f8e-969e-ad7cc5d6a6da',0,'2021-09-07 15:45:38','2021-09-07 15:45:38',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(152,'6280da60-fea5-4605-b7d2-ade26c46299c',0,'2021-09-07 15:45:56','2021-09-07 15:45:56',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(153,'1aab4e71-d663-499b-b54a-df0bc5bdce8a',0,'2021-09-07 16:00:10','2021-09-07 16:00:10',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(154,'7d34c5df-8afd-422e-ad33-6ee212f2e6fa',0,'2021-09-07 17:40:39','2021-09-07 17:40:39',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(155,'ec2c64e4-2fe4-4345-ab29-aa1efbd49a1b',0,'2021-09-07 17:44:09','2021-09-07 17:44:09',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(156,'c9d89354-49f7-4d9e-b7cf-2190070cb4fe',0,'2021-09-07 17:52:30','2021-09-07 17:52:30',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(157,'b5d7f1a8-1b27-4885-a37c-7f501886f0ea',0,'2021-09-07 17:52:40','2021-09-07 17:52:40',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(158,'0cbf2bec-3e66-4ecf-a285-b79670bd19ed',0,'2021-09-07 17:54:48','2021-09-07 17:54:48',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(159,'b0cbd8c4-708e-414e-a6dd-4b5b6d46cb83',0,'2021-09-07 18:01:00','2021-09-07 18:01:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(160,'698f53a2-9953-4d3b-ad3a-eff34e43665e',0,'2021-09-07 18:02:01','2021-09-07 18:02:01',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(161,'aa1c5dc2-bdaf-4771-bacb-2a29e7a91cb2',0,'2021-09-08 08:52:24','2021-09-08 08:52:24',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(162,'34f613dc-67ae-4225-a5bc-0b66468e411a',0,'2021-09-08 09:04:52','2021-09-08 09:04:52',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','0:0:0:0:0:0:0:1'),(163,'ca86067c-555c-4121-8b0b-7fbcc3239c4a',0,'2021-09-08 09:37:43','2021-09-08 09:37:43',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(164,'fb3a6224-9cb2-4bf9-b46f-c0a59874072f',0,'2021-09-08 09:57:05','2021-09-08 09:57:05',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(165,'d3170b2e-fb36-4b80-bb86-c4c00a7dbf8c',0,'2021-09-08 10:06:10','2021-09-08 10:06:10',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(166,'71e2e873-5bf8-44b1-b78a-aa50119aeabe',0,'2021-09-08 10:07:31','2021-09-08 10:07:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(167,'72f61a29-aa0d-4856-b081-4f97c93b4947',0,'2021-09-08 10:07:31','2021-09-08 10:07:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(168,'331750f6-d425-400f-8ba3-111197e89f7f',0,'2021-09-08 10:09:27','2021-09-08 10:09:27',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(169,'5932837a-e145-458b-be8c-626f1c0a454b',0,'2021-09-08 10:09:37','2021-09-08 10:09:37',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(170,'674d400d-7b8c-4c1e-ac00-7cd74f7761d4',0,'2021-09-08 10:09:44','2021-09-08 10:09:44',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(171,'1b74b0c1-1443-436c-92ab-0f6d380ec937',0,'2021-09-08 11:40:32','2021-09-08 11:40:32',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(172,'1cc81cd1-8bd0-483f-a4f5-ed8b5e937108',0,'2021-09-08 13:47:44','2021-09-08 13:47:44',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(173,'a7138573-3e0e-48ee-915e-eac97998c401',0,'2021-09-08 14:00:11','2021-09-08 14:00:11',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,0:0:0:0:0:0:0:1'),(174,'ca63483d-2692-4eb5-8021-e4b3e00f0dd8',0,'2021-09-08 16:25:00','2021-09-08 16:25:00',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.228,0:0:0:0:0:0:0:1'),(175,'ced55eda-ea92-41e0-96a1-1125fdf708f0',0,'2021-09-08 16:25:20','2021-09-08 16:25:20',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(176,'559c3a95-18eb-4702-b24a-0de94de882a6',0,'2021-09-08 16:25:37','2021-09-08 16:25:37',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(177,'31984c24-19cf-40c0-b98d-f8fce5fa1a25',0,'2021-09-08 16:32:09','2021-09-08 16:32:09',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.228,0:0:0:0:0:0:0:1'),(178,'6e305670-c44c-4fe1-9e7e-2bf72fd9eaaf',0,'2021-09-08 16:35:20','2021-09-08 16:35:20',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.228,0:0:0:0:0:0:0:1'),(179,'429ef979-9461-406c-baf6-a89ae1fd3a32',0,'2021-09-08 16:36:20','2021-09-08 16:36:20',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(180,'7da044e9-2bae-4ad4-9ba4-d2f10afd698a',0,'2021-09-08 16:37:21','2021-09-08 16:37:21',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.228,0:0:0:0:0:0:0:1'),(181,'29bb3906-d3f3-4137-9969-95d181741cf4',0,'2021-09-09 08:56:16','2021-09-09 08:56:16',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.228,0:0:0:0:0:0:0:1'),(182,'0832cff2-6850-4338-9585-a847e7a0e636',0,'2021-09-09 09:47:34','2021-09-09 09:47:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','0:0:0:0:0:0:0:1'),(183,'d54fcf6a-0b33-40c9-ab5b-16cb88f5ab24',0,'2021-09-09 09:48:35','2021-09-09 09:48:35',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(184,'d3c87a99-cbf0-4e4b-8c88-25f82baeb27f',0,'2021-09-09 10:00:38','2021-09-09 10:00:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(185,'537dce53-df8b-4274-9bc7-45d4ed1a3124',0,'2021-09-09 16:49:44','2021-09-09 16:49:44',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329652','0:0:0:0:0:0:0:1'),(186,'808af350-4a08-4a59-b912-04a97b18a38e',0,'2021-09-10 10:07:30','2021-09-10 10:07:30',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(187,'237b69e6-11ad-45e3-ac9c-67368f01b3a6',0,'2021-09-10 10:08:31','2021-09-10 10:08:31',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(188,'eb4d9b30-5af5-4628-87ed-9d1c2432f242',0,'2021-09-10 10:12:23','2021-09-10 10:12:23',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157'),(189,'237da536-8be0-44ba-a25d-2b5009f49a02',0,'2021-09-10 10:16:58','2021-09-10 10:16:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(190,'d25d6e38-bf81-4ae8-bcfc-6934cde5d137',0,'2021-09-10 10:19:39','2021-09-10 10:19:39',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(191,'920c54a6-002c-448e-bc72-371f681acda0',0,'2021-09-10 10:39:32','2021-09-10 10:39:32',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(192,'6f7a46d4-0c6d-4dc8-87a1-59ee66466134',0,'2021-09-10 11:15:30','2021-09-10 11:15:30',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','0:0:0:0:0:0:0:1'),(193,'1009b9b1-82ee-4066-8072-1c0735ae0055',0,'2021-09-10 11:39:44','2021-09-10 11:39:44',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(194,'5eb64b80-a1fe-4f32-8fc2-98d917e764a1',0,'2021-09-10 11:50:59','2021-09-10 11:50:59',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(195,'11616116-d146-4758-8b59-3fdb462a658a',0,'2021-09-10 14:14:19','2021-09-10 14:14:19',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(196,'1259547f-c804-4a4f-9ebe-b80879ee6a06',0,'2021-09-10 14:14:25','2021-09-10 14:14:25',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(197,'ba8def3e-ae78-4947-95c7-f5d8ce764d4f',0,'2021-09-10 14:14:28','2021-09-10 14:14:28',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(198,'e8d885f1-bd0b-4b57-9c1b-9e0decf90228',0,'2021-09-10 14:14:32','2021-09-10 14:14:32',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(199,'3d425286-647e-4dad-b850-e1920940253a',0,'2021-09-10 14:14:34','2021-09-10 14:14:34',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(200,'3466728d-93bb-470e-9fbb-6afe326a3e73',0,'2021-09-10 14:14:37','2021-09-10 14:14:37',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(201,'5ae17ac0-776f-4b9f-ba6b-05a47b284e33',0,'2021-09-10 14:14:39','2021-09-10 14:14:39',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(202,'c4966ca0-f294-4839-93d2-523e85bfa5a0',0,'2021-09-10 14:14:57','2021-09-10 14:14:57',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(203,'47a37fba-8193-4b5c-911d-241da0ae6c34',0,'2021-09-10 14:15:36','2021-09-10 14:15:36',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(204,'cc09a525-4e89-4292-a9c4-6d98d3c7c7c7',0,'2021-09-10 14:17:10','2021-09-10 14:17:10',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(205,'3cb9b99a-6c19-45e6-a15f-7f6b998b4a3b',0,'2021-09-10 14:58:42','2021-09-10 14:58:42',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157'),(206,'0218d3f5-ea8c-4810-82a7-cd168a55baf3',0,'2021-09-10 15:18:39','2021-09-10 15:18:39',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(207,'69bb2269-45f7-4af1-adbb-f3213bda363f',0,'2021-09-10 15:18:56','2021-09-10 15:18:56',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(208,'40999263-dcbb-4fad-9b4b-088f6033052b',0,'2021-09-10 15:19:17','2021-09-10 15:19:17',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(209,'42c52558-84f4-4f73-86ba-9413d666997b',0,'2021-09-10 15:21:15','2021-09-10 15:21:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(210,'6a68892f-1579-4156-adb4-7cf78a2cc4ba',0,'2021-09-10 15:42:58','2021-09-10 15:42:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(211,'051d7220-d24c-46ba-af66-c68f8faf593f',0,'2021-09-10 17:13:01','2021-09-10 17:13:01',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(212,'f7356fa2-05dd-4f6b-a02d-f250d37f3d32',0,'2021-09-10 17:18:30','2021-09-10 17:18:30',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(213,'ca31d7cb-035f-4768-9933-770700270acd',0,'2021-09-10 17:19:58','2021-09-10 17:19:58',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(214,'3b10e085-8305-4a91-b834-1cfce68a3883',0,'2021-09-10 17:22:33','2021-09-10 17:22:33',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(215,'a0288db6-0a66-408b-93d9-ff14950922bb',0,'2021-09-10 17:22:54','2021-09-10 17:22:54',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(216,'61090a4b-9041-4218-98b7-1fc2336d128a',0,'2021-09-10 17:22:58','2021-09-10 17:22:58',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(217,'745e5164-751c-4660-98ce-ce2d38ffc833',0,'2021-09-10 17:38:46','2021-09-10 17:38:46',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(218,'2b97fce2-bf12-41fb-861b-feaa1692b9e3',0,'2021-09-10 18:24:44','2021-09-10 18:24:44',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(219,'88e311cc-4cc7-4448-bbff-e781aefab790',0,'2021-09-10 18:28:38','2021-09-10 18:28:38',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(220,'98f7fc50-1865-491c-8648-c325d44c5b48',0,'2021-09-10 18:30:34','2021-09-10 18:30:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(221,'a44b5ef5-5c5f-4b76-8059-dcbef38d2227',0,'2021-09-10 18:41:27','2021-09-10 18:41:27',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(222,'3c0f79eb-bc02-475c-abc2-928cf1619a91',0,'2021-09-10 18:42:08','2021-09-10 18:42:08',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(223,'7e70e123-2c29-44c4-bcfd-e5b8b6f347f5',0,'2021-09-10 19:11:45','2021-09-10 19:11:45',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(224,'39a160c1-c2dd-436d-b85b-a83be59a44e2',0,'2021-09-11 09:05:49','2021-09-11 09:05:49',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(225,'a7105bee-4d85-4088-a736-469e88451b45',0,'2021-09-11 09:23:13','2021-09-11 09:23:13',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(226,'fbf441c9-dc32-4831-a69b-56fb14239ca6',0,'2021-09-11 09:43:12','2021-09-11 09:43:12',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(227,'114e1074-42ae-4dfa-bdec-0591abc3197f',0,'2021-09-11 09:58:55','2021-09-11 09:58:55',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(228,'9420f970-459d-4d5e-bdc0-831fa53a6826',0,'2021-09-11 11:01:09','2021-09-11 11:01:09',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(229,'37f5c462-2415-4b3c-8176-ac7340369f60',0,'2021-09-11 11:31:09','2021-09-11 11:31:09',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(230,'2a4f93c8-7885-47e8-bc91-0d0cd6c45e94',0,'2021-09-11 11:44:17','2021-09-11 11:44:17',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(231,'a7198c05-f7a1-430a-b8fb-b90204b15049',0,'2021-09-11 14:29:08','2021-09-11 14:29:08',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(232,'1a74fd45-8c86-4070-94c9-8dd227e160a5',0,'2021-09-11 14:49:03','2021-09-11 14:49:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(233,'df30a28f-278a-47f1-a5c9-96c760263799',0,'2021-09-11 15:59:18','2021-09-11 15:59:18',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(234,'68c46ed9-7d3d-44ff-9e6e-401ac8e4d272',0,'2021-09-11 22:31:53','2021-09-11 22:31:53',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,221.192.180.197'),(235,'dc1822e3-8145-42dd-8df1-69b41194a093',0,'2021-09-13 08:38:15','2021-09-13 08:38:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(236,'d59710e9-8800-41f5-b9fa-fac61010eb32',0,'2021-09-13 09:19:09','2021-09-13 09:19:09',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(237,'5a241352-6cf7-4a1c-a26b-886caafb70c1',0,'2021-09-13 09:19:39','2021-09-13 09:19:39',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','192.168.1.102,127.0.0.1'),(238,'f99e72f0-dbd7-452f-a619-cdc20bc047ce',0,'2021-09-13 09:30:48','2021-09-13 09:30:48',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(239,'cdbe87b9-aad9-4759-9cea-bdab1641ae00',0,'2021-09-13 09:31:57','2021-09-13 09:31:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(240,'d3ed351d-a59d-4ff4-8485-56924d67c14e',0,'2021-09-13 09:40:59','2021-09-13 09:40:59',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','192.168.1.102,127.0.0.1'),(241,'50cbd296-c1c5-492e-bd5b-c04ebb5dcefd',0,'2021-09-13 09:50:20','2021-09-13 09:50:20',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(242,'d11de7bc-7876-411e-ad88-b67d7b85ed39',0,'2021-09-13 10:00:32','2021-09-13 10:00:32',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(243,'d1db2a83-c496-4621-b3cd-1a4cfcf94234',0,'2021-09-13 10:05:01','2021-09-13 10:05:01',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(244,'8d782a7b-5988-4bd5-b025-4d72ef269c64',0,'2021-09-13 11:07:22','2021-09-13 11:07:22',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(245,'edf31358-68ef-44c9-93fc-944efe3495d7',0,'2021-09-13 16:05:47','2021-09-13 16:05:47',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(246,'6bcd2d63-38de-49d5-a105-643ad3052afc',0,'2021-09-13 16:27:04','2021-09-13 16:27:04',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(247,'97442c8b-67eb-4e11-9b7e-c3b8fd2b08ab',0,'2021-09-13 16:30:06','2021-09-13 16:30:06',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(248,'5904ab59-7d5c-4e4d-822d-18e025c50f10',0,'2021-09-13 16:32:37','2021-09-13 16:32:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(249,'374daa25-9370-4b94-b80c-185247e26cb9',0,'2021-09-13 16:32:43','2021-09-13 16:32:43',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(250,'0076bc64-e40c-4fbd-8a4d-09d710e5d7a6',0,'2021-09-13 16:41:44','2021-09-13 16:41:44',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(251,'e0bd247a-030a-40d3-919e-8960af63a63d',0,'2021-09-13 16:41:49','2021-09-13 16:41:49',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(252,'36c56292-ba42-4ff7-9e4b-082c81dd7610',0,'2021-09-13 16:55:25','2021-09-13 16:55:25',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.228,127.0.0.1'),(253,'a52fe4a7-4cdc-4fb1-a3bf-232b6f37fc18',0,'2021-09-13 16:58:15','2021-09-13 16:58:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.228,127.0.0.1'),(254,'c206dddb-099c-4143-a3d7-affcdea258e9',0,'2021-09-13 17:25:48','2021-09-13 17:25:48',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(255,'19743593-1175-425e-904d-7c8e177b65e4',0,'2021-09-13 17:45:37','2021-09-13 17:45:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(256,'c80c8433-a1fd-45d5-9d02-4839fc1b80ad',0,'2021-09-13 17:50:58','2021-09-13 17:50:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(257,'f5ea248b-cf7c-4490-897f-207e580ecc2f',0,'2021-09-14 08:48:43','2021-09-14 08:48:43',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(258,'faef11d2-ecda-4470-a570-7449c6864e20',0,'2021-09-14 08:54:36','2021-09-14 08:54:36',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(259,'ad4382ea-5830-489d-8146-5a77489f4781',0,'2021-09-14 11:54:52','2021-09-14 11:54:52',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(260,'b82f365f-1271-42bd-8fdc-aeb689dad5de',0,'2021-09-14 15:15:15','2021-09-14 15:15:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(261,'c8705bc1-43e8-436f-b80d-1117015e2b71',0,'2021-09-14 16:32:18','2021-09-14 16:32:18',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(262,'d33c65c9-092d-45eb-b1a4-d0e8d3fffed0',0,'2021-09-14 16:32:39','2021-09-14 16:32:39',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(263,'c939e041-1a8a-4a20-9333-ddce04a4654d',0,'2021-09-14 16:32:43','2021-09-14 16:32:43',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(264,'52123927-ff2a-4da4-bd76-47388f508569',0,'2021-09-14 16:32:46','2021-09-14 16:32:46',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(265,'697ffd10-338d-4556-965a-5e281cc78248',0,'2021-09-14 16:32:55','2021-09-14 16:32:55',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(266,'f8719f42-50c3-417c-95a6-dfb50625e973',0,'2021-09-14 16:33:00','2021-09-14 16:33:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(267,'c820d516-2da2-46d5-8f30-51f9d6c5b51b',0,'2021-09-14 16:36:16','2021-09-14 16:36:16',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(268,'458df7b3-b3a2-4d8d-bf58-56777ca28704',0,'2021-09-14 16:38:21','2021-09-14 16:38:21',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(269,'d32e1f48-efc8-4056-9a0d-dee0e3ab82f8',0,'2021-09-14 16:49:56','2021-09-14 16:49:56',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(270,'2f25f06b-28ff-40f0-a4bd-8655d6cb9f94',0,'2021-09-14 17:01:50','2021-09-14 17:01:50',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(271,'1908bba1-8343-4075-8391-69f8f5c0d6cb',0,'2021-09-14 17:08:13','2021-09-14 17:08:13',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(272,'0ac3ec7c-2731-4616-93a4-5e5e0d898a10',0,'2021-09-14 17:08:18','2021-09-14 17:08:18',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(273,'1ccc4e81-7fba-4547-90d5-584460975505',0,'2021-09-14 17:33:00','2021-09-14 17:33:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(274,'4c8ed557-6de7-4cd0-babe-69cdd39d3034',0,'2021-09-14 17:33:46','2021-09-14 17:33:46',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(275,'5d7fed6b-7319-42f3-9ac3-3d14d72a4add',0,'2021-09-14 17:34:28','2021-09-14 17:34:28',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(276,'b6852bef-a804-4b29-bad5-bc228bd8371b',0,'2021-09-14 17:34:28','2021-09-14 17:34:28',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(277,'85b831a3-a983-41bc-8b1d-ffa660dc1996',0,'2021-09-14 17:35:57','2021-09-14 17:35:57',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(278,'668c7cde-101f-473f-97dc-6e2fc4780556',0,'2021-09-14 17:44:13','2021-09-14 17:44:13',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(279,'6fdffd55-63be-4d1b-b20c-e384bae9fc8b',0,'2021-09-14 17:46:50','2021-09-14 17:46:50',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(280,'497906d9-717e-45ff-a598-20ddd12a5594',0,'2021-09-14 17:46:53','2021-09-14 17:46:53',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(281,'2c612688-9a09-4d59-bab4-4df50eb314c7',0,'2021-09-14 17:49:43','2021-09-14 17:49:43',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(282,'9359f1a9-8f7e-4007-b610-9b375defa7cf',0,'2021-09-14 17:50:15','2021-09-14 17:50:15',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(283,'8d8dfbc4-2f5d-466e-91f5-6b3a0d643a94',0,'2021-09-14 17:50:17','2021-09-14 17:50:17',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(284,'e4328e94-7f34-4208-afa4-87fcbff68e34',0,'2021-09-14 17:51:00','2021-09-14 17:51:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(285,'0195ff07-64d8-4185-93c4-cf630bf4a14c',0,'2021-09-14 17:53:59','2021-09-14 17:53:59',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(286,'50598d94-1881-4ba0-b995-92449ce782ba',0,'2021-09-14 17:55:08','2021-09-14 17:55:08',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(287,'3ce7faad-75aa-4e60-86e4-cace5d3db6da',0,'2021-09-14 17:55:11','2021-09-14 17:55:11',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(288,'ec943934-0789-4c56-a94b-9746d48b9f65',0,'2021-09-15 16:12:44','2021-09-15 16:12:44',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,0:0:0:0:0:0:0:1'),(289,'c0f90c0a-4d7c-48bd-a7b1-467ed0fcc7a0',0,'2021-09-15 16:37:02','2021-09-15 16:37:02',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','183.198.82.151,0:0:0:0:0:0:0:1'),(290,'a55b2380-eab4-4e00-a5a6-366feaa3505f',0,'2021-09-16 17:44:10','2021-09-16 17:44:10',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(291,'d1028b5a-0fa3-4357-8931-b94e756a37cb',0,'2021-09-16 17:46:10','2021-09-16 17:46:10',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(292,'e47ceb6c-9386-40c5-a20e-eafc9601fdc0',0,'2021-09-16 18:40:44','2021-09-16 18:40:44',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','0:0:0:0:0:0:0:1'),(293,'d1f380f5-4ae5-4c70-bb86-f164f7b2d28e',0,'2021-09-16 18:43:37','2021-09-16 18:43:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','0:0:0:0:0:0:0:1'),(294,'737c65e6-4591-4a1e-a36b-0a49e4eb70e3',0,'2021-09-17 10:20:50','2021-09-17 10:20:50',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(295,'d5677b39-aff5-4b62-b1e5-dd968eb288c5',0,'2021-09-17 15:38:25','2021-09-17 15:38:25',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(296,'3f7ac39c-efdd-4ce5-ae7d-2142236d79a3',0,'2021-09-17 15:47:07','2021-09-17 15:47:07',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(297,'f96c3995-9058-4373-b73e-d9dd791fd954',0,'2021-09-18 14:47:10','2021-09-18 14:47:10',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(298,'f6312720-10f8-46f5-8079-1b68f6208fb9',0,'2021-09-18 15:42:52','2021-09-18 15:42:52',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(299,'775708cc-ed47-4716-a6c1-b456e7492457',0,'2021-09-18 16:03:39','2021-09-18 16:03:39',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(300,'7aa9c6ab-f0cf-4538-a668-7000a9d0f756',0,'2021-09-18 17:44:37','2021-09-18 17:44:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(301,'3979d0b9-a97e-40d8-ad18-afc407c78d28',0,'2021-09-22 08:33:30','2021-09-22 08:33:30',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(302,'478901c0-62a3-4224-9877-f3cfd433a9e3',0,'2021-09-22 10:20:29','2021-09-22 10:20:29',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(303,'71b5af03-08d2-487a-8aa5-292dd7abb4a8',0,'2021-09-22 11:12:35','2021-09-22 11:12:35',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(304,'78c6c720-23d8-45c0-8cf3-462bf05937ea',0,'2021-09-22 11:20:47','2021-09-22 11:20:47',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(305,'0135e020-7369-4118-8601-47b25d15eb80',0,'2021-09-22 11:29:07','2021-09-22 11:29:07',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(306,'ffb2ec78-dfec-4a4d-83f5-d6051c0322a8',0,'2021-09-22 11:51:56','2021-09-22 11:51:56',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(307,'daf8e935-ac45-49de-80a0-f5c5847a87d3',0,'2021-09-22 11:53:37','2021-09-22 11:53:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(308,'c18c0128-6203-44df-9fd4-26647980f448',0,'2021-09-22 11:58:13','2021-09-22 11:58:13',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(309,'aca024fc-c620-4d78-a8b6-1b203843945c',0,'2021-09-22 12:00:26','2021-09-22 12:00:26',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(310,'7631d081-fd8d-4928-bffc-5ff1cdd2741c',0,'2021-09-22 12:02:27','2021-09-22 12:02:27',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(311,'73aa4c4a-f60d-4738-8174-95cdf8a98fa0',0,'2021-09-22 14:12:46','2021-09-22 14:12:46',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(312,'1a129196-ccee-4bab-beea-aac8b8c97e25',0,'2021-09-22 14:16:11','2021-09-22 14:16:11',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(313,'1ee72eea-3044-4cc0-b7af-408180fb3079',0,'2021-09-22 14:18:40','2021-09-22 14:18:40',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(314,'d0b181ec-58b6-433c-b198-318247f1501b',0,'2021-09-22 15:31:07','2021-09-22 15:31:07',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(315,'084c31d8-d103-4e6f-97c1-3cc85d3dda38',0,'2021-09-23 09:51:42','2021-09-23 09:51:42',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15832538126','120.211.143.229,127.0.0.1'),(316,'a9f9ab7a-9866-4926-b8bd-f2c603f647c6',0,'2021-09-23 09:54:32','2021-09-23 09:54:32',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(317,'e898ca98-8d53-4d98-b3f5-f5936d3004df',0,'2021-09-23 17:11:13','2021-09-23 17:11:13',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,0:0:0:0:0:0:0:1'),(318,'7137ee3f-b9d8-4d9c-b5b1-944d03d5dd4b',0,'2021-09-24 12:02:38','2021-09-24 12:02:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(319,'a332c3d6-8f15-430d-b28a-58dd6982d0d7',0,'2021-09-24 12:03:58','2021-09-24 12:03:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(320,'1e191ef8-2aec-4c86-ae22-e3f8cc8dc682',0,'2021-09-24 14:42:56','2021-09-24 14:42:56',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(321,'97c77133-c756-4723-a3c8-85519eb4d46a',0,'2021-09-24 15:16:07','2021-09-24 15:16:07',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(322,'c978e3cc-b383-4893-9805-48de0184d21a',0,'2021-09-24 15:35:25','2021-09-24 15:35:25',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(323,'b7baae7e-fb58-4e79-af4d-e246a7fa38f0',0,'2021-09-24 15:36:15','2021-09-24 15:36:15',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(324,'c9b14154-e086-42b6-b44c-b40e3e81229e',0,'2021-09-24 15:36:17','2021-09-24 15:36:17',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(325,'3c0367dc-cdf0-4c9a-9b55-b77dc7afa6bf',0,'2021-09-24 15:36:17','2021-09-24 15:36:17',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(326,'90691672-36ab-4e7d-aa1b-2992bcfa519c',0,'2021-09-24 15:36:26','2021-09-24 15:36:26',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(327,'f80d9e75-c5f7-4c2b-9ee1-ffd63f750a26',0,'2021-09-24 15:36:26','2021-09-24 15:36:26',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(328,'6e98ba96-0f8a-466b-9f64-0b9957ec685e',0,'2021-09-24 15:36:27','2021-09-24 15:36:27',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(329,'ddd77faf-aa2b-4a55-b555-26575bfeb0bd',0,'2021-09-24 15:36:31','2021-09-24 15:36:31',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(330,'65ea2db7-f6ab-4de6-8602-187061168b87',0,'2021-09-24 15:36:31','2021-09-24 15:36:31',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(331,'30b454a6-828d-4f23-b06f-cc1bde3a144b',0,'2021-09-24 15:37:33','2021-09-24 15:37:33',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(332,'378653de-538c-474e-af25-9d8b33166dd5',0,'2021-09-24 15:38:45','2021-09-24 15:38:45',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(333,'a9dc1a6c-5f35-4437-bb43-e19c0e9001fb',0,'2021-09-24 15:44:40','2021-09-24 15:44:40',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(334,'ebb40e64-4f41-4b85-ad29-962858623361',0,'2021-09-24 15:57:23','2021-09-24 15:57:23',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(335,'06bccc62-c869-46e0-9e04-55bed8f53bd8',0,'2021-09-24 15:57:26','2021-09-24 15:57:26',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(336,'f18a895c-28e0-4858-affd-1d33e334036f',0,'2021-09-24 15:57:44','2021-09-24 15:57:44',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(337,'96aac63b-f1d8-4e72-aa90-58cba05cd85b',0,'2021-09-24 15:58:16','2021-09-24 15:58:16',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(338,'7694a486-cd27-4ee2-9c58-f13963fef9e4',0,'2021-09-24 15:58:51','2021-09-24 15:58:51',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(339,'431f11a5-9743-4ee9-bad3-efed1bdf53f1',0,'2021-09-24 15:59:03','2021-09-24 15:59:03',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(340,'9cb2eb13-1dba-4497-98e3-0de46faee3ee',0,'2021-09-24 15:59:07','2021-09-24 15:59:07',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(341,'f022abc9-0e60-40e5-98b6-d4c619b62540',0,'2021-09-24 15:59:46','2021-09-24 15:59:46',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(342,'d9424f68-b347-4e1e-a04c-1e36bdb744a1',0,'2021-09-24 16:00:52','2021-09-24 16:00:52',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(343,'82a767ce-b98f-44cb-8846-b622ad42cc3d',0,'2021-09-24 16:00:55','2021-09-24 16:00:55',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(344,'e1dab1df-e288-4e4f-adb9-471ed5c63062',0,'2021-09-24 16:00:58','2021-09-24 16:00:58',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(345,'60dc6c67-da95-4a5f-9a3d-51457b95c8da',0,'2021-09-24 16:01:56','2021-09-24 16:01:56',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(346,'383a5803-7107-465c-b184-028eb0c2fa60',0,'2021-09-24 16:02:00','2021-09-24 16:02:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(347,'6c0683c4-5977-470b-a58f-81d31865d50f',0,'2021-09-24 16:03:09','2021-09-24 16:03:09',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(348,'5b3f40a3-fd2d-4c84-b157-c369a6f02fd9',0,'2021-09-24 16:03:15','2021-09-24 16:03:15',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(349,'3ac89036-e66f-42af-aa91-cd3104120bb5',0,'2021-09-24 16:03:15','2021-09-24 16:03:15',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(350,'abc77171-128c-4947-8736-8dc477548228',0,'2021-09-24 16:25:01','2021-09-24 16:25:01',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(351,'d4ddb1a4-5f9a-495a-9c81-63f325afc812',0,'2021-09-24 16:25:38','2021-09-24 16:25:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(352,'2a9693d6-866a-49ef-99f5-7084a7894ba0',0,'2021-09-24 16:53:50','2021-09-24 16:53:50',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','223.104.13.181,0:0:0:0:0:0:0:1'),(353,'f60f436f-a2ae-41e6-9e11-fee5eb54529a',0,'2021-09-24 17:11:19','2021-09-24 17:11:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(354,'13eb684b-43dc-422b-983a-29e95a1f237b',0,'2021-09-24 22:31:01','2021-09-24 22:31:01',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(355,'c647adf6-f0e0-40e9-aea3-0bfc26335183',0,'2021-09-25 09:10:37','2021-09-25 09:10:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(356,'9b555aaa-0384-4496-b00d-cd3ef6e575dc',0,'2021-09-25 09:11:24','2021-09-25 09:11:24',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(357,'a3c54cd2-c236-4cb8-9402-422241395b19',0,'2021-09-25 09:11:26','2021-09-25 09:11:26',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(358,'8804eda8-0523-47be-850c-7c7f2a9fb166',0,'2021-09-25 09:11:26','2021-09-25 09:11:26',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(359,'0c040993-51a0-48a0-8e2f-bb5136f6dc66',0,'2021-09-25 10:35:04','2021-09-25 10:35:04',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(360,'f19a90e5-bc8a-4e2a-affa-ddd9517b318f',0,'2021-09-25 10:35:58','2021-09-25 10:35:58',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(361,'ab6dd405-ca5c-46a2-8cd6-0b9e64cf05a5',0,'2021-09-25 10:36:02','2021-09-25 10:36:02',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(362,'2f112ac2-f3af-4b9b-b361-164b593dc001',0,'2021-09-25 10:36:29','2021-09-25 10:36:29',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(363,'07df9e5d-4735-4bb9-8c97-bb75c337cfd6',0,'2021-09-25 10:36:29','2021-09-25 10:36:29',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(364,'0e4941ff-d355-4e3e-88f9-bd10f5a9e1f4',0,'2021-09-25 10:44:45','2021-09-25 10:44:45',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(365,'4a5cf584-47d8-4308-9948-43e5ddf259f6',0,'2021-09-25 11:07:55','2021-09-25 11:07:55',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(366,'cbdfaf3e-eaa4-4ddc-af28-5f596b4d9b53',0,'2021-09-25 11:09:19','2021-09-25 11:09:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(367,'42c45345-23a3-4456-91b8-4b85b8e6ffec',0,'2021-09-25 11:09:43','2021-09-25 11:09:43',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(368,'48e63f56-1c9c-44fe-a724-ccdbf9c79f44',0,'2021-09-25 11:17:33','2021-09-25 11:17:33',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(369,'8ad83b64-7da2-49cd-b039-bf7137c4d734',0,'2021-09-25 11:20:27','2021-09-25 11:20:27',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(370,'4467868c-38db-432c-94d3-260df468a6fe',0,'2021-09-25 11:52:20','2021-09-25 11:52:20',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(371,'f80f9a82-0379-4dcc-a388-28b850737033',0,'2021-09-25 11:55:33','2021-09-25 11:55:33',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.124'),(372,'88ed747a-d41a-4f25-809b-6e9074796983',0,'2021-09-25 11:55:33','2021-09-25 11:55:33',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(373,'1602d986-8e94-48a4-aaed-e21382e22bec',0,'2021-09-25 11:57:15','2021-09-25 11:57:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(374,'d7a38ee3-0d2a-41fa-90f7-381a08c1156f',0,'2021-09-25 12:12:02','2021-09-25 12:12:02',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(375,'ef429b22-c5dd-4b71-a279-8586496b997b',0,'2021-09-25 12:12:47','2021-09-25 12:12:47',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(376,'41474d72-b3c2-4101-8c58-17947f810080',0,'2021-09-25 12:34:04','2021-09-25 12:34:04',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(377,'5bc0648d-7414-4889-89c0-c27b1712b2fa',0,'2021-09-25 13:58:41','2021-09-25 13:58:41',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(378,'a74cebbb-4d15-4a2c-8d6d-0002e3e3973d',0,'2021-09-25 14:15:30','2021-09-25 14:15:30',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(379,'070eb631-7938-4df3-b6eb-8f84d6a00dd0',0,'2021-09-25 16:40:48','2021-09-25 16:40:48',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(380,'3ceb0493-2339-43ff-832d-9fcfc4908165',0,'2021-09-25 16:41:16','2021-09-25 16:41:16',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(381,'b4f0d498-f039-47a9-9317-7044ed1d2aeb',0,'2021-09-25 16:41:17','2021-09-25 16:41:17',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(382,'841bf3a1-bd90-4e8b-bd4b-372ee9f86709',0,'2021-09-25 16:41:17','2021-09-25 16:41:17',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(383,'65248bf1-e685-4542-9416-4158756af88b',0,'2021-09-25 17:47:26','2021-09-25 17:47:26',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(384,'0a281f41-1e1e-4bff-8d0a-8cac6462a8ce',0,'2021-09-25 18:12:54','2021-09-25 18:12:54',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(385,'ddf50836-43ed-4e5f-904a-e82ec6350a7d',0,'2021-09-25 18:12:57','2021-09-25 18:12:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(386,'d7940f03-515f-4fa5-a89f-ecab5740ed00',0,'2021-09-25 19:26:48','2021-09-25 19:26:48',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(387,'9526a970-7f08-440a-9bbc-d27a233e3f55',0,'2021-09-25 19:38:15','2021-09-25 19:38:15',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(388,'99421825-984b-4b3b-ad00-6189e18785c3',0,'2021-09-25 20:15:37','2021-09-25 20:15:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','112.224.151.215,0:0:0:0:0:0:0:1'),(389,'8ae85834-b885-4378-afb4-e5cdc849382c',0,'2021-09-25 20:17:27','2021-09-25 20:17:27',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','112.224.151.215,127.0.0.1'),(390,'f32a3d76-ff6e-4dc9-a6da-31f7c819be55',0,'2021-09-25 20:35:42','2021-09-25 20:35:42',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(391,'80cb6cc3-0030-45d8-bcc9-d75cb7e2e43f',0,'2021-09-25 20:47:01','2021-09-25 20:47:01',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(392,'a89976b6-2149-4d79-9f67-d56ac4308b21',0,'2021-09-25 20:47:42','2021-09-25 20:47:42',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.43.29'),(393,'0eb0be01-f387-452a-b04f-2faa09405e7b',0,'2021-09-25 20:47:42','2021-09-25 20:47:42',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(394,'298e8b8b-8ba1-4407-b8dc-35a7eda455af',0,'2021-09-25 20:48:34','2021-09-25 20:48:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(395,'338367b8-7252-40e8-9b1e-138551fdabae',0,'2021-09-25 20:54:18','2021-09-25 20:54:18',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(396,'2244b465-d951-4a1c-9869-062d62957452',0,'2021-09-25 20:55:53','2021-09-25 20:55:53',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(397,'7179e247-69c1-48f1-9ec1-9b3ce8b70c83',0,'2021-09-25 20:55:59','2021-09-25 20:55:59',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(398,'0212b168-1837-4855-b2b2-8611f48f36dc',0,'2021-09-25 21:00:01','2021-09-25 21:00:01',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(399,'6b159133-5010-43df-a372-cbd50da07fd6',0,'2021-09-25 21:00:01','2021-09-25 21:00:01',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(400,'611bdf40-d0f8-448b-b8fb-623e92e70015',0,'2021-09-25 21:00:07','2021-09-25 21:00:07',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(401,'8c2bf254-61fc-4727-8d9e-be467b2dc015',0,'2021-09-25 21:01:35','2021-09-25 21:01:35',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(402,'97c60285-b34d-4fe2-99f7-d4cc4fac0037',0,'2021-09-25 21:01:35','2021-09-25 21:01:35',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(403,'2ba00b92-1848-480a-9f1f-1a6ad9003d93',0,'2021-09-25 21:01:48','2021-09-25 21:01:48',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(404,'b36bd1fd-101d-4c0c-8b24-240e2b437e9e',0,'2021-09-25 21:01:48','2021-09-25 21:01:48',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(405,'0bd78b3a-43ce-4983-a555-c3e62a45cc7a',0,'2021-09-25 21:03:16','2021-09-25 21:03:16',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(406,'21e6a8e5-2480-465e-8999-af88ef0a9393',0,'2021-09-26 09:38:34','2021-09-26 09:38:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(407,'6725499c-97cc-47fb-8801-bd156b2d78d2',0,'2021-09-26 10:05:20','2021-09-26 10:05:20',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(408,'8f114623-e517-471d-a430-b7cf0302ff29',0,'2021-09-26 11:39:10','2021-09-26 11:39:10',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(409,'2fb6781b-43bb-44e5-9696-5df6e9c2296e',0,'2021-09-26 13:55:42','2021-09-26 13:55:42',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(410,'5a5a2098-f822-411d-9010-20d6efbb5270',0,'2021-09-26 14:12:14','2021-09-26 14:12:14',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(411,'a13252de-bd00-4c90-b3e8-4a6b036eb4ac',0,'2021-09-26 14:13:22','2021-09-26 14:13:22',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','986d2a7a-f92f-4749-b1ee-49384a291a79','13733217919','0.0.0.0'),(412,'7bd9bb26-26d2-4079-ad17-de90bfd74782',0,'2021-09-26 14:13:35','2021-09-26 14:13:35',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(413,'3e26f543-ce8d-461c-aa28-e7b4ff2f36a9',0,'2021-09-26 14:13:35','2021-09-26 14:13:35',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(414,'731729dc-c917-4bd0-9a38-6d2d27ecc4bb',0,'2021-09-26 14:13:47','2021-09-26 14:13:47',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(415,'8114be78-3803-438b-9968-a1b05309b4e9',0,'2021-09-26 14:13:47','2021-09-26 14:13:47',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(416,'214a1cf6-394a-4e4d-ab58-ad3bf7773b3d',0,'2021-09-26 14:13:52','2021-09-26 14:13:52',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(417,'7aac85f6-6de6-4e74-b5bf-4de15141bdbd',0,'2021-09-26 14:13:52','2021-09-26 14:13:52',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(418,'d68f26ea-ee42-4219-ae92-d1ffe61ca4d4',0,'2021-09-26 14:14:05','2021-09-26 14:14:05',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(419,'a25df24e-e357-4e36-86c2-5224500ba961',0,'2021-09-26 14:14:05','2021-09-26 14:14:05',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(420,'e3f001b5-01a3-4058-a04e-75402bb736bd',0,'2021-09-26 14:14:07','2021-09-26 14:14:07',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(421,'c036595b-2363-4b32-85c0-4ba2206ca73e',0,'2021-09-26 14:14:07','2021-09-26 14:14:07',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(422,'43c62d31-04fc-432d-9657-d282f8a889e6',0,'2021-09-26 14:14:12','2021-09-26 14:14:12',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(423,'bc371003-4299-4db4-8ad7-0d4ce3ad1a1d',0,'2021-09-26 14:14:12','2021-09-26 14:14:12',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(424,'59a11b2f-5376-4059-9073-9ad77ed03861',0,'2021-09-26 14:14:14','2021-09-26 14:14:14',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(425,'8601c85b-fd44-4f95-952d-a280c4dc38cd',0,'2021-09-26 14:14:14','2021-09-26 14:14:14',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(426,'22e0a07b-f34c-4337-8c22-723b984980a4',0,'2021-09-26 14:14:16','2021-09-26 14:14:16',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(427,'c618c69c-b457-4f4e-a9f4-c9235328ad78',0,'2021-09-26 14:14:16','2021-09-26 14:14:16',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(428,'6a69ff0e-7ae7-4def-acf2-dbc9eeca2fa2',0,'2021-09-26 14:14:16','2021-09-26 14:14:16',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(429,'b1d20e03-fac2-45dd-886b-de5bf61fc002',0,'2021-09-26 14:14:16','2021-09-26 14:14:16',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(430,'8ba2e4e6-20af-4756-ba75-6c3866b98f5f',0,'2021-09-26 14:14:58','2021-09-26 14:14:58',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','986d2a7a-f92f-4749-b1ee-49384a291a79','13733217919','0.0.0.0'),(431,'a211a66c-0a8d-4b04-8e95-10531bade9b9',0,'2021-09-26 14:16:00','2021-09-26 14:16:00',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(432,'26ff9c9c-2533-4b88-883c-ee3580de8116',0,'2021-09-26 14:16:00','2021-09-26 14:16:00',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(433,'cbf78d87-d76f-48a4-85cd-e3f8f012366c',0,'2021-09-26 14:16:37','2021-09-26 14:16:37',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.92'),(434,'2c3c7f3a-397e-49ab-a321-db0921a3b2af',0,'2021-09-26 14:16:37','2021-09-26 14:16:37',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(435,'fbc87ade-5079-4356-88c4-d48bd51445a8',0,'2021-09-26 14:29:42','2021-09-26 14:29:42',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(436,'b4daf08b-1d50-4bc6-9ab8-a095be5edc52',0,'2021-09-26 15:15:58','2021-09-26 15:15:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(437,'de05a41d-4a37-4030-94ec-4adec73def1a',0,'2021-09-26 17:05:00','2021-09-26 17:05:00',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(438,'e8761581-7575-493f-82fe-f4680ec57496',0,'2021-09-26 17:24:22','2021-09-26 17:24:22',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(439,'b1db2450-6813-413c-bc0a-c3d2a9dec400',0,'2021-09-27 10:42:03','2021-09-27 10:42:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(440,'6831a9f1-7f19-4cd8-978f-341bdaa3a814',0,'2021-09-27 10:42:41','2021-09-27 10:42:41',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(441,'cecd104c-269b-4259-97e7-dd59459c3bff',0,'2021-09-27 10:46:48','2021-09-27 10:46:48',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(442,'46a90b87-1b91-4b23-b650-45903905e0be',0,'2021-09-27 11:06:26','2021-09-27 11:06:26',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(443,'2982c733-1f5d-477e-b8c5-b46aa135fded',0,'2021-09-27 11:16:49','2021-09-27 11:16:49',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,175.188.164.114'),(444,'e60e749b-aaa3-418c-bd36-9d64d012e8a2',0,'2021-09-28 09:19:46','2021-09-28 09:19:46',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,182.51.86.19'),(445,'99217340-336b-4c15-a382-64332e7eb2cc',0,'2021-09-28 10:51:34','2021-09-28 10:51:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,121.28.95.157'),(446,'f5b885a9-f755-49a0-95e8-2e5f4fdd2f95',0,'2021-09-28 10:54:50','2021-09-28 10:54:50',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(447,'cc4e27e7-e90b-475a-858a-ee472349de8c',0,'2021-09-28 11:13:26','2021-09-28 11:13:26',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(448,'f620d5fe-7ccf-45b7-a34c-a51fda297aae',0,'2021-09-28 11:17:15','2021-09-28 11:17:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(449,'90182e33-d1e5-47dc-87f3-3c9b09b305fe',0,'2021-09-28 17:38:10','2021-09-28 17:38:10',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(450,'0ef3d265-3446-4ae1-8cfb-0359e615a1b6',0,'2021-09-30 14:53:45','2021-09-30 14:53:45',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,60.1.89.109'),(451,'838fc10e-b042-4a6c-b2f0-c52cfdb30600',0,'2021-10-08 09:13:45','2021-10-08 09:13:45',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(452,'048ba4df-c684-43f9-818b-499d4d170e72',0,'2021-10-08 09:20:56','2021-10-08 09:20:56',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(453,'cb4fae3f-cf44-4fb8-83b7-6b5061435f94',0,'2021-10-08 10:01:36','2021-10-08 10:01:36',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(454,'55bc472a-31dd-4bac-9efd-de41c039ad51',0,'2021-10-08 10:02:33','2021-10-08 10:02:33',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(455,'1f9caac5-de63-4223-91ca-192603bb0698',0,'2021-10-08 11:11:47','2021-10-08 11:11:47',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(456,'b9c8a288-ee49-4850-95c3-de85f13a1c93',0,'2021-10-08 12:02:57','2021-10-08 12:02:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(457,'2cc70fe9-6429-4c76-bb33-f94b2df0ba40',0,'2021-10-08 13:36:52','2021-10-08 13:36:52',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(458,'1865ee14-5e1d-4d1b-a4ce-b4baf3f1fb0e',0,'2021-10-08 14:35:57','2021-10-08 14:35:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(459,'0bf6daa8-140e-463a-aae8-e3e4430464ba',0,'2021-10-08 14:53:50','2021-10-08 14:53:50',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(460,'d1be0f75-8751-41dd-abc8-75bcc9523ded',0,'2021-10-09 08:56:14','2021-10-09 08:56:14',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(461,'30eac6d8-696f-4cc7-a8de-0a77f8574990',0,'2021-10-10 08:22:14','2021-10-10 08:22:14',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(462,'2934aaf9-096c-462b-b700-704121812097',0,'2021-10-11 08:42:35','2021-10-11 08:42:35',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(463,'00e2687d-cdc0-4b91-bfc3-a1af7cd5729e',0,'2021-10-11 11:58:19','2021-10-11 11:58:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(464,'60e8aa8a-be91-4e92-b28a-347e54bc6d6a',0,'2021-10-11 14:53:03','2021-10-11 14:53:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(465,'7340ecb6-1c14-4ebc-b15e-7a17e2ecb3cc',0,'2021-10-11 17:51:33','2021-10-11 17:51:33',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(466,'a340423f-83ec-4698-97b6-49713d1c65c8',0,'2021-10-12 08:35:18','2021-10-12 08:35:18',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(467,'59c920a2-06d0-4e81-99f7-44edb274f077',0,'2021-10-12 10:28:14','2021-10-12 10:28:14',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(468,'6126a46e-cdf5-4ce9-a752-9e1cfd60e1ae',0,'2021-10-12 14:06:01','2021-10-12 14:06:01',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(469,'5b897dbf-84c5-4a58-a65e-615224f21321',0,'2021-10-12 14:06:18','2021-10-12 14:06:18',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(470,'32df06a8-9de2-42a4-89df-b93f954f1a86',0,'2021-10-12 15:55:38','2021-10-12 15:55:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(471,'6a879c2c-bd50-4e07-901d-0f9b715fc408',0,'2021-10-12 21:00:50','2021-10-12 21:00:50',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','183.197.18.88,0:0:0:0:0:0:0:1'),(472,'92ab8acc-e8ae-44fc-a73e-6d7dd3f1ebe2',0,'2021-10-13 08:39:20','2021-10-13 08:39:20',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(473,'bbbe2939-b3e1-4484-9b33-79489565aae6',0,'2021-10-13 08:56:35','2021-10-13 08:56:35',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(474,'454d8a45-8cc1-411a-8f46-81caef0f6922',0,'2021-10-13 09:25:42','2021-10-13 09:25:42',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,111.61.207.68'),(475,'19441f49-cddd-4083-ac06-09b6cd60bf57',0,'2021-10-13 09:46:04','2021-10-13 09:46:04',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(476,'cd68419f-0602-469c-923b-4ee8fe91d26a',0,'2021-10-13 14:57:48','2021-10-13 14:57:48',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(477,'4948784c-0257-414e-b723-1ffab0f100c6',0,'2021-10-13 15:46:03','2021-10-13 15:46:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(478,'4ace2ec5-39b7-473c-a2c6-0c125114e406',0,'2021-10-14 08:36:06','2021-10-14 08:36:06',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(479,'1c4127a4-d60a-401a-a760-4ee384349f7f',0,'2021-10-14 09:00:32','2021-10-14 09:00:32',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(480,'005ede18-1b8a-4f52-abcf-fcdf518e1237',0,'2021-10-15 08:31:31','2021-10-15 08:31:31',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(481,'5e977d1b-9317-4b35-a1cc-e488b1fdbbe6',0,'2021-10-15 09:02:08','2021-10-15 09:02:08',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(482,'daf01bae-beff-446d-89ce-65b8efc7bd59',0,'2021-10-15 15:42:59','2021-10-15 15:42:59',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(483,'c54954ff-98a1-4d36-94cd-ed539a6821e4',0,'2021-10-15 15:43:12','2021-10-15 15:43:12',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(484,'98ad09ea-fc12-4b09-8bc2-74b11ccb3270',0,'2021-10-15 16:06:19','2021-10-15 16:06:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(485,'06e9246a-0b03-4c76-8d7e-fc012c9996e1',0,'2021-10-15 16:06:31','2021-10-15 16:06:31',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(486,'15412d28-1195-44ad-85ae-57fb5e438e66',0,'2021-10-15 16:06:31','2021-10-15 16:06:31',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(487,'65273246-1d60-4c8d-b640-a5b2af8c9bf1',0,'2021-10-15 16:08:17','2021-10-15 16:08:17',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(488,'5feeeb11-10b1-4844-9aeb-a3495720e544',0,'2021-10-15 16:08:17','2021-10-15 16:08:17',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(489,'86613db1-38ef-4850-9b51-bb3fb8fab992',0,'2021-10-15 16:10:58','2021-10-15 16:10:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(490,'46e190ca-0427-4130-ac81-f1889c8f93f7',0,'2021-10-15 16:22:51','2021-10-15 16:22:51',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,0:0:0:0:0:0:0:1'),(491,'64d53876-8206-4027-96f5-cedf49621193',0,'2021-10-16 09:09:17','2021-10-16 09:09:17',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(492,'ba46c2de-83b4-4d2e-91bc-de94af450cd0',0,'2021-10-16 09:17:33','2021-10-16 09:17:33',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(493,'dd68b7a5-f7e9-4844-8475-9b85828a32da',0,'2021-10-16 14:07:30','2021-10-16 14:07:30',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(494,'b40b410f-fc9a-4ed2-aaff-80c18127040c',0,'2021-10-16 14:16:31','2021-10-16 14:16:31',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,0:0:0:0:0:0:0:1'),(495,'e734e4cc-bf49-40b5-a25f-f17883ce21de',0,'2021-10-16 14:28:57','2021-10-16 14:28:57',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(496,'f49d136d-e024-42fd-b25b-3da48d4e4d9c',0,'2021-10-16 14:47:38','2021-10-16 14:47:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(497,'f052dd43-a40f-42d3-b897-4c6c849705d8',0,'2021-10-16 15:28:41','2021-10-16 15:28:41',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(498,'b98952dc-d7c3-4d70-ad25-d0c9d5b7ee2d',0,'2021-10-16 15:34:18','2021-10-16 15:34:18',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(499,'b9a64911-21c7-4b3e-ba65-fc390a0daacf',0,'2021-10-16 15:34:21','2021-10-16 15:34:21',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(500,'853c477a-0600-4c71-9219-602ce8094f5b',0,'2021-10-16 15:42:20','2021-10-16 15:42:20',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(501,'3ca36e7d-a99b-49c5-91ac-23ed3c84378d',0,'2021-10-16 15:48:19','2021-10-16 15:48:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(502,'5dcf734e-5539-48c8-8001-a2690026b672',0,'2021-10-16 15:54:19','2021-10-16 15:54:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(503,'bebcb107-0d2d-4104-be09-a56f51d2fa00',0,'2021-10-16 15:58:53','2021-10-16 15:58:53',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(504,'1beaaeaa-9264-4ff0-8ce9-266d36b6cb9f',0,'2021-10-16 16:01:26','2021-10-16 16:01:26',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(505,'9a4a96de-749a-4e8b-ae33-591d2eab0279',0,'2021-10-16 16:14:47','2021-10-16 16:14:47',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,0:0:0:0:0:0:0:1'),(506,'a6769b35-e177-4273-8f3f-e118afdaf748',0,'2021-10-16 16:16:07','2021-10-16 16:16:07',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(507,'7cbc91f5-6ce4-49eb-8524-ee77a06483be',0,'2021-10-16 16:16:53','2021-10-16 16:16:53',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(508,'f5c86a33-a5a7-4e3b-82bb-05c20aab8ef7',0,'2021-10-16 16:17:53','2021-10-16 16:17:53',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,0:0:0:0:0:0:0:1'),(509,'5aa94f35-eb4f-4ab6-9e23-1013421da41e',0,'2021-10-16 16:19:34','2021-10-16 16:19:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,127.0.0.1'),(510,'331c6ab7-d6a9-42dc-9391-42aef662d723',0,'2021-10-16 16:20:18','2021-10-16 16:20:18',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.95.157,0:0:0:0:0:0:0:1'),(511,'180f1a45-38e9-4d6c-ab00-bd1c9222ebcd',0,'2021-10-16 16:26:35','2021-10-16 16:26:35',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(512,'7a9579e2-3918-4d09-bbb4-c173a5a47317',0,'2021-10-16 16:28:20','2021-10-16 16:28:20',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(513,'eec2cf81-fe52-41d7-9848-995a47384f52',0,'2021-10-18 08:40:19','2021-10-18 08:40:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.51.142,0:0:0:0:0:0:0:1'),(514,'be6c5622-8f0f-41ec-847f-6c51f028e357',0,'2021-10-18 08:41:54','2021-10-18 08:41:54',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(515,'f1bbc9e9-e530-419f-afd1-9d80d8121f65',0,'2021-10-18 09:00:57','2021-10-18 09:00:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(516,'108cc1d3-5a78-4740-b330-aba2808b3c7a',0,'2021-10-18 09:26:31','2021-10-18 09:26:31',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','120.211.143.229,127.0.0.1'),(517,'cb9005d3-8cb5-4088-99fa-17bdfa47ff39',0,'2021-10-18 09:47:01','2021-10-18 09:47:01',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(518,'abfc6c1e-acb7-4344-a2f9-95230e72ea12',0,'2021-10-18 09:47:01','2021-10-18 09:47:01',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(519,'f70eb16b-df9c-408f-94da-1e819cb542d0',0,'2021-10-18 09:47:31','2021-10-18 09:47:31',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(520,'a882c074-d6a1-4c10-9c47-b838c9210fb5',0,'2021-10-18 10:14:11','2021-10-18 10:14:11',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(521,'6d374644-29e7-48da-9f64-353a1fa9e514',0,'2021-10-18 10:15:58','2021-10-18 10:15:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(522,'2c1a1441-a201-4015-a56a-116c08a59c23',0,'2021-10-18 10:19:39','2021-10-18 10:19:39',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(523,'50c06bcf-7be8-4a2e-8b1f-68cb09a32025',0,'2021-10-18 10:32:19','2021-10-18 10:32:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(524,'ad7fe2b0-103a-4f98-8248-acbd84e1d107',0,'2021-10-18 10:50:34','2021-10-18 10:50:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.51.142,0:0:0:0:0:0:0:1'),(525,'3a4ea8d3-490c-4a4f-95d8-b99fef5adca6',0,'2021-10-18 10:52:14','2021-10-18 10:52:14',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.51.142,0:0:0:0:0:0:0:1'),(526,'f1fc75fa-dc8c-4f0f-97cc-957353d85573',0,'2021-10-18 10:53:40','2021-10-18 10:53:40',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','121.28.51.142,0:0:0:0:0:0:0:1'),(527,'0e3e6814-8098-48b6-a8d4-d0fd1cbf3dda',0,'2021-10-19 08:33:06','2021-10-19 08:33:06',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(528,'e0401f35-6176-458e-8393-f345fb4c067c',0,'2021-10-19 08:47:38','2021-10-19 08:47:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(529,'7ae88381-5519-4a4f-ae96-3b422247f64b',0,'2021-10-19 15:49:34','2021-10-19 15:49:34',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(530,'b5668848-03c4-41a8-a203-50bd81484407',0,'2021-10-20 08:38:51','2021-10-20 08:38:51',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(531,'857b47a5-bce4-4b17-844e-46645db7f398',0,'2021-10-20 11:33:49','2021-10-20 11:33:49',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(532,'c5fc944a-fa99-42dc-be63-4af3004c1d63',0,'2021-10-21 08:39:43','2021-10-21 08:39:43',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(533,'81967c0b-ec57-475f-8480-f315a885b8eb',0,'2021-10-21 08:52:08','2021-10-21 08:52:08',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(534,'2203633b-0930-4031-9f74-be393ef9cc4e',0,'2021-10-22 08:28:21','2021-10-22 08:28:21',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(535,'5020d523-753c-4b58-8b14-08020f00694a',0,'2021-10-22 10:33:50','2021-10-22 10:33:50',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(536,'9e88c503-a8b3-4fcb-89f4-750ecb40f47b',0,'2021-10-22 10:35:55','2021-10-22 10:35:55',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.144.131'),(537,'5cb809cb-bada-4dfa-8b2c-6415dd393277',0,'2021-10-22 11:11:08','2021-10-22 11:11:08',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.0.165'),(538,'7a3280d7-8bae-497d-852b-bc7b4c6f4515',0,'2021-10-22 11:11:08','2021-10-22 11:11:08',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(539,'ac5302a7-9dad-40c3-a437-5d6dfb452ecd',0,'2021-10-22 11:12:17','2021-10-22 11:12:17',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(540,'c0593940-4da2-4287-bfeb-94ce6e51d698',0,'2021-10-23 09:10:40','2021-10-23 09:10:40',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(541,'fde56dec-f9bd-4d29-a261-cec008b00766',0,'2021-10-23 10:27:37','2021-10-23 10:27:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(542,'d73ae91f-74cf-4049-8b63-121264d1305a',0,'2021-10-23 11:03:31','2021-10-23 11:03:31',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','121.28.95.157,127.0.0.1'),(543,'8721cf5b-23df-4df3-971f-5773618772d0',0,'2021-10-23 21:23:42','2021-10-23 21:23:42',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(544,'880ec83b-ac8a-48aa-b77f-24ad086f620b',0,'2021-10-24 08:24:11','2021-10-24 08:24:11',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(545,'6011c135-2d95-4fed-bc4a-e8b4d7f1c058',0,'2021-10-24 09:37:58','2021-10-24 09:37:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','183.198.2.140,127.0.0.1'),(546,'573357f7-551b-42aa-8ae6-92d6239fe32c',0,'2021-10-24 09:38:19','2021-10-24 09:38:19',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','183.198.2.140,0:0:0:0:0:0:0:1'),(547,'d5e6b054-4d9a-4283-9271-dc6ffe0bd109',0,'2021-10-25 08:39:18','2021-10-25 08:39:18',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','120.211.143.229,0:0:0:0:0:0:0:1'),(548,'faa39b26-c1bb-4dc6-90ba-3f3bd6e98b9c',0,'2021-10-25 08:42:37','2021-10-25 08:42:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15831219661','36.98.139.81,0:0:0:0:0:0:0:1'),(549,'43fff28e-dfa0-4d3a-a498-fa17e38ed89d',0,'2021-10-25 08:45:03','2021-10-25 08:45:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(550,'9ef11875-4fc5-425b-bbf8-6cdaa1cd621a',0,'2021-10-25 08:48:27','2021-10-25 08:48:27',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(551,'44228432-222d-4429-9004-1b61801a1d21',0,'2021-10-25 08:48:35','2021-10-25 08:48:35',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(552,'b6582557-8a23-4a91-84b9-2a1d19ff1dd6',0,'2021-10-25 08:49:09','2021-10-25 08:49:09',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(553,'4a884a15-5523-4889-a95a-622262691a4f',0,'2021-10-25 08:53:37','2021-10-25 08:53:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(554,'4a72293a-7381-43de-a672-548b2ebc0d2c',0,'2021-10-25 08:57:25','2021-10-25 08:57:25',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(555,'816a4933-6693-45e1-9202-c98633eead76',0,'2021-10-25 09:31:10','2021-10-25 09:31:10',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(556,'3fe841e8-2e60-44d2-89da-3473cd62ee50',0,'2021-10-25 15:45:03','2021-10-25 15:45:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1,120.211.143.229'),(557,'85877f41-bc48-425a-a1ad-c441fabf66a4',0,'2021-10-25 16:17:39','2021-10-25 16:17:39',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(558,'b0a6bfc6-eba4-4077-8b58-d79027d5a28b',0,'2021-10-25 18:23:47','2021-10-25 18:23:47',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(559,'5be17708-ef21-48e6-8d0f-3ccb5b3a45c9',0,'2021-10-25 18:42:15','2021-10-25 18:42:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15831219661','36.98.139.81,127.0.0.1'),(560,'63d03c5c-0d3c-4c86-88b1-0a98e55ddee0',0,'2021-10-25 18:42:36','2021-10-25 18:42:36',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15831219661','36.98.139.81,0:0:0:0:0:0:0:1'),(561,'538d0073-2730-48b6-aa27-248209c02038',0,'2021-10-26 08:32:30','2021-10-26 08:32:30',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(562,'5cbde30d-5bbf-4cb9-b2c3-7db9115c0e6a',0,'2021-10-26 08:44:09','2021-10-26 08:44:09',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(563,'d2c15b6a-7f4e-488d-b250-9b4f3d52474e',0,'2021-10-26 10:27:36','2021-10-26 10:27:36',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(564,'5bd6ab03-8f87-4b0b-824c-fbfc095d46b0',0,'2021-10-27 15:24:57','2021-10-27 15:24:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(565,'fa9645e5-4cb2-415a-acdc-2110561ab8ad',0,'2021-10-28 10:05:04','2021-10-28 10:05:04',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(566,'5de0c51e-935c-488e-9d60-9d101e234edb',0,'2021-10-28 13:35:15','2021-10-28 13:35:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(567,'82caaac3-c94b-4762-a5ab-abca1054e139',0,'2021-10-28 14:09:50','2021-10-28 14:09:50',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(568,'837c041f-1f2f-420b-975d-2080eba16d32',0,'2021-10-28 14:12:58','2021-10-28 14:12:58',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(569,'41ddb83b-f972-4706-9e2f-7a0335c89043',0,'2021-10-28 14:13:00','2021-10-28 14:13:00',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(570,'970f309c-4fd8-4c35-a476-0ce30e745a8e',0,'2021-10-28 14:13:02','2021-10-28 14:13:02',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(571,'9c5b17b1-e90a-4949-a3fa-a121a42e60a4',0,'2021-10-28 14:13:04','2021-10-28 14:13:04',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(572,'13635f24-962e-489a-8151-75d9f1ad531c',0,'2021-10-28 14:13:12','2021-10-28 14:13:12',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(573,'3558b331-e0e4-4a28-ab76-5d3ea509e49f',0,'2021-10-28 14:13:45','2021-10-28 14:13:45',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(574,'f68027d9-47ce-4262-b88d-81b300d92479',0,'2021-10-28 14:13:55','2021-10-28 14:13:55',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(575,'bfe12ae9-e7b9-4d97-97a2-efbf615425dd',0,'2021-10-28 14:14:04','2021-10-28 14:14:04',1,1,0,NULL,NULL,NULL,'人员岗位保存','','/portal/v1/sysstaffpost/save','0d8d8119-d476-47ce-89c2-075cd809dda6','15097329653','0.0.0.0'),(576,'9b2f0737-4bcd-42c0-88ac-aecc82c59a82',0,'2021-10-28 14:41:23','2021-10-28 14:41:23',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(577,'383f7267-286c-47b5-abad-ddf763912a0e',0,'2021-10-28 16:48:57','2021-10-28 16:48:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(578,'3f0a79b9-74c7-4754-9f91-4836dded6f84',0,'2021-10-28 17:03:39','2021-10-28 17:03:39',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(579,'f6817599-dd33-4ef4-95b1-efc3398e3d9e',0,'2021-10-28 17:05:38','2021-10-28 17:05:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(580,'d037ca70-b4e2-48a0-860c-7f59af0b2de6',0,'2021-10-28 17:18:12','2021-10-28 17:18:12',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(581,'8bb84b1f-1914-40e3-9326-7c66ba1523bf',0,'2021-10-28 17:19:49','2021-10-28 17:19:49',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(582,'bfa78257-8029-41d2-a449-e5da372bbf6a',0,'2021-10-28 18:00:51','2021-10-28 18:00:51',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(583,'e9ba7e5e-ef50-4b34-a576-780e60e26084',0,'2021-10-28 18:18:46','2021-10-28 18:18:46',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(584,'dbe3595b-b8e9-4349-9e0d-2b09360e8003',0,'2021-10-28 21:35:27','2021-10-28 21:35:27',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(585,'ce53fb55-ecbe-427d-92a8-7415c3878b6b',0,'2021-10-28 21:36:53','2021-10-28 21:36:53',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(586,'b3b65f1a-0ff0-49d2-b9aa-c4a84e24986d',0,'2021-10-29 09:51:58','2021-10-29 09:51:58',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(587,'5441f89a-c8f8-42ec-bc79-37a41d1bed82',0,'2021-10-29 12:06:57','2021-10-29 12:06:57',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(588,'e1a5bd48-7678-4e3b-91b5-8f8c1ccd27af',0,'2021-10-29 15:39:22','2021-10-29 15:39:22',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(589,'8126a5a9-f92a-4f5f-9e34-6e0577a74252',0,'2021-10-29 15:39:45','2021-10-29 15:39:45',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(590,'a6431ffd-efb0-4f55-a83d-a677179f9d07',0,'2021-10-29 15:40:40','2021-10-29 15:40:40',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(591,'49c5e97a-9568-4cc1-b6c8-dfb2d9b87724',0,'2021-10-30 10:00:45','2021-10-30 10:00:45',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(592,'7e7c6812-8a0d-4b78-a812-32a4c19aa7b6',0,'2021-11-01 09:40:52','2021-11-01 09:40:52',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(593,'1f138cb4-fdf8-49cb-a53b-06798a4e8913',0,'2021-11-01 16:04:10','2021-11-01 16:04:10',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(594,'fbb30e07-5fd2-413f-aff0-2df86cc33b7c',0,'2021-11-01 17:21:29','2021-11-01 17:21:29',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(595,'3f2cea02-b427-4d45-9f99-78f99e2c9a88',0,'2021-11-02 17:33:07','2021-11-02 17:33:07',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(596,'85df42d1-b45f-4bf8-a9d1-e2438b2eb113',0,'2021-11-03 08:59:11','2021-11-03 08:59:11',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(597,'a5dffc2c-b560-4145-a194-d89daf437712',0,'2021-11-03 11:54:35','2021-11-03 11:54:35',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(598,'cd30035b-f27a-47ee-b22f-d27549ebe8b8',0,'2021-11-03 16:14:39','2021-11-03 16:14:39',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(599,'bc6eefdb-1472-43ed-8f62-fa496c89a5ba',0,'2021-11-03 17:13:38','2021-11-03 17:13:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(600,'68beb616-0641-4124-aaed-c2ee8aeab7e0',0,'2021-11-03 17:29:59','2021-11-03 17:29:59',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(601,'c6751676-a1c9-4942-bd00-3c7a62dfcd1a',0,'2021-11-03 18:19:03','2021-11-03 18:19:03',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(602,'e440a005-81dd-4adb-9eb9-0a0ae805427f',0,'2021-11-04 10:53:09','2021-11-04 10:53:09',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(603,'a1fae26b-c07d-4fd0-ac0f-6c5d05fee557',0,'2021-11-04 17:33:22','2021-11-04 17:33:22',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(604,'b6bc3327-a20d-4339-9622-46047772e313',0,'2021-11-04 18:19:37','2021-11-04 18:19:37',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13733217919','127.0.0.1'),(605,'bde6a5e8-ea72-4579-999c-ea88a9d88668',0,'2021-11-05 08:59:00','2021-11-05 08:59:00',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(606,'ed97d5e5-6a7d-4fda-b879-100b09004e8d',0,'2021-11-05 10:03:00','2021-11-05 10:03:00',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(607,'53a264e1-53c4-48a8-a8ec-0704b2a10a3b',0,'2021-11-16 12:02:40','2021-11-16 12:02:40',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(608,'752d688b-b465-4c40-8f12-2f731771ca71',0,'2021-11-16 13:36:15','2021-11-16 13:36:15',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'13028639395','127.0.0.1'),(609,'312895e3-cab2-4ba6-9560-da628640fef3',0,'2021-11-16 17:23:09','2021-11-16 17:23:09',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(610,'9e3b9b51-c814-4f7b-913e-8ca302e1e213',0,'2021-11-16 17:32:45','2021-11-16 17:32:45',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(611,'ec021a75-9580-4888-be0f-f6868fb516b3',0,'2021-11-16 21:10:14','2021-11-16 21:10:14',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(612,'96aca317-0e41-42aa-a4ab-82014f93ae64',0,'2021-11-17 15:38:38','2021-11-17 15:38:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(613,'807c29ef-9874-476f-9756-0c36fed9ed9e',0,'2021-11-19 09:05:20','2021-11-19 09:05:20',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(614,'64e597df-470c-4359-8dea-c3fc49b166b6',0,'2021-11-19 10:23:23','2021-11-19 10:23:23',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(615,'c6b29527-b38e-426c-bdb1-1569b8ee997b',0,'2021-11-19 13:42:56','2021-11-19 13:42:56',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(616,'0cd54e9c-fa6d-4f12-bac8-497d7d5add2f',0,'2021-11-20 10:09:38','2021-11-20 10:09:38',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(617,'aefc3162-5511-492c-93a6-44b48fe90753',0,'2021-11-20 10:10:33','2021-11-20 10:10:33',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.101'),(618,'d0b3087c-4370-40c5-a5be-8be9d2becb4b',0,'2021-11-20 10:10:33','2021-11-20 10:10:33',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(619,'6455d72f-e137-4d88-bcf4-ae3302f6464d',0,'2021-11-20 10:10:51','2021-11-20 10:10:51',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.101'),(620,'8829dec9-63c4-4b5a-9603-457e23129384',0,'2021-11-20 10:10:51','2021-11-20 10:10:51',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(621,'a52aa1ba-8dda-463f-adf0-980ee587ffcc',0,'2021-11-20 10:10:54','2021-11-20 10:10:54',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询','/v1/systemlog/listPage','','','192.168.1.101'),(622,'fed93fb7-91bd-4aff-b4cc-bd3290699d87',0,'2021-11-20 10:10:54','2021-11-20 10:10:54',1,1,0,NULL,NULL,NULL,'日志列表查询','日志列表查询',NULL,NULL,'','0.0.0.0'),(623,'e584c8a9-c9ce-4ddc-994e-f5503a6ee99f',0,'2021-11-26 17:35:04','2021-11-26 17:35:04',1,1,0,NULL,NULL,NULL,'用户登录','用户登录','portal/v1/sysuser/login',NULL,'15097329653','127.0.0.1'),(624,'bda6b57d-10fe-4011-8c17-58735ce65418',0,'2021-12-21 14:12:16','2021-12-21 14:12:16',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/list',NULL,'','0:0:0:0:0:0:0:1'),(625,'417e5325-b67d-4ad1-b70e-66bdbc51a3ff',0,'2021-12-21 16:22:35','2021-12-21 16:22:35',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(626,'90bf1a56-11ce-4555-971d-b47ed9273c07',0,'2021-12-21 16:22:35','2021-12-21 16:22:35',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(627,'2627b459-da29-474a-9292-9a4bbcf81da4',0,'2021-12-21 16:22:56','2021-12-21 16:22:56',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(628,'3826bd1d-6e72-4961-8f85-47192314abb2',0,'2021-12-21 16:22:56','2021-12-21 16:22:56',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(629,'e02e4298-a608-45c2-a93e-fd8f616fcdeb',0,'2021-12-21 16:22:57','2021-12-21 16:22:57',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(630,'0e7c630b-9d66-4093-92a4-22e2615bb8e5',0,'2021-12-21 16:22:56','2021-12-21 16:22:56',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(631,'0c798920-dbb5-4ca3-ab9a-4160cee4c120',0,'2021-12-21 16:22:58','2021-12-21 16:22:58',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(632,'5e001b67-5373-42e7-afb9-0e88bb4b2d15',0,'2021-12-21 16:22:59','2021-12-21 16:22:59',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(633,'5090ad6a-d2a1-4b36-9f31-accc4ee1cc03',0,'2021-12-21 16:22:59','2021-12-21 16:22:59',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(634,'15c8807b-7d4f-483b-8b92-10b83872bea6',0,'2021-12-21 16:23:00','2021-12-21 16:23:00',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(635,'2288441e-764f-4048-b810-efed385b5d3a',0,'2021-12-21 16:22:59','2021-12-21 16:22:59',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(636,'f18c4930-544a-414e-b4b6-27a2f53c6a90',0,'2021-12-21 16:23:00','2021-12-21 16:23:00',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(637,'5e7f3ee4-3d85-4945-9c91-995e4481b97f',0,'2021-12-21 16:23:00','2021-12-21 16:23:00',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(638,'4bdba2c9-33f5-4d17-b8d3-b28933883739',0,'2021-12-21 16:23:00','2021-12-21 16:23:00',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(639,'c67c3b1a-5f81-40d6-884f-383dfc052a96',0,'2021-12-21 16:23:00','2021-12-21 16:23:00',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(640,'8e76eac3-a623-4d5d-92d1-1f66420c5087',0,'2021-12-21 16:23:00','2021-12-21 16:23:00',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(641,'602a3e47-6b6a-44a2-8bec-000547f4117c',0,'2021-12-21 16:23:00','2021-12-21 16:23:00',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(642,'1c3c6a33-3c67-4e91-9bfc-4969564cfee1',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(643,'c71d31e2-950c-4d0e-98ae-da73628844a9',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(644,'6854b681-a8ca-455d-b604-647d9b5026d4',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(645,'94398971-c85b-4e7a-8424-3d9e0e9ae093',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(646,'c761f76b-bf2d-48bb-bc39-2c351963574d',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(647,'7584c5cc-7cd1-4664-8222-55623628a36f',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(648,'487b2798-a3e2-4038-ab69-10c06e7b59c0',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(649,'b1fce190-9ce4-4edd-8d9b-81cb8bdffbbc',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(650,'0ee3c229-2e1a-4ad6-bfe0-207bedab897f',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(651,'f2476762-14f8-47b0-9d9d-1a3ac2c49719',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(652,'0466490e-4ca9-488f-86dd-c2da14e82e1a',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(653,'61b102cb-dfa1-411a-9a1a-5c90807ae4b0',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(654,'23008d8a-4e9f-48f2-aed9-3fd6ae792a98',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(655,'56615246-25ef-4416-ae17-e1c99a9bc195',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(656,'9368cfc8-d07f-4953-8dd4-ce07152f7460',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(657,'6bcf7569-f077-4660-830a-7372e15e560c',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(658,'f3a95a82-9d6d-4515-9a98-502f81c33ef3',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(659,'3ae5367e-a715-4b41-b380-26bb176fff39',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(660,'a3c14d4f-13ff-4bb1-afa6-95a956ee4d8a',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(661,'1bbd7b28-d468-4a27-8b31-f0640614fb55',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(662,'34c5dc00-b4a4-4d64-a0b4-2b0c6810c118',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(663,'b36a5173-aa0f-4519-a776-850140750503',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(664,'a6d4d697-e8ee-4164-bf03-eead8b2776f8',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(665,'8c67a0c7-a7bf-440d-b8ea-efd420d1d3a3',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(666,'edff263c-f5dc-4218-861d-beea329a2c93',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(667,'05b35acf-cc27-4a0c-a649-2711b18dfeff',0,'2021-12-21 16:23:01','2021-12-21 16:23:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(668,'42737660-fd4e-4e13-9258-511ab28ac9e3',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(669,'6d4634fd-26d6-4688-8a1b-a37d41980906',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(670,'b533aad8-a27d-4d1c-af2a-38ff77ce709b',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(671,'2a745513-5544-4219-8ff6-4b5c57145161',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(672,'936c9126-09a9-42b7-b715-8c9a828d4889',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(673,'954edc1b-6fd6-41ef-a296-f0ffa4f4b681',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(674,'d50ca120-1cda-416d-9133-6a433dc9c895',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(675,'3146747c-aae8-4dea-a701-16b6d5373a1d',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(676,'3589bbd5-c6a2-4be9-ab0b-0dcb6df0a0e6',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(677,'9a2464db-34d5-4b5f-88b7-a33e292cee2c',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(678,'1b2d8b99-f14c-446a-b27a-47a75c1c5a4a',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(679,'cbc3277e-e990-403d-aa5f-94cf844e0aa8',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(680,'26884b9a-4fb0-4ad2-a6af-4fba0b8d3e6c',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(681,'1ae0f57b-75c5-474a-bbe7-66218326574e',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(682,'795577d6-4fb3-4b79-b074-4bf6464befb1',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(683,'fd726006-0b1a-45cc-aae8-f66e54f0f730',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(684,'567492a7-7d27-45fc-99ec-6071f93a0827',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(685,'99434717-822c-4ba6-a90e-a72cddf0504a',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(686,'b8e49e31-a010-4db0-8cce-8c6aadcce08b',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(687,'cc7ab1f2-0165-425a-82fe-e0adb4391bac',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(688,'f8eef436-ec4b-4c61-ad85-5156e3c7b5c8',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(689,'93cd6539-b850-41f3-8e5b-33f15c056075',0,'2021-12-21 16:23:02','2021-12-21 16:23:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(690,'366a0485-96f5-46d2-abcc-bd9dca4cb741',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(691,'7deb709e-4e95-4b6c-b8c1-a6a5ec0fad17',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(692,'80c9d580-9f88-442b-a4f3-8bd23495c1e8',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(693,'01f9e878-11b8-47f2-ad80-09947383efe8',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(694,'98ada54d-0920-47cf-9bf2-f21409f05c20',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(695,'2c8bbee5-b1e4-43b5-8806-c089905b6e5e',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(696,'2a3238d3-bbb0-402f-9365-15783db3aead',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(697,'40cc86ef-d404-4ae4-b39e-c4e8e8ee4a34',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(698,'ea9bdbe0-6b53-4d0c-9219-ffe61c0f3244',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(699,'96423a71-5ac9-4b0c-9c9c-a70d502b0431',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(700,'33080ccc-4aa6-4b75-be2f-83e6bb14c082',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(701,'36d19a2b-c951-4319-82e2-a16bc66b1d17',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(702,'e5209db5-ca7f-4572-a690-50aa9de268aa',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(703,'a7541de0-d27c-4fcc-8fad-d7f63e09a9b2',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(704,'3914412f-b81f-463a-87bd-972a4111cb1d',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(705,'a4962dd0-e5ed-4a1a-8f97-2f651d98e57d',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(706,'8cbc7c0b-9736-40fe-a20a-891cf9f4bf86',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(707,'542d9466-756e-4945-ac90-fc696f72d6f6',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(708,'02db90cc-3743-4caa-ac31-43c11217b6d4',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(709,'4c6c41c8-65a5-4cf9-bb1d-f952431c51d8',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(710,'cbc200ee-521a-442e-9128-83779d72c0bf',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(711,'6004082e-3c36-4119-8bc3-51faf26db95a',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(712,'9bc921bf-b2c1-4cea-8201-8fedfa36ab21',0,'2021-12-21 16:23:03','2021-12-21 16:23:03',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(713,'0bfe2e39-7a48-4088-a79c-cca69ff31f57',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(714,'7cf505ea-cec1-43e3-b34f-f8ae6a82dad5',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(715,'6db748d8-55b9-4e41-a4b8-9a66ec8146c0',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(716,'b7af68bb-3bb3-46c6-ab56-17d872ee84e0',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(717,'fa0594d1-c924-400d-939f-19f01562573b',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(718,'89074e66-e9d5-491b-a594-fa3cc51f6521',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(719,'1645b8e2-bb7d-46e4-bfce-cd25e31263af',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(720,'567bf092-bc1a-4e4e-b7c8-bf3747da27ff',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(721,'0370c77d-4d38-44f6-87ff-24c32e11b9c7',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(722,'57cb5535-1f87-40ec-81aa-43a2bafa0673',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(723,'432a9fa3-9781-4020-9bd9-35ae31379fea',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(724,'aa3788ac-0e2c-4f0f-8d93-524673f9dc86',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(725,'1903c88c-1a16-4f35-9f1e-042d5342a86d',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(726,'9c45b7fb-dd92-42ad-afa0-ccb19bbcf36d',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(727,'345b89f2-0d1f-4f77-a353-7e6ec7b2661e',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(728,'d721ecf0-a472-4785-a73f-de5f84da92e8',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(729,'5a65b049-943a-4f01-9d32-a2a925872e9a',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(730,'b3abaec5-15c2-46a0-ab05-8572c1862946',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(731,'39655c87-ad57-424a-b2bd-aead621011af',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(732,'a56a1d79-a0f9-4667-acdb-26cd578fdcfa',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(733,'4098d1b3-fa48-40fd-8cb8-cac4f334b955',0,'2021-12-21 16:23:04','2021-12-21 16:23:04',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(734,'de471abe-7417-4110-8de9-11a803d08845',0,'2021-12-21 16:23:05','2021-12-21 16:23:05',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(735,'2f20e23e-de8d-4da8-a7b9-545114d0f92c',0,'2021-12-21 16:24:35','2021-12-21 16:24:35',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(736,'839946ef-acf5-4a72-bc39-2f56b95e7f3e',0,'2021-12-21 16:24:35','2021-12-21 16:24:35',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(737,'cc88bb51-7339-44c6-8c58-c8271512269c',0,'2021-12-21 16:24:35','2021-12-21 16:24:35',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(738,'b212205e-f71b-49cd-bfbf-bd0cd1057c55',0,'2021-12-21 16:24:35','2021-12-21 16:24:35',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(739,'24511d8c-0581-48c1-a19f-5b9ad9942413',0,'2021-12-21 16:25:24','2021-12-21 16:25:24',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(740,'ba64615c-cca8-4ee0-b72e-1b87f0c1f6ea',0,'2021-12-21 16:25:25','2021-12-21 16:25:25',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(741,'b463f7db-4a39-4ced-81f8-88880d94a6cb',0,'2021-12-21 16:25:25','2021-12-21 16:25:25',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(742,'5efd77c2-71de-47cf-8f6c-10f26b115b85',0,'2021-12-21 16:25:25','2021-12-21 16:25:25',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(743,'f4d84d68-56a4-4de3-8d3e-965f8ae14d59',0,'2021-12-21 16:25:26','2021-12-21 16:25:26',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(744,'8fed3ea8-d571-4adb-8aa3-c5a0bd754505',0,'2021-12-21 16:25:26','2021-12-21 16:25:26',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(745,'c61ef6e9-041b-4f9a-a80d-a95a12c16fa0',0,'2021-12-21 16:25:26','2021-12-21 16:25:26',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(746,'9843a1d1-ff09-48e1-8939-fdad0cdebbb9',0,'2021-12-21 16:25:26','2021-12-21 16:25:26',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(747,'91268154-f0a9-4574-8ded-8f6409eaf0d0',0,'2021-12-21 16:25:26','2021-12-21 16:25:26',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(748,'637a290d-c199-4d89-9345-637abf095986',0,'2021-12-21 16:25:26','2021-12-21 16:25:26',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(749,'9325be69-6e13-4a1f-8dec-465e9908e5bb',0,'2021-12-21 16:25:26','2021-12-21 16:25:26',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(750,'f0cead21-fabc-405b-a993-04a5e4627075',0,'2021-12-21 16:25:26','2021-12-21 16:25:26',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(751,'5ff7f432-3551-49da-b1d0-535fd8561b49',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(752,'e615add7-505d-468b-851d-7176b1e7ef13',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(753,'70608a40-e9e9-4250-bb57-2603c31b985c',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(754,'79191bb6-a335-44a1-81ee-a6f96c9959e2',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(755,'593cd0a6-e1e7-424d-a666-9dfb00b8ef41',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(756,'66eb305d-69b5-484a-947f-a202e17166b1',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(757,'3381bf99-e3d8-4772-8a59-975fe98b78d1',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(758,'919b9cc6-d7ee-4056-88fc-85ae97b919de',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(759,'975a7eee-6bdf-4c8a-a106-a80735fd6606',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(760,'d7fcf710-af8e-415b-9199-188eb57fcfe2',0,'2021-12-21 16:25:28','2021-12-21 16:25:28',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(761,'665df487-fe93-4d92-8cbc-1e8f2e52ae22',0,'2021-12-21 16:25:29','2021-12-21 16:25:29',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(762,'ab997e37-5b5a-489e-aee0-5b6dffd38be5',0,'2021-12-21 16:25:29','2021-12-21 16:25:29',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(763,'06e2a287-0d52-48d8-9bf7-4accdd244dc5',0,'2021-12-21 16:25:29','2021-12-21 16:25:29',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(764,'f90daf60-7c92-4541-a7a4-311f21d32c5a',0,'2021-12-21 16:25:29','2021-12-21 16:25:29',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(765,'f41b08cc-347e-4887-8209-021cd5ac3f66',0,'2021-12-21 16:25:31','2021-12-21 16:25:31',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(766,'d1766bee-99de-4e2a-9721-198881f00a6f',0,'2021-12-21 16:25:32','2021-12-21 16:25:32',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(767,'7ec646d8-cdef-4d65-ae00-e8dc776e552b',0,'2021-12-21 16:25:32','2021-12-21 16:25:32',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(768,'749e3381-e68c-443f-900f-cf5a590dd386',0,'2021-12-21 16:25:32','2021-12-21 16:25:32',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(769,'8ef25f55-f8ee-4cae-8908-16fd5972734a',0,'2021-12-21 16:25:32','2021-12-21 16:25:32',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(770,'f0fd68d8-b507-491c-91fa-742c4f5bbb34',0,'2021-12-21 16:25:47','2021-12-21 16:25:47',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(771,'e219672b-82c0-4bf1-8252-06d718bc9bb9',0,'2021-12-21 16:25:49','2021-12-21 16:25:49',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(772,'d66bb4f7-91dd-48f8-9967-fdd8de07df05',0,'2021-12-21 16:25:49','2021-12-21 16:25:49',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(773,'b05fc3ed-621c-4eaf-8b9e-c14509cf02d2',0,'2021-12-21 16:25:49','2021-12-21 16:25:49',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(774,'a4ab7342-e357-47a8-9c76-37de3cfe66af',0,'2021-12-21 16:25:49','2021-12-21 16:25:49',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(775,'7f9eca16-12d5-4d5d-8d66-eb84683d769d',0,'2021-12-21 16:25:49','2021-12-21 16:25:49',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(776,'89b34a17-ebf1-4336-8159-a41a5f7e54d4',0,'2021-12-21 16:25:50','2021-12-21 16:25:50',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(777,'3a989e59-d512-48c5-b969-883cdf514cb1',0,'2021-12-21 16:28:06','2021-12-21 16:28:06',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(778,'abbb1ed1-4bc9-41f6-81fd-1561fb9c3e12',0,'2021-12-21 16:28:06','2021-12-21 16:28:06',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(779,'65d55fea-73ac-4589-a74d-06784df549bb',0,'2021-12-21 16:34:26','2021-12-21 16:34:26',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/list',NULL,'','0:0:0:0:0:0:0:1'),(780,'146fc6db-1952-4aca-b637-597c23e7c688',0,'2021-12-21 16:34:23','2021-12-21 16:34:23',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/list',NULL,'','0:0:0:0:0:0:0:1'),(781,'fa0ed538-f6fb-48f7-b459-57de418940ba',0,'2021-12-21 16:34:49','2021-12-21 16:34:49',1,1,0,NULL,NULL,NULL,'yyd-demo','id=12','/demo/v1/sysuser/list',NULL,'','0:0:0:0:0:0:0:1'),(782,'5c94ba31-2f49-4440-89d1-67c40abb2e1b',0,'2021-12-21 16:35:06','2021-12-21 16:35:06',1,1,0,NULL,NULL,NULL,'yyd-demo','id=12&sid=9988','/demo/v1/sysuser/list',NULL,'','0:0:0:0:0:0:0:1'),(783,'c1da5e4c-24c3-4dd7-b80a-bd9acea233e1',0,'2021-12-21 16:38:38','2021-12-21 16:38:38',1,1,0,NULL,NULL,NULL,'yyd-demo','id=111&sid=3332','/demo/v1/sysuser/list',NULL,'','127.0.0.1'),(784,'1214da4d-b76a-462a-90bc-1b36cf296b4f',0,'2021-12-21 16:39:52','2021-12-21 16:39:52',1,1,0,NULL,NULL,NULL,'yyd-demo','id=111&sid=3332','/demo/v1/sysuser/list',NULL,'','127.0.0.1'),(785,'537d8c4a-863a-448a-b8c6-2eb2c9358a01',0,'2021-12-21 16:40:07','2021-12-21 16:40:07',1,1,0,NULL,NULL,NULL,'yyd-demo','id=111&sid=3332','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(786,'345fe2bf-3442-462b-81cb-9a6608901096',0,'2021-12-21 16:42:02','2021-12-21 16:42:02',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(787,'a8abe70a-b680-404b-a5bb-7b04585c3403',0,'2021-12-21 16:44:40','2021-12-21 16:44:40',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(788,'ec6006b2-8264-4b42-bf45-bf2ecd710ab8',0,'2021-12-21 16:45:03','2021-12-21 16:45:03',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(789,'eb76c937-6481-42c0-ae96-f2f68b03b093',0,'2021-12-21 16:55:11','2021-12-21 16:55:11',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(790,'3bcbaf2f-ab71-45e5-ac9e-da49cb117a96',0,'2021-12-21 16:55:21','2021-12-21 16:55:21',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(791,'a710894c-a2ba-4c17-815e-e5315be47751',0,'2021-12-21 16:56:29','2021-12-21 16:56:29',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(792,'f3229db1-32fc-40d4-8eca-7245e42c3332',0,'2021-12-21 16:57:27','2021-12-21 16:57:27',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(793,'c7438898-0ae5-4291-92a6-7799f21211c1',0,'2021-12-21 16:59:36','2021-12-21 16:59:36',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(794,'123bcade-0c00-4e26-824e-056725a16367',0,'2021-12-21 17:04:08','2021-12-21 17:04:08',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(795,'9e810756-9ced-4cc8-b58f-313f99899daa',0,'2021-12-21 17:11:33','2021-12-21 17:11:33',1,1,0,NULL,NULL,NULL,'yyd-demo','id=12&sid=9988','/demo/v1/sysuser/list',NULL,'','0:0:0:0:0:0:0:1'),(796,'abda2223-21c3-4790-82fb-a0d594e84692',0,'2021-12-21 17:29:35','2021-12-21 17:29:35',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(797,'66169e7e-a6f2-4ca1-9be2-a9831f657913',0,'2021-12-21 17:30:34','2021-12-21 17:30:34',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(798,'1f202431-5933-4367-92cc-571bf8ee9fbb',0,'2021-12-21 17:36:57','2021-12-21 17:36:57',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(799,'6af37fa7-74a3-4bd5-945b-620d46c985c5',0,'2021-12-21 17:37:01','2021-12-21 17:37:01',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(800,'8ef013e7-ccce-40ca-a25d-e51f3e239f34',0,'2021-12-21 17:37:01','2021-12-21 17:37:01',1,1,0,NULL,NULL,NULL,'yyd-demo','{\r\n \"createrName\": \"员工姓名23\",\r\n \"days\": 2,\r\n \"endTime\": \"2021-09-11\",\r\n \"processDefinitionId\": \"\",\r\n \"startTime\": \"2021-09-09\",\r\n \"title\": \"假期表单\",\r\n \"type\": \"\",\r\n \"userSid\": \"0d8d8119-d476-47ce-89c2-075cd809dda6\"\r\n}','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(801,'42fc7279-bb79-4c64-babf-d8451d1da721',0,'2021-12-21 17:37:02','2021-12-21 17:37:02',1,1,0,NULL,NULL,NULL,'','','',NULL,'',''),(802,'0204635a-eb6c-401c-a119-a0f23256c114',0,'2021-12-21 17:37:02','2021-12-21 17:37:02',1,1,0,NULL,NULL,NULL,'yyd-demo','{\r\n \"createrName\": \"员工姓名23\",\r\n \"days\": 2,\r\n \"endTime\": \"2021-09-11\",\r\n \"processDefinitionId\": \"\",\r\n \"startTime\": \"2021-09-09\",\r\n \"title\": \"假期表单\",\r\n \"type\": \"\",\r\n \"userSid\": \"0d8d8119-d476-47ce-89c2-075cd809dda6\"\r\n}','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(803,'ed03131c-f043-4222-9f85-7467dc3b82e9',0,'2021-12-21 17:38:13','2021-12-21 17:38:13',1,1,0,NULL,NULL,NULL,'yyd-demo','{\r\n \"createrName\": \"员工姓名23\",\r\n \"days\": 2,\r\n \"endTime\": \"2021-09-11\",\r\n \"processDefinitionId\": \"\",\r\n \"startTime\": \"2021-09-09\",\r\n \"title\": \"假期表单\",\r\n \"type\": \"\",\r\n \"userSid\": \"0d8d8119-d476-47ce-89c2-075cd809dda6\"\r\n}','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(804,'1c345bbd-9dc9-4fcd-8600-f65a3dc71259',0,'2021-12-21 17:38:58','2021-12-21 17:38:58',1,1,0,NULL,NULL,NULL,'yyd-demo','{\r\n \"createrName\": \"员工姓名23\",\r\n \"days\": 2,\r\n \"endTime\": \"2021-09-11\",\r\n \"processDefinitionId\": \"\",\r\n \"startTime\": \"2021-09-09\",\r\n \"title\": \"假期表单\",\r\n \"type\": \"\",\r\n \"userSid\": \"0d8d8119-d476-47ce-89c2-075cd809dda6\"\r\n}','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(805,'797f0a27-b0a8-4e19-81cc-e12d30f530ab',0,'2021-12-21 17:39:50','2021-12-21 17:39:50',1,1,0,NULL,NULL,NULL,'yyd-demo','id=12&sid=9988','/demo/v1/sysuser/list',NULL,'','0:0:0:0:0:0:0:1'),(806,'e64f42f0-8b68-4364-b8fa-f737b61f0d8a',0,'2021-12-21 17:57:19','2021-12-21 17:57:19',1,1,0,NULL,NULL,NULL,'yyd-demo','','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(807,'951172b5-fdeb-4e7a-869b-f4c8abc7eef2',0,'2021-12-21 17:59:12','2021-12-21 17:59:12',1,1,0,NULL,NULL,NULL,'yyd-demo','{\r\n \"createrName\": \"员工姓名23\",\r\n \"days\": 2,\r\n \"endTime\": \"2021-09-11\",\r\n \"processDefinitionId\": \"\",\r\n \"startTime\": \"2021-09-09\",\r\n \"title\": \"假期表单\",\r\n \"type\": \"\",\r\n \"userSid\": \"0d8d8119-d476-47ce-89c2-075cd809dda6\"\r\n}','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(808,'5993b2b8-ad0b-405d-b5f4-564ee3b78b2d',0,'2021-12-21 17:59:44','2021-12-21 17:59:44',1,1,0,NULL,NULL,NULL,'yyd-demo','{\r\n \"createrName\": \"员工姓名23\",\r\n \"days\": 2,\r\n \"endTime\": \"2021-09-11\",\r\n \"processDefinitionId\": \"\",\r\n \"startTime\": \"2021-09-09\",\r\n \"title\": \"假期表单\",\r\n \"type\": \"\",\r\n \"userSid\": \"0d8d8119-d476-47ce-89c2-075cd809dda6\"\r\n}','/demo/v1/sysuser/save',NULL,'','127.0.0.1'),(809,'e04b7b1a-93b4-4300-87ab-310ef8e205f5',0,'2021-12-21 18:01:06','2021-12-21 18:01:06',1,1,0,NULL,NULL,NULL,'yyd-demo','id=12&sid=9988','/demo/v1/sysuser/lists',NULL,'','0:0:0:0:0:0:0:1'); + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; diff --git a/open-api/open-api.iml b/open-api/open-api.iml new file mode 100644 index 0000000..c035f0b --- /dev/null +++ b/open-api/open-api.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/open-api/pom.xml b/open-api/pom.xml new file mode 100644 index 0000000..d7b4824 --- /dev/null +++ b/open-api/pom.xml @@ -0,0 +1,15 @@ + + + + ttvictory + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + open-api + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..74ebfa2 --- /dev/null +++ b/pom.xml @@ -0,0 +1,461 @@ + + + 4.0.0 + pom + + yyd-demo + yyd-base + yyd-center + yyd-log + + + org.springframework.boot + spring-boot-starter-parent + 2.2.2.RELEASE + + + com.yyd + ttvictory + 0.0.1-SNAPSHOT + ttvictory + Demo project for Spring Boot + + + + 1.8 + + UTF-8 + + UTF-8 + 1.8 + 1.8 + + + + 2.2.9.RELEASE + + Hoxton.SR6 + + 2.2.1.RELEASE + + + 1.3.0 + + + + 2.5 + 1.14 + + 1.9.3 + + 2.6.2 + + + 3.4.0 + + 1.2.73 + + 0.9.1 + + + + 2.9.2 + 2.0.5 + + + 3.17 + + 2.3.2 + + 1.19 + + 1.7 + + + + 5.4.0 + 6.0.20.Final + 1.18.12 + 3.1.0 + 3.10.1 + 2.2.9.RELEASE + 1.8.1 + 4.1.2 + 6.5.0 + + + + + + + + org.springframework.boot + spring-boot-starter-security + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring-cloud-alibaba.version} + pom + import + + + + com.alibaba.nacos + nacos-client + ${nacos.version} + + + + org.springframework.boot + spring-boot-starter-data-redis + ${redis.version} + + + io.lettuce + lettuce-core + + + + + + com.auth0 + java-jwt + ${java-jwt.version} + + + + redis.clients + jedis + ${jedis.version} + + + + commons-io + commons-io + ${commons.io.version} + + + commons-codec + commons-codec + ${commons-codec.version} + + + + commons-beanutils + commons-beanutils + ${commons.beanutils.version} + + + + org.apache.commons + commons-pool2 + ${common-pool.version} + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + com.baomidou + mybatis-plus-annotation + ${mybatis-plus.version} + + + + com.alibaba + fastjson + ${fastjson.version} + + + + io.jsonwebtoken + jjwt + ${jjwt.version} + + + + + io.springfox + springfox-swagger2 + ${swagger.fox.version} + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + com.github.xiaoymin + knife4j-dependencies + ${knife4j-Swagger} + pom + import + + + + + org.apache.poi + poi-ooxml + ${poi.version} + + + + com.github.penggle + kaptcha + ${kaptcha.version} + + + + eu.bitwalker + UserAgentUtils + ${bitwalker.version} + + + + org.apache.velocity + velocity + ${velocity.version} + + + + + cn.hutool + hutool-all + ${hutool.version} + + + + cn.hutool + hutool-core + ${hutool.version} + + + + cn.hutool + hutool-http + ${hutool.version} + + + + cn.hutool + hutool-crypto + ${hutool.version} + + + + cn.hutool + hutool-cache + ${hutool.version} + + + + cn.hutool + hutool-captcha + ${hutool.version} + + + + cn.hutool + hutool-poi + ${hutool.version} + + + + cn.hutool + hutool-json + ${hutool.version} + + + + cn.hutool + hutool-cron + ${hutool.version} + + + + cn.hutool + hutool-system + ${hutool.version} + + + + cn.hutool + hutool-setting + ${hutool.version} + + + + cn.hutool + hutool-extra + ${hutool.version} + + + + cn.hutool + hutool-aop + ${hutool.version} + + + + cn.hutool + hutool-bloomFilter + ${hutool.version} + + + + cn.hutool + hutool-db + ${hutool.version} + + + + cn.hutool + hutool-log + ${hutool.version} + + + + cn.hutool + hutool-socket + ${hutool.version} + + + + cn.hutool + hutool-dfa + ${hutool.version} + + + + cn.hutool + hutool-script + ${hutool.version} + + + org.hibernate.validator + hibernate-validator + ${hibernate-validator.version} + compile + + + org.projectlombok + lombok + true + ${lombok.version} + + + + + com.deepoove + poi-tl + ${poi-tl.version} + + + + org.apache.poi + poi + ${poi.version} + + + + org.flowable + flowable-engine + ${flowable.version} + compile + + + + org.flowable + flowable-spring-boot-starter-basic + ${flowable.version} + + + org.mybatis + mybatis + + + + + + + + + + + + + + + + aliyun-central + https://maven.aliyun.com/repository/central + + + aliyun-public + https://maven.aliyun.com/repository/public + + + aliyun-google + https://maven.aliyun.com/repository/google + + + aliyun-spring + https://maven.aliyun.com/repository/spring + + + + + aliyun-central + https://maven.aliyun.com/repository/central + + + aliyun-public + https://maven.aliyun.com/repository/public + + + aliyun-google + https://maven.aliyun.com/repository/google + + + aliyun-spring + https://maven.aliyun.com/repository/spring + + + diff --git a/yyd-base/pom.xml b/yyd-base/pom.xml new file mode 100644 index 0000000..5040cb5 --- /dev/null +++ b/yyd-base/pom.xml @@ -0,0 +1,21 @@ + + + + ttvictory + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 +pom + + yyd-base-common + yyd-base-redis + yyd-base-jdbc + yyd-base-handler + + yyd-base + + + \ No newline at end of file diff --git a/yyd-base/yyd-base-common/pom.xml b/yyd-base/yyd-base-common/pom.xml new file mode 100644 index 0000000..14c91fe --- /dev/null +++ b/yyd-base/yyd-base-common/pom.xml @@ -0,0 +1,191 @@ + + + + yyd-base + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + yyd-base-common + + + + + com.baomidou + mybatis-plus-annotation + + + + com.github.xiaoymin + knife4j-spring-boot-starter + + + cn.hutool + hutool-core + + + org.projectlombok + lombok + true + + + + org.apache.commons + commons-lang3 + + + commons-beanutils + commons-beanutils + + + com.baomidou + mybatis-plus-boot-starter + + + org.projectlombok + lombok + true + + + + org.springframework.boot + spring-boot-starter-data-redis + + + io.lettuce + lettuce-core + + + + + redis.clients + jedis + + + + com.auth0 + java-jwt + + + com.github.penggle + kaptcha + + + commons-io + commons-io + + + + org.apache.axis + axis + 1.4 + + + axis + axis-jaxrpc + 1.2.1 + + + + commons-discovery + commons-discovery + 0.5 + + + + wsdl4j + wsdl4j + 1.6.3 + + + + + commons-codec + commons-codec + + + com.alibaba + fastjson + 1.2.73 + + + org.apache.poi + poi + + + org.apache.poi + poi-ooxml + 3.14 + + + + + + com.google.zxing + core + 3.3.2 + + + + com.google.zxing + javase + 3.3.2 + + + + com.itextpdf + itextpdf + 5.4.3 + + + org.apache.httpcomponents + httpclient + + + org.apache.httpcomponents + httpclient + + + + + cn.jpush.api + jpush-client + 3.5.1 + + + cn.jpush.api + jiguang-common + 1.1.11 + + + io.netty + netty-all + 4.1.6.Final + compile + + + + com.belerweb + pinyin4j + 2.5.1 + + + + + cn.hutool + hutool-all + ${hutool.version} + + + + \ No newline at end of file diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/BaseEntity.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/BaseEntity.java new file mode 100644 index 0000000..a45451b --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/BaseEntity.java @@ -0,0 +1,158 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +import java.util.Date; +import java.util.UUID; + +/** + * Project: yxt-common
+ * File: BaseEntity.java
+ * Class: com.yxt.common.core.domain.BaseEntity
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/8/4 1:01
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +public class BaseEntity extends EntityWithId { + + public String getSid() { + return sid; + } + + public void setSid(String sid) { + this.sid = sid; + } + + public Integer getLockVersion() { + return lockVersion; + } + + public void setLockVersion(Integer lockVersion) { + this.lockVersion = lockVersion; + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getModifyTime() { + return modifyTime; + } + + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + + public Integer getIsEnable() { + return isEnable; + } + + public void setIsEnable(Integer isEnable) { + this.isEnable = isEnable; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getCreateBySid() { + return createBySid; + } + + public void setCreateBySid(String createBySid) { + this.createBySid = createBySid; + } + + public String getUpdateBySid() { + return updateBySid; + } + + public void setUpdateBySid(String updateBySid) { + this.updateBySid = updateBySid; + } + + @ApiModelProperty("字符型编号") + private String sid = UUID.randomUUID().toString(); + + // @Version + @ApiModelProperty("记录版本,锁") + private Integer lockVersion = 0; + + @ApiModelProperty("记录创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date createTime = new Date(); + @ApiModelProperty("记录最后修改时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date modifyTime = new Date(); + @ApiModelProperty("记录状态值") + private Integer state = 1; + @ApiModelProperty("记录是否可用,1:可用(默认),0:不可用") + private Integer isEnable = 1; + + // @TableLogic + @ApiModelProperty("记录是否被删除,0:未删除(默认),1:已经删除") + private Integer isDelete = 0; + + @ApiModelProperty("备注信息") + private String remarks; + @ApiModelProperty("创建者") + private String createBySid; + @ApiModelProperty("更新者") + private String updateBySid; +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/Entity.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/Entity.java new file mode 100644 index 0000000..fb2cc2b --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/Entity.java @@ -0,0 +1,7 @@ +package com.yyd.base.common.domain; + +import java.io.Serializable; + +public class Entity implements Serializable { + +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/EntityWithId.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/EntityWithId.java new file mode 100644 index 0000000..fd1c366 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/domain/EntityWithId.java @@ -0,0 +1,48 @@ +package com.yyd.base.common.domain; + +import io.swagger.annotations.ApiModelProperty; + +public class EntityWithId extends Entity { + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + @ApiModelProperty("ID值的字符串形式") + public String getIdStr() { + if (null == id) { + return ""; + } + return "" + id; + } + + @ApiModelProperty("ID,唯一编号") + private Integer id; + + @Override + public String toString() { + return "ClassName:" + getClass().getName() + ";id:" + getId(); + } + + @Override + public int hashCode() { + int id2 = Long.hashCode(getId()); + return super.hashCode() + id2; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof EntityWithId)) { + return false; + } + EntityWithId entity = (EntityWithId) obj; + return this.getId().equals(entity.getId()); + } +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/dto/Dto.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/dto/Dto.java new file mode 100644 index 0000000..40bfcd1 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/dto/Dto.java @@ -0,0 +1,52 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.dto; + +import cn.hutool.core.bean.BeanUtil; +import com.yyd.base.common.domain.Entity; +import com.yyd.base.common.vo.Vo; + +/** + * Project: jbsc-commons
+ * File: Dto.java
+ * Class: org.jbase.jbsc.commons.core.dto.Dto
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/9/17 23:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +public interface Dto extends Vo { + + default void fillEntity(E e) { + BeanUtil.copyProperties(this, e); + } + + +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/query/PagerQuery.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/query/PagerQuery.java new file mode 100644 index 0000000..0958bb9 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/query/PagerQuery.java @@ -0,0 +1,126 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.query; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * Project: jbsc-commons
+ * File: PagerQuery.java
+ * Class: org.jbase.jbsc.commons.core.query.PagerQuery
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/9/21 下午3:58
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +public class PagerQuery implements Serializable { + + public PagerQuery() { + } + + public PagerQuery(long current) { + this.current = current; + } + + public PagerQuery(long current, long size) { + this.size = size; + this.current = current; + } + + // @ApiModelProperty("总记录数") + //private long total = 0L; //总记录数 + @ApiModelProperty(value = "每页记录数", example = "10") + private long size = 10L; //每页记录数 + @ApiModelProperty(value = "当前页号", example = "1") + private long current = 1L; //当前页号 + @ApiModelProperty("查询条件的项") + private T params; + +// @ApiModelProperty("每页记录数,size的别名,默认值为10") +// public PagerQuery set_p_size(long _p_size) { +// this.size = _p_size; +// return this; +// } +// +// @ApiModelProperty("当前页号,current的别名,默认值为1") +// public PagerQuery set_p_no(long _p_no) { +// this.current = _p_no; +// return this; +// } +// +// @ApiModelProperty("总记录数,total的别名,默认值为0") +// public PagerQuery set_p_total(long _p_total) { +// this.total = _p_total; +// return this; +// } + + /* public long getTotal() { + return total; + } + + public PagerQuery setTotal(long total) { + this.total = total; + return this; + } +*/ + public long getSize() { + return size; + } + + public PagerQuery setSize(long size) { + this.size = size; + return this; + } + + public long getCurrent() { + return current; + } + + public PagerQuery setCurrent(long current) { + this.current = current; + return this; + } + + public T getParams() { + return params; + } + + public PagerQuery setParams(T params) { + this.params = params; + return this; + } + + public void fromPagerQuery(PagerQuery s_query) + { + this.setCurrent(s_query.getCurrent()).setSize(s_query.getSize()).setParams(params.fromMap(s_query.getParams().toMap())); + } +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/query/Query.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/query/Query.java new file mode 100644 index 0000000..578a156 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/query/Query.java @@ -0,0 +1,45 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.query; + + +import com.yyd.base.common.vo.Vo; + +/** + * Project: jbsc-commons
+ * File: Query.java
+ * Class: org.jbase.jbsc.commons.core.query.Query
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/9/21 下午3:24
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +public interface Query extends Vo { +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/AppResultData.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/AppResultData.java new file mode 100644 index 0000000..e28a076 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/AppResultData.java @@ -0,0 +1,30 @@ +package com.yyd.base.common.result; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description + * @Author liuguohui + * @Date 2021/10/11 + */ +@ApiModel(description = "手机端返回数据结构(同查询数据字典)") +@Data +public class AppResultData { + + @ApiModelProperty(value = "数据字典项sid") + private String sid; + + @ApiModelProperty(value = "数据字典项key") + private String dictKey; + + @ApiModelProperty(value = "数据字典类型") + private String dictType; + + @ApiModelProperty(value = "数据字典项名称") + private String dictValue; + @ApiModelProperty(value = "父级sid:0为第一级") + private String parentSid; + +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/HttpStatus.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/HttpStatus.java new file mode 100644 index 0000000..774cafa --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/HttpStatus.java @@ -0,0 +1,20 @@ +package com.yyd.base.common.result; + +/** + * @author dimengzhe + * @date 2021/6/16 10:50 + * @description + */ + +public class HttpStatus { + + /** + * 操作成功 + */ + public static final int SUCCESS = 200; + + /** + * 系统内部错误 + */ + public static final int ERROR = 500; +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/IResultCodeMsg.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/IResultCodeMsg.java new file mode 100644 index 0000000..b947f88 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/IResultCodeMsg.java @@ -0,0 +1,44 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.result; + +/** + * Project: yxt-common
+ * File: IResultCodeMsg.java
+ * Class: com.yxt.common.core.result.IResultCodeMsg
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021/9/11 下午11:00
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +public interface IResultCodeMsg { + String getCode(); + String getMsg(); +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/ResultBean.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/ResultBean.java new file mode 100644 index 0000000..f3d0c5e --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/ResultBean.java @@ -0,0 +1,304 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.result; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * Project: yxt-common-core
+ * File: ResultBean.java
+ * Class: com.yxt.common.core.result.ResultBean
+ * Description: 通过接口、Rest、逻辑处理执行后的结果信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/8/4 0:51
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(description = "返回结果") +public class ResultBean implements Serializable { + private static final long serialVersionUID = 4529658978692424234L; + +// @SuppressWarnings("unchecked") +// private Class clazz() { +// Class targetClass = (Class) ((ParameterizedType) this.getClass().getGenericSuperclass()) +// .getActualTypeArguments()[0]; +//// if(targetClass==null) +//// targetClass=Object.class; +// return targetClass; +// } +// +// @SuppressWarnings("unchecked") +// private T obj() { +// T instance = null; +// Class targetClass = (Class) ((ParameterizedType) this.getClass().getGenericSuperclass()) +// .getActualTypeArguments()[1]; +// try { +// instance = targetClass.newInstance(); +// } catch (InstantiationException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (IllegalAccessException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// return instance; +// } + + @ApiModelProperty("对象创建的时间戳") + private long timestamp = System.currentTimeMillis(); + + public long getTimestamp() { + return timestamp; + } + + // 是否成功 + @ApiModelProperty("是否成功: true or false") + private boolean success; + + // 消息 返回结果的说明 + @ApiModelProperty("返回结果的说明") + private String msg; + + // 结果状态码 + @ApiModelProperty("结果状态码") + private String code; + + // 数据 + @ApiModelProperty("业务数据") + private T data; + + private String message; + + public String getMessage() { + return message; + } + + public ResultBean setMessage(String message) { + this.message = message; + return this; + } + + public ResultBean() { + } + + public ResultBean(boolean success) { + this.success = success; + } + + public ResultBean(boolean success, String msg) { + this.success = success; + this.msg = msg; + } + + public ResultBean(boolean success, String msg, String code) { + this.success = success; + this.msg = msg; + this.code = code; + } + + public ResultBean(T data) { + this.success = true; + this.data = data; + } + + public ResultBean(String code, T data) { + this.success = true; + this.code = code; + this.data = data; + } + + public ResultBean(String code, String msg, T data) { + this.success = true; + this.code = code; + this.msg = msg; + this.data = data; + } + + public boolean getSuccess() { + return success; + } + + public ResultBean setSuccess(boolean success) { + this.success = success; + return this; + } + + public String getMsg() { + return msg; + } + + public ResultBean setMsg(String msg) { + this.msg = msg; + return this; + } + + public String getCode() { + return code; + } + + public ResultBean setCode(String code) { + this.code = code; + return this; + } + + public T getData() { +// if (this.data == null && this.map != null && !this.map.isEmpty()) { +//// Object t = new Object(); +//// Object r = (Object)this.map;map +//// BeanUtil.fillBeanWithMap(this.map, t, false); +// this.data = obj(); +// BeanUtil.copyProperties(this.map, this.data, true); +//// this.data = (T) t; +//// return t; +// } + return data; + } + + public ResultBean setData(T data) { + this.data = data; + return this; + } + + public ResultBean successOne() { + this.setSuccess(true); + this.setCode("0"); + this.setMessage("成功!"); + return this; + } + + public ResultBean failOne() { + this.setSuccess(false); + this.setCode(String.valueOf(HttpStatus.ERROR)); + this.setMessage("操作失败!"); + return this; + } + + public ResultBean success() { + this.setSuccess(true); + this.setCode(String.valueOf(HttpStatus.SUCCESS)); + this.setMsg("操作成功!"); + return this; + } + + public ResultBean fail() { + this.setSuccess(false); + this.setCode(String.valueOf(HttpStatus.ERROR)); + this.setMsg("操作失败!"); + return this; + } + + public static ResultBean fireSuccess() { + ResultBean rb = new ResultBean(); + rb.setSuccess(true); + rb.setCode(String.valueOf(HttpStatus.SUCCESS)); + rb.setMsg("操作成功!"); + return rb; + } + + public static ResultBean fireFail() { + ResultBean rb = new ResultBean(); + rb.setSuccess(false); + rb.setCode(String.valueOf(HttpStatus.ERROR)); + rb.setMsg("操作失败!"); + return rb; + } + +// @ApiModelProperty("无类型的业务数据对象") +//// @JsonIgnore +// private Map map = Collections.emptyMap(); +// +// public ResultBean clear() { +// this.map = null; +// return this; +// } +// +// public Object get(String key) { +// if (this.map == null) +// return null; +// return this.map.get(key); +// } +// +// public ResultBean remove(String key) { +// if (this.map == null) +// return this; +// this.map.remove(key); +// return this; +// } +// +// public ResultBean put(String key, Object value) { +// if (this.map == null) +// this.map = new HashMap<>(); +// this.map.put(key, value); +// return this; +// } +// +// public Map getMap() { +// return this.map; +// } +// +// public ResultBean setMap(Map map) { +// this.map = map; +// return this; +// } +// +// public ResultBean putAll(Map map) { +// if (this.map == null) +// this.map = new HashMap<>(); +// this.map.putAll(map); +// return this; +// } + + /** + * 设置返回code及msg + * + * @param codeMsg Code和Msg的枚举 + * @return + */ + public ResultBean setCode(IResultCodeMsg codeMsg) { + this.code = codeMsg.getCode(); + this.msg = codeMsg.getMsg(); + return this; + } + + /** + * 返回失败信息,并指定结果code + * @param codeMsg Code和Msg的枚举 + * @return + */ + public ResultBean fail(IResultCodeMsg codeMsg) { + this.setSuccess(false); + this.code = codeMsg.getCode(); + this.msg = codeMsg.getMsg(); + return this; + } + +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/ResultBeanOfEnum.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/ResultBeanOfEnum.java new file mode 100644 index 0000000..7e71c9b --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/result/ResultBeanOfEnum.java @@ -0,0 +1,332 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.result; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * Project: yxt-common-core
+ * File: ResultBean.java
+ * Class: com.yxt.common.core.result.ResultBean
+ * Description: 通过接口、Rest、逻辑处理执行后的结果信息.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/8/4 0:51
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(description = "返回结果") +public class ResultBeanOfEnum implements Serializable { + private static final long serialVersionUID = 4529658978692424234L; + +// @SuppressWarnings("unchecked") +// private Class clazz() { +// Class targetClass = (Class) ((ParameterizedType) this.getClass().getGenericSuperclass()) +// .getActualTypeArguments()[0]; +//// if(targetClass==null) +//// targetClass=Object.class; +// return targetClass; +// } +// +// @SuppressWarnings("unchecked") +// private T obj() { +// T instance = null; +// Class targetClass = (Class) ((ParameterizedType) this.getClass().getGenericSuperclass()) +// .getActualTypeArguments()[1]; +// try { +// instance = targetClass.newInstance(); +// } catch (InstantiationException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (IllegalAccessException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// return instance; +// } + + + + @ApiModelProperty("对象创建的时间戳") + private long timestamp = System.currentTimeMillis(); + + public long getTimestamp() { + return timestamp; + } + + // 是否成功 + @ApiModelProperty("是否成功: true or false") + private boolean success; + + // 消息 返回结果的说明 + @ApiModelProperty("返回结果的说明") + private String msg; + + // 结果状态码 + @ApiModelProperty("结果状态码") + private String code; + + // 数据 + @ApiModelProperty("业务数据") + private T data; + + private String message; + + public String getMessage() { + return message; + } + + public ResultBeanOfEnum setMessage(String message) { + this.message = message; + return this; + } + + public ResultBeanOfEnum() { + } + + public ResultBeanOfEnum(boolean success) { + this.success = success; + } + + public ResultBeanOfEnum(boolean success, String msg) { + this.success = success; + this.msg = msg; + } + + public ResultBeanOfEnum(boolean success, String msg, String code) { + this.success = success; + this.msg = msg; + this.code = code; + } + + public ResultBeanOfEnum(T data) { + this.success = true; + this.data = data; + } + + public ResultBeanOfEnum(String code, T data) { + this.success = true; + this.code = code; + this.data = data; + } + + public ResultBeanOfEnum(String code, String msg, T data) { + this.success = true; + this.code = code; + this.msg = msg; + this.data = data; + } + + public boolean getSuccess() { + return success; + } + + public ResultBeanOfEnum setSuccess(boolean success) { + this.success = success; + return this; + } + + public String getMsg() { + return msg; + } + + public ResultBeanOfEnum setMsg(String msg) { + this.msg = msg; + return this; + } + + public String getCode() { + return code; + } + + public ResultBeanOfEnum setCode(String code) { + this.code = code; + return this; + } + + public ResultBeanOfEnum setCode(CodeMsg codeMsg) { +// this.code = code; + return this; + } + + public T getData() { +// if (this.data == null && this.map != null && !this.map.isEmpty()) { +//// Object t = new Object(); +//// Object r = (Object)this.map;map +//// BeanUtil.fillBeanWithMap(this.map, t, false); +// this.data = obj(); +// BeanUtil.copyProperties(this.map, this.data, true); +//// this.data = (T) t; +//// return t; +// } + return data; + } + + public ResultBeanOfEnum setData(T data) { + this.data = data; + return this; + } + public ResultBeanOfEnum successOne() { + this.setSuccess(true); + this.setCode("0"); + this.setMessage("成功!"); + return this; + } + + public ResultBeanOfEnum failOne() { + this.setSuccess(false); + this.setCode(String.valueOf(HttpStatus.ERROR)); + this.setMessage("操作失败!"); + return this; + } + + public ResultBeanOfEnum success() { + this.setSuccess(true); + this.setCode(String.valueOf(HttpStatus.SUCCESS)); + this.setMsg("操作成功!"); + return this; + } + + public ResultBeanOfEnum fail() { + this.setSuccess(false); + this.setCode(String.valueOf(HttpStatus.ERROR)); + this.setMsg("操作失败!"); + return this; + } + + public static ResultBeanOfEnum fireSuccess() { + ResultBeanOfEnum rb = new ResultBeanOfEnum(); + rb.setSuccess(true); + rb.setCode(String.valueOf(HttpStatus.SUCCESS)); + rb.setMsg("操作成功!"); + return rb; + } + + public static ResultBeanOfEnum fireFail() { + ResultBeanOfEnum rb = new ResultBeanOfEnum(); + rb.setSuccess(false); + rb.setCode(String.valueOf(HttpStatus.ERROR)); + rb.setMsg("操作失败!"); + return rb; + } + +// @ApiModelProperty("无类型的业务数据对象") +//// @JsonIgnore +// private Map map = Collections.emptyMap(); +// +// public ResultBean clear() { +// this.map = null; +// return this; +// } +// +// public Object get(String key) { +// if (this.map == null) +// return null; +// return this.map.get(key); +// } +// +// public ResultBean remove(String key) { +// if (this.map == null) +// return this; +// this.map.remove(key); +// return this; +// } +// +// public ResultBean put(String key, Object value) { +// if (this.map == null) +// this.map = new HashMap<>(); +// this.map.put(key, value); +// return this; +// } +// +// public Map getMap() { +// return this.map; +// } +// +// public ResultBean setMap(Map map) { +// this.map = map; +// return this; +// } +// +// public ResultBean putAll(Map map) { +// if (this.map == null) +// this.map = new HashMap<>(); +// this.map.putAll(map); +// return this; +// } + + public enum CodeMsg{ + /** + * 返回正常 + */ + HTML200("200","返回正常"), + + /** + * 页面不存在 + */ + HTML404("404","页面不存在"), + + /** + * 服务器错误 + */ + HTML500("500","服务器错误"); + + private String code; + private String msg; + + private CodeMsg(String code,String msg){ + this.code = code; + this.msg = msg; + } + + public String getMsg(){ + return msg; + } + + public String getCode() { + return code; + } + + /** + * 根据code得到枚举实例 + * @param code + * @return + */ + public static CodeMsg byCode(String code){ + for(CodeMsg cm: CodeMsg.values()){ + if(cm.getCode().equals(code)){ + return cm; + } + } + return null; + } + } +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/utils/PagerUtil.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/utils/PagerUtil.java new file mode 100644 index 0000000..61f0264 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/utils/PagerUtil.java @@ -0,0 +1,102 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.utils; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.vo.PagerVo; +import com.yyd.base.common.vo.Vo; + +import java.util.ArrayList; + +/** + * Project: jbsc-commons
+ * File: PagerUtil.java
+ * Class: org.jbase.jbsc.commons.base.utils.PagerUtil
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/9/22 上午9:35
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +public abstract class PagerUtil { + + public static IPage queryToPage(PagerQuery pq) { + IPage page = new Page<>(); + page.setSize(pq.getSize()).setCurrent(pq.getCurrent()); + return page; + } + + public static PagerVo pageToVo(IPage pr, PagerVo pv) { + if (pv == null) + pv = new PagerVo(); + pv.setCurrent(pr.getCurrent()).setSize(pr.getSize()) + .setTotal(pr.getTotal()).setPages(pr.getPages()) + .setRecords(pr.getRecords()); + return pv; + } + + /** + * 转换pagerVo + * + * @param soure + * @param clazz + * @return + */ + public static PagerVo switchPagerVo( + PagerVo soure) { + if (soure == null) + return null; + + PagerVo target = new PagerVo<>(); + target.setCurrent(soure.getCurrent()).setPages(soure.getPages()) + .setSize(soure.getSize()).setTotal(soure.getTotal()); + target.setRecords(new ArrayList()); + + return target; + } + + /* + * public static PagerVo pageVoToVo(PagerVo pvs, PagerVo + * pvt) { if (pvt == null) pvt = new PagerVo(); + * pvt.setCurrent(pvs.getCurrent + * ()).setSize(pvs.getSize()).setTotal(pvs.getTotal + * ()).setPages(pvs.getPages()); + * + * for(int i=0;i implements Serializable { + + @ApiModelProperty("总页数") + private long pages = 1L; //总页数 + @ApiModelProperty("总记录数") + private long total = 0L; //总记录数 + @ApiModelProperty("每页记录数") + private long size = 10L; //每页记录数 + @ApiModelProperty("当前页号") + private long current = 1L; //当前页号 + + @ApiModelProperty("当前页的数据") + private List records = Collections.emptyList(); //当前页的数据 + @ApiModelProperty("统计信息") + private String msg = ""; + @ApiModelProperty("其它信息") + private Map map = Collections.emptyMap(); + + + public PagerVo() { + this.pages = 1L; //总页数 + this.total = 0L; //总记录数 + this.size = 10L; //每页记录数 + this.current = 1L; //当前页号 + this.records = Collections.emptyList(); //当前页的数据 + } + + public PagerVo(long current) { + this.pages = 1L; //总页数 + this.total = 0L; //总记录数 + this.size = 10L; //每页记录数 + this.current = current; //当前页号 + this.records = Collections.emptyList(); //当前页的数据 + } + + public long getPages() { + return pages; + } + + public PagerVo setPages(long pages) { + this.pages = pages; + return this; + } + + public long getTotal() { + return total; + } + + public PagerVo setTotal(long total) { + this.total = total; + return this; + } + + public long getSize() { + return size; + } + + public PagerVo setSize(long size) { + this.size = size; + return this; + } + + public long getCurrent() { + return current; + } + + public PagerVo setCurrent(long current) { + this.current = current; + return this; + } + + public List getRecords() { + return records; + } + + public PagerVo setRecords(List records) { + this.records = records; + return this; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Map getMap() { + return map; + } + + public void setMap(Map map) { + this.map = map; + } + +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/Tail.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/Tail.java new file mode 100644 index 0000000..c7f3921 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/Tail.java @@ -0,0 +1,46 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.vo; + +import java.io.Serializable; + +/** + * Project: jbsc-commons
+ * File: Tail.java
+ * Class: org.jbase.jbsc.commons.core.vo.Tail
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/9/21 下午3:22
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +public interface Tail extends Serializable { + public Object get(String key); + public void set(String key,Object value); +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/TailBean.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/TailBean.java new file mode 100644 index 0000000..98d6208 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/TailBean.java @@ -0,0 +1,59 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.vo; + +import java.util.HashMap; +import java.util.Map; + +/** + * Project: jbsc-commons
+ * File: TailBean.java
+ * Class: org.jbase.jbsc.commons.core.vo.TailBean
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/9/21 下午3:22
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +public class TailBean implements Tail { + + protected Map extMap = new HashMap(); + + public Object get(String key) { + return extMap.get(key); + } + + public void set(String key, Object value) { + this.extMap.put(key, value); + } + + public Map getTails() { + return extMap; + } +} diff --git a/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/Vo.java b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/Vo.java new file mode 100644 index 0000000..2cfe2d2 --- /dev/null +++ b/yyd-base/yyd-base-common/src/main/java/com/yyd/base/common/vo/Vo.java @@ -0,0 +1,60 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.common.vo; + +import cn.hutool.core.bean.BeanUtil; +import com.yyd.base.common.domain.Entity; + +import java.io.Serializable; +import java.util.Map; + +/** + * Project: jbsc-commons
+ * File: Vo.java
+ * Class: org.jbase.jbsc.commons.core.vo.Vo
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/9/18 0:03
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +public interface Vo extends Serializable { + + default Map toMap() { + return BeanUtil.beanToMap(this); + } + + default V fromMap(Map map) { + return (V) BeanUtil.fillBeanWithMap(map, this, false); + } + default void fromEntity(E e) { + BeanUtil.copyProperties(e, this); + + } +} diff --git a/yyd-base/yyd-base-handler/pom.xml b/yyd-base/yyd-base-handler/pom.xml new file mode 100644 index 0000000..c2ae5f1 --- /dev/null +++ b/yyd-base/yyd-base-handler/pom.xml @@ -0,0 +1,202 @@ + + + + yyd-base + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + yyd-base-handler + + + com.yyd + yyd-base-common + 0.0.1-SNAPSHOT + + + com.baomidou + mybatis-plus-annotation + + + + com.github.xiaoymin + knife4j-spring-boot-starter + + + cn.hutool + hutool-core + + + org.projectlombok + lombok + true + + + + org.apache.commons + commons-lang3 + + + commons-beanutils + commons-beanutils + + + com.baomidou + mybatis-plus-boot-starter + + + org.projectlombok + lombok + true + + + + org.springframework.boot + spring-boot-starter-data-redis + + + io.lettuce + lettuce-core + + + + + redis.clients + jedis + + + + com.auth0 + java-jwt + + + com.github.penggle + kaptcha + + + commons-io + commons-io + + + + org.apache.axis + axis + 1.4 + + + axis + axis-jaxrpc + 1.2.1 + + + + commons-discovery + commons-discovery + 0.5 + + + + wsdl4j + wsdl4j + 1.6.3 + + + + + commons-codec + commons-codec + + + com.alibaba + fastjson + 1.2.73 + + + org.apache.poi + poi + + + org.apache.poi + poi-ooxml + 3.14 + + + + + + com.google.zxing + core + 3.3.2 + + + + com.google.zxing + javase + 3.3.2 + + + + com.itextpdf + itextpdf + 5.4.3 + + + org.apache.httpcomponents + httpclient + + + org.apache.httpcomponents + httpclient + + + + + cn.jpush.api + jpush-client + 3.5.1 + + + cn.jpush.api + jiguang-common + 1.1.11 + + + io.netty + netty-all + 4.1.6.Final + compile + + + + com.belerweb + pinyin4j + 2.5.1 + + + + + cn.hutool + hutool-all + ${hutool.version} + + + org.springframework + spring-web + + + org.springframework + spring-webmvc + + + + \ No newline at end of file diff --git a/yyd-base/yyd-base-handler/src/main/java/com.yyd.base.handler/GlobalExceptionHandler.java b/yyd-base/yyd-base-handler/src/main/java/com.yyd.base.handler/GlobalExceptionHandler.java new file mode 100644 index 0000000..a98a958 --- /dev/null +++ b/yyd-base/yyd-base-handler/src/main/java/com.yyd.base.handler/GlobalExceptionHandler.java @@ -0,0 +1,99 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.handler; + +import com.yyd.base.common.result.ResultBean; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.validation.BindException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.NoHandlerFoundException; + +/** + * Project: jbsc-commons
+ * File: GlobalExceptionHandler.java
+ * Class: org.jbase.jbsc.commons.base.config.handler.GlobalExceptionHandler
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/9/17 上午10:34
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +@RestControllerAdvice +public class GlobalExceptionHandler { + + private static final Logger L = LoggerFactory.getLogger(GlobalExceptionHandler.class); + + /** + * 路径错误 + * + * @param e + * @return + */ + @ExceptionHandler(NoHandlerFoundException.class) + public ResultBean handlerNoFoundException(Exception e) { + L.error(e.getMessage(), e); + return ResultBean.fireFail().setCode("404").setMsg("路径不存在,请检查路径是否正确"); + } + + /** + * 系统异常 + * + * @param e + * @return + */ + @ExceptionHandler(Exception.class) + public ResultBean handleException(Exception e) { + L.error(e.getMessage(), e); + //发送邮件 + return ResultBean.fireFail().setMsg("系统异常::" + e.getMessage()); + } + + /** + * 自定义验证异常 + */ + @ExceptionHandler(BindException.class) + public ResultBean validatedBindException(BindException e) { + L.error(e.getMessage(), e); + String message = e.getAllErrors().get(0).getDefaultMessage(); + return ResultBean.fireFail().setCode("405").setMsg(message); + } + + /** + * 方法参数验证异常 + */ + @ExceptionHandler(MethodArgumentNotValidException.class) + public ResultBean validExceptionHandler(MethodArgumentNotValidException e) { + L.error(e.getMessage(), e); + String message = e.getBindingResult().getFieldError().getDefaultMessage(); + return ResultBean.fireFail().setCode("405").setMsg(message); + } +} diff --git a/yyd-base/yyd-base-jdbc/pom.xml b/yyd-base/yyd-base-jdbc/pom.xml new file mode 100644 index 0000000..9bcac5e --- /dev/null +++ b/yyd-base/yyd-base-jdbc/pom.xml @@ -0,0 +1,194 @@ + + + + yyd-base + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + yyd-base-jdbc + + + + com.yyd + yyd-base-common + 0.0.1-SNAPSHOT + + + com.baomidou + mybatis-plus-annotation + + + + com.github.xiaoymin + knife4j-spring-boot-starter + + + cn.hutool + hutool-core + + + org.projectlombok + lombok + true + + + + org.apache.commons + commons-lang3 + + + commons-beanutils + commons-beanutils + + + com.baomidou + mybatis-plus-boot-starter + + + org.projectlombok + lombok + true + + + + org.springframework.boot + spring-boot-starter-data-redis + + + io.lettuce + lettuce-core + + + + + redis.clients + jedis + + + + com.auth0 + java-jwt + + + com.github.penggle + kaptcha + + + commons-io + commons-io + + + + org.apache.axis + axis + 1.4 + + + axis + axis-jaxrpc + 1.2.1 + + + + commons-discovery + commons-discovery + 0.5 + + + + wsdl4j + wsdl4j + 1.6.3 + + + + + commons-codec + commons-codec + + + com.alibaba + fastjson + 1.2.73 + + + org.apache.poi + poi + + + org.apache.poi + poi-ooxml + 3.14 + + + + + + com.google.zxing + core + 3.3.2 + + + + com.google.zxing + javase + 3.3.2 + + + + com.itextpdf + itextpdf + 5.4.3 + + + org.apache.httpcomponents + httpclient + + + org.apache.httpcomponents + httpclient + + + + + cn.jpush.api + jpush-client + 3.5.1 + + + cn.jpush.api + jiguang-common + 1.1.11 + + + io.netty + netty-all + 4.1.6.Final + compile + + + + com.belerweb + pinyin4j + 2.5.1 + + + + + cn.hutool + hutool-all + ${hutool.version} + + + \ No newline at end of file diff --git a/yyd-base/yyd-base-jdbc/src/main/java/com/yyd/base/jdbc/MybatisPlusConfig.java b/yyd-base/yyd-base-jdbc/src/main/java/com/yyd/base/jdbc/MybatisPlusConfig.java new file mode 100644 index 0000000..5c105c6 --- /dev/null +++ b/yyd-base/yyd-base-jdbc/src/main/java/com/yyd/base/jdbc/MybatisPlusConfig.java @@ -0,0 +1,67 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.jdbc; + +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Project: yxt-common
+ * File: MybatisPlusConfig.java
+ * Class: com.yxt.common.base.config.MybatisPlusConfig
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/8/24 下午12:42
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +@Configuration +public class MybatisPlusConfig { + /* + * 分页插件,自动识别数据库类型 多租户,请参考官网【插件扩展】 + */ +// @Bean +// public MybatisPlusInterceptor paginationInterceptor() { +// return new MybatisPlusInterceptor(); +// } + + @Bean + public PaginationInterceptor paginationInterceptor() { + PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); + // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false + // paginationInterceptor.setOverflow(false); + // 设置最大单页限制数量,默认 500 条,-1 不受限制 + // paginationInterceptor.setLimit(500); + // 开启 count 的 join 优化,只针对部分 left join + paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true)); + return paginationInterceptor; + } +} diff --git a/yyd-base/yyd-base-jdbc/src/main/java/com/yyd/base/jdbc/service/MybatisBaseService.java b/yyd-base/yyd-base-jdbc/src/main/java/com/yyd/base/jdbc/service/MybatisBaseService.java new file mode 100644 index 0000000..3a28d2e --- /dev/null +++ b/yyd-base/yyd-base-jdbc/src/main/java/com/yyd/base/jdbc/service/MybatisBaseService.java @@ -0,0 +1,416 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yyd.base.jdbc.service; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yyd.base.common.domain.BaseEntity; +import com.yyd.base.common.dto.Dto; +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.query.Query; +import com.yyd.base.common.utils.PagerUtil; +import com.yyd.base.common.vo.PagerVo; +import com.yyd.base.common.vo.Vo; +import org.apache.commons.lang3.StringUtils; + +import java.io.Serializable; +import java.lang.reflect.ParameterizedType; +import java.util.*; + +/** + * Project: yxt-common
+ * File: MybatisBaseService.java
+ * Class: PACKAGE_NAME.MybatisBaseService
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2020/8/24 下午2:41
+ * + * @author popo + * @version 1.0 + * @since 1.0 + */ +public class MybatisBaseService, T> extends ServiceImpl { + + @SuppressWarnings("unchecked") + private T entity() { + T instance = null; + Class entityClass = (Class) ((ParameterizedType) this.getClass().getGenericSuperclass()) + .getActualTypeArguments()[1]; + try { + instance = entityClass.newInstance(); + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return instance; + } + + /** + * 描述 : <描述函数实现的功能>.
+ *

+ * + * @param map + */ + protected Long checkId(Map map) { + Object object = map.get("id"); + if (object == null) + return 0L; + String sId = object.toString(); + if (StringUtils.isBlank(sId)) + return 0L; + Long id = Long.valueOf(sId); + return id; + } + + protected String checkSid(Map map) { + Object object = map.get("sid"); + if (object == null) + return null; + // if (StringUtils.isBlank(object.toString())) + // return null; + return object.toString(); + } + + /** + * 描述 : 将Map转换为实体对象.
+ *

+ * + * @param map + * @param t + * @return + */ + @SuppressWarnings("unchecked") + protected T map2entity(Map map, T t) { + map.remove("id"); + map.remove("sid"); + map.remove("createTime"); + map.remove("modifyTime"); + if (t instanceof BaseEntity) { + ((BaseEntity) t).setModifyTime(new Date()); + t = (T) (BaseEntity) t; + } + BeanUtil.fillBeanWithMapIgnoreCase(map, t, false); + return t; + } + + public int insert(T paramT) { + return baseMapper.insert(paramT); + } + + public int insert(Map map) { + T t = entity(); + t = map2entity(map, t); + return insert(t); + } + + public int deleteBySid(String sid) { + Map map = new HashMap<>(); + map.put("sid", sid); + return baseMapper.deleteByMap(map); + } + + /** + * 描述 : <描述函数实现的功能>.
+ *

+ * + * @param ids + * @return + */ + public int delByIds(String ids) { + String[] split = ids.split(","); + if (split.length < 1) { + return 0; + } else if (split.length == 1) { + return baseMapper.deleteById(Long.valueOf(ids)); + } else { + List list = new ArrayList<>(); + for (String id : split) { + list.add(Long.valueOf(id)); + } + return baseMapper.deleteBatchIds(list); + } + } + + /** + * 描述 : <描述函数实现的功能>.
+ *

+ * + * @param sids + * @return + */ + public int delBySids(String[] sids) { + if (sids == null || sids.length < 1) + return 0; + else if (sids.length == 1) { + String sid = sids[0]; + return deleteBySid(sid); + } else { + List list = new ArrayList<>(); + for (String sid : sids) { + list.add(sid); + } + QueryWrapper qw = new QueryWrapper<>(); + qw.in("sid", list); + return baseMapper.delete(qw); + } + } + + public int updateById(Map map) { + Long id = checkId(map); + if (id.equals(0L)) + return 0; + return updateById(map, id); + } + + public int updateById(Map map, Serializable id) { + T t = fetchById(id); + if (t == null) + return -1; + t = map2entity(map, t); + + if (t instanceof BaseEntity) { + if(((BaseEntity) t).getLockVersion()!=null) { + ((BaseEntity) t).setLockVersion(((BaseEntity) t).getLockVersion() + 1); + } + } + return baseMapper.updateById(t); + } + + public int updateBySid(Map map) { + String sid = checkSid(map); + if (StringUtils.isBlank(sid)) + return 0; + return updateBySid(map, sid); + } + + public int updateBySid(Dto dto, String sid) { + T t = fetchBySid(sid); + if (t == null) + return -1; + BeanUtil.copyProperties(dto,t); + if (t instanceof BaseEntity) { + if(((BaseEntity) t).getLockVersion()!=null) { + ((BaseEntity) t).setLockVersion(((BaseEntity) t).getLockVersion() + 1); + } + } + return baseMapper.updateById(t); + } + + public int updateBySid(Map map, String sid) { + T t = fetchBySid(sid); + if (t == null) + return -1; + t = map2entity(map, t); + + if (t instanceof BaseEntity) { + if(((BaseEntity) t).getLockVersion()!=null) { + ((BaseEntity) t).setLockVersion(((BaseEntity) t).getLockVersion() + 1); + } + } + return baseMapper.updateById(t); + } + + public int insertOrUpdateById(Map map) { + Long id = checkId(map); + if (id.equals(0L)) + return insert(map); + return updateById(map, id); + } + + public int insertOrUpdateBySid(Map map) { + String sid = checkSid(map); + if (StringUtils.isBlank(sid)) + return insert(map); + return updateBySid(map, sid); + } + + /** + * 描述 : <描述函数实现的功能>.
+ *

+ * + * @param id + * @return + */ + public T fetchById(Serializable id) { + return baseMapper.selectById(id); + } + + public T fetchBySid(String sid) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("sid", sid); + return baseMapper.selectOne(qw); + } + + /** + * 描述 : <描述函数实现的功能>.
+ *

+ * + * @param page + * @param params + * @return + */ + public IPage pagging(IPage page, Map params) { + QueryWrapper qw = defaultPageQueryWrapper(params); + return pagging(page, qw); + } + + /** + * 描述 : <描述函数实现的功能>.
+ *

+ * + * @param page + * @param qw + * @return + */ + public IPage pagging(IPage page, QueryWrapper qw) { + IPage selectPage = baseMapper.selectPage(page, qw); + if (selectPage.getPages() < selectPage.getCurrent()) { + page.setCurrent(selectPage.getPages()); + page.setTotal(selectPage.getTotal()); + selectPage = baseMapper.selectPage(page, qw); + } + return selectPage; + } + + public IPage> paggingMap(IPage> page, Map params) { + QueryWrapper qw = defaultPageQueryWrapper(params); + return paggingMap(page, qw); + } + + + public IPage> paggingMap(IPage> page, QueryWrapper qw) { + IPage> selectMapsPage = baseMapper.selectMapsPage(page, qw); + + if (selectMapsPage.getPages() < selectMapsPage.getCurrent()) { + page.setCurrent(selectMapsPage.getPages()); + page.setTotal(selectMapsPage.getTotal()); + selectMapsPage = baseMapper.selectMapsPage(page, qw); + } + + return selectMapsPage; + } + + /** + * 描述 : <描述函数实现的功能>.
+ *

+ * + * @param params + */ + private QueryWrapper defaultPageQueryWrapper(Map params) { + if (params == null || params.isEmpty()) + return Wrappers.emptyWrapper(); + + QueryWrapper qw = new QueryWrapper(); + for (String key : params.keySet()) { + qw.like(key, params.get(key)); + } + return qw; + } + + public IPage page(IPage page, Map params) { + QueryWrapper qw = defaultPageQueryWrapper(params); + return super.page(page, qw); + } + + public IPage> pageMaps(IPage> page, Map params) { + QueryWrapper qw = defaultPageQueryWrapper(params); + return super.pageMaps(page, qw); + } + + public PagerVo page(PagerQuery pagerQuery) { + Q params = pagerQuery.getParams(); + IPage page = PagerUtil.queryToPage(pagerQuery); + Map paramsMap = null; + if (params != null) + paramsMap = params.toMap(); + IPage pageResult = this.page(page, paramsMap); + PagerVo pv = PagerUtil.pageToVo(pageResult, null); + return pv; + } + + public PagerVo> pageMaps(PagerQuery pagerQuery) { + Q params = pagerQuery.getParams(); + IPage page = PagerUtil.queryToPage(pagerQuery); + Map paramsMap = null; + if (params != null) + paramsMap = params.toMap(); + IPage pageResult = this.page(page, paramsMap); + PagerVo> pv = PagerUtil.pageToVo(pageResult, new PagerVo<>()); + return pv; + } + + /** + * 查询与某一字段值相等的数据列表 + * + * @param filedName 字段名 + * @param filedValue 相等的值 + * @return + */ + public List listEqFiled(String filedName, String filedValue) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq(filedName, filedValue); + return list(qw); + } + + /** + * 查询与某一字段值相等,但不等于id的数据列表 + * + * @param filedName 字段名 + * @param filedValue 相等的值 + * @param id id的值 + * @return + */ + public List listEqFiledNeId(String filedName, String filedValue, Serializable id) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq(filedName, filedValue); + qw.ne("id", id); + return list(qw); + } + + /** + * 查询与某一字段值相等,但与另一字段的值不相等的数据列表 + * + * @param filedName 相等的字段名 + * @param filedValue 相等的值 + * @param neName 不相等的字段名 + * @param neValue 不相等的值 + * @return + */ + public List listEqFiledWithNe(String filedName, String filedValue, String neName, String neValue) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq(filedName, filedValue); + qw.ne(neName, neValue); + return list(qw); + } +} diff --git a/yyd-base/yyd-base-redis/pom.xml b/yyd-base/yyd-base-redis/pom.xml new file mode 100644 index 0000000..b87821e --- /dev/null +++ b/yyd-base/yyd-base-redis/pom.xml @@ -0,0 +1,39 @@ + + + + yyd-base + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + yyd-base-redis + + + + io.jsonwebtoken + jjwt + 0.9.0 + + + + org.springframework.boot + spring-boot-starter-data-redis + + + io.lettuce + lettuce-core + + + + + redis.clients + jedis + + + + + + \ No newline at end of file diff --git a/yyd-base/yyd-base-redis/src/main/java/com/yyd/base/redis/RedisConfig.java b/yyd-base/yyd-base-redis/src/main/java/com/yyd/base/redis/RedisConfig.java new file mode 100644 index 0000000..f75a0c8 --- /dev/null +++ b/yyd-base/yyd-base-redis/src/main/java/com/yyd/base/redis/RedisConfig.java @@ -0,0 +1,107 @@ +package com.yyd.base.redis; + + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import redis.clients.jedis.JedisPoolConfig; + +/** + * @author dimengzhe + * @date 2020/9/18 19:37 + * @description + */ +@Configuration +public class RedisConfig { + + @Value("${spring.redis.host}") + private String host; + + @Value("${spring.redis.password}") + private String password; + + @Value("${spring.redis.port}") + private int port; + + @Value("${spring.redis.timeout}") + private int timeout; + + @Value("${spring.redis.jedis.pool.max-active}") + private int redisPoolMaxActive; + + @Value("${spring.redis.jedis.pool.max-wait}") + private int redisPoolMaxWait; + + @Value("${spring.redis.jedis.pool.max-idle}") + private int redisPoolMaxIdle; + + @Value("${spring.redis.jedis.pool.min-idle}") + private int redisPoolMinIdle; + @Value("${spring.redis.database}") + private int database; + + @Bean + public JedisPoolConfig getJedisPoolConfig() { + JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); + //最大空闲数 + jedisPoolConfig.setMaxIdle(redisPoolMaxIdle); + //最小空闲数 + jedisPoolConfig.setMinIdle(redisPoolMinIdle); + //最大建立连接等待时间 + jedisPoolConfig.setMaxWaitMillis(redisPoolMaxWait); + //连接池的最大数据库连接数 + jedisPoolConfig.setMaxTotal(redisPoolMaxActive); + return jedisPoolConfig; + } + + + @Bean + public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig jedisPoolConfig) { + + JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(jedisPoolConfig); + jedisConnectionFactory.setDatabase(database); + //IP地址 + jedisConnectionFactory.setHostName(host); + //如果redis设置有密码 + jedisConnectionFactory.setPassword(password); + //端口号 + jedisConnectionFactory.setPort(port); + //客户端超时时间单位是毫秒 + jedisConnectionFactory.setTimeout(timeout); +// jedisConnectionFactory.afterPropertiesSet(); //记得添加这行! + return jedisConnectionFactory; + } + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(redisConnectionFactory); + // 使用Jackson2JsonRedisSerialize 替换默认序列化 + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); + ObjectMapper om = new ObjectMapper(); + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + jackson2JsonRedisSerializer.setObjectMapper(om); + StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); + // key采用String的序列化方式 + //redisTemplate.setKeySerializer(new StringRedisSerializer()); + redisTemplate.setKeySerializer(stringRedisSerializer); + // hash的key也采用String的序列化方式 + redisTemplate.setHashKeySerializer(stringRedisSerializer); + // value序列化方式采用jackson + // redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); + redisTemplate.setValueSerializer(stringRedisSerializer); + // hash的value序列化方式采用jackson + redisTemplate.setHashValueSerializer(stringRedisSerializer); + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } +} diff --git a/yyd-base/yyd-base-redis/src/main/java/com/yyd/base/redis/RedisUtil.java b/yyd-base/yyd-base-redis/src/main/java/com/yyd/base/redis/RedisUtil.java new file mode 100644 index 0000000..88813db --- /dev/null +++ b/yyd-base/yyd-base-redis/src/main/java/com/yyd/base/redis/RedisUtil.java @@ -0,0 +1,322 @@ +package com.yyd.base.redis; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataAccessException; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.connection.RedisStringCommands; +import org.springframework.data.redis.core.*; +import org.springframework.data.redis.core.types.Expiration; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * @author dimengzhe + * @date 2020/9/9 17:35 + * @description redis工具类 + */ +@Service +public class RedisUtil { + + @Autowired + private RedisTemplate redisTemplate; + + + /** + * 字符串类型:根据key设置value值,如果key中的value存在,那么返回false + * + * @param key + * @param value + * @return + */ + public Boolean setnx(final String key, final String value, final long expration, final TimeUnit timeUnit) { + return (Boolean) redisTemplate.execute(new RedisCallback() { + @Override + public Boolean doInRedis(RedisConnection redisConnection) throws DataAccessException { + RedisSerializer redisSerializer = redisTemplate.getStringSerializer(); + byte keys[] = redisSerializer.serialize(key); + byte values[] = redisSerializer.serialize(value); + return redisConnection.set(keys, values, Expiration.from(expration, timeUnit), RedisStringCommands.SetOption.SET_IF_ABSENT); + } + }); + } + + /** + * 写入缓存 + * + * @param key + * @param value + * @return + */ + public boolean set(final String key, final String value) { + + boolean result = (boolean) redisTemplate.execute(new RedisCallback() { + @Override + public Boolean doInRedis(RedisConnection connection) throws DataAccessException { + RedisSerializer serializer = redisTemplate.getStringSerializer(); + connection.set(serializer.serialize(key), serializer.serialize(value)); + return true; + } + }); + return result; + } + + /** + * 写入缓存设置时效时间 + * + * @param key + * @param value + * @return + */ + public boolean set(final String key, Object value, Long expireTime) { + boolean result = false; + try { + ValueOperations operations = redisTemplate.opsForValue(); + operations.set(key, value); + redisTemplate.expire(key, expireTime, TimeUnit.SECONDS); + result = true; + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + public boolean expire(String key, long expire) { + return redisTemplate.expire(key, expire, TimeUnit.SECONDS); + } + + /** + * 读取缓存 + * + * @param key + * @return + */ + public String get(final String key) { + String result = (String) redisTemplate.execute(new RedisCallback() { + @Override + public String doInRedis(RedisConnection connection) throws DataAccessException { + RedisSerializer serializer = redisTemplate.getStringSerializer(); + byte[] value = connection.get(serializer.serialize(key)); + return serializer.deserialize(value); + } + }); + return result; + } + + /** + * 正则获取key集合 + * + * @param pattern + * @return + */ + public Set keys(String pattern) { + Set keys = redisTemplate.keys(pattern); + return keys; + } + + + /** + * 批量删除对应的value + * + * @param keys + */ + public void remove(final String... keys) { + for (String key : keys) { + remove(key); + } + } + + /** + * 批量删除key + * + * @param pattern + */ + public void removePattern(final String pattern) { + Set keys = redisTemplate.keys(pattern); + if (keys.size() > 0) { + redisTemplate.delete(keys); + } + + } + + + public Long remove(final String key) { + return (Long) redisTemplate.execute(new RedisCallback() { + @Override + public Long doInRedis(RedisConnection redisConnection) throws DataAccessException { + RedisSerializer serializer = redisTemplate.getStringSerializer(); + byte keys[] = serializer.serialize(key); + return redisConnection.del(keys); + } + }); + } + + + /** + * 判断缓存中是否有对应的value + * + * @param key + * @return + */ + public boolean exists(final String key) { + return redisTemplate.hasKey(key); + } + + + /** + * 哈希 添加 + * + * @param key + * @param hashKey + * @param value + */ + public void hmSet(String key, Object hashKey, Object value) { + HashOperations hash = redisTemplate.opsForHash(); + hash.put(key, hashKey, value); + } + + /** + * 哈希获取数据 + * + * @param key + * @param hashKey + * @return + */ + public String hmGet(String key, Object hashKey) { + HashOperations hash = redisTemplate.opsForHash(); + return hash.get(key, hashKey); + } + + /** + * 获取哈希 keys + * + * @param key + * @return + */ + public Set hmGetKeys(String key) { + HashOperations hash = redisTemplate.opsForHash(); + return hash.keys(key); + } + + /** + * 删除集合中的key + * + * @param key + * @param hashKey + */ + public void hmDelete(String key, Object hashKey) { + HashOperations hash = redisTemplate.opsForHash(); + hash.delete(key, hashKey); + } + + /** + * 列表添加 + * + * @param k + * @param v + */ + public void lPush(String k, Object v) { + ListOperations list = redisTemplate.opsForList(); + list.rightPush(k, v); + } + + /** + * 列表获取 + * + * @param k + * @param l + * @param l1 + * @return + */ + public List lRange(String k, long l, long l1) { + ListOperations list = redisTemplate.opsForList(); + return list.range(k, l, l1); + } + + /** + * 集合添加 + * + * @param key + * @param value + */ + public void add(String key, Object value) { + SetOperations set = redisTemplate.opsForSet(); + set.add(key, value); + } + + /** + * 集合获取 + * + * @param key + * @return + */ + public Set setMembers(String key) { + SetOperations set = redisTemplate.opsForSet(); + return set.members(key); + } + + /** + * 有序集合添加 + * + * @param key + * @param value + * @param scoure + */ + public void zAdd(String key, Object value, double scoure) { + ZSetOperations zset = redisTemplate.opsForZSet(); + zset.add(key, value, scoure); + } + + /** + * 有序集合获取 + * + * @param key + * @param scoure + * @param scoure1 + * @return + */ + public Set rangeByScore(String key, double scoure, double scoure1) { + ZSetOperations zset = redisTemplate.opsForZSet(); + return zset.rangeByScore(key, scoure, scoure1); + } + + /** + * 实现命令:TTL key 以秒为单位,返回给定key的剩余生存时间 + * + * @param key + * @return + */ + public long ttl(String key) { + return redisTemplate.getExpire(key); + } + + /** + * @param keyPrefix: key前缀 + * @description: 根据前缀获取所有的符合该keyvalue值 + * @author: dimengzhe + * @date: 2021/11/6 16:16 + * @return: java.util.List + */ + public List getValuesByPrefix(String keyPrefix) { + List keys = getKeysByPrefix(keyPrefix); + List values = redisTemplate.opsForValue().multiGet(keys); + return (List) (List) values; + } + + /** + * @param keyPrefix: key前缀 + * @description: 根据前缀获取所有的符合该key的所有key值集合 + * @author: dimengzhe + * @date: 2021/11/6 16:17 + * @return: java.util.List + */ + public List getKeysByPrefix(String keyPrefix) { + Set keys = redisTemplate.keys(keyPrefix + "*"); + return Arrays.asList(keys.toArray(new String[0])); + } +} diff --git a/yyd-center/pom.xml b/yyd-center/pom.xml new file mode 100644 index 0000000..531992b --- /dev/null +++ b/yyd-center/pom.xml @@ -0,0 +1,18 @@ + + + + ttvictory + com.yyd + 0.0.1-SNAPSHOT + + + yyd-center-gateway + + 4.0.0 + pom + yyd-center + + + \ No newline at end of file diff --git a/yyd-center/yyd-center-gateway/pom.xml b/yyd-center/yyd-center-gateway/pom.xml new file mode 100644 index 0000000..d2f5e0f --- /dev/null +++ b/yyd-center/yyd-center-gateway/pom.xml @@ -0,0 +1,117 @@ + + + + yyd-center + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + yyd-center-gateway + + + org.springframework.boot + spring-boot-starter-log4j2 + + + com.yyd + yyd-base-redis + 0.0.1-SNAPSHOT + + + io.jsonwebtoken + jjwt + 0.9.0 + + + org.springframework.cloud + spring-cloud-starter-gateway + + + org.springframework.boot + spring-boot-starter-logging + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + org.springframework.boot + spring-boot-starter-logging + + + + + org.projectlombok + lombok + true + + + org.springframework + spring-webmvc + + + + org.springframework.boot + spring-boot-starter-data-redis + + + io.lettuce + lettuce-core + + + org.springframework.boot + spring-boot-starter-logging + + + + + redis.clients + jedis + + + com.alibaba + fastjson + + + org.springframework.kafka + spring-kafka + + + cn.hutool + hutool-all + + + + + + + \ No newline at end of file diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/AuthFilter.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/AuthFilter.java new file mode 100644 index 0000000..5674045 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/AuthFilter.java @@ -0,0 +1,265 @@ +package com.yyd.gateway; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.yyd.base.redis.RedisUtil; +import com.yyd.gateway.utils.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.cloud.gateway.route.Route; +import org.springframework.cloud.gateway.support.ServerWebExchangeUtils; +import org.springframework.core.Ordered; +import org.springframework.core.io.buffer.DataBuffer; +import org.springframework.core.io.buffer.DataBufferFactory; +import org.springframework.core.io.buffer.DataBufferUtils; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpRequestDecorator; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.stereotype.Component; +import org.springframework.util.MultiValueMap; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.io.UnsupportedEncodingException; +import java.nio.CharBuffer; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; + +/** + * @author dimengzhe + * @date 2020/12/2 9:52 + * @description 网关鉴权 + * 1.某些接口不需要不进行登录验证,如登录,注册,获取验证码等接口。(uri白名单) + *2.某些接口需要登录验证,但是不需要刷新token有效时间,如客户端轮询请求的接口。 + *3.特定场景下IP黑、白名单。 + *4.处于安全考虑的接口流量控制。 + */ +@Component +public class AuthFilter implements GlobalFilter, Ordered { + + private static final Logger log = LoggerFactory.getLogger(AuthFilter.class); + //过期时间设置为4小时 + private final static long EXPIRE_TIME = Constants.TOKEN_EXPIRE * 60; + private final static long EXPIRE_TIME_APP =Constants.TOKEN_EXPIRE_APP * 60; + + // 排除过滤的 uri 地址,nacos自行添加 + @Autowired + private IgnoreWhiteProperties ignoreWhite; + @Autowired + private RedisUtil redisUtil; + @Autowired + private KafkaProducerService kafkaProducerService; + /* + redis中数据存储结构为两个键值对 + 键为用户ID,值为用户token,可以通过用户ID查询用户token,实现立刻失效用户token功能。 + 键为用户token,值为用户数据,实现token有效性,用户数据缓存功能。 + */ + + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + + Route route = (Route)exchange.getAttributes().get(ServerWebExchangeUtils.GATEWAY_ROUTE_ATTR); + String token = getToken(exchange.getRequest()); + //2.验证有无令牌。 从请求的header中获取token + ServerHttpRequest request = exchange.getRequest(); + //客户端IP +// String ip = IpUtil.getIpAddress(request); + //请求路径 + String url = exchange.getRequest().getURI().getPath(); + + if (StringUtils.matches(url, ignoreWhite.getWhites())) { + return chain.filter(exchange); + }else if(StringUtils.matchesTwo(url, ignoreWhite.getWhitesTwo())){ + return chain.filter(exchange); + } + + if (StringUtils.isBlank(token)) { + return setUnauthorizedResponse(exchange, "令牌不能为空"); + } + //3.验证token是否有效。(a.验证token是否合法 b.验证token是否过期) + //从redis缓存中获取key对应的内容 + String userName = redisUtil.get(token)==null?"":redisUtil.get(token); + /*if (StringUtils.isBlank(userName)) { + return setUnauthorizedResponse(exchange, "登录状态已过期"); + }*/ + + //请求方法 + String methodValue = request.getMethodValue(); + //请求参数 + String params = getParamsStr(request,methodValue); + //请求头 + Map heads = new LinkedHashMap<>(); + HttpHeaders headers = request.getHeaders(); //Enumeration headerNames = + Set>> entries = headers.entrySet(); + for (Map.Entry> entry : entries) { + String key = entry.getKey(); + List values = entry.getValue(); + if (values != null) { + for (String value : values) { + heads.put( key, value); + } + } else { + heads.put( key, ""); + } + } + String ip = getIpAddress(request); + if ("POST".equals(methodValue) ){ + return DataBufferUtils.join(exchange.getRequest().getBody()) + .flatMap(dataBuffer -> { + byte[] bytes = new byte[dataBuffer.readableByteCount()]; + dataBuffer.read(bytes); + try { + String bodyString = new String(bytes, "utf-8"); + sendLog(route.getId(),url,bodyString,methodValue,ip,heads,userName); + exchange.getAttributes().put("POST_BODY",bodyString); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + DataBufferUtils.release(dataBuffer); + Flux cachedFlux = Flux.defer(() -> { + DataBuffer buffer = exchange.getResponse().bufferFactory() + .wrap(bytes); + return Mono.just(buffer); + }); + + ServerHttpRequest mutatedRequest = new ServerHttpRequestDecorator( + exchange.getRequest()) { + @Override + public Flux getBody() { + return cachedFlux; + } + }; + return chain.filter(exchange.mutate().request(mutatedRequest) + .build()); + }); + } + + sendLog(route.getId(),url,params,methodValue,ip,heads,userName); + // kafkaProducerService.sendMessage("topic02",JSON.toJSON(map).toString()); + + //1.uri白名单。 跳过不需要验证的路径 + + //验签:需要验证token中的签名是否与用户sid一致,后台用密钥+userSid+token除签名以外的内容,重新生成签名,与token中的签名进行比较 + + //刷新token过期日期 + if(token.contains("App")){ + //redisUtil.set(token, userName, EXPIRE_TIME_APP); + redisUtil.expire(token, EXPIRE_TIME_APP); + }else{ + //redisUtil.set(token, userName, EXPIRE_TIME); + redisUtil.expire(token, EXPIRE_TIME); + } + + // 在请求中增加用户信息 + ServerHttpRequest mutableReq = exchange.getRequest().mutate() + .header(CacheConstants.DETAILS_USERNAME, userName).build(); + ServerWebExchange mutableExchange = exchange.mutate().request(mutableReq).build(); + return chain.filter(mutableExchange); + } +private void sendLog(String routeId,String url,String params,String methodValue,String ip, Map heads,String userName){ + //请求时间 + Map map = new LinkedHashMap<>(); + map.put("routeId", routeId); + map.put("uri", url); + map.put("params", params); + map.put("method", methodValue); + map.put("requestTime", new Date()); + map.put("ip", ip); + map.put("heads", heads); + + map.put("userName", userName); + + // log.info("gateway:{}",JSON.toJSON(map)); + log.info(JSON.toJSONString(map, SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteMapNullValue)); +} + private String getParamsStr(ServerHttpRequest request,String method) { + StringBuilder result = new StringBuilder(); + MultiValueMap paramsMap = request.getQueryParams(); + Set>> entrySet = paramsMap.entrySet(); + for (Map.Entry> entry : entrySet) { + String key = entry.getKey(); + List values = entry.getValue(); + if (values != null) { + for (String value : values) { + result.append(String.format("&%s=%s", key, value)); + } + } else { + result.append(String.format("&%s=%s", key, "")); + } + } + return result.toString().replaceFirst("&", ""); + } + private String getIpAddress(ServerHttpRequest request) { + HttpHeaders headers = request.getHeaders(); + String ip = headers.getFirst("x-forwarded-for"); + if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { + // 多次反向代理后会有多个ip值,第一个ip才是真实ip + if (ip.indexOf(",") != -1) { + ip = ip.split(",")[0]; + } + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("HTTP_CLIENT_IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("HTTP_X_FORWARDED_FOR"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("X-Real-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddress().getAddress().getHostAddress(); + } + return ip; + } + /** + * 鉴权异常处理 + * @param exchange + * @param msg + * @return + */ + private Mono setUnauthorizedResponse(ServerWebExchange exchange, String msg) { + ServerHttpResponse response = exchange.getResponse(); + response.getHeaders().setContentType(MediaType.APPLICATION_JSON); + response.setStatusCode(HttpStatus.OK); + + log.error("[鉴权异常处理]请求路径:{}", exchange.getRequest().getPath()); + + return response.writeWith(Mono.fromSupplier(() -> { + DataBufferFactory bufferFactory = response.bufferFactory(); + return bufferFactory.wrap(JSON.toJSONBytes(R.fail(msg))); + })); + } + + /** + * 获取请求token + */ + private String getToken(ServerHttpRequest request) { + String token = request.getHeaders().getFirst(CacheConstants.HEADER); +// if (StringUtils.isNotEmpty(token) && token.startsWith(CacheConstants.TOKEN_PREFIX)) { +// token = token.replace(CacheConstants.TOKEN_PREFIX, ""); +// } + return token; + } + + @Override + public int getOrder() { + return 0; + } +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/GateWayApplication.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/GateWayApplication.java new file mode 100644 index 0000000..6c8a02c --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/GateWayApplication.java @@ -0,0 +1,28 @@ +package com.yyd.gateway; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.core.env.Environment; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +@EnableDiscoveryClient +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class},scanBasePackages = { + "com.yyd.gateway", + "com.yyd.base", + "com.yyd.base.redis" +}) +public class GateWayApplication { + private static final Logger LOG=LoggerFactory.getLogger(GateWayApplication.class); + public static void main(String[] args) { + SpringApplication app = new SpringApplication(GateWayApplication.class); + Environment env = app.run(args).getEnvironment(); + LOG.info("启动成功!!"); + LOG.info("Gateway地址: \thttp://127.0.0.1:{}", env.getProperty("server.port")); + } +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/KafkaProducerService.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/KafkaProducerService.java new file mode 100644 index 0000000..5b90f0b --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/KafkaProducerService.java @@ -0,0 +1,45 @@ +package com.yyd.gateway; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.kafka.support.SendResult; +import org.springframework.stereotype.Component; +import org.springframework.util.concurrent.ListenableFuture; +import org.springframework.util.concurrent.ListenableFutureCallback; + +import lombok.extern.slf4j.Slf4j; + +/** + * KafkaProducerService + */ +@Slf4j +@Component +public class KafkaProducerService { + + + @Autowired + private KafkaTemplate kafkaTemplate; + + public void sendMessage(String topic, Object object) { + + ListenableFuture> future = kafkaTemplate.send(topic, object); + + future.addCallback(new ListenableFutureCallback>() { + @Override + public void onSuccess(SendResult result) { + log.info("发送消息成功: " + result.toString()); + } + + @Override + public void onFailure(Throwable throwable) { + log.error("发送消息失败: " + throwable.getMessage()); + + } + }); + + } + + + + +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/CacheConstants.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/CacheConstants.java new file mode 100644 index 0000000..a228da8 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/CacheConstants.java @@ -0,0 +1,25 @@ +package com.yyd.gateway.utils; + +/** + * @author dimengzhe + * @date 2020/12/2 9:58 + * @description 缓存的key 常量 + */ + +public class CacheConstants { + + /** + * 令牌自定义标识 + */ + public static final String HEADER = "token"; + + /** + * 令牌前缀 + */ + public static final String TOKEN_PREFIX = "Bearer "; + + /** + * 用户名字段 + */ + public static final String DETAILS_USERNAME = "userName"; +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/CharsetKit.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/CharsetKit.java new file mode 100644 index 0000000..f8cfa70 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/CharsetKit.java @@ -0,0 +1,86 @@ +package com.yyd.gateway.utils; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +/** + * @author dimengzhe + * @date 2020/12/2 10:02 + * @description + */ + +public class CharsetKit { + + /** ISO-8859-1 */ + public static final String ISO_8859_1 = "ISO-8859-1"; + /** UTF-8 */ + public static final String UTF_8 = "UTF-8"; + /** GBK */ + public static final String GBK = "GBK"; + + /** ISO-8859-1 */ + public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); + /** UTF-8 */ + public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); + /** GBK */ + public static final Charset CHARSET_GBK = Charset.forName(GBK); + + /** + * 转换为Charset对象 + * + * @param charset 字符集,为空则返回默认字符集 + * @return Charset + */ + public static Charset charset(String charset) + { + return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); + } + + /** + * 转换字符串的字符集编码 + * + * @param source 字符串 + * @param srcCharset 源字符集,默认ISO-8859-1 + * @param destCharset 目标字符集,默认UTF-8 + * @return 转换后的字符集 + */ + public static String convert(String source, String srcCharset, String destCharset) + { + return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); + } + + /** + * 转换字符串的字符集编码 + * + * @param source 字符串 + * @param srcCharset 源字符集,默认ISO-8859-1 + * @param destCharset 目标字符集,默认UTF-8 + * @return 转换后的字符集 + */ + public static String convert(String source, Charset srcCharset, Charset destCharset) + { + if (null == srcCharset) + { + srcCharset = StandardCharsets.ISO_8859_1; + } + + if (null == destCharset) + { + destCharset = StandardCharsets.UTF_8; + } + + if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) + { + return source; + } + return new String(source.getBytes(srcCharset), destCharset); + } + + /** + * @return 系统字符集编码 + */ + public static String systemCharset() + { + return Charset.defaultCharset().name(); + } +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/Constants.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/Constants.java new file mode 100644 index 0000000..ceeaf1b --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/Constants.java @@ -0,0 +1,29 @@ +package com.yyd.gateway.utils; + +/** + * @author dimengzhe + * @date 2020/12/2 9:56 + * @description 通用常量信息 + */ + +public class Constants { + + /** + * 成功标记 + */ + public static final Integer SUCCESS = 200; + + /** + * 失败标记 + */ + public static final Integer FAIL = 5000; + + public static final boolean fail = false; + public static final boolean success = true; + + /** + * 令牌有效期(分钟) + */ + public final static long TOKEN_EXPIRE = 4*60; + public final static long TOKEN_EXPIRE_APP = 15*24*60; +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/Convert.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/Convert.java new file mode 100644 index 0000000..04b7ea3 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/Convert.java @@ -0,0 +1,999 @@ +package com.yyd.gateway.utils; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; +import java.text.NumberFormat; +import java.util.Set; + +/** + * @author dimengzhe + * @date 2020/12/2 10:01 + * @description + */ + +public class Convert { + + /** + * 转换为字符串
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static String toStr(Object value, String defaultValue) + { + if (null == value) + { + return defaultValue; + } + if (value instanceof String) + { + return (String) value; + } + return value.toString(); + } + + /** + * 转换为字符串
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static String toStr(Object value) + { + return toStr(value, null); + } + + /** + * 转换为字符
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Character toChar(Object value, Character defaultValue) + { + if (null == value) + { + return defaultValue; + } + if (value instanceof Character) + { + return (Character) value; + } + + final String valueStr = toStr(value, null); + return StringUtils.isEmpty(valueStr) ? defaultValue : valueStr.charAt(0); + } + + /** + * 转换为字符
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Character toChar(Object value) + { + return toChar(value, null); + } + + /** + * 转换为byte
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Byte toByte(Object value, Byte defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Byte) + { + return (Byte) value; + } + if (value instanceof Number) + { + return ((Number) value).byteValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Byte.parseByte(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为byte
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Byte toByte(Object value) + { + return toByte(value, null); + } + + /** + * 转换为Short
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Short toShort(Object value, Short defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Short) + { + return (Short) value; + } + if (value instanceof Number) + { + return ((Number) value).shortValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Short.parseShort(valueStr.trim()); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Short
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Short toShort(Object value) + { + return toShort(value, null); + } + + /** + * 转换为Number
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Number toNumber(Object value, Number defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Number) + { + return (Number) value; + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return NumberFormat.getInstance().parse(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Number
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Number toNumber(Object value) + { + return toNumber(value, null); + } + + /** + * 转换为int
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Integer toInt(Object value, Integer defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Integer) + { + return (Integer) value; + } + if (value instanceof Number) + { + return ((Number) value).intValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Integer.parseInt(valueStr.trim()); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为int
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Integer toInt(Object value) + { + return toInt(value, null); + } + + /** + * 转换为Integer数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static Integer[] toIntArray(String str) + { + return toIntArray(",", str); + } + + /** + * 转换为Long数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static Long[] toLongArray(String str) + { + return toLongArray(",", str); + } + + /** + * 转换为Integer数组
+ * + * @param split 分隔符 + * @param split 被转换的值 + * @return 结果 + */ + public static Integer[] toIntArray(String split, String str) + { + if (StringUtils.isEmpty(str)) + { + return new Integer[] {}; + } + String[] arr = str.split(split); + final Integer[] ints = new Integer[arr.length]; + for (int i = 0; i < arr.length; i++) + { + final Integer v = toInt(arr[i], 0); + ints[i] = v; + } + return ints; + } + + /** + * 转换为Long数组
+ * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static Long[] toLongArray(String split, String str) + { + if (StringUtils.isEmpty(str)) + { + return new Long[] {}; + } + String[] arr = str.split(split); + final Long[] longs = new Long[arr.length]; + for (int i = 0; i < arr.length; i++) + { + final Long v = toLong(arr[i], null); + longs[i] = v; + } + return longs; + } + + /** + * 转换为String数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static String[] toStrArray(String str) + { + return toStrArray(",", str); + } + + /** + * 转换为String数组
+ * + * @param split 分隔符 + * @param split 被转换的值 + * @return 结果 + */ + public static String[] toStrArray(String split, String str) + { + return str.split(split); + } + + /** + * 转换为long
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Long toLong(Object value, Long defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Long) + { + return (Long) value; + } + if (value instanceof Number) + { + return ((Number) value).longValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + // 支持科学计数法 + return new BigDecimal(valueStr.trim()).longValue(); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为long
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Long toLong(Object value) + { + return toLong(value, null); + } + + /** + * 转换为double
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Double toDouble(Object value, Double defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Double) + { + return (Double) value; + } + if (value instanceof Number) + { + return ((Number) value).doubleValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + // 支持科学计数法 + return new BigDecimal(valueStr.trim()).doubleValue(); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为double
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Double toDouble(Object value) + { + return toDouble(value, null); + } + + /** + * 转换为Float
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Float toFloat(Object value, Float defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Float) + { + return (Float) value; + } + if (value instanceof Number) + { + return ((Number) value).floatValue(); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Float.parseFloat(valueStr.trim()); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Float
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Float toFloat(Object value) + { + return toFloat(value, null); + } + + /** + * 转换为boolean
+ * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Boolean toBool(Object value, Boolean defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Boolean) + { + return (Boolean) value; + } + String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + valueStr = valueStr.trim().toLowerCase(); + switch (valueStr) + { + case "true": + return true; + case "false": + return false; + case "yes": + return true; + case "ok": + return true; + case "no": + return false; + case "1": + return true; + case "0": + return false; + default: + return defaultValue; + } + } + + /** + * 转换为boolean
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Boolean toBool(Object value) + { + return toBool(value, null); + } + + /** + * 转换为Enum对象
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * + * @param clazz Enum的Class + * @param value 值 + * @param defaultValue 默认值 + * @return Enum + */ + public static > E toEnum(Class clazz, Object value, E defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (clazz.isAssignableFrom(value.getClass())) + { + @SuppressWarnings("unchecked") + E myE = (E) value; + return myE; + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Enum.valueOf(clazz, valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Enum对象
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * + * @param clazz Enum的Class + * @param value 值 + * @return Enum + */ + public static > E toEnum(Class clazz, Object value) + { + return toEnum(clazz, value, null); + } + + /** + * 转换为BigInteger
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static BigInteger toBigInteger(Object value, BigInteger defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof BigInteger) + { + return (BigInteger) value; + } + if (value instanceof Long) + { + return BigInteger.valueOf((Long) value); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return new BigInteger(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为BigInteger
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static BigInteger toBigInteger(Object value) + { + return toBigInteger(value, null); + } + + /** + * 转换为BigDecimal
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof BigDecimal) + { + return (BigDecimal) value; + } + if (value instanceof Long) + { + return new BigDecimal((Long) value); + } + if (value instanceof Double) + { + return new BigDecimal((Double) value); + } + if (value instanceof Integer) + { + return new BigDecimal((Integer) value); + } + final String valueStr = toStr(value, null); + if (StringUtils.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return new BigDecimal(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为BigDecimal
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static BigDecimal toBigDecimal(Object value) + { + return toBigDecimal(value, null); + } + + /** + * 将对象转为字符串
+ * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 + * + * @param obj 对象 + * @return 字符串 + */ + public static String utf8Str(Object obj) + { + return str(obj, CharsetKit.CHARSET_UTF_8); + } + + /** + * 将对象转为字符串
+ * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 + * + * @param obj 对象 + * @param charsetName 字符集 + * @return 字符串 + */ + public static String str(Object obj, String charsetName) + { + return str(obj, Charset.forName(charsetName)); + } + + /** + * 将对象转为字符串
+ * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 + * + * @param obj 对象 + * @param charset 字符集 + * @return 字符串 + */ + public static String str(Object obj, Charset charset) + { + if (null == obj) + { + return null; + } + + if (obj instanceof String) + { + return (String) obj; + } + else if (obj instanceof byte[] || obj instanceof Byte[]) + { + return str((Byte[]) obj, charset); + } + else if (obj instanceof ByteBuffer) + { + return str((ByteBuffer) obj, charset); + } + return obj.toString(); + } + + /** + * 将byte数组转为字符串 + * + * @param bytes byte数组 + * @param charset 字符集 + * @return 字符串 + */ + public static String str(byte[] bytes, String charset) + { + return str(bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset)); + } + + /** + * 解码字节码 + * + * @param data 字符串 + * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 + * @return 解码后的字符串 + */ + public static String str(byte[] data, Charset charset) + { + if (data == null) + { + return null; + } + + if (null == charset) + { + return new String(data); + } + return new String(data, charset); + } + + /** + * 将编码的byteBuffer数据转换为字符串 + * + * @param data 数据 + * @param charset 字符集,如果为空使用当前系统字符集 + * @return 字符串 + */ + public static String str(ByteBuffer data, String charset) + { + if (data == null) + { + return null; + } + + return str(data, Charset.forName(charset)); + } + + /** + * 将编码的byteBuffer数据转换为字符串 + * + * @param data 数据 + * @param charset 字符集,如果为空使用当前系统字符集 + * @return 字符串 + */ + public static String str(ByteBuffer data, Charset charset) + { + if (null == charset) + { + charset = Charset.defaultCharset(); + } + return charset.decode(data).toString(); + } + + // ----------------------------------------------------------------------- 全角半角转换 + /** + * 半角转全角 + * + * @param input String. + * @return 全角字符串. + */ + public static String toSBC(String input) + { + return toSBC(input, null); + } + + /** + * 半角转全角 + * + * @param input String + * @param notConvertSet 不替换的字符集合 + * @return 全角字符串. + */ + public static String toSBC(String input, Set notConvertSet) + { + char c[] = input.toCharArray(); + for (int i = 0; i < c.length; i++) + { + if (null != notConvertSet && notConvertSet.contains(c[i])) + { + // 跳过不替换的字符 + continue; + } + + if (c[i] == ' ') + { + c[i] = '\u3000'; + } + else if (c[i] < '\177') + { + c[i] = (char) (c[i] + 65248); + + } + } + return new String(c); + } + + /** + * 全角转半角 + * + * @param input String. + * @return 半角字符串 + */ + public static String toDBC(String input) + { + return toDBC(input, null); + } + + /** + * 替换全角为半角 + * + * @param text 文本 + * @param notConvertSet 不替换的字符集合 + * @return 替换后的字符 + */ + public static String toDBC(String text, Set notConvertSet) + { + char c[] = text.toCharArray(); + for (int i = 0; i < c.length; i++) + { + if (null != notConvertSet && notConvertSet.contains(c[i])) + { + // 跳过不替换的字符 + continue; + } + + if (c[i] == '\u3000') + { + c[i] = ' '; + } + else if (c[i] > '\uFF00' && c[i] < '\uFF5F') + { + c[i] = (char) (c[i] - 65248); + } + } + String returnString = new String(c); + + return returnString; + } + + /** + * 数字金额大写转换 先写个完整的然后将如零拾替换成零 + * + * @param n 数字 + * @return 中文大写数字 + */ + public static String digitUppercase(double n) + { + String[] fraction = { "角", "分" }; + String[] digit = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; + String[][] unit = { { "元", "万", "亿" }, { "", "拾", "佰", "仟" } }; + + String head = n < 0 ? "负" : ""; + n = Math.abs(n); + + String s = ""; + for (int i = 0; i < fraction.length; i++) + { + s += (digit[(int) (Math.floor(n * 10 * Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(零.)+", ""); + } + if (s.length() < 1) + { + s = "整"; + } + int integerPart = (int) Math.floor(n); + + for (int i = 0; i < unit[0].length && integerPart > 0; i++) + { + String p = ""; + for (int j = 0; j < unit[1].length && n > 0; j++) + { + p = digit[integerPart % 10] + unit[1][j] + p; + integerPart = integerPart / 10; + } + s = p.replaceAll("(零.)*零$", "").replaceAll("^$", "零") + unit[0][i] + s; + } + return head + s.replaceAll("(零.)*零元", "元").replaceFirst("(零.)+", "").replaceAll("(零.)+", "零").replaceAll("^整$", "零元整"); + } +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/IgnoreWhiteProperties.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/IgnoreWhiteProperties.java new file mode 100644 index 0000000..85c4ab2 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/IgnoreWhiteProperties.java @@ -0,0 +1,42 @@ +package com.yyd.gateway.utils; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author dimengzhe + * @date 2020/12/2 9:54 + * @description 放行白名单配置 + */ +@Configuration +@RefreshScope +@ConfigurationProperties(prefix = "ignore") +public class IgnoreWhiteProperties { + + /** + * 放行白名单配置,网关不校验此处的白名单 + */ + private List whites = new ArrayList<>(); + + public List getWhites() { + return whites; + } + + public void setWhites(List whites) { + this.whites = whites; + } + + private List whitesTwo = new ArrayList<>(); + + public List getWhitesTwo() { + return whitesTwo; + } + + public void setWhitesTwo(List whitesTwo) { + this.whitesTwo = whitesTwo; + } +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/R.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/R.java new file mode 100644 index 0000000..48a82b8 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/R.java @@ -0,0 +1,104 @@ +package com.yyd.gateway.utils; + +import java.io.Serializable; + +/** + * @author dimengzhe + * @date 2020/12/2 10:07 + * @description + */ + +public class R implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 成功 + */ + public static final int SUCCESS = Constants.SUCCESS; + + /** + * 失败 + */ + public static final int FAIL = Constants.FAIL; + + private int code; + + private String msg; + private boolean success; + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + private T data; + + public static R ok() { + return restResult(null, SUCCESS, null, true); + } + + public static R ok(T data) { + return restResult(data, SUCCESS, null, true); + } + + public static R ok(T data, String msg) { + return restResult(data, SUCCESS, msg, true); + } + + public static R fail() { + return restResult(null, FAIL, null, false); + } + + public static R fail(String msg) { + return restResult(null, FAIL, msg, false); + } + + public static R fail(T data) { + return restResult(data, FAIL, null, false); + } + + public static R fail(T data, String msg) { + return restResult(data, FAIL, msg, false); + } + + public static R fail(int code, String msg) { + return restResult(null, code, msg, false); + } + + private static R restResult(T data, int code, String msg, boolean success) { + R apiResult = new R<>(); + apiResult.setCode(code); + apiResult.setData(data); + apiResult.setMsg(msg); + apiResult.setSuccess(success); + return apiResult; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/StrFormatter.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/StrFormatter.java new file mode 100644 index 0000000..d510619 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/StrFormatter.java @@ -0,0 +1,91 @@ +package com.yyd.gateway.utils; + +/** + * @author dimengzhe + * @date 2020/12/2 10:00 + * @description + */ + +public class StrFormatter { + + public static final String EMPTY_JSON = "{}"; + public static final char C_BACKSLASH = '\\'; + public static final char C_DELIM_START = '{'; + public static final char C_DELIM_END = '}'; + + /** + * 格式化字符串
+ * 此方法只是简单将占位符 {} 按照顺序替换为参数
+ * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
+ * 例:
+ * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
+ * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a
+ * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
+ * + * @param strPattern 字符串模板 + * @param argArray 参数列表 + * @return 结果 + */ + public static String format(final String strPattern, final Object... argArray) + { + if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) + { + return strPattern; + } + final int strPatternLength = strPattern.length(); + + // 初始化定义好的长度以获得更好的性能 + StringBuilder sbuf = new StringBuilder(strPatternLength + 50); + + int handledPosition = 0; + int delimIndex;// 占位符所在位置 + for (int argIndex = 0; argIndex < argArray.length; argIndex++) + { + delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition); + if (delimIndex == -1) + { + if (handledPosition == 0) + { + return strPattern; + } + else + { // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果 + sbuf.append(strPattern, handledPosition, strPatternLength); + return sbuf.toString(); + } + } + else + { + if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH) + { + if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH) + { + // 转义符之前还有一个转义符,占位符依旧有效 + sbuf.append(strPattern, handledPosition, delimIndex - 1); + sbuf.append(Convert.utf8Str(argArray[argIndex])); + handledPosition = delimIndex + 2; + } + else + { + // 占位符被转义 + argIndex--; + sbuf.append(strPattern, handledPosition, delimIndex - 1); + sbuf.append(C_DELIM_START); + handledPosition = delimIndex + 1; + } + } + else + { + // 正常占位符 + sbuf.append(strPattern, handledPosition, delimIndex); + sbuf.append(Convert.utf8Str(argArray[argIndex])); + handledPosition = delimIndex + 2; + } + } + } + // 加入最后一个占位符后所有的字符 + sbuf.append(strPattern, handledPosition, strPattern.length()); + + return sbuf.toString(); + } +} diff --git a/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/StringUtils.java b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/StringUtils.java new file mode 100644 index 0000000..9de6302 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/java/com/yyd/gateway/utils/StringUtils.java @@ -0,0 +1,526 @@ +package com.yyd.gateway.utils; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * @author dimengzhe + * @date 2020/12/2 9:59 + * @description + */ + +public class StringUtils extends org.apache.commons.lang3.StringUtils { + + /** + * 空字符串 + */ + private static final String NULLSTR = ""; + + /** + * 下划线 + */ + private static final char SEPARATOR = '_'; + + /** + * 星号 + */ + private static final String START = "*"; + + /** + * 获取参数不为空值 + * + * @param value defaultValue 要判断的value + * @return value 返回值 + */ + public static T nvl(T value, T defaultValue) { + return value != null ? value : defaultValue; + } + + /** + * * 判断一个Collection是否为空, 包含List,Set,Queue + * + * @param coll 要判断的Collection + * @return true:为空 false:非空 + */ + public static boolean isEmpty(Collection coll) { + return isNull(coll) || coll.isEmpty(); + } + + /** + * * 判断一个Collection是否非空,包含List,Set,Queue + * + * @param coll 要判断的Collection + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Collection coll) { + return !isEmpty(coll); + } + + /** + * * 判断一个对象数组是否为空 + * + * @param objects 要判断的对象数组 + * * @return true:为空 false:非空 + */ + public static boolean isEmpty(Object[] objects) { + return isNull(objects) || (objects.length == 0); + } + + /** + * * 判断一个对象数组是否非空 + * + * @param objects 要判断的对象数组 + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Object[] objects) { + return !isEmpty(objects); + } + + /** + * * 判断一个Map是否为空 + * + * @param map 要判断的Map + * @return true:为空 false:非空 + */ + public static boolean isEmpty(Map map) { + return isNull(map) || map.isEmpty(); + } + + /** + * * 判断一个Map是否为空 + * + * @param map 要判断的Map + * @return true:非空 false:空 + */ + public static boolean isNotEmpty(Map map) { + return !isEmpty(map); + } + + /** + * * 判断一个字符串是否为空串 + * + * @param str String + * @return true:为空 false:非空 + */ + public static boolean isEmpty(String str) { + return isNull(str) || NULLSTR.equals(str.trim()); + } + + /** + * * 判断一个字符串是否为非空串 + * + * @param str String + * @return true:非空串 false:空串 + */ + public static boolean isNotEmpty(String str) { + return !isEmpty(str); + } + + /** + * * 判断一个对象是否为空 + * + * @param object Object + * @return true:为空 false:非空 + */ + public static boolean isNull(Object object) { + return object == null; + } + + /** + * * 判断一个对象是否非空 + * + * @param object Object + * @return true:非空 false:空 + */ + public static boolean isNotNull(Object object) { + return !isNull(object); + } + + /** + * * 判断一个对象是否是数组类型(Java基本型别的数组) + * + * @param object 对象 + * @return true:是数组 false:不是数组 + */ + public static boolean isArray(Object object) { + return isNotNull(object) && object.getClass().isArray(); + } + + /** + * 去空格 + */ + public static String trim(String str) { + return (str == null ? "" : str.trim()); + } + + /** + * 截取字符串 + * + * @param str 字符串 + * @param start 开始 + * @return 结果 + */ + public static String substring(final String str, int start) { + if (str == null) { + return NULLSTR; + } + + if (start < 0) { + start = str.length() + start; + } + + if (start < 0) { + start = 0; + } + if (start > str.length()) { + return NULLSTR; + } + + return str.substring(start); + } + + /** + * 截取字符串 + * + * @param str 字符串 + * @param start 开始 + * @param end 结束 + * @return 结果 + */ + public static String substring(final String str, int start, int end) { + if (str == null) { + return NULLSTR; + } + + if (end < 0) { + end = str.length() + end; + } + if (start < 0) { + start = str.length() + start; + } + + if (end > str.length()) { + end = str.length(); + } + + if (start > end) { + return NULLSTR; + } + + if (start < 0) { + start = 0; + } + if (end < 0) { + end = 0; + } + + return str.substring(start, end); + } + + /** + * 格式化文本, {} 表示占位符
+ * 此方法只是简单将占位符 {} 按照顺序替换为参数
+ * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
+ * 例:
+ * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
+ * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a
+ * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
+ * + * @param template 文本模板,被替换的部分用 {} 表示 + * @param params 参数值 + * @return 格式化后的文本 + */ + public static String format(String template, Object... params) { + if (isEmpty(params) || isEmpty(template)) { + return template; + } + return StrFormatter.format(template, params); + } + + /** + * 下划线转驼峰命名 + */ + public static String toUnderScoreCase(String str) { + if (str == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + // 前置字符是否大写 + boolean preCharIsUpperCase = true; + // 当前字符是否大写 + boolean curreCharIsUpperCase = true; + // 下一字符是否大写 + boolean nexteCharIsUpperCase = true; + for (int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + if (i > 0) { + preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); + } else { + preCharIsUpperCase = false; + } + + curreCharIsUpperCase = Character.isUpperCase(c); + + if (i < (str.length() - 1)) { + nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); + } + + if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) { + sb.append(SEPARATOR); + } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) { + sb.append(SEPARATOR); + } + sb.append(Character.toLowerCase(c)); + } + + return sb.toString(); + } + + /** + * 是否包含字符串 + * + * @param str 验证字符串 + * @param strs 字符串组 + * @return 包含返回true + */ + public static boolean inStringIgnoreCase(String str, String... strs) { + if (str != null && strs != null) { + for (String s : strs) { + if (str.equalsIgnoreCase(trim(s))) { + return true; + } + } + } + return false; + } + + /** + * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld + * + * @param name 转换前的下划线大写方式命名的字符串 + * @return 转换后的驼峰式命名的字符串 + */ + public static String convertToCamelCase(String name) { + StringBuilder result = new StringBuilder(); + // 快速检查 + if (name == null || name.isEmpty()) { + // 没必要转换 + return ""; + } else if (!name.contains("_")) { + // 不含下划线,仅将首字母大写 + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + // 用下划线将原始字符串分割 + String[] camels = name.split("_"); + for (String camel : camels) { + // 跳过原始字符串中开头、结尾的下换线或双重下划线 + if (camel.isEmpty()) { + continue; + } + // 首字母大写 + result.append(camel.substring(0, 1).toUpperCase()); + result.append(camel.substring(1).toLowerCase()); + } + return result.toString(); + } + + /** + * 驼峰式命名法 例如:user_name->userName + */ + public static String toCamelCase(String s) { + if (s == null) { + return null; + } + s = s.toLowerCase(); + StringBuilder sb = new StringBuilder(s.length()); + boolean upperCase = false; + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + + if (c == SEPARATOR) { + upperCase = true; + } else if (upperCase) { + sb.append(Character.toUpperCase(c)); + upperCase = false; + } else { + sb.append(c); + } + } + return sb.toString(); + } + + /** + * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串 + * + * @param str 指定字符串 + * @param strs 需要检查的字符串数组 + * @return 是否匹配 + */ + public static boolean matchesTwo(String str, List strs) { + if (isEmpty(str) || isEmpty(strs)) { + return false; + } + for (String testStr : strs) { + if (matchesTwo(str, testStr)) { + return true; + } + } + return false; + } + + public static boolean matches(String str, List strs) { + if (isEmpty(str) || isEmpty(strs)) { + return false; + } + for (String testStr : strs) { + if (matches(str, testStr)) { + return true; + } + } + return false; + } + + /** + * 查找指定字符串是否匹配指定字符串数组中的任意一个字符串 + * + * @param str 指定字符串 + * @param strs 需要检查的字符串数组 + * @return 是否匹配 + */ + public static boolean matches(String str, String... strs) { + if (isEmpty(str) || isEmpty(strs)) { + return false; + } + for (String testStr : strs) { + if (matches(str, testStr)) { + return true; + } + } + return false; + } + + public static boolean matches(String str, String pattern) { + if (isEmpty(pattern) || isEmpty(str)) { + return false; + } + + pattern = pattern.replaceAll("\\s*", ""); // 替换空格 + int beginOffset = 0; // pattern截取开始位置 + int formerStarOffset = -1; // 前星号的偏移位置 + int latterStarOffset = -1; // 后星号的偏移位置 + + String remainingURI = str; + String prefixPattern = ""; + String suffixPattern = ""; + + boolean result = false; + do { + formerStarOffset = indexOf(pattern, START, beginOffset); + prefixPattern = substring(pattern, beginOffset, formerStarOffset > -1 ? formerStarOffset : pattern.length()); + + // 匹配前缀Pattern + result = remainingURI.equals(prefixPattern); + // 已经没有星号,直接返回 + if (formerStarOffset == -1) { + return result; + } + + // 匹配失败,直接返回 + if (!result){ + return false; + } + if (!isEmpty(prefixPattern)) { + remainingURI = substringAfter(str, prefixPattern); + } + + // 匹配后缀Pattern + latterStarOffset = indexOf(pattern, START, formerStarOffset + 1); + suffixPattern = substring(pattern, formerStarOffset + 1, latterStarOffset > -1 ? latterStarOffset : pattern.length()); + + result = remainingURI.equals(suffixPattern); + // 匹配失败,直接返回 + if (!result){ + return false; + } + if (!isEmpty(suffixPattern)) { + remainingURI = substringAfter(str, suffixPattern); + } + + // 移动指针 + beginOffset = latterStarOffset + 1; + + } + while (!isEmpty(suffixPattern) && !isEmpty(remainingURI)); + + return true; + } + + /** + * 查找指定字符串是否匹配 + * + * @param str 指定字符串 + * @param pattern 需要检查的字符串 + * @return 是否匹配 + */ + public static boolean matchesTwo(String str, String pattern) { + if (isEmpty(pattern) || isEmpty(str)) { + return false; + } + + pattern = pattern.replaceAll("\\s*", ""); // 替换空格 + int beginOffset = 0; // pattern截取开始位置 + int formerStarOffset = -1; // 前星号的偏移位置 + int latterStarOffset = -1; // 后星号的偏移位置 + + String remainingURI = str; + String prefixPattern = ""; + String suffixPattern = ""; + + boolean result = false; + do { + formerStarOffset = indexOf(pattern, START, beginOffset); + prefixPattern = substring(pattern, beginOffset, formerStarOffset > -1 ? formerStarOffset : pattern.length()); + + // 匹配前缀Pattern + result = remainingURI.contains(prefixPattern); + // 已经没有星号,直接返回 + if (formerStarOffset == -1) { + return result; + } + + // 匹配失败,直接返回 + if (!result){ + return false; + } + if (!isEmpty(prefixPattern)) { + remainingURI = substringAfter(str, prefixPattern); + } + + // 匹配后缀Pattern + latterStarOffset = indexOf(pattern, START, formerStarOffset + 1); + suffixPattern = substring(pattern, formerStarOffset + 1, latterStarOffset > -1 ? latterStarOffset : pattern.length()); + + result = remainingURI.contains(suffixPattern); + // 匹配失败,直接返回 + if (!result){ + return false; + } + if (!isEmpty(suffixPattern)) { + remainingURI = substringAfter(str, suffixPattern); + } + + // 移动指针 + beginOffset = latterStarOffset + 1; + + } + while (!isEmpty(suffixPattern) && !isEmpty(remainingURI)); + + return true; + } + + @SuppressWarnings("unchecked") + public static T cast(Object obj) { + return (T) obj; + } +} diff --git a/yyd-center/yyd-center-gateway/src/main/resources/application-devv.yml b/yyd-center/yyd-center-gateway/src/main/resources/application-devv.yml new file mode 100644 index 0000000..b4cd9fb --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/resources/application-devv.yml @@ -0,0 +1,19 @@ +spring: + resources: + static-locations: file:D://anrui + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: 123456 + port: 6379 + timeout: 0 # 连接超时时间(毫秒) \ No newline at end of file diff --git a/yyd-center/yyd-center-gateway/src/main/resources/application-pro.yml b/yyd-center/yyd-center-gateway/src/main/resources/application-pro.yml new file mode 100644 index 0000000..b354658 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/resources/application-pro.yml @@ -0,0 +1,19 @@ +spring: + resources: + static-locations: file:D://anrui + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: 123456 + port: 6379 + timeout: 0 # 连接超时时间(毫秒) \ No newline at end of file diff --git a/yyd-center/yyd-center-gateway/src/main/resources/application-test.yml b/yyd-center/yyd-center-gateway/src/main/resources/application-test.yml new file mode 100644 index 0000000..efaa1c6 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/resources/application-test.yml @@ -0,0 +1,19 @@ +spring: + resources: + static-locations: file:D://anrui + cloud: + nacos: + discovery: + server-addr: 39.104.100.138:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 39.104.100.138 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: 123456 + port: 6379 + timeout: 0 # 连接超时时间(毫秒) \ No newline at end of file diff --git a/yyd-center/yyd-center-gateway/src/main/resources/application.yml b/yyd-center/yyd-center-gateway/src/main/resources/application.yml new file mode 100644 index 0000000..4a832ab --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/resources/application.yml @@ -0,0 +1,53 @@ +logging: + config: classpath:log4j.xml +hystrix: + command: + default: + execution: + isolation: + strategy: SEMAPHORE + thread: + timeoutInMilliseconds: 300000 +server: + port: 8111 +spring: + kafka: + bootstrap-servers: 127.0.0.1:9092 + producer: + retries: 0 + batch-size: 16384 + buffer-memory: 33554432 + key-serializer: org.apache.kafka.common.serialization.StringSerializer + value-serializer: org.apache.kafka.common.serialization.StringSerializer + acks: 1 + application: + name: gateway-server + profiles: + active: devv + cloud: + gateway: + routes: + - id: yyd-demo + predicates: + - Path= /demo/** + uri: lb://yyd-demo + filters: + - StripPrefix=1 + + +ignore: + whites: + - /portal/v1/sysuser/login #pc端登录 + - /portal/v1/sysuser/signOut #pc 退出登录 + - /demo/v1/sysuser/list + + whitesTwo: #包含所有 + ###swagger相关开始 + - /doc.html + - /webjars/** + - /swagger-resources + - /v2/** + - /favicon.ico + - /upload/** + ###swagger相关结束 + diff --git a/yyd-center/yyd-center-gateway/src/main/resources/log4j.xml b/yyd-center/yyd-center-gateway/src/main/resources/log4j.xml new file mode 100644 index 0000000..bd6dc93 --- /dev/null +++ b/yyd-center/yyd-center-gateway/src/main/resources/log4j.xml @@ -0,0 +1,41 @@ + + + + + + + log + kafka_log_topic + localhost:9092 + + + + + + + + + + + + + + + + ${bootstrap_servers} + + + + + + + + + + + + + + + diff --git a/yyd-demo/demo-api/pom.xml b/yyd-demo/demo-api/pom.xml new file mode 100644 index 0000000..3655c27 --- /dev/null +++ b/yyd-demo/demo-api/pom.xml @@ -0,0 +1,46 @@ + + + + yyd-demo + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + demo-api + + + + io.swagger + swagger-models + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + org.projectlombok + lombok + + + com.baomidou + mybatis-plus-boot-starter + + + com.baomidou + mybatis-plus-annotation + + + jakarta.validation + jakarta.validation-api + + + com.yyd + yyd-base-common + 0.0.1-SNAPSHOT + compile + + + \ No newline at end of file diff --git a/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUser.java b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUser.java new file mode 100644 index 0000000..8990616 --- /dev/null +++ b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUser.java @@ -0,0 +1,53 @@ +package com.yyd.demo.sysuser; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yyd.base.common.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@ApiModel(value = "用户表", description = "用户表") +@TableName("sys_user") +@Data +public class SysUser extends BaseEntity { + + @ApiModelProperty("登录名,登录名不能相同") + private String userName; + + @ApiModelProperty("密码(加密或签名后)") + private String password; + + @ApiModelProperty("密码修改时限") + private String pwdDayslimit; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty("最后一次密码修改时间") + private Date pwdModifyTime; + + @ApiModelProperty("在线状态(0为离线、1为在线)") + private Integer onlineState; + + @ApiModelProperty("用户登录时随机生成身份验证字符串") + private String token; + + @ApiModelProperty("是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员") + private String isAdmin; + + @ApiModelProperty("手机登录唯一标识,手机与用户绑定字段") + private String appId; + + @ApiModelProperty("关联的人员sid") + private String staffSid; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("用户类型:1员工、2客户、3供应商") + private Integer userType; + + @ApiModelProperty("用户头像") + private String headImage; +} diff --git a/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserDto.java b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserDto.java new file mode 100644 index 0000000..208208c --- /dev/null +++ b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserDto.java @@ -0,0 +1,28 @@ +package com.yyd.demo.sysuser; + +import com.yyd.base.common.dto.Dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@ApiModel(value = "用户表 数据传输对象", description = "用户表 数据传输对象") +@Data +public class SysUserDto implements Dto { + @ApiModelProperty("手机号") + private String mobile; + @ApiModelProperty("用户类型:1员工、2客户、3供应商") + private Integer userType; + @ApiModelProperty(value = "姓名", required = true) + @NotBlank(message = "姓名不能为空") + private String name; + @ApiModelProperty(value = "验证码", required = true) + @NotBlank(message = "验证码不能为空") + private String verificationCode; + @ApiModelProperty(value = "部门sid") + private String deptSid; + @ApiModelProperty(value = "岗位sid") + private String postSid; + +} diff --git a/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserFeign.java b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserFeign.java new file mode 100644 index 0000000..7487b95 --- /dev/null +++ b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserFeign.java @@ -0,0 +1,29 @@ +package com.yyd.demo.sysuser; + + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.result.ResultBean; +import com.yyd.base.common.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@Api(tags = "用户表") +@FeignClient( + contextId = "yyd-demo-SysUser", + name = "yyd-demo", + path = "v1/sysuser", + fallback = SysUserFeignFallback.class) +public interface SysUserFeign { + + @ApiOperation("获取一条记录") + @GetMapping("/fetch/{id}") + public ResultBean fetch(@PathVariable("id") String id); + +} \ No newline at end of file diff --git a/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserFeignFallback.java b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserFeignFallback.java new file mode 100644 index 0000000..fafbdbd --- /dev/null +++ b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserFeignFallback.java @@ -0,0 +1,20 @@ +package com.yyd.demo.sysuser; + + +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.result.ResultBean; +import com.yyd.base.common.vo.PagerVo; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class SysUserFeignFallback implements SysUserFeign { + + @Override + public ResultBean fetch(String id){ + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui_portal/sysuser/fetch无法访问"); + } + +} \ No newline at end of file diff --git a/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserQuery.java b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserQuery.java new file mode 100644 index 0000000..264f5be --- /dev/null +++ b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserQuery.java @@ -0,0 +1,45 @@ +package com.yyd.demo.sysuser; + + +import com.yyd.base.common.query.Query; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserQuery.java
+ * Class: com.yxt.anrui.portal.api.sysuser.SysUserQuery
+ * Description: 用户表 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "用户表 查询条件", description = "用户表 查询条件") +@Data +public class SysUserQuery implements Query { + + + @ApiModelProperty("角色sid") + private String roleSid; + @ApiModelProperty("用户名称") + private String userName; + + @ApiModelProperty("密码(加密或签名后)") + private String password; + + @ApiModelProperty("用户登录时随机生成身份验证字符串") + private String token; + @ApiModelProperty("用户登录时随机生成的验证码字符串") + private String verifyCode; + private String uuid; + + @ApiModelProperty("手机登录唯一标识,手机与用户绑定字段") + private String appId; + @ApiModelProperty("手机登录类型:1、密码登录2、验证码登录") + private String type; +} \ No newline at end of file diff --git a/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserVo.java b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserVo.java new file mode 100644 index 0000000..6c0e511 --- /dev/null +++ b/yyd-demo/demo-api/src/main/java/com/yyd/demo/sysuser/SysUserVo.java @@ -0,0 +1,59 @@ +package com.yyd.demo.sysuser; + + +import com.yyd.base.common.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@ApiModel(value = "用户表 视图数据对象", description = "用户表 视图数据对象") +@Data +@NoArgsConstructor +public class SysUserVo implements Vo { + @ApiModelProperty("部门sid") + private String departmentSid; + @ApiModelProperty("部门名称") + private String departmentName; + @ApiModelProperty("岗位名称") + private String postName; + @ApiModelProperty("岗位Sid") + private String postSid; + @ApiModelProperty("单位sid") + private String organizationSid; + @ApiModelProperty("单位名称") + private String organizationName; + @ApiModelProperty("用户姓名") + private String name; + @ApiModelProperty("登录名,登录名不能相同") + private String userName; + + @ApiModelProperty("id") + private Integer id; + @ApiModelProperty("用户sid") + private String sid; + @ApiModelProperty("是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员") + private String isAdmin; + @ApiModelProperty("角色名称") + private String roleName; + + @ApiModelProperty("关联的人员sid") + private String staffSid; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("用户类型:1员工、2客户、3供应商") + private String userType; + @ApiModelProperty("用户类型:1、2、3") + private String userTypeKey; + @ApiModelProperty("用户头像") + private String headImage; + @ApiModelProperty(value = "token") + private String token; + @ApiModelProperty(value = "角色sids") + private List roleSids = new ArrayList<>(); +} diff --git a/yyd-demo/demo-biz/pom.xml b/yyd-demo/demo-biz/pom.xml new file mode 100644 index 0000000..91bca4d --- /dev/null +++ b/yyd-demo/demo-biz/pom.xml @@ -0,0 +1,252 @@ + + + + yyd-demo + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + demo-biz + + + + org.springframework.kafka + spring-kafka + + + org.springframework.boot + spring-boot-starter-log4j2 + + + com.yyd + yyd-base-redis + 0.0.1-SNAPSHOT + + + com.yyd + yyd-base-handler + 0.0.1-SNAPSHOT + + + com.yyd + yyd-base-common + 0.0.1-SNAPSHOT + + + com.yyd + demo-api + 0.0.1-SNAPSHOT + + + com.yyd + yyd-base-jdbc + 0.0.1-SNAPSHOT + compile + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + mysql + mysql-connector-java + runtime + + + + junit + junit + compile + + + javax.servlet + javax.servlet-api + 4.0.1 + compile + + + com.github.xiaoymin + knife4j-spring-boot-starter + + + net.dongliu + apk-parser + 2.6.10 + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-logging + + + + + org.apache.commons + commons-lang3 + + + commons-beanutils + commons-beanutils + + + com.baomidou + mybatis-plus-boot-starter + + + org.projectlombok + lombok + true + + + + org.springframework.boot + spring-boot-starter-data-redis + + + io.lettuce + lettuce-core + + + + + redis.clients + jedis + + + + com.auth0 + java-jwt + + + com.github.penggle + kaptcha + + + commons-io + commons-io + + + + org.apache.axis + axis + 1.4 + + + axis + axis-jaxrpc + 1.2.1 + + + + commons-discovery + commons-discovery + 0.5 + + + + wsdl4j + wsdl4j + 1.6.3 + + + + + commons-codec + commons-codec + + + com.alibaba + fastjson + 1.2.73 + + + org.apache.poi + poi + + + org.apache.poi + poi-ooxml + 3.14 + + + + + com.itextpdf + itextpdf + 5.4.3 + + + org.apache.httpcomponents + httpclient + + + org.apache.httpcomponents + httpclient + + + + io.netty + netty-all + 4.1.6.Final + compile + + + + + cn.hutool + hutool-all + ${hutool.version} + + + + com.baomidou + mybatis-plus-annotation + + + io.swagger + swagger-models + + + cn.hutool + hutool-core + + + + \ No newline at end of file diff --git a/yyd-demo/demo-biz/src/main/java/com/yyd/demo/DemoApplication.java b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/DemoApplication.java new file mode 100644 index 0000000..67b87c9 --- /dev/null +++ b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/DemoApplication.java @@ -0,0 +1,24 @@ +package com.yyd.demo; + + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +/** + * @author dimengzhe + */ +@SpringBootApplication(scanBasePackages = { + "com.yyd.base", + "com.yyd.base.redis", + "com.yyd.demo.*" +}) +@EnableDiscoveryClient +@EnableFeignClients(basePackages = {"com.yyd.demo.*","com.yyd.base.*"}) +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } +} diff --git a/yyd-demo/demo-biz/src/main/java/com/yyd/demo/config/Swagger2Config.java b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/config/Swagger2Config.java new file mode 100644 index 0000000..874866b --- /dev/null +++ b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/config/Swagger2Config.java @@ -0,0 +1,36 @@ +package com.yyd.demo.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + * @author dimengzhe + * @date 2020/9/9 16:42 + * @description + */ +@Configuration +@EnableSwagger2 +@EnableKnife4j +public class Swagger2Config { + + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()).select() + .apis(RequestHandlerSelectors.basePackage("com.yyd")) + .paths(PathSelectors.any()).build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder().title("宇运动").description("门户建设接口").version("1.0") + .build(); + } +} diff --git a/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserMapper.java b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserMapper.java new file mode 100644 index 0000000..cc5efe4 --- /dev/null +++ b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserMapper.java @@ -0,0 +1,79 @@ +package com.yyd.demo.sysuser; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; + +/** + * Project: (门户建设)
+ * File: SysUserMapper.java
+ * Class: com.yxt.anrui.portal.biz.sysuser.SysUserMapper
+ * Description: 用户表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Mapper +public interface SysUserMapper extends BaseMapper { + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper ew); + + List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); + + @Select("SELECT user.*,staff.name FROM sys_user user left join sys_staffinfo staff on user.staffSid=staff.sid where user.isDelete=0") + List selectListVo(); + + public int updatePassword(String sid, String password); + + public int updatePasswordApp(String sid, String password); + + SysUser selectByUserName(String userName); + + SysUser selectByUserNameApp(String userName); + + SysUser selectByAppId(String appId); + + @Update("UPDATE sys_user SET appId=#{appId} WHERE sid=#{sid} and userType=1") + int updateAppId(@Param("sid") String sid, @Param("appId") String appId); + + @Update("UPDATE sys_user SET token=#{token} WHERE sid=#{sid}") + int updateToken(@Param("sid") String sid, @Param("token") String token); + + SysUser fetchByMobile(String mobile); + + void delBySid(String sid); + + @Update("UPDATE sys_user SET headImage=#{headImage} WHERE sid=#{sid}") + int updateHeadImage(@Param("sid") String sid, @Param("headImage") String headImage); + + /** + * @param mobile 手机号 + * @param userType 用户类型 + * @description: 根据手机号和用户类型查询客户是否存在 + * @return: + * @Author: dimengzhe + * @Date: 2021/10/6 11:35 + */ + SysUser selectByMobileAndType(@Param("mobile") String mobile, @Param("userType") int userType); + + +// @Select("SELECT * FROM sys_user WHERE staffSid=#{staffSid} and isDelete=0") + SysUserVo selectByStaffsid(@Param("staffSid") String staffSid); + + @Update("update sys_user set isDelete=1 where isDelete=0 and userType=2 and userName=#{mobile}") + int delSysUserByMobile(@Param("mobile")String mobile); + + @Select("select sid from sys_user") + List selectAllUserSid(); + +} \ No newline at end of file diff --git a/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserMapper.xml b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserMapper.xml new file mode 100644 index 0000000..93c7fc3 --- /dev/null +++ b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserMapper.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + update sys_user + set password=#{param2} + where sid = #{param1} + + + update sys_user + set password=#{param2} + where sid = #{param1} + and userType = 1 + + + delete + from sys_user + where sid = #{param1} + + + + + + \ No newline at end of file diff --git a/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserRest.java b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserRest.java new file mode 100644 index 0000000..11f9c50 --- /dev/null +++ b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserRest.java @@ -0,0 +1,116 @@ +package com.yyd.demo.sysuser; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.result.ResultBean; +import com.yyd.base.common.vo.PagerVo; +import com.yyd.base.redis.RedisUtil; +import io.swagger.annotations.Api; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponents; +import org.springframework.web.util.UriComponentsBuilder; +import org.springframework.http.HttpEntity; +import java.net.URI; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserFeignFallback.java
+ * Class: com.yxt.anrui.portal.biz.sysuser.SysUserRest
+ * Description: 用户表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "用户表") +@RestController +@RequestMapping("v1/sysuser") +public class SysUserRest implements SysUserFeign { + private static final Logger log = LoggerFactory.getLogger(SysUserRest.class); + @Autowired + private RedisUtil redisUtil; + @Autowired + private SysUserService sysUserService; + // 定义点选文字图片验证码允许的误差值 + private static final int ERROR_AMOUNT = 50;// 定义允许的误差值,单位是px + + + @Override + public ResultBean fetch(String id) { + ResultBean rb = ResultBean.fireFail(); + // http://USER-SERVICE/user?name={name) + /*Get请求之——getForEntity(Stringurl,Class responseType,Object…urlVariables) + 该方法提供了三个参数,其中url为请求的地址,responseType为请求响应body的包装类型,urlVariables为url中的参数绑定,该方法的参考调用如下:*/ + RestTemplate restTemplate=new RestTemplate(); + Map params=new HashMap<>(); + params.put("name","dada"); // + HttpHeaders headers = new HttpHeaders(); + headers.add("token", "token"); + /*ResponseEntity responseEntity=restTemplate.getForEntity("http://127.0.0.1:8112/demo/v1/sysuser/fetch/1", + new HttpEntity(headers), + String.class,params);*/ + ResponseEntity responseEntity = restTemplate.exchange( + "http://127.0.0.1:8112/demo2/v1/sysuser/fetch/1", + HttpMethod.GET, + new HttpEntity(headers), + String.class, params + ); + /* Get请求之——getForEntity(URI url,Class responseType) + 该方法使用URI对象来替代之前的url和urlVariables参数来指定访问地址和参数绑定。URI是JDK http://java.net包下的一个类,表示一个统一资源标识符(Uniform Resource Identifier)引用。参考如下:*/ + /* UriComponents uriComponents= UriComponentsBuilder.fromUriString("http://127.0.0.1:8112/demo/v1/sysuser/fetch/1") + .build() + .expand("dodo") + .encode(); + URI uri=uriComponents.toUri(); + String body = restTemplate.getForEntity(uri, String.class).getBody(); +*/ + /* Get请求之——getForObject + getForObject方法可以理解为对getForEntity的进一步封装,它通过HttpMessageConverterExtractor对HTTP的请求响应体body内容进行对象转换,实现请求直接返回包装好的对象内容。getForObject方法有如下: +*/ + /* getForObject(String url,Class responseType,Object...urlVariables) + getForObject(String url,Class responseType,Map urlVariables) + getForObject(URI url,Class responseType)*/ + + /* Post 请求 + Post请求提供有三种方法,postForEntity、postForObject和postForLocation。其中每种方法都存在三种方法,postForEntity方法使用如下: +*/ + SysUser user=new SysUser(); + user.setMobile("15097321111"); + // responseEntity=restTemplate.postForEntity("http://127.0.0.1:8112/demo/v1/sysuser/save",user,String.class); //提交的body内容为user对象,请求的返回的body类型为String + HttpEntity formEntity = new HttpEntity(JSON.toJSONString(user), headers); + ResponseEntity exchange = restTemplate.exchange( + "http://127.0.0.1:8112/demo2/v1/sysuser/save", + HttpMethod.POST, + new HttpEntity(headers), + SysUser.class, + params + ); + String body=responseEntity.getBody(); + + /*postForEntity存在如下三种方法的重载 + postForEntity(String url,Object request,Class responseType,Object... uriVariables) + postForEntity(String url,Object request,Class responseType,Map uriVariables) + postForEntity(URI url,Object request,Class responseType)*/ + + SysUserVo vo = sysUserService.fetchByIdVo(id); + return rb.success().setData(vo); + } + +} diff --git a/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserService.java b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserService.java new file mode 100644 index 0000000..37fd00d --- /dev/null +++ b/yyd-demo/demo-biz/src/main/java/com/yyd/demo/sysuser/SysUserService.java @@ -0,0 +1,157 @@ +package com.yyd.demo.sysuser; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.utils.PagerUtil; +import com.yyd.base.common.vo.PagerVo; +import com.yyd.base.jdbc.service.MybatisBaseService; +import com.yyd.base.redis.RedisUtil; +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.annotations.Param; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.util.*; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import static java.util.concurrent.Executors.newScheduledThreadPool; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserService.java
+ * Class: com.yxt.anrui.portal.biz.sysuser.SysUserService
+ * Description: 用户表 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class SysUserService extends MybatisBaseService { + + /** + * 设置redis的过期时间为4小时 + */ + public static final long USERS_REDIS_SESSION_TL_PC = 4 * 3600; + public static final long USERS_REDIS_SESSION_TL_App = 24 * 15 * 3600; + /** + * 验证码长度 + */ + static final int LENGTH_OF_CODE = 4; + /** + * 调用发送短信接口返回值 + */ + static final String RESULT_CODE = "1"; + /** + * 手机短信登录验证码时效(秒) + */ + static final long APP_LOGIN_CODE_TIME_LIMIT = 300L; + @Autowired + private RedisUtil redisUtil; + public PagerVo listPage(PagerQuery pq) { + SysUserQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List listAll(SysUserQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectList(qw); + } + + private QueryWrapper createQueryWrapper(SysUserQuery query) { + // todo: 这里根据具体业务调整查询条件 + // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); + QueryWrapper qw = new QueryWrapper<>(); + + if (StringUtils.isNotBlank(query.getUserName())) { + qw.like("user.userName", query.getUserName()); + } + if (StringUtils.isNotBlank(query.getRoleSid())) { + qw.eq("role.sid", query.getRoleSid()); + } + + return qw; + } + + public PagerVo listPageVo(PagerQuery pq) { + SysUserQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List listAllVo(SysUserQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectListAllVo(qw); + } + + public List listVo() { + return baseMapper.selectListVo(); + } + + + public SysUserVo fetchByIdVo(String id) { + SysUser entity = this.fetchById(id); + SysUserVo vo = new SysUserVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } + + public SysUserVo fetchBySidVo(String sid) { + SysUser entity = this.fetchBySid(sid); + String staffSid = entity.getStaffSid(); + SysUserVo vo = new SysUserVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } + + + public int updatePassword(String sid, String password) { + return baseMapper.updatePassword(sid, password); + } + + + public SysUser selectByUserName(String userName) { + return baseMapper.selectByUserName(userName); + } + + public SysUser selectByUserNameApp(String userName) { + return baseMapper.selectByUserNameApp(userName); + } + + public SysUser selectByAppId(String appId) { + return baseMapper.selectByAppId(appId); + } + + public int updateAppId(String sid, String appId) { + return baseMapper.updateAppId(sid, appId); + } + + public int updateToken(String sid, String token) { + return baseMapper.updateToken(sid, token); + } + + public SysUser fetchByMobile(String mobile) { + SysUser sysUsers = baseMapper.fetchByMobile(mobile); + return sysUsers; + } + + public void delBySid(String sid) { + baseMapper.delBySid(sid); + } + +} \ No newline at end of file diff --git a/yyd-demo/demo-biz/src/main/resources/application-devv.yml b/yyd-demo/demo-biz/src/main/resources/application-devv.yml new file mode 100644 index 0000000..0886af6 --- /dev/null +++ b/yyd-demo/demo-biz/src/main/resources/application-devv.yml @@ -0,0 +1,32 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/demo?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true + username: root + password: root + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: 123456 + port: 6379 + timeout: 0 # 连接超时时间(毫秒) + +image: + upload: + path: D:\\anrui\\upload\\ + url: + prefix: http://127.0.0.1:7003/upload/ + login: + path: D:\\images\\pic-click + + diff --git a/yyd-demo/demo-biz/src/main/resources/application-pro.yml b/yyd-demo/demo-biz/src/main/resources/application-pro.yml new file mode 100644 index 0000000..80ea8db --- /dev/null +++ b/yyd-demo/demo-biz/src/main/resources/application-pro.yml @@ -0,0 +1,30 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/demo?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8 + username: root + password: root + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: 123456 + port: 6379 + timeout: 0 # 连接超时时间(毫秒) + +image: + upload: + path: D:\anrui\upload\ + url: + prefix: http://120.46.131.15:8111/upload/ + login: + path: D:\images\pic-click diff --git a/yyd-demo/demo-biz/src/main/resources/application-test.yml b/yyd-demo/demo-biz/src/main/resources/application-test.yml new file mode 100644 index 0000000..2368e94 --- /dev/null +++ b/yyd-demo/demo-biz/src/main/resources/application-test.yml @@ -0,0 +1,30 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/demo?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true + username: root + password: root + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: + port: 6379 + timeout: 0 # 连接超时时间(毫秒) +image: + upload: + path: D:\\anrui\\upload\\ + url: + prefix: http://127.0.0.1:7003/upload/ + login: + path: D:\\images\\pic-click + diff --git a/yyd-demo/demo-biz/src/main/resources/application.yml b/yyd-demo/demo-biz/src/main/resources/application.yml new file mode 100644 index 0000000..af3a06f --- /dev/null +++ b/yyd-demo/demo-biz/src/main/resources/application.yml @@ -0,0 +1,47 @@ +spring: + application: + name: yyd-demo + profiles: + active: devv + messages: + # 国际化资源文件路径 + basename: i18n/messages + servlet: + #上传文件 + multipart: + max-file-size: 50MB + max-request-size: 100MB + devtools: + restart: + # 热部署开关 + enabled: true + mvc: + async: + request-timeout: 20000 + +server: + port: 7003 + max-http-header-size: 102400 + undertow: + max-http-post-size: -1 +#mybatis +mybatis-plus: + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapper-locations: classpath*:**Mapper.xml + global-config: + refresh: true + db-config: + #定义生成ID的类型 + id-type: Auto + db-type: mysql + configuration: + map-underscore-to-camel-case: false + cache-enabled: true + call-setters-on-nulls: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +logging: + config: classpath:log4j.xml + + + + diff --git a/yyd-demo/demo-biz/src/main/resources/log4j.xml b/yyd-demo/demo-biz/src/main/resources/log4j.xml new file mode 100644 index 0000000..bd6dc93 --- /dev/null +++ b/yyd-demo/demo-biz/src/main/resources/log4j.xml @@ -0,0 +1,41 @@ + + + + + + + log + kafka_log_topic + localhost:9092 + + + + + + + + + + + + + + + + ${bootstrap_servers} + + + + + + + + + + + + + + + diff --git a/yyd-demo/pom.xml b/yyd-demo/pom.xml new file mode 100644 index 0000000..47ffe7e --- /dev/null +++ b/yyd-demo/pom.xml @@ -0,0 +1,19 @@ + + + + ttvictory + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + pom + + demo-api + demo-biz + + yyd-demo + + + \ No newline at end of file diff --git a/yyd-log/pom.xml b/yyd-log/pom.xml new file mode 100644 index 0000000..636e177 --- /dev/null +++ b/yyd-log/pom.xml @@ -0,0 +1,17 @@ + + + + ttvictory + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + pom + yyd-log + + yyd-log-api + yyd-log-biz + + \ No newline at end of file diff --git a/yyd-log/yyd-log-api/pom.xml b/yyd-log/yyd-log-api/pom.xml new file mode 100644 index 0000000..04ebe3e --- /dev/null +++ b/yyd-log/yyd-log-api/pom.xml @@ -0,0 +1,46 @@ + + + + yyd-log + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + yyd-log-api + + + + io.swagger + swagger-models + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + org.projectlombok + lombok + + + com.baomidou + mybatis-plus-boot-starter + + + com.baomidou + mybatis-plus-annotation + + + jakarta.validation + jakarta.validation-api + + + com.yyd + yyd-base-common + 0.0.1-SNAPSHOT + compile + + + \ No newline at end of file diff --git a/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLog.java b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLog.java new file mode 100644 index 0000000..f2176da --- /dev/null +++ b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLog.java @@ -0,0 +1,44 @@ +package com.yyd.log.api; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yyd.base.common.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLog.java
+ * Class: com.yxt.anrui.portal.api.systemlog.SystemLog
+ * Description: 系统日志表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "系统日志表", description = "系统日志表") +@TableName("system_log") +@Data +public class SystemLog extends BaseEntity { + private static final long serialVersionUID = 1L; + @ApiModelProperty("事件名称或类别") + private String eventName; + + @ApiModelProperty("事件内容") + private String eventContent; + + @ApiModelProperty("事件url") + private String eventUrl; + + @ApiModelProperty("用户sid") + private String userSid; + + @ApiModelProperty("用户名") + private String userName; + + @ApiModelProperty("用户iP") + private String userIp; +} diff --git a/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogDto.java b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogDto.java new file mode 100644 index 0000000..6f15f81 --- /dev/null +++ b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogDto.java @@ -0,0 +1,46 @@ +package com.yyd.log.api; + + +import com.yyd.base.common.dto.Dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLogDto.java
+ * Class: com.yxt.anrui.portal.api.systemlog.SystemLogDto
+ * Description: 系统日志表 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Builder +@ApiModel(value = "系统日志表 数据传输对象", description = "系统日志表 数据传输对象") +@Data +public class SystemLogDto implements Dto { + + + @ApiModelProperty("事件名称或类别") + private String eventName; + + @ApiModelProperty("事件内容") + private String eventContent; + + @ApiModelProperty("事件url") + private String eventUrl; + + @ApiModelProperty("用户sid") + private String userSid; + + @ApiModelProperty("用户名") + private String userName; + + @ApiModelProperty("用户iP") + private String userIp; +} \ No newline at end of file diff --git a/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogFeign.java b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogFeign.java new file mode 100644 index 0000000..2e8b67d --- /dev/null +++ b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogFeign.java @@ -0,0 +1,65 @@ +package com.yyd.log.api; + +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.result.ResultBean; +import com.yyd.base.common.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLogFeign.java
+ * Class: com.yxt.anrui.portal.api.systemlog.SystemLogFeign
+ * Description: 系统日志表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "系统日志表") +@FeignClient( + contextId = "yyd-log", + name = "yyd-log", + path = "v1/systemlog", + fallback = SystemLogFeignFallback.class) +public interface SystemLogFeign { + + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq); + + @ApiOperation("根据条件查询所有数据列表") + @PostMapping("/listAll") + public ResultBean> listAll(@RequestBody SystemLogQuery query); + + @ApiOperation("所有数据列表") + @GetMapping("/list") + public ResultBean> list(); + + @ApiOperation("新增保存") + @PostMapping("/save") + public ResultBean save(@RequestBody SystemLogDto dto); + + @ApiOperation("修改保存") + @PostMapping("/update/{sid}") + public ResultBean update(@RequestBody SystemLogDto dto,@PathVariable("sid") String sid); + + @ApiOperation("删除记录") + @GetMapping("/del/{ids}") + public ResultBean del(@PathVariable("ids") String ids); + + @ApiOperation("获取一条记录") + @GetMapping("/fetch/{id}") + public ResultBean fetch(@PathVariable("id") String id); +} \ No newline at end of file diff --git a/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogFeignFallback.java b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogFeignFallback.java new file mode 100644 index 0000000..f506da1 --- /dev/null +++ b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogFeignFallback.java @@ -0,0 +1,64 @@ +package com.yyd.log.api; + +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.result.ResultBean; +import com.yyd.base.common.vo.PagerVo; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLogFeignFallback.java
+ * Class: com.yxt.anrui.portal.api.systemlog.SystemLogFeignFallback
+ * Description: 系统日志表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Component +public class SystemLogFeignFallback implements SystemLogFeign { + + @Override + public ResultBean> listPage(PagerQuery pq){ + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui_portal/systemlog/listPage无法访问"); + } + + @Override + public ResultBean> listAll(SystemLogQuery query){ + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui_portal/systemlog/listAll无法访问"); + } + + @Override + public ResultBean> list(){ + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui_portal/systemlog/list无法访问"); + } + + @Override + public ResultBean save(SystemLogDto dto){ + return ResultBean.fireFail().setMsg("接口anrui_portal/systemlog/save无法访问"); + } + + @Override + public ResultBean update(SystemLogDto dto, String sid){ + return ResultBean.fireFail().setMsg("接口anrui_portal/systemlog/update无法访问"); + } + + @Override + public ResultBean del(String ids){ + return ResultBean.fireFail().setMsg("接口anrui_portal/systemlog/del无法访问"); + } + + @Override + public ResultBean fetch(String id){ + ResultBean rb = ResultBean.fireFail(); + return rb.setMsg("接口anrui_portal/systemlog/fetch无法访问"); + } +} \ No newline at end of file diff --git a/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogQuery.java b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogQuery.java new file mode 100644 index 0000000..73b0ce5 --- /dev/null +++ b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogQuery.java @@ -0,0 +1,44 @@ +package com.yyd.log.api; + + +import com.yyd.base.common.query.Query; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLogQuery.java
+ * Class: com.yxt.anrui.portal.api.systemlog.SystemLogQuery
+ * Description: 系统日志表 查询条件.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "系统日志表 查询条件", description = "系统日志表 查询条件") +@Data +public class SystemLogQuery implements Query { + + + @ApiModelProperty("事件名称或类别") + private String eventName; + + @ApiModelProperty("事件内容") + private String eventContent; + + @ApiModelProperty("事件url") + private String eventUrl; + + @ApiModelProperty("用户sid") + private String userSid; + + @ApiModelProperty("用户名") + private String userName; + + @ApiModelProperty("用户iP") + private String userIp; +} diff --git a/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogVo.java b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogVo.java new file mode 100644 index 0000000..35f6be0 --- /dev/null +++ b/yyd-log/yyd-log-api/src/main/java/com/yyd/log/api/SystemLogVo.java @@ -0,0 +1,44 @@ +package com.yyd.log.api; + + +import com.yyd.base.common.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLogVo.java
+ * Class: com.yxt.anrui.portal.api.systemlog.SystemLogVo
+ * Description: 系统日志表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "系统日志表 视图数据对象", description = "系统日志表 视图数据对象") +@Data +public class SystemLogVo implements Vo { + + + @ApiModelProperty("事件名称或类别") + private String eventName; + + @ApiModelProperty("事件内容") + private String eventContent; + + @ApiModelProperty("事件url") + private String eventUrl; + + @ApiModelProperty("用户sid") + private String userSid; + + @ApiModelProperty("用户名") + private String userName; + + @ApiModelProperty("用户iP") + private String userIp; +} diff --git a/yyd-log/yyd-log-biz/pom.xml b/yyd-log/yyd-log-biz/pom.xml new file mode 100644 index 0000000..a816d10 --- /dev/null +++ b/yyd-log/yyd-log-biz/pom.xml @@ -0,0 +1,80 @@ + + + + yyd-log + com.yyd + 0.0.1-SNAPSHOT + + 4.0.0 + + yyd-log-biz + + + + com.yyd + yyd-base-common + 0.0.1-SNAPSHOT + + + org.projectlombok + lombok + + + com.yyd + yyd-base-jdbc + 0.0.1-SNAPSHOT + + + org.springframework.kafka + spring-kafka + + + org.apache.kafka + kafka-clients + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + mysql + mysql-connector-java + runtime + + + + junit + junit + compile + + + javax.servlet + javax.servlet-api + 4.0.1 + compile + + + com.github.xiaoymin + knife4j-spring-boot-starter + + + net.dongliu + apk-parser + 2.6.10 + + + org.springframework.boot + spring-boot-starter-web + + + com.yyd + yyd-log-api + 0.0.1-SNAPSHOT + compile + + + \ No newline at end of file diff --git a/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/LogApplication.java b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/LogApplication.java new file mode 100644 index 0000000..87c7022 --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/LogApplication.java @@ -0,0 +1,30 @@ +package com.yyd.log; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication(scanBasePackages = { + "com.yyd.log.*" +}) +@EnableDiscoveryClient +@EnableFeignClients(basePackages = {"com.yyd.log.*","com.yyd.base.*"}) +public class LogApplication { + + public static void main(String[] args) { + SpringApplication.run(LogApplication.class, args); + } +} + + + + + + + + + + + + diff --git a/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/KafkaConsumerService.java b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/KafkaConsumerService.java new file mode 100644 index 0000000..0aa3bae --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/KafkaConsumerService.java @@ -0,0 +1,67 @@ +package com.yyd.log.biz; + +import com.alibaba.fastjson.JSONObject; +import com.yyd.log.api.SystemLog; +import lombok.extern.slf4j.Slf4j; +import org.apache.kafka.clients.consumer.Consumer; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.kafka.annotation.KafkaListener; +import org.springframework.kafka.support.Acknowledgment; +import org.springframework.stereotype.Component; + +/** + * KafkaConsumerService + */ +@Slf4j +@Component +public class KafkaConsumerService { +@Autowired +private SystemLogService systemLogService; + @KafkaListener(groupId = "group02", topics = "kafka_log_topic") + public void onMessage(ConsumerRecord record, Acknowledgment acknowledgment, Consumer consumer) { + // log.info("消费端接收消息: {}", record.value()); + JSONObject jsonObject = JSONObject.parseObject( record.value().toString()); + JSONObject message=null; + try{ + message = JSONObject.parseObject(jsonObject.get("message").toString()); + SystemLog log=new SystemLog(); + if(message.get("routeId")!=null){ + log.setEventName(message.get("routeId").toString()); + }else { + log.setEventName(""); + } + /* log.setEventContent(jsonObject.get("heads").toString());*/ + if(message.get("params")!=null){ + log.setEventContent(message.get("params").toString()); + }else{ + log.setEventContent(""); + } + if(message.get("uri")!=null){ + log.setEventUrl(message.get("uri").toString()); + }else{ + log.setEventUrl(""); + } + if(message.get("userName")!=null){ + + log.setUserName(message.get("userName").toString()); + }else{ + log.setUserName(""); + + } + if(message.get("ip")!=null){ + + log.setUserIp(message.get("ip").toString()); + }else{ + log.setUserIp(""); + } + systemLogService.save(log); + }catch (Exception e){ + message=new JSONObject(); + } + // 手工签收机制 + acknowledgment.acknowledge(); + } + + +} diff --git a/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogMapper.java b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogMapper.java new file mode 100644 index 0000000..047b01b --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogMapper.java @@ -0,0 +1,40 @@ +package com.yyd.log.biz; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yyd.log.api.SystemLog; +import com.yyd.log.api.SystemLogVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLogMapper.java
+ * Class: com.yxt.anrui.portal.biz.systemlog.SystemLogMapper
+ * Description: 系统日志表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Mapper +public interface SystemLogMapper extends BaseMapper { + + //@Update("update system_log set name=#{msg} where id=#{id}") + //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + + List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); + + @Select("select * from system_log") + List selectListVo(); +} \ No newline at end of file diff --git a/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogMapper.xml b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogMapper.xml new file mode 100644 index 0000000..709e0d9 --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogRest.java b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogRest.java new file mode 100644 index 0000000..18b05b6 --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogRest.java @@ -0,0 +1,103 @@ +package com.yyd.log.biz; + +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.result.ResultBean; +import com.yyd.base.common.vo.PagerVo; +import com.yyd.log.api.SystemLogDto; +import com.yyd.log.api.SystemLogFeign; +import com.yyd.log.api.SystemLogQuery; +import com.yyd.log.api.SystemLogVo; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLogFeignFallback.java
+ * Class: com.yxt.anrui.portal.biz.systemlog.SystemLogRest
+ * Description: 系统日志表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "系统日志表") +@RestController +@RequestMapping("v1/systemlog") +public class SystemLogRest implements SystemLogFeign { + + @Resource + private SystemLogService systemLogService; + + @Override + public ResultBean> listPage(@RequestBody PagerQuery pq){ + /*SystemLogDto systemLogDto = SystemLogDto.builder() + .userIp(WebUtil.getIp()) + .eventContent("日志列表查询") + .eventName("日志列表查询") + .eventUrl("/v1/systemlog/listPage") + .userName("") + .userSid("") + .build();*/ + /*systemLogService.saveOrUpdateDto(systemLogDto);*/ + /* SystemLog log=new SystemLog(); + log.setEventName("日志列表查询"); + log.setEventContent("日志列表查询"); + log.setUserName(""); + log.setUserIp("0.0.0.0"); + systemLogService.save(log);*/ + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = systemLogService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean> listAll(@RequestBody SystemLogQuery query){ + ResultBean rb = ResultBean.fireFail(); + List list = systemLogService.listAllVo(query); + return rb.success().setData(list); + } + + @Override + public ResultBean> list(){ + ResultBean rb = ResultBean.fireFail(); + List list = systemLogService.listVo(); + return rb.success().setData(list); + } + + @Override + public ResultBean save(SystemLogDto dto){ + ResultBean rb = ResultBean.fireFail(); + systemLogService.saveOrUpdateDto(dto); + return rb.success(); + } + + @Override + public ResultBean update(SystemLogDto dto,String sid){ + ResultBean rb = ResultBean.fireFail(); + systemLogService.updateBySid(dto.toMap(),sid); + return rb.success(); + } + + @Override + public ResultBean del(String ids){ + ResultBean rb = ResultBean.fireFail(); + systemLogService.delByIds(ids); + return rb.success(); + } + + @Override + public ResultBean fetch(String id){ + ResultBean rb = ResultBean.fireFail(); + SystemLogVo vo = systemLogService.fetchByIdVo(id); + return rb.success().setData(vo); + } +} diff --git a/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogService.java b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogService.java new file mode 100644 index 0000000..8671b61 --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/java/com/yyd/log/biz/SystemLogService.java @@ -0,0 +1,109 @@ +package com.yyd.log.biz; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yyd.base.common.query.PagerQuery; +import com.yyd.base.common.utils.PagerUtil; +import com.yyd.base.common.vo.PagerVo; +import com.yyd.base.jdbc.service.MybatisBaseService; +import com.yyd.log.api.SystemLog; +import com.yyd.log.api.SystemLogDto; +import com.yyd.log.api.SystemLogQuery; +import com.yyd.log.api.SystemLogVo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * Project: anrui_portal(门户建设)
+ * File: SystemLogService.java
+ * Class: com.yxt.anrui.portal.biz.systemlog.SystemLogService
+ * Description: 系统日志表 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class SystemLogService extends MybatisBaseService { + public PagerVo listPage(PagerQuery pq) { + SystemLogQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + public List listAll(SystemLogQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectList(qw); + } + private QueryWrapper createQueryWrapper(SystemLogQuery query) { + // todo: 这里根据具体业务调整查询条件 + // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); + QueryWrapper qw = new QueryWrapper<>(); + + + if (StringUtils.isNotBlank(query.getEventName())) { + qw.eq("eventName", query.getEventName()); + } + + if (StringUtils.isNotBlank(query.getEventContent())) { + qw.eq("eventContent", query.getEventContent()); + } + + if (StringUtils.isNotBlank(query.getEventUrl())) { + qw.eq("eventUrl", query.getEventUrl()); + } + + if (StringUtils.isNotBlank(query.getUserSid())) { + qw.eq("userSid", query.getUserSid()); + } + + if (StringUtils.isNotBlank(query.getUserName())) { + qw.eq("userName", query.getUserName()); + } + + if (StringUtils.isNotBlank(query.getUserIp())) { + qw.eq("userIp", query.getUserIp()); + } + return qw; + } + + public PagerVo listPageVo(PagerQuery pq) { + SystemLogQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List listAllVo(SystemLogQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectListAllVo(qw); + } + + public List listVo() { + return baseMapper.selectListVo(); + } + + public void saveOrUpdateDto(SystemLogDto dto){ + SystemLog entity = new SystemLog(); + dto.fillEntity(entity); + this.saveOrUpdate(entity); + } + + public SystemLogVo fetchByIdVo(String id){ + SystemLog entity = this.fetchById(id); + SystemLogVo vo = new SystemLogVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } +} \ No newline at end of file diff --git a/yyd-log/yyd-log-biz/src/main/resources/application-devv.yml b/yyd-log/yyd-log-biz/src/main/resources/application-devv.yml new file mode 100644 index 0000000..7939657 --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/resources/application-devv.yml @@ -0,0 +1,32 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/anrui_portal?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true + username: root + password: root + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: 123456 + port: 6379 + timeout: 0 # 连接超时时间(毫秒) + +image: + upload: + path: D:\\anrui\\upload\\ + url: + prefix: http://127.0.0.1:7003/upload/ + login: + path: D:\\images\\pic-click + + diff --git a/yyd-log/yyd-log-biz/src/main/resources/application-pro.yml b/yyd-log/yyd-log-biz/src/main/resources/application-pro.yml new file mode 100644 index 0000000..55e53c4 --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/resources/application-pro.yml @@ -0,0 +1,30 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://120.46.131.15:3306/anrui_portal?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8 + username: root + password: anrui_@root + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: 123456 + port: 6379 + timeout: 0 # 连接超时时间(毫秒) + +image: + upload: + path: D:\anrui\upload\ + url: + prefix: http://120.46.131.15:8111/upload/ + login: + path: D:\images\pic-click diff --git a/yyd-log/yyd-log-biz/src/main/resources/application-test.yml b/yyd-log/yyd-log-biz/src/main/resources/application-test.yml new file mode 100644 index 0000000..2f2d44b --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/resources/application-test.yml @@ -0,0 +1,30 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://39.104.142.192:3306/anrui_portal?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true + username: root + password: 123456 + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: + port: 6379 + timeout: 0 # 连接超时时间(毫秒) +image: + upload: + path: D:\\anrui\\upload\\ + url: + prefix: http://127.0.0.1:7003/upload/ + login: + path: D:\\images\\pic-click + diff --git a/yyd-log/yyd-log-biz/src/main/resources/application.yml b/yyd-log/yyd-log-biz/src/main/resources/application.yml new file mode 100644 index 0000000..264dc83 --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/resources/application.yml @@ -0,0 +1,55 @@ +spring: + application: + name: yyd-log + profiles: + active: devv + messages: + # 国际化资源文件路径 + basename: i18n/messages + servlet: + #上传文件 + multipart: + max-file-size: 50MB + max-request-size: 100MB + devtools: + restart: + # 热部署开关 + enabled: true + mvc: + async: + request-timeout: 20000 + kafka: + bootstrap-servers: 127.0.0.1:9092 + listener: + missing-topics-fatal: false + ack-mode: manual + concurrency: 5 + consumer: + enable-auto-commit: false + auto-offset-reset: earliest + key-deserializer: org.apache.kafka.common.serialization.StringDeserializer + value-deserializer: org.apache.kafka.common.serialization.StringDeserializer +server: + port: 8002 + servlet: + context-path: /consumser + max-http-header-size: 102400 + undertow: + max-http-post-size: -1 +#mybatis +mybatis-plus: + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapper-locations: classpath*:**Mapper.xml + global-config: + refresh: true + db-config: + #定义生成ID的类型 + id-type: Auto + db-type: mysql + configuration: + map-underscore-to-camel-case: false + cache-enabled: true + call-setters-on-nulls: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + + diff --git a/yyd-log/yyd-log-biz/src/main/resources/logback-spring.xml b/yyd-log/yyd-log-biz/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..689ad8b --- /dev/null +++ b/yyd-log/yyd-log-biz/src/main/resources/logback-spring.xml @@ -0,0 +1,50 @@ + + + + + + + + + + %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%blue(%msg%n) + + + + + + + + + + + + + + + ${log.base}.log + + ${log.base}.%d{yyyyMMdd}.%i.log.zip + + + + 1MB + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} + -%msg%n + + + + + + + + + + \ No newline at end of file