commit
6adca77afd
2592 changed files with 434641 additions and 0 deletions
@ -0,0 +1,57 @@
@@ -0,0 +1,57 @@
|
||||
### gradle ### |
||||
.gradle |
||||
!gradle/wrapper/gradle-wrapper.jar |
||||
|
||||
### STS ### |
||||
.settings/ |
||||
.apt_generated |
||||
.classpath |
||||
.factorypath |
||||
.project |
||||
.settings |
||||
.springBeans |
||||
bin/ |
||||
|
||||
### IntelliJ IDEA ### |
||||
.idea |
||||
*.iws |
||||
*.iml |
||||
*.ipr |
||||
rebel.xml |
||||
|
||||
### NetBeans ### |
||||
nbproject/private/ |
||||
nbbuild/ |
||||
nbdist/ |
||||
.nb-gradle/ |
||||
|
||||
### maven ### |
||||
target/ |
||||
*.war |
||||
*.ear |
||||
*.zip |
||||
*.tar |
||||
*.tar.gz |
||||
*.versionsBackup |
||||
|
||||
### vscode ### |
||||
.vscode |
||||
|
||||
### logs ### |
||||
/logs/ |
||||
*.log |
||||
|
||||
### temp ignore ### |
||||
*.cache |
||||
*.diff |
||||
*.patch |
||||
*.tmp |
||||
*.java~ |
||||
*.properties~ |
||||
*.xml~ |
||||
|
||||
### system ignore ### |
||||
.DS_Store |
||||
Thumbs.db |
||||
Servers |
||||
.metadata |
@ -0,0 +1,49 @@
@@ -0,0 +1,49 @@
|
||||
# 🚀`kicc`(康来智慧冷链) 微服务架构平台 © 长沙康来生物有限公司版权所有 |
||||
|
||||
## 💡 简介 |
||||
服务于医疗智慧冷链行业微服务架构平台,目前采用最新微服务技术栈搭建,支持标本箱配送,监控,地图路线规划, |
||||
努力做成中国最好的智慧冷链平台。 |
||||
|
||||
## 🎡 功能特点 |
||||
- 主体框架:采用最新的`Spring Cloud 2021.0.1`, `Spring Boot 2.6.4`, `Spring Cloud Alibaba 2021.1`版本进行系统设计; |
||||
|
||||
- 统一注册:支持`Nacos`作为注册中心,实现多配置、分群组、分命名空间、多业务模块的注册和发现功能; |
||||
|
||||
- 统一认证:统一`Oauth2`认证协议,并支持自定义grant_type实现手机号码登录,第三方登录集成JustAuth实现微信、支付宝等多种登录模式; |
||||
|
||||
- 业务监控:利用`Spring Boot Admin`来监控各个独立Service的运行状态。 |
||||
|
||||
- 内部调用:集成了`Feign`与自定义内部注解,支持内部调用。 |
||||
|
||||
- 业务熔断:采用`Sentinel`实现业务熔断处理,避免服务之间出现雪崩; |
||||
|
||||
- 在线文档:通过接入`Knife4j`,实现在线API文档的查看与调试; |
||||
|
||||
- 业务分离:采用前后端分离的框架设计,前端采用基于 `vben Admin` 的 `kicc-ui` |
||||
|
||||
- 多租户功能:集成`Mybatis Plus`,实现SAAS多租户功能 |
||||
|
||||
|
||||
## 🎯 文件结构 |
||||
```lua |
||||
kicc -- 父项目,各模块分离,方便集成和微服务 |
||||
│ ├─kicc-auth -- 认证授权中心,基于 spring security oAuth2 |
||||
│ ├─kicc-common -- 公共通用模块,主模块 |
||||
│ │ ├─kicc-common-bom -- 全局jar BOM标准定义 |
||||
│ │ ├─kicc-common-core -- 公共工具类核心包 |
||||
│ │ ├─kicc-common-data -- 数据服务核心包 |
||||
│ │ ├─kicc-common-datasource -- 动态切换数据源组件 |
||||
│ │ ├─kicc-common-feign -- feign-sentinel服务降级熔断、限流组件 |
||||
│ │ ├─kicc-common-job -- 定时任务,基于xxl-job |
||||
│ │ ├─kicc-common-log -- 日志服务 |
||||
│ │ ├─kicc-common-mock -- 单元模拟测试工具类 |
||||
│ │ ├─kicc-common-rocketmq -- 阿里 rocketmq 消息中间件 |
||||
│ │ ├─kicc-common-seata -- 阿里巴巴-seata分布式事务解决方案 |
||||
│ │ ├─kicc-common-security -- 安全工具类 |
||||
│ │ ├─kicc-common-swagger -- 接口文档 |
||||
│ │─kicc-common-demo -- 组件使用案列 |
||||
│ │─kicc-gateway -- 服务网关,基于 spring cloud gateway |
||||
│ │─kicc-register -- 注册配置中心 |
||||
│ │─kicc-system -- 通用系统权限管理聚合模块 |
||||
│ │─kicc-visual 图形化相关功能 |
||||
``` |
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
注意所以打包部署全部写了docker-compose一键部署,需要了解更多信息,请参考kicc项目中docker-cloud文件夹 |
||||
宿主机文件统一映射路径:/usr/software/dockerDatabase/** |
||||
|
||||
|
||||
微服务端口:------------------------------------------ |
||||
8051:prtainer-ce |
||||
8052:mysql |
||||
8053:redis |
||||
9876:rocketmq:namesrv |
||||
10909:rocketmq:broker:远程发送消息接口 |
||||
10911:rocketmq:broker:远程快速发送消息接口 |
||||
8091:seata-server |
||||
8848:kicc-register:连接端口 |
||||
9848:kicc-register:客户端向服务端发起连接和请求 |
||||
9849:kicc-register:用于服务间同步等 |
||||
8058:kicc-rocketmq |
||||
8056:kicc-sentinel |
||||
8057:kicc-job-admin |
||||
8061:kicc-monitor |
||||
9999:kicc-gateway |
||||
3000:kicc-auth |
||||
4000:kicc-system |
||||
80:kicc-ui |
||||
40003:demo-kicc-message-consumer |
||||
40002:demo-kicc-message-producer |
||||
60001:demo-kicc-seata-order |
||||
60002:demo-kicc-seata-point |
||||
60003:demo-kicc-seata-user |
||||
8062:docker |
||||
8065:gitea ssh端口服务 |
||||
8066:gitea http端口服务 |
@ -0,0 +1,109 @@
@@ -0,0 +1,109 @@
|
||||
/* |
||||
Navicat Premium Data Transfer |
||||
|
||||
Source Server : 本地 |
||||
Source Server Type : MySQL |
||||
Source Server Version : 50732 |
||||
Source Host : localhost:3306 |
||||
Source Schema : kicc-seata |
||||
|
||||
Target Server Type : MySQL |
||||
Target Server Version : 50732 |
||||
File Encoding : 65001 |
||||
|
||||
Date: 21/03/2022 21:49:52 |
||||
*/ |
||||
|
||||
SET NAMES utf8mb4; |
||||
SET FOREIGN_KEY_CHECKS = 0; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for branch_table |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `branch_table`; |
||||
CREATE TABLE `branch_table` ( |
||||
`branch_id` bigint(20) NOT NULL, |
||||
`xid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`transaction_id` bigint(20) NULL DEFAULT NULL, |
||||
`resource_group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`resource_id` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`branch_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`status` tinyint(4) NULL DEFAULT NULL, |
||||
`client_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`application_data` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`gmt_create` datetime(6) NULL DEFAULT NULL, |
||||
`gmt_modified` datetime(6) NULL DEFAULT NULL, |
||||
PRIMARY KEY (`branch_id`) USING BTREE, |
||||
INDEX `idx_xid`(`xid`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of branch_table |
||||
-- ---------------------------- |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for distributed_lock |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `distributed_lock`; |
||||
CREATE TABLE `distributed_lock` ( |
||||
`lock_key` char(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`lock_value` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`expire` bigint(20) NULL DEFAULT NULL, |
||||
PRIMARY KEY (`lock_key`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of distributed_lock |
||||
-- ---------------------------- |
||||
INSERT INTO `distributed_lock` VALUES ('HandleAllSession', ' ', 0); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for global_table |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `global_table`; |
||||
CREATE TABLE `global_table` ( |
||||
`xid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`transaction_id` bigint(20) NULL DEFAULT NULL, |
||||
`status` tinyint(4) NOT NULL, |
||||
`application_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`transaction_service_group` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`transaction_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`timeout` int(11) NULL DEFAULT NULL, |
||||
`begin_time` bigint(20) NULL DEFAULT NULL, |
||||
`application_data` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`gmt_create` datetime NULL DEFAULT NULL, |
||||
`gmt_modified` datetime NULL DEFAULT NULL, |
||||
PRIMARY KEY (`xid`) USING BTREE, |
||||
INDEX `idx_status_gmt_modified`(`status`, `gmt_modified`) USING BTREE, |
||||
INDEX `idx_transaction_id`(`transaction_id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of global_table |
||||
-- ---------------------------- |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for lock_table |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `lock_table`; |
||||
CREATE TABLE `lock_table` ( |
||||
`row_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`xid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`transaction_id` bigint(20) NULL DEFAULT NULL, |
||||
`branch_id` bigint(20) NOT NULL, |
||||
`resource_id` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`table_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`pk` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0:locked ,1:rollbacking', |
||||
`gmt_create` datetime NULL DEFAULT NULL, |
||||
`gmt_modified` datetime NULL DEFAULT NULL, |
||||
PRIMARY KEY (`row_key`) USING BTREE, |
||||
INDEX `idx_status`(`status`) USING BTREE, |
||||
INDEX `idx_branch_id`(`branch_id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of lock_table |
||||
-- ---------------------------- |
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1; |
@ -0,0 +1,681 @@
@@ -0,0 +1,681 @@
|
||||
/* |
||||
Navicat Premium Data Transfer |
||||
|
||||
Source Server : 本地 |
||||
Source Server Type : MySQL |
||||
Source Server Version : 50732 |
||||
Source Host : localhost:3306 |
||||
Source Schema : kicc |
||||
|
||||
Target Server Type : MySQL |
||||
Target Server Version : 50732 |
||||
File Encoding : 65001 |
||||
|
||||
Date: 21/03/2022 21:50:21 |
||||
*/ |
||||
|
||||
SET NAMES utf8mb4; |
||||
SET FOREIGN_KEY_CHECKS = 0; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for demo_seata_order |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `demo_seata_order`; |
||||
CREATE TABLE `demo_seata_order` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', |
||||
`money` int(11) NULL DEFAULT NULL COMMENT '金额', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of demo_seata_order |
||||
-- ---------------------------- |
||||
INSERT INTO `demo_seata_order` VALUES ('1', 100); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for demo_seata_point |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `demo_seata_point`; |
||||
CREATE TABLE `demo_seata_point` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', |
||||
`count` int(11) NULL DEFAULT NULL COMMENT '积分数量', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of demo_seata_point |
||||
-- ---------------------------- |
||||
INSERT INTO `demo_seata_point` VALUES ('2', 10); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for demo_seata_user |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `demo_seata_user`; |
||||
CREATE TABLE `demo_seata_user` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', |
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名称', |
||||
`age` int(11) NULL DEFAULT NULL COMMENT '用户年龄', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of demo_seata_user |
||||
-- ---------------------------- |
||||
INSERT INTO `demo_seata_user` VALUES ('2', '测试员', 18); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_config |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_config`; |
||||
CREATE TABLE `sys_config` ( |
||||
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '编号', |
||||
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数名称', |
||||
`key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数键名', |
||||
`value` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数键值', |
||||
`is_sys` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '系统内置 0-是|1-否', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', |
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', |
||||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', |
||||
`remarks` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', |
||||
`del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_config |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_config` VALUES ('1', '初始密码', 'user.initPassword', '123456', '0', NULL, '', '2020-03-15 21:51:13', NULL, '', NULL, NULL, '0'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_dept |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_dept`; |
||||
CREATE TABLE `sys_dept` ( |
||||
`dept_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`code` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '机构编码', |
||||
`name` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '机构名称', |
||||
`parent_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '父级编号', |
||||
`ancestors` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '祖级列表', |
||||
`sort` int(11) NULL DEFAULT 1 COMMENT '排序', |
||||
`contacts` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系人', |
||||
`phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '电话', |
||||
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系地址', |
||||
`email` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱', |
||||
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者', |
||||
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息', |
||||
`del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '删除标记', |
||||
PRIMARY KEY (`dept_id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_dept |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_dept` VALUES ('1', '100001', '康来生物长沙总公司', '0', '0', 1, '杨总', '15688888888', NULL, NULL, '0', NULL, 'entfrm', '2020-02-13 20:55:57', NULL, 'admin', '2020-03-19 20:49:29', NULL, '0'); |
||||
INSERT INTO `sys_dept` VALUES ('2', '10000101', '康来生物北京分公司', '1', '0,1', 1, NULL, NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, 'admin', '2020-03-15 20:22:11', NULL, '0'); |
||||
INSERT INTO `sys_dept` VALUES ('3', '10000102', '康来生物上海分公司', '1', '0,1', 2, '123', '', NULL, NULL, '0', NULL, NULL, NULL, NULL, 'entfrm', '2020-03-15 20:37:02', NULL, '0'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_dict |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_dict`; |
||||
CREATE TABLE `sys_dict` ( |
||||
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, |
||||
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典名称', |
||||
`type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典类型', |
||||
`is_sys` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '0-是|1-否', |
||||
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人', |
||||
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '备注', |
||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '0-正常,1-删除', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_dict |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_dict` VALUES ('1', '用户性别', 'user_sex', '0', '0', NULL, 'admin', '2018-03-16 11:33:00', NULL, 'admin', '2020-03-17 14:19:40', '用户性别列表', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('10', '快捷方式类型', 'shortcut_type', '0', '0', NULL, 'entfrm', '2020-03-27 09:48:05', NULL, 'entfrm', '2020-03-27 10:14:27', '快捷方式类型列表', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('11', '模型分类', 'model_category', '0', '0', NULL, 'entfrm', '2020-04-04 22:09:36', '1', 'admin', '2022-03-21 21:23:55', '', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('12', '请假类型', 'leave_type', '0', '0', NULL, 'entfrm', '2020-04-05 10:08:18', '1', 'admin', '2022-03-21 21:23:55', '', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('13', '任务状态', 'job_status', '0', '0', NULL, 'entfrm', '2020-04-11 18:54:20', '1', 'admin', '2022-03-21 21:23:55', '', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('14', 'Activiti流程状态', 'process_status', '0', '0', NULL, 'entfrm', '2020-04-12 14:30:52', NULL, 'entfrm', '2021-05-12 01:37:16', 'Activiti流程状态', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('15', '应用类型', 'application_type', '0', '0', NULL, 'entfrm', '2020-04-23 18:54:07', '1', 'admin', '2022-03-21 21:23:55', '', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('16', '消息类型', 'msg_type', '0', '0', NULL, 'entfrm', '2020-05-10 16:02:20', '1', 'admin', '2022-03-21 21:23:55', '', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('17', '应用状态', 'application_status', '0', '0', NULL, 'entfrm', '2020-05-15 22:56:49', '1', 'admin', '2022-03-21 21:23:55', '应用状态列表', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('18', '消息通知类型', 'content_type', '0', '0', NULL, 'entfrm', '2020-05-25 15:45:41', '1', 'admin', '2022-03-21 21:23:55', '', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('19', '数据格式类型', 'data_type', '0', '0', NULL, 'entfrm', '2020-06-13 08:51:07', NULL, NULL, NULL, '', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('2', '菜单状态', 'menu_status', '0', '0', NULL, 'admin', '2018-03-16 11:33:00', NULL, 'admin', '2020-03-17 14:19:41', '菜单状态列表', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('20', '表单类型', 'form_type', '0', '0', NULL, 'entfrm', '2021-03-26 23:30:49', '1', 'admin', '2022-03-21 21:24:11', '', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('21', '流程状态', 'process_status', '1', '0', NULL, 'entfrm', '2021-05-12 01:37:30', '1', 'admin', '2022-03-21 21:24:11', 'Activiti流程状态', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('3', '是否', 'yes_no', '0', '0', NULL, 'admin', '2018-03-16 11:33:00', NULL, 'admin', '2020-03-17 14:19:42', '是否列表', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('4', '状态', 'status', '0', '0', NULL, 'admin', '2018-03-16 11:33:00', NULL, 'admin', '2020-03-17 14:19:42', '状态列表', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('5', '成功失败', 'success_fail', '0', '0', NULL, 'admin', '2019-08-24 10:02:57', NULL, 'admin', '2020-03-17 14:19:43', '成功失败列表', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('6', '文件类别', 'file_type', '0', '0', NULL, 'entfrm', '2020-03-17 13:57:44', NULL, 'entfrm', '2020-03-20 22:48:19', '文件类别列表', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('7', '数据库类型', 'datasource_type', '0', '0', NULL, 'entfrm', '2020-03-21 11:33:14', '1', 'admin', '2022-03-21 21:24:15', '数据库类型列表', '1'); |
||||
INSERT INTO `sys_dict` VALUES ('8', '任务类型', 'job_type', '0', '0', NULL, 'entfrm', '2020-03-21 21:21:46', NULL, NULL, NULL, '任务类型列表', '0'); |
||||
INSERT INTO `sys_dict` VALUES ('9', '登录类型', 'login_type', '0', '0', NULL, 'entfrm', '2020-03-22 09:55:59', NULL, NULL, NULL, '登录类型列表', '0'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_dict_data |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_dict_data`; |
||||
CREATE TABLE `sys_dict_data` ( |
||||
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '编号', |
||||
`dict_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字典编号', |
||||
`dict_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '类型', |
||||
`label` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '标签名', |
||||
`value` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '数据值', |
||||
`sort` int(10) NOT NULL COMMENT '排序(升序)', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人', |
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
||||
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息', |
||||
`del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '删除标记', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_dict_data |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_dict_data` VALUES ('1', '1', 'user_sex', '男', '0', 1, NULL, NULL, '2019-08-13 18:33:37', NULL, NULL, '2019-08-13 18:33:40', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('10', NULL, 'success_fail', '失败', '1', 20, NULL, 'admin', '2019-08-24 11:48:27', NULL, NULL, '2019-08-24 11:48:26', '', '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('11', NULL, 'file_type', '图片', 'image', 1, NULL, 'entfrm', '2020-03-20 22:48:39', NULL, NULL, '2020-03-28 16:27:48', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('12', NULL, 'file_type', '媒体', 'media', 2, NULL, 'entfrm', '2020-03-20 22:48:48', NULL, 'entfrm', '2020-03-28 16:28:32', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('13', NULL, 'file_type', '文档', 'file', 3, NULL, 'entfrm', '2020-03-20 22:49:03', NULL, NULL, '2020-03-28 16:28:21', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('14', NULL, 'datasource_type', 'Mysql', 'com.mysql.cj.jdbc.Driver', 1, NULL, 'entfrm', '2020-03-21 11:33:59', NULL, 'entfrm', '2020-03-21 11:33:59', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('15', NULL, 'datasource_type', 'Sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 2, NULL, 'entfrm', '2020-03-21 11:34:59', NULL, 'entfrm', '2020-03-21 11:34:58', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('16', NULL, 'datasource_type', 'Postgresql', 'org.postgresql.Driver', 3, NULL, 'entfrm', '2020-03-21 11:36:16', NULL, NULL, '2020-03-21 11:36:15', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('17', NULL, 'job_type', 'Java类', '1', 1, NULL, 'entfrm', '2020-03-21 21:22:35', NULL, NULL, '2020-03-21 21:22:35', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('18', NULL, 'job_type', 'Spring bean名称', '2', 2, NULL, 'entfrm', '2020-03-21 21:22:50', NULL, NULL, '2020-03-21 21:22:50', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('19', NULL, 'job_type', 'Rest调用', '3', 3, NULL, 'entfrm', '2020-03-21 21:23:06', NULL, NULL, '2020-03-21 21:23:05', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('2', '1', 'user_sex', '女', '1', 2, NULL, NULL, '2019-08-13 18:34:03', NULL, NULL, '2019-08-13 18:34:07', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('20', NULL, 'job_type', 'Jar调用', '4', 4, NULL, 'entfrm', '2020-03-21 21:23:19', NULL, NULL, '2020-03-21 21:23:18', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('21', NULL, 'job_type', '其他', '5', 0, NULL, 'entfrm', '2020-03-21 21:23:24', NULL, NULL, '2020-03-21 21:23:24', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('22', NULL, 'login_type', '登录', '0', 1, NULL, 'entfrm', '2020-03-22 09:56:41', NULL, NULL, '2020-03-22 09:56:40', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('23', NULL, 'login_type', '退出', '1', 2, NULL, 'entfrm', '2020-03-22 09:56:51', NULL, NULL, '2020-03-22 09:56:51', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('24', NULL, 'shortcut_type', '顶部', '1', 1, NULL, 'entfrm', '2020-03-27 09:48:24', NULL, NULL, '2020-03-27 09:48:23', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('25', NULL, 'shortcut_type', '首页', '2', 2, NULL, 'entfrm', '2020-03-27 09:48:38', NULL, NULL, '2020-03-27 09:48:38', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('26', NULL, 'model_category', '办公流程', 'office', 1, NULL, 'entfrm', '2020-04-04 22:10:14', NULL, NULL, '2020-04-04 22:10:13', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('27', NULL, 'model_category', '项目流程', 'project', 2, NULL, 'entfrm', '2020-04-04 22:10:27', NULL, NULL, '2020-04-04 22:10:26', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('28', NULL, 'leave_type', '事假', '1', 1, NULL, 'entfrm', '2020-04-05 10:08:52', NULL, NULL, '2020-04-05 10:08:52', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('29', NULL, 'leave_type', '病假', '2', 2, NULL, 'entfrm', '2020-04-05 10:09:05', NULL, NULL, '2020-04-05 10:09:05', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('3', '2', 'menu_status', '隐藏', '1', 2, NULL, NULL, '2019-08-13 18:33:37', NULL, NULL, '2019-08-19 15:42:29', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('30', NULL, 'leave_type', '产假', '3', 3, NULL, 'entfrm', '2020-04-05 10:09:37', NULL, 'entfrm', '2020-04-05 10:09:37', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('31', NULL, 'job_status', '未发布', '1', 1, NULL, 'entfrm', '2020-04-11 18:54:37', NULL, NULL, '2020-04-11 18:54:37', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('32', NULL, 'job_status', '运行中', '2', 2, NULL, 'entfrm', '2020-04-11 18:54:48', NULL, NULL, '2020-04-11 18:54:47', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('33', NULL, 'job_status', '暂停', '3', 3, NULL, 'entfrm', '2020-04-11 18:54:57', NULL, NULL, '2020-04-11 18:54:57', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('34', NULL, 'leave_status', '未提交', '0', 0, NULL, 'entfrm', '2020-04-12 14:31:12', NULL, NULL, '2020-04-12 14:31:11', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('35', NULL, 'leave_status', '未审批', '1', 1, NULL, 'entfrm', '2020-04-12 14:31:29', NULL, NULL, '2020-04-12 14:31:28', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('36', NULL, 'leave_status', '批准', '2', 2, NULL, 'entfrm', '2020-04-12 14:31:38', NULL, NULL, '2020-04-12 14:31:38', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('37', NULL, 'leave_status', '驳回', '9', 3, NULL, 'entfrm', '2020-04-12 14:31:51', NULL, '小狗', '2020-04-12 14:31:51', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('38', NULL, 'application_type', 'PC', '1', 1, NULL, 'entfrm', '2020-04-23 18:54:36', NULL, NULL, '2020-04-23 18:54:36', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('39', NULL, 'application_type', 'APP', '2', 2, NULL, 'entfrm', '2020-04-23 18:54:44', NULL, NULL, '2020-04-23 18:54:44', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('4', '2', 'menu_status', '显示', '0', 1, NULL, NULL, '2019-08-13 18:33:37', NULL, NULL, '2019-08-19 15:42:28', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('40', NULL, 'application_type', '小程序', '3', 3, NULL, 'entfrm', '2020-04-23 18:54:58', NULL, NULL, '2020-04-23 18:54:57', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('41', NULL, 'msg_type', '短信', '0', 0, NULL, 'entfrm', '2020-05-10 16:02:40', NULL, NULL, '2020-05-10 16:02:40', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('42', NULL, 'msg_type', '邮件', '1', 1, NULL, 'entfrm', '2020-05-10 16:02:50', NULL, NULL, '2020-05-10 16:02:50', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('43', NULL, 'application_status', '未发布', '0', 0, NULL, 'entfrm', '2020-05-15 22:57:27', NULL, NULL, '2020-05-15 22:57:27', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('44', NULL, 'application_status', '已发布', '1', 1, NULL, 'entfrm', '2020-05-15 22:57:36', NULL, NULL, '2020-05-15 22:57:35', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('45', NULL, 'msg_type', 'PC', '2', 2, NULL, 'entfrm', '2020-05-25 15:44:18', NULL, NULL, '2020-05-25 15:44:17', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('46', NULL, 'msg_type', 'APP', '3', 3, NULL, 'entfrm', '2020-05-25 15:44:44', NULL, NULL, '2020-05-25 15:44:43', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('47', NULL, 'msg_type', '微信', '4', 4, NULL, 'entfrm', '2020-05-25 15:44:56', NULL, NULL, '2020-05-25 15:44:56', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('48', NULL, 'content_type', '通知', '0', 0, NULL, 'entfrm', '2020-05-25 15:46:28', NULL, NULL, '2020-05-25 15:46:28', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('49', NULL, 'content_type', '公告', '1', 1, NULL, 'entfrm', '2020-05-25 15:46:38', NULL, NULL, '2020-05-25 15:46:38', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('5', '3', 'yes_no', '是', '0', 1, NULL, NULL, '2019-08-13 18:33:37', NULL, 'admin', '2020-03-17 12:05:05', '', '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('50', NULL, 'content_type', '其他', '2', 2, NULL, 'entfrm', '2020-05-25 15:46:46', NULL, NULL, '2020-05-25 15:46:45', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('51', NULL, 'data_type', 'json', 'json', 1, NULL, 'entfrm', '2020-06-13 08:51:24', NULL, NULL, '2020-06-13 08:51:24', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('52', NULL, 'form_type', '普通表单', '0', 0, NULL, 'entfrm', '2021-03-26 23:31:12', NULL, NULL, '2021-03-26 23:31:12', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('53', NULL, 'form_type', '工作流表单', '1', 1, NULL, 'entfrm', '2021-03-26 23:31:20', NULL, NULL, '2021-03-26 23:31:19', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('54', NULL, 'leave_status', '作废', '8', 4, NULL, '小狗', '2021-04-15 01:03:15', NULL, NULL, '2021-04-15 01:03:14', '作废流程', '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('55', NULL, 'application_type', '已挂起', '0', 0, NULL, 'entfrm', '2021-05-12 01:37:45', NULL, NULL, '2021-05-12 01:37:45', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('56', NULL, 'process_status', '已挂起', '0', 0, NULL, 'entfrm', '2021-05-12 01:38:51', NULL, NULL, '2021-05-12 01:38:50', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('57', NULL, 'process_status', '等待审核', '1', 1, NULL, 'entfrm', '2021-05-12 01:38:59', NULL, 'entfrm', '2021-05-12 01:38:59', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('58', NULL, 'process_status', '审核通过', '2', 2, NULL, 'entfrm', '2021-05-12 01:39:08', NULL, 'entfrm', '2021-05-12 01:39:07', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('59', NULL, 'process_status', '流程撤回', '3', 3, NULL, 'entfrm', '2021-05-12 01:39:14', NULL, 'entfrm', '2021-05-12 01:39:14', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('6', '3', 'yes_no', '否', '1', 2, NULL, NULL, '2019-08-13 18:33:37', NULL, 'admin', '2020-03-17 12:05:06', '', '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('60', NULL, 'process_status', '审核驳回', '4', 4, NULL, 'entfrm', '2021-05-12 01:39:22', NULL, 'entfrm', '2021-05-12 01:39:21', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('61', NULL, 'process_status', '审核终止', '5', 5, NULL, 'entfrm', '2021-05-12 01:39:32', NULL, 'entfrm', '2021-05-12 01:39:31', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('62', NULL, 'process_status', '流程作废', '6', 6, NULL, 'entfrm', '2021-05-12 01:39:52', NULL, 'entfrm', '2021-05-12 01:39:51', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('7', '4', 'status', '停用', '1', 2, NULL, NULL, '2019-08-13 18:34:03', NULL, 'admin', '2019-08-19 15:43:00', '', '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('8', '4', 'status', '正常', '0', 1, NULL, NULL, '2019-08-13 18:33:37', NULL, NULL, '2019-08-19 15:42:59', NULL, '0'); |
||||
INSERT INTO `sys_dict_data` VALUES ('9', NULL, 'success_fail', '成功', '0', 10, NULL, 'admin', '2019-08-24 11:48:18', NULL, 'entfrm', '2019-08-24 11:48:17', '', '0'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_file |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_file`; |
||||
CREATE TABLE `sys_file` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`file_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`bucket_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`original` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`file_size` bigint(20) NULL DEFAULT NULL COMMENT '文件大小', |
||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '0-正常,1-删除', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', |
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`update_time` datetime NULL DEFAULT NULL COMMENT '修改时间', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文件管理表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_file |
||||
-- ---------------------------- |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_menu |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_menu`; |
||||
CREATE TABLE `sys_menu` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号', |
||||
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '菜单名称', |
||||
`parent_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父菜单ID', |
||||
`parent_ids` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父菜单IDS', |
||||
`type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单类型 ', |
||||
`path` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端URL', |
||||
`component` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '#' COMMENT 'VUE页面', |
||||
`perms` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单权限标识', |
||||
`icon` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标', |
||||
`no_cache` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '路由缓存', |
||||
`sort` int(11) NULL DEFAULT 1 COMMENT '排序值', |
||||
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人', |
||||
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', |
||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '删除标识(0-正常,1-删除)', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_menu |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_menu` VALUES ('1', '系统管理', '0', NULL, 'M', 'system', '#', '', 'system', '0', 10, '0', NULL, 'admin', '2019-03-16 11:33:00', NULL, 'admin', '2020-03-16 20:45:21', '系统管理模块', '0'); |
||||
INSERT INTO `sys_menu` VALUES ('10', '机构删除', '4', NULL, 'F', NULL, '#', 'dept_del', NULL, '0', 3, '0', NULL, NULL, '2020-03-12 20:42:57', NULL, NULL, '2020-03-16 20:43:02', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('105', '快捷方式新增', '43', NULL, 'F', NULL, '#', 'shortcut_add', NULL, '0', 1, '0', NULL, 'entfrm', '2020-03-27 09:44:13', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('106', '快捷方式修改', '43', NULL, 'F', NULL, '#', 'shortcut_edit', NULL, '0', 2, '0', NULL, 'entfrm', '2020-03-27 09:44:36', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('107', '快捷方式删除', '43', NULL, 'F', NULL, '#', 'shortcut_del', NULL, '0', 3, '0', NULL, 'entfrm', '2020-03-27 09:44:57', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('108', '快捷方式查看', '43', NULL, 'F', NULL, '#', 'shortcut_view', NULL, '0', 4, '0', NULL, 'entfrm', '2020-03-27 09:45:16', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('11', '机构查看', '4', NULL, 'F', NULL, '#', 'dept_view', NULL, '0', 4, '0', NULL, NULL, '2020-03-12 20:43:03', NULL, NULL, '2020-03-16 20:43:06', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('13', '角色新增', '5', NULL, 'F', NULL, '#', 'role_add', NULL, '0', 1, '0', NULL, 'entfrm', '2020-03-16 11:50:24', NULL, NULL, '2020-03-16 20:41:51', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('139', '应用管理', '1', NULL, 'C', 'application', 'system/application/index', NULL, 'tool', '1', 0, '0', NULL, 'entfrm', '2020-04-23 18:35:21', '1', 'admin', '2022-03-21 20:29:25', NULL, '1'); |
||||
INSERT INTO `sys_menu` VALUES ('14', '角色修改', '5', NULL, 'F', NULL, '#', 'role_edit', NULL, '0', 2, '0', NULL, 'entfrm', '2020-03-16 11:51:05', NULL, NULL, '2020-03-16 20:41:44', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('140', '应用新增', '139', NULL, 'F', NULL, '#', 'application_add', '#', '1', 1, '0', NULL, 'entfrm', '2020-02-02 00:00:00', '1', 'admin', '2022-03-21 20:29:22', NULL, '1'); |
||||
INSERT INTO `sys_menu` VALUES ('141', '应用修改', '139', NULL, 'F', NULL, '#', 'application_edit', '#', '1', 2, '0', NULL, 'entfrm', '2020-02-02 00:00:00', '1', 'admin', '2022-03-21 20:29:20', NULL, '1'); |
||||
INSERT INTO `sys_menu` VALUES ('142', '应用删除', '139', NULL, 'F', NULL, '#', 'application_del', '#', '1', 3, '0', NULL, 'entfrm', '2020-02-02 00:00:00', '1', 'admin', '2022-03-21 20:29:18', NULL, '1'); |
||||
INSERT INTO `sys_menu` VALUES ('143', '应用查询', '139', NULL, 'F', NULL, '#', 'application_view', '#', '1', 4, '0', NULL, 'entfrm', '2020-02-02 00:00:00', '1', 'admin', '2022-03-21 20:29:16', NULL, '1'); |
||||
INSERT INTO `sys_menu` VALUES ('145', 'redis监控', '2', NULL, 'C', 'redis', 'monitor/redis/index', NULL, 'component', '1', 5, '1', NULL, 'entfrm', '2020-04-24 22:26:31', NULL, 'entfrm', '2020-05-17 16:49:59', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('15', '角色删除', '5', NULL, 'F', NULL, '#', 'role_del', NULL, '0', 3, '0', NULL, 'entfrm', '2020-03-16 11:51:21', NULL, NULL, '2020-03-16 20:41:41', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('16', '角色查看', '5', NULL, 'F', NULL, '#', 'role_view', NULL, '0', 4, '0', NULL, 'entfrm', '2020-03-16 11:51:40', NULL, NULL, '2020-03-16 20:41:37', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('17', '数据权限', '5', NULL, 'F', NULL, '#', 'role_data', NULL, '0', 5, '0', NULL, 'entfrm', '2020-03-16 12:15:50', NULL, NULL, '2020-03-16 20:41:34', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('18', '用户添加', '6', NULL, 'F', NULL, '#', 'user_add', NULL, '0', 1, '0', NULL, 'entfrm', '2020-03-16 20:31:15', NULL, NULL, '2020-03-16 20:41:31', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('19', '用户修改', '6', NULL, 'F', NULL, '#', 'user_edit', NULL, '0', 2, '0', NULL, 'entfrm', '2020-03-16 20:32:19', NULL, 'entfrm', '2020-03-16 20:41:28', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('2', '运维监控', '0', NULL, 'M', 'monitor', '#', '', 'monitor', '0', 20, '0', NULL, 'admin', '2019-03-16 11:33:00', NULL, 'admin', '2020-03-17 19:14:27', '运维监控模块', '0'); |
||||
INSERT INTO `sys_menu` VALUES ('20', '用户删除', '6', NULL, 'F', NULL, '#', 'user_del', NULL, '0', 3, '0', NULL, 'entfrm', '2020-03-16 20:32:41', NULL, NULL, '2020-03-16 20:41:25', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('21', '用户查看', '6', NULL, 'F', NULL, '#', 'user_view', NULL, '0', 4, '0', NULL, 'entfrm', '2020-03-16 20:33:11', NULL, NULL, '2020-03-16 20:41:20', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('22', '重置密码', '6', NULL, 'F', NULL, '#', 'user_reset', NULL, '0', 5, '0', NULL, 'entfrm', '2020-03-16 20:34:22', NULL, 'entfrm', '2020-03-16 20:41:17', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('236', '令牌管理', '2', NULL, 'C', 'token', 'monitor/token/index', NULL, 'documentation', '1', 10, '0', NULL, 'admin', '2022-02-25 15:28:56', NULL, 'admin', '2022-02-25 15:29:32', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('25', '菜单新增', '7', NULL, 'F', NULL, '#', 'menu_add', NULL, '0', 1, '0', NULL, 'entfrm', '2020-03-16 20:38:18', NULL, NULL, '2020-03-16 20:41:10', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('26', '菜单修改', '7', NULL, 'F', NULL, '#', 'menu_edit', NULL, '0', 2, '0', NULL, 'entfrm', '2020-03-16 20:38:41', NULL, 'entfrm', '2020-03-16 20:41:07', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('27', '菜单删除', '7', NULL, 'F', NULL, '#', 'menu_del', NULL, '0', 3, '0', NULL, 'entfrm', '2020-03-16 20:39:04', NULL, NULL, '2020-03-16 20:41:04', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('28', '菜单查看', '7', NULL, 'F', NULL, '#', 'menu_view', NULL, '0', 4, '0', NULL, 'entfrm', '2020-03-16 20:39:39', NULL, NULL, '2020-03-16 20:41:01', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('29', '字典管理', '1', '6', 'C', 'dict', 'system/dict/index', '', 'dict', '0', 5, '0', NULL, 'entfrm', '2020-03-16 11:33:00', NULL, '', '2020-03-16 11:33:00', '字典管理菜单', '0'); |
||||
INSERT INTO `sys_menu` VALUES ('30', '字典新增', '29', NULL, 'F', NULL, '#', 'dict_add', NULL, '0', 1, '0', NULL, 'entfrm', '2020-03-16 20:50:45', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('31', '字典修改', '29', NULL, 'F', NULL, '#', 'dict_edit', NULL, '0', 2, '0', NULL, 'entfrm', '2020-03-16 20:51:01', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('32', '字典删除', '29', NULL, 'F', NULL, '#', 'dict_del', NULL, '0', 3, '0', NULL, 'entfrm', '2020-03-16 20:52:18', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('33', '字典查看', '29', NULL, 'F', NULL, '#', 'dict_view', NULL, '0', 4, '0', NULL, 'entfrm', '2020-03-16 20:52:38', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('34', '数据增加', '29', NULL, 'F', NULL, '#', 'dictData_add', NULL, '0', 5, '0', NULL, 'entfrm', '2020-03-16 21:49:18', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('35', '数据修改', '29', NULL, 'F', NULL, '#', 'dictData_edit', NULL, '0', 6, '0', NULL, 'entfrm', '2020-03-16 21:49:36', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('36', '数据删除', '29', NULL, 'F', NULL, '#', 'dictData_del', NULL, '0', 7, '0', NULL, 'entfrm', '2020-03-16 21:50:00', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('37', '数据查看', '29', NULL, 'F', NULL, '#', 'dictData_view', NULL, '0', 8, '0', NULL, 'entfrm', '2020-03-16 21:50:19', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('38', '参数管理', '1', NULL, 'C', 'config', 'system/config/index', NULL, 'list', '0', 6, '0', NULL, 'entfrm', '2020-03-16 22:06:52', NULL, NULL, '2020-03-16 22:11:13', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('39', '参数新增', '38', NULL, 'F', NULL, '#', 'config_add', NULL, '0', 1, '0', NULL, 'entfrm', '2020-03-16 22:07:16', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('4', '机构管理', '1', NULL, 'C', 'dept', 'system/dept/index', '', 'tree', '0', 1, '0', NULL, NULL, '2020-03-13 19:31:20', NULL, NULL, '2020-03-14 20:55:41', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('40', '参数修改', '38', NULL, 'F', NULL, '#', 'config_edit', NULL, '0', 2, '0', NULL, 'entfrm', '2020-03-16 22:07:30', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('41', '参数删除', '38', NULL, 'F', NULL, '#', 'config_del', NULL, '0', 3, '0', NULL, 'entfrm', '2020-03-16 22:07:43', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('42', '参数查看', '38', NULL, 'F', NULL, '#', 'config_view', NULL, '0', 4, '0', NULL, 'entfrm', '2020-03-16 22:08:06', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('43', '快捷方式', '1', NULL, 'C', 'shortcut', 'system/shortcut/index', NULL, 'link', '0', 7, '0', NULL, 'entfrm', '2020-03-17 17:53:08', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('49', '数据监控', '2', NULL, 'C', 'druid', 'monitor/druid/index', NULL, 'druid', '0', 3, '1', NULL, 'entfrm', '2020-03-17 18:08:56', NULL, 'admin', '2022-01-23 10:44:10', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('5', '角色管理', '1', NULL, 'C', 'role', 'system/role/index', '', 'peoples', '0', 2, '0', NULL, NULL, '2020-03-13 19:32:09', NULL, NULL, '2020-03-16 22:11:57', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('52', '日志监控', '2', NULL, 'M', 'log', '#', NULL, 'monitor', '0', 7, '0', NULL, 'entfrm', '2020-03-17 18:12:01', NULL, 'admin', '2020-05-17 16:48:23', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('54', '操作日志', '52', NULL, 'C', 'operLog', 'monitor/operLog/index', NULL, 'log', '0', 2, '0', NULL, 'entfrm', '2020-03-17 18:13:52', NULL, 'entfrm', '2020-03-18 22:31:36', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('6', '用户管理', '1', NULL, 'C', 'user', 'system/user/index', '', 'user', '0', 3, '0', NULL, NULL, '2020-03-13 19:32:30', NULL, NULL, '2020-03-16 22:11:59', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('66', '操作日志删除', '54', NULL, 'F', NULL, '#', 'operLog_del', NULL, '0', 1, '0', NULL, 'entfrm', '2020-03-19 11:52:25', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('67', '操作日志查看', '54', NULL, 'F', NULL, '#', 'operLog_view', NULL, '0', 2, '0', NULL, 'entfrm', '2020-03-19 11:52:45', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('68', '操作日志导出', '54', NULL, 'F', NULL, '#', 'operLog_export', NULL, '0', 3, '0', NULL, 'entfrm', '2020-03-19 11:53:09', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('7', '菜单管理', '1', NULL, 'C', 'menu', 'system/menu/index', '', 'tree-table', '0', 4, '0', NULL, NULL, '2020-03-13 19:33:24', NULL, NULL, '2020-03-16 22:12:01', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('8', '机构新增', '4', NULL, 'F', NULL, '#', 'dept_add', NULL, '0', 1, '0', NULL, NULL, '2020-03-12 20:42:47', NULL, NULL, '2020-03-16 20:42:51', NULL, '0'); |
||||
INSERT INTO `sys_menu` VALUES ('9', '机构修改', '4', NULL, 'F', NULL, '#', 'dept_edit', NULL, '0', 2, '0', NULL, NULL, '2020-03-12 20:42:52', NULL, NULL, '2020-03-16 20:42:56', NULL, '0'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_oauth_client_details |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_oauth_client_details`; |
||||
CREATE TABLE `sys_oauth_client_details` ( |
||||
`client_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端ID', |
||||
`resource_ids` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源列表', |
||||
`client_secret` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户端密钥', |
||||
`scope` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '域', |
||||
`authorized_grant_types` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '认证类型', |
||||
`web_server_redirect_uri` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '重定向地址', |
||||
`authorities` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色列表', |
||||
`access_token_validity` int(11) NULL DEFAULT NULL COMMENT 'token 有效期', |
||||
`refresh_token_validity` int(11) NULL DEFAULT NULL COMMENT '刷新令牌有效期', |
||||
`additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '令牌扩展字段JSON', |
||||
`autoapprove` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否自动放行', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', |
||||
PRIMARY KEY (`client_id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '终端信息表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_oauth_client_details |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_oauth_client_details` VALUES ('app', NULL, 'app', 'server', 'app,refresh_token', NULL, NULL, NULL, NULL, NULL, 'true', NULL, NULL, NULL, NULL, NULL, NULL); |
||||
INSERT INTO `sys_oauth_client_details` VALUES ('daemon', NULL, 'daemon', 'server', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, 'true', NULL, NULL, NULL, NULL, NULL, NULL); |
||||
INSERT INTO `sys_oauth_client_details` VALUES ('kicc', NULL, 'kicc', 'server', 'password,app,refresh_token,authorization_code,client_credentials', 'https://www.baidu.com/', NULL, NULL, NULL, '{\"appName\":\"康来生物\",\"website\":\"https://www.kanglailab.com\"}', 'false', NULL, NULL, NULL, NULL, NULL, NULL); |
||||
INSERT INTO `sys_oauth_client_details` VALUES ('test', NULL, 'test', 'server', 'password,app,refresh_token', NULL, NULL, NULL, NULL, NULL, 'true', NULL, NULL, NULL, NULL, NULL, NULL); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_oper_log |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_oper_log`; |
||||
CREATE TABLE `sys_oper_log` ( |
||||
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '日志编号', |
||||
`type` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '日志类型', |
||||
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '日志标题', |
||||
`method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '方法名称', |
||||
`service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID', |
||||
`user_agent` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '用户代理', |
||||
`oper_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作人员', |
||||
`client_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '终端', |
||||
`oper_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求URL', |
||||
`oper_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机地址', |
||||
`oper_addr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作地点', |
||||
`oper_param` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求参数', |
||||
`status` int(1) NULL DEFAULT 0 COMMENT '操作状态(0正常 1异常)', |
||||
`error_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '错误消息', |
||||
`execute_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行时间', |
||||
`oper_time` datetime NULL DEFAULT NULL COMMENT '操作时间', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', |
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', |
||||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_oper_log |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_oper_log` VALUES ('1505896326514978817', '0', '登录成功', 'POST', 'kicc', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36', 'admin', 'kicc', '/oauth/token', '127.0.0.1', '127.0.0.1', 'password=%5B123456%5D&code=%5Ba8bg%5D&grant_type=%5Bpassword%5D&scope=%5Bserver%5D&realKey=%5Bfb45a6b19c6fd3e7a0d75bb59c4bfb98%5D&username=%5Badmin%5D', 0, NULL, '2毫秒', '2022-03-21 21:17:15', '1', 'admin', '2022-03-21 21:17:17', '1', 'admin', NULL); |
||||
INSERT INTO `sys_oper_log` VALUES ('1505897993692098561', '0', '字典删除', 'DELETE', 'kicc', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36', 'admin', 'kicc', '/system/dict/remove/11,12,13,15,16,17,18', '127.0.0.1', '127.0.0.1', '', 0, NULL, '25毫秒', '2022-03-21 21:23:54', '1', 'admin', '2022-03-21 21:23:55', '1', 'admin', NULL); |
||||
INSERT INTO `sys_oper_log` VALUES ('1505898063552425985', '0', '字典删除', 'DELETE', 'kicc', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36', 'admin', 'kicc', '/system/dict/remove/20,21', '127.0.0.1', '127.0.0.1', '', 0, NULL, '3毫秒', '2022-03-21 21:24:11', '1', 'admin', '2022-03-21 21:24:11', '1', 'admin', NULL); |
||||
INSERT INTO `sys_oper_log` VALUES ('1505898080786821121', '0', '字典删除', 'DELETE', 'kicc', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36', 'admin', 'kicc', '/system/dict/remove/7', '127.0.0.1', '127.0.0.1', '', 0, NULL, '3毫秒', '2022-03-21 21:24:15', '1', 'admin', '2022-03-21 21:24:15', '1', 'admin', NULL); |
||||
INSERT INTO `sys_oper_log` VALUES ('1505902151899918338', '0', '角色新增', 'POST', 'kicc', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36', 'admin', 'kicc', '/system/role/save', '127.0.0.1', '127.0.0.1', '', 0, NULL, '12毫秒', '2022-03-21 21:40:25', '1', 'admin', '2022-03-21 21:40:26', '1', 'admin', NULL); |
||||
INSERT INTO `sys_oper_log` VALUES ('1505902332351459330', '0', '退出成功', 'DELETE', 'kicc', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36', 'admin', 'kicc', '/token/logout', '127.0.0.1', '127.0.0.1', 'Bearer 84424c14-708b-4159-a9ff-886aca9a934b', 0, NULL, '0毫秒', '2022-03-21 21:41:08', '1', 'admin', '2022-03-21 21:41:09', '1', 'admin', NULL); |
||||
INSERT INTO `sys_oper_log` VALUES ('1505902357383065602', '0', '登录成功', 'POST', 'kicc', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36', 'admin', 'kicc', '/oauth/token', '127.0.0.1', '127.0.0.1', 'password=%5B123456%5D&code=%5Buaw3%5D&grant_type=%5Bpassword%5D&scope=%5Bserver%5D&realKey=%5Be515f6bf162cb6cc28d48e2c6d831639%5D&username=%5Badmin%5D', 0, NULL, '0毫秒', '2022-03-21 21:41:14', '1', 'admin', '2022-03-21 21:41:15', '1', 'admin', NULL); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_role |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_role`; |
||||
CREATE TABLE `sys_role` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '角色名称', |
||||
`code` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '角色代码', |
||||
`data_scope` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '2' COMMENT '数据权限范围', |
||||
`sort` int(11) NULL DEFAULT NULL COMMENT '排序', |
||||
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', |
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人', |
||||
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', |
||||
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注', |
||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '删除标识(0-正常,1-删除)', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_role |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_role` VALUES ('1', '管理员', 'admin', '1', 1, '0', NULL, NULL, '2020-03-13 20:54:34', '1', 'entfrm', '2020-08-02 21:44:58', NULL, '0'); |
||||
INSERT INTO `sys_role` VALUES ('1505902151883141121', '省长角色', 'scjs', '2', 0, '0', '1', 'admin', '2022-03-21 21:40:26', NULL, NULL, NULL, NULL, '0'); |
||||
INSERT INTO `sys_role` VALUES ('2', '测试角色', 'test', '2', 1, '0', NULL, NULL, '2020-03-14 18:15:51', NULL, 'entfrm', '2020-08-02 21:44:57', NULL, '0'); |
||||
INSERT INTO `sys_role` VALUES ('3', 'cs', 'cs', '2', 0, '0', NULL, NULL, '2022-03-10 16:53:08', NULL, 'admin', '2022-03-10 16:53:12', NULL, '1'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_role_dept |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_role_dept`; |
||||
CREATE TABLE `sys_role_dept` ( |
||||
`role_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色ID', |
||||
`dept_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '部门ID' |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_role_dept |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_role_dept` VALUES ('2', '2'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_role_menu |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_role_menu`; |
||||
CREATE TABLE `sys_role_menu` ( |
||||
`role_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`menu_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_role_menu |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '11'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '16'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '7'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '25'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '26'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '27'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '28'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '33'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '1'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '4'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '5'); |
||||
INSERT INTO `sys_role_menu` VALUES ('2', '29'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '4'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '8'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '9'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '10'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '11'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '5'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '13'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '14'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '15'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '16'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '17'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '6'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '18'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '19'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '20'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '21'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '22'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '7'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '25'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '26'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '27'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '28'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '29'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '30'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '31'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '32'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '33'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '34'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '35'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '36'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '37'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '38'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '39'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '40'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '41'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '42'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '43'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '105'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '106'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '107'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '108'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '2'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '52'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '54'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '66'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '67'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '68'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '236'); |
||||
INSERT INTO `sys_role_menu` VALUES ('1', '1'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_shortcut |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_shortcut`; |
||||
CREATE TABLE `sys_shortcut` ( |
||||
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, |
||||
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称', |
||||
`region` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区域', |
||||
`icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标', |
||||
`bg_color` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '#409EFF' COMMENT '背景颜色', |
||||
`path` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '路径', |
||||
`sort` int(11) NULL DEFAULT NULL COMMENT '顺序', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者', |
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', |
||||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', |
||||
`remarks` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', |
||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '0-正常,1-删除', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_shortcut |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_shortcut` VALUES ('1', '登录日志', '2', 'form', '#2883CD', 'monitor/log/loginLog', 1, NULL, NULL, '2020-03-27 10:09:11', NULL, '', '2020-03-27 10:12:39', '1', '0'); |
||||
INSERT INTO `sys_shortcut` VALUES ('2', '内容管理', '2', 'edit', '#EB7024', '/cms/article', 2, NULL, NULL, '2020-04-15 22:44:58', NULL, '', '2020-06-02 08:59:06', NULL, '0'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_user |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_user`; |
||||
CREATE TABLE `sys_user` ( |
||||
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`user_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户账号', |
||||
`nick_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户昵称', |
||||
`type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '00' COMMENT '用户类型(00系统用户)', |
||||
`password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '密码', |
||||
`dept_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '机构ID', |
||||
`dept_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '机构名称', |
||||
`email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户邮箱', |
||||
`qq` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'QQ', |
||||
`phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '手机号码', |
||||
`sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)', |
||||
`avatar` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '头像地址', |
||||
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', |
||||
`login_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '最后登陆IP', |
||||
`login_time` datetime NULL DEFAULT NULL COMMENT '最后登陆时间', |
||||
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建id', |
||||
`create_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', |
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新id', |
||||
`update_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', |
||||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', |
||||
`remarks` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', |
||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_user |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_user` VALUES ('1', 'admin', '管理员', '00', '$2a$10$jvVGvS6QOtD.x3UwuZRSgepL.zKul6NRg2kVnRVDUdeN2FErIQgNy', '1', '康来生物长沙总公司', '111@qq.com', NULL, '15611111111', '0', '', '0', '', NULL, NULL, NULL, '2020-03-13 20:56:44', NULL, '', '2022-02-25 15:20:56', '全栈工程师', '0'); |
||||
INSERT INTO `sys_user` VALUES ('2', 'test', '测试01', '00', '$2a$10$jvVGvS6QOtD.x3UwuZRSgepL.zKul6NRg2kVnRVDUdeN2FErIQgNy', '1', '康来生物长沙总公司', '182@11.com', NULL, '15780454444', '0', '', '0', '', NULL, NULL, NULL, '2020-03-14 18:14:11', NULL, '', '2022-01-15 13:53:59', NULL, '0'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for sys_user_role |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `sys_user_role`; |
||||
CREATE TABLE `sys_user_role` ( |
||||
`user_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, |
||||
`role_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of sys_user_role |
||||
-- ---------------------------- |
||||
INSERT INTO `sys_user_role` VALUES ('4', '2'); |
||||
INSERT INTO `sys_user_role` VALUES ('3', '2'); |
||||
INSERT INTO `sys_user_role` VALUES ('5', '2'); |
||||
INSERT INTO `sys_user_role` VALUES ('8', '2'); |
||||
INSERT INTO `sys_user_role` VALUES ('9', '2'); |
||||
INSERT INTO `sys_user_role` VALUES ('3', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('4', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('5', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('6', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('7', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('8', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('9', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('10', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('2', '1'); |
||||
INSERT INTO `sys_user_role` VALUES ('1', '1'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for undo_log |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `undo_log`; |
||||
CREATE TABLE `undo_log` ( |
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
||||
`branch_id` bigint(20) NOT NULL, |
||||
`xid` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, |
||||
`context` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, |
||||
`rollback_info` longblob NOT NULL, |
||||
`log_status` int(11) NOT NULL, |
||||
`log_created` datetime NOT NULL, |
||||
`log_modified` datetime NOT NULL, |
||||
`ext` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
UNIQUE INDEX `ux_undo_log`(`xid`, `branch_id`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of undo_log |
||||
-- ---------------------------- |
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1; |
File diff suppressed because one or more lines are too long
@ -0,0 +1,209 @@
@@ -0,0 +1,209 @@
|
||||
/* |
||||
Navicat Premium Data Transfer |
||||
|
||||
Source Server : 本地 |
||||
Source Server Type : MySQL |
||||
Source Server Version : 50732 |
||||
Source Host : localhost:3306 |
||||
Source Schema : kicc_job |
||||
|
||||
Target Server Type : MySQL |
||||
Target Server Version : 50732 |
||||
File Encoding : 65001 |
||||
|
||||
Date: 21/03/2022 21:50:01 |
||||
*/ |
||||
|
||||
SET NAMES utf8mb4; |
||||
SET FOREIGN_KEY_CHECKS = 0; |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for xxl_job_group |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `xxl_job_group`; |
||||
CREATE TABLE `xxl_job_group` ( |
||||
`id` int(11) NOT NULL AUTO_INCREMENT, |
||||
`app_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '执行器AppName', |
||||
`title` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '执行器名称', |
||||
`address_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '执行器地址类型:0=自动注册、1=手动录入', |
||||
`address_list` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '执行器地址列表,多地址逗号分隔', |
||||
`update_time` datetime NULL DEFAULT NULL, |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of xxl_job_group |
||||
-- ---------------------------- |
||||
INSERT INTO `xxl_job_group` VALUES (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL, '2022-03-13 16:10:40'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for xxl_job_info |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `xxl_job_info`; |
||||
CREATE TABLE `xxl_job_info` ( |
||||
`id` int(11) NOT NULL AUTO_INCREMENT, |
||||
`job_group` int(11) NOT NULL COMMENT '执行器主键ID', |
||||
`job_desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`add_time` datetime NULL DEFAULT NULL, |
||||
`update_time` datetime NULL DEFAULT NULL, |
||||
`author` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '作者', |
||||
`alarm_email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '报警邮件', |
||||
`schedule_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'NONE' COMMENT '调度类型', |
||||
`schedule_conf` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '调度配置,值含义取决于调度类型', |
||||
`misfire_strategy` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'DO_NOTHING' COMMENT '调度过期策略', |
||||
`executor_route_strategy` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行器路由策略', |
||||
`executor_handler` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行器任务handler', |
||||
`executor_param` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行器任务参数', |
||||
`executor_block_strategy` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '阻塞处理策略', |
||||
`executor_timeout` int(11) NOT NULL DEFAULT 0 COMMENT '任务执行超时时间,单位秒', |
||||
`executor_fail_retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '失败重试次数', |
||||
`glue_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'GLUE类型', |
||||
`glue_source` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'GLUE源代码', |
||||
`glue_remark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'GLUE备注', |
||||
`glue_updatetime` datetime NULL DEFAULT NULL COMMENT 'GLUE更新时间', |
||||
`child_jobid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子任务ID,多个逗号分隔', |
||||
`trigger_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '调度状态:0-停止,1-运行', |
||||
`trigger_last_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '上次调度时间', |
||||
`trigger_next_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '下次调度时间', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of xxl_job_info |
||||
-- ---------------------------- |
||||
INSERT INTO `xxl_job_info` VALUES (1, 1, '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', '', 0, 0, 0); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for xxl_job_lock |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `xxl_job_lock`; |
||||
CREATE TABLE `xxl_job_lock` ( |
||||
`lock_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '锁名称', |
||||
PRIMARY KEY (`lock_name`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of xxl_job_lock |
||||
-- ---------------------------- |
||||
INSERT INTO `xxl_job_lock` VALUES ('schedule_lock'); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for xxl_job_log |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `xxl_job_log`; |
||||
CREATE TABLE `xxl_job_log` ( |
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT, |
||||
`job_group` int(11) NOT NULL COMMENT '执行器主键ID', |
||||
`job_id` int(11) NOT NULL COMMENT '任务,主键ID', |
||||
`executor_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行器地址,本次执行的地址', |
||||
`executor_handler` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行器任务handler', |
||||
`executor_param` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行器任务参数', |
||||
`executor_sharding_param` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行器任务分片参数,格式如 1/2', |
||||
`executor_fail_retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '失败重试次数', |
||||
`trigger_time` datetime NULL DEFAULT NULL COMMENT '调度-时间', |
||||
`trigger_code` int(11) NOT NULL COMMENT '调度-结果', |
||||
`trigger_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '调度-日志', |
||||
`handle_time` datetime NULL DEFAULT NULL COMMENT '执行-时间', |
||||
`handle_code` int(11) NOT NULL COMMENT '执行-状态', |
||||
`handle_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '执行-日志', |
||||
`alarm_status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '告警状态:0-默认、1-无需告警、2-告警成功、3-告警失败', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `I_trigger_time`(`trigger_time`) USING BTREE, |
||||
INDEX `I_handle_code`(`handle_code`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of xxl_job_log |
||||
-- ---------------------------- |
||||
INSERT INTO `xxl_job_log` VALUES (1, 1, 1, NULL, 'demoJobHandler', '', NULL, 0, '2022-02-17 22:43:28', 500, '任务触发类型:手动触发<br>调度机器:192.168.3.126<br>执行器-注册方式:自动注册<br>执行器-地址列表:null<br>路由策略:第一个<br>阻塞处理策略:单机串行<br>任务超时时间:0<br>失败重试次数:0<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>触发调度<<<<<<<<<<< </span><br>调度失败:执行器地址为空<br><br>', NULL, 0, NULL, 1); |
||||
INSERT INTO `xxl_job_log` VALUES (2, 1, 1, NULL, 'demoJobHandler', '', NULL, 0, '2022-03-01 22:40:54', 500, '任务触发类型:手动触发<br>调度机器:172.28.0.6<br>执行器-注册方式:自动注册<br>执行器-地址列表:null<br>路由策略:第一个<br>阻塞处理策略:单机串行<br>任务超时时间:0<br>失败重试次数:0<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>触发调度<<<<<<<<<<< </span><br>调度失败:执行器地址为空<br><br>', NULL, 0, NULL, 1); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for xxl_job_log_report |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `xxl_job_log_report`; |
||||
CREATE TABLE `xxl_job_log_report` ( |
||||
`id` int(11) NOT NULL AUTO_INCREMENT, |
||||
`trigger_day` datetime NULL DEFAULT NULL COMMENT '调度-时间', |
||||
`running_count` int(11) NOT NULL DEFAULT 0 COMMENT '运行中-日志数量', |
||||
`suc_count` int(11) NOT NULL DEFAULT 0 COMMENT '执行成功-日志数量', |
||||
`fail_count` int(11) NOT NULL DEFAULT 0 COMMENT '执行失败-日志数量', |
||||
`update_time` datetime NULL DEFAULT NULL, |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
UNIQUE INDEX `i_trigger_day`(`trigger_day`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of xxl_job_log_report |
||||
-- ---------------------------- |
||||
INSERT INTO `xxl_job_log_report` VALUES (1, '2022-02-17 00:00:00', 0, 0, 1, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (2, '2022-02-16 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (3, '2022-02-15 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (4, '2022-02-18 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (5, '2022-03-01 00:00:00', 0, 0, 1, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (6, '2022-02-28 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (7, '2022-02-27 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (8, '2022-03-02 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (9, '2022-03-03 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (10, '2022-03-12 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (11, '2022-03-11 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (12, '2022-03-10 00:00:00', 0, 0, 0, NULL); |
||||
INSERT INTO `xxl_job_log_report` VALUES (13, '2022-03-13 00:00:00', 0, 0, 0, NULL); |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for xxl_job_logglue |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `xxl_job_logglue`; |
||||
CREATE TABLE `xxl_job_logglue` ( |
||||
`id` int(11) NOT NULL AUTO_INCREMENT, |
||||
`job_id` int(11) NOT NULL COMMENT '任务,主键ID', |
||||
`glue_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'GLUE类型', |
||||
`glue_source` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'GLUE源代码', |
||||
`glue_remark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'GLUE备注', |
||||
`add_time` datetime NULL DEFAULT NULL, |
||||
`update_time` datetime NULL DEFAULT NULL, |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of xxl_job_logglue |
||||
-- ---------------------------- |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for xxl_job_registry |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `xxl_job_registry`; |
||||
CREATE TABLE `xxl_job_registry` ( |
||||
`id` int(11) NOT NULL AUTO_INCREMENT, |
||||
`registry_group` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`registry_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`registry_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, |
||||
`update_time` datetime NULL DEFAULT NULL, |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
INDEX `i_g_k_v`(`registry_group`, `registry_key`, `registry_value`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of xxl_job_registry |
||||
-- ---------------------------- |
||||
|
||||
-- ---------------------------- |
||||
-- Table structure for xxl_job_user |
||||
-- ---------------------------- |
||||
DROP TABLE IF EXISTS `xxl_job_user`; |
||||
CREATE TABLE `xxl_job_user` ( |
||||
`id` int(11) NOT NULL AUTO_INCREMENT, |
||||
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号', |
||||
`password` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码', |
||||
`role` tinyint(4) NOT NULL COMMENT '角色:0-普通用户、1-管理员', |
||||
`permission` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限:执行器ID列表,多个逗号分割', |
||||
PRIMARY KEY (`id`) USING BTREE, |
||||
UNIQUE INDEX `i_username`(`username`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
-- ---------------------------- |
||||
-- Records of xxl_job_user |
||||
-- ---------------------------- |
||||
INSERT INTO `xxl_job_user` VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL); |
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1; |
@ -0,0 +1,101 @@
@@ -0,0 +1,101 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command |
||||
version: '3' |
||||
services: |
||||
# register配置 |
||||
kicc-register: |
||||
build: |
||||
context: ../kicc-register |
||||
restart: always |
||||
container_name: kicc-register |
||||
hostname: kicc-register |
||||
image: kicc-register |
||||
ports: |
||||
- 8848:8848 |
||||
# 服务端口,注意通过阅读官方文档,发现nacos2.x使用docker部署时一定要保持映射端口一致 |
||||
# 不一样会出现本地服务访问不了服务端nacos: https://nacos.io/zh-cn/docs/2.0.0-compatibility.html |
||||
# 经过测试使用docker部署时候,还需要开启对应供应商服务器的防火墙端口,不开第三方外部客户端连不上,会报错 |
||||
- 9848:9848 |
||||
- 9849:9849 |
||||
|
||||
# rocketmq-dashboard配置 |
||||
kicc-rocketmq: |
||||
build: |
||||
context: ../kicc-visual/kicc-rocketmq-dashboard |
||||
container_name: kicc-rocketmq |
||||
image: kicc-rocketmq-dashboard |
||||
hostname: kicc-rocketmq |
||||
restart: always |
||||
ports: |
||||
- 8058:8058 |
||||
|
||||
# sentinel-dashboard配置 |
||||
kicc-sentinel: |
||||
build: |
||||
context: ../kicc-visual/kicc-sentinel-dashboard |
||||
container_name: kicc-sentinel |
||||
image: kicc-sentinel-dashboard |
||||
hostname: kicc-sentinel |
||||
restart: always |
||||
ports: |
||||
- 8056:8056 |
||||
|
||||
# xxl-job-admin配置 |
||||
kicc-job: |
||||
build: |
||||
context: ../kicc-visual/kicc-xxl-job-admin |
||||
container_name: kicc-job |
||||
image: kicc-xxl-job-admin |
||||
hostname: kicc-job |
||||
restart: always |
||||
ports: |
||||
- 8057:8057 |
||||
|
||||
# spring-admin配置 |
||||
kicc-monitor: |
||||
build: |
||||
context: ../kicc-visual/kicc-monitor |
||||
container_name: kicc-monitor |
||||
restart: always |
||||
image: kicc-monitor |
||||
hostname: kicc-monitor |
||||
ports: |
||||
- 8061:8061 |
||||
|
||||
# gateway配置 |
||||
kicc-gateway: |
||||
build: |
||||
context: ../kicc-gateway |
||||
container_name: kicc-gateway |
||||
environment: |
||||
GATEWAY_HOST: 120.26.168.56 |
||||
image: kicc-gateway |
||||
hostname: kicc-gateway |
||||
restart: always |
||||
ports: |
||||
- 9999:9999 |
||||
|
||||
# oauth2.0配置 |
||||
kicc-auth: |
||||
build: |
||||
context: ../kicc-auth |
||||
container_name: kicc-auth |
||||
image: kicc-auth |
||||
hostname: kicc-auth |
||||
restart: always |
||||
ports: |
||||
- 3000:3000 |
||||
|
||||
# system-biz配置 |
||||
kicc-system: |
||||
build: |
||||
context: ../kicc-system/kicc-system-biz |
||||
container_name: kicc-system |
||||
image: kicc-system-biz |
||||
hostname: kicc-system |
||||
restart: always |
||||
ports: |
||||
- 4000:4000 |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# 更多信息请参考官网:https://docs.gitea.io/en-us/install-with-docker/ |
||||
version: "3" |
||||
services: |
||||
|
||||
# git私有库,公司代码管理服务器 |
||||
gitea-server: |
||||
image: gitea/gitea:1.16.3 |
||||
container_name: gitea-server |
||||
environment: |
||||
- GITEA__database__DB_TYPE=mysql |
||||
- GITEA__database__HOST=120.26.168.56:8052 |
||||
- GITEA__database__NAME=gitea |
||||
- GITEA__database__USER=root |
||||
- GITEA__database__PASSWD=kanglai@2022 |
||||
hostname: gitea-server |
||||
restart: always |
||||
volumes: |
||||
- gitea:/data |
||||
- /usr/software/dockerDatabase/gitea/timezone:/etc/timezone:ro |
||||
- /usr/software/dockerDatabase/gitea/localtime:/etc/localtime:ro |
||||
ports: |
||||
- 8066:3000 |
||||
- 8065:22 |
||||
|
||||
# 配置卷 |
||||
volumes: |
||||
gitea: |
||||
driver: local |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# 更多信息请参考官网:https://docs.gitea.io/en-us/install-with-docker/ |
||||
version: "3" |
||||
services: |
||||
|
||||
#团队项目生命周期管理工具 |
||||
jira: |
||||
build: |
||||
context: ./image |
||||
container_name: jira |
||||
image: jira |
||||
hostname: jira |
||||
restart: always |
||||
ports: |
||||
- 9300:8080 |
||||
volumes: |
||||
- /usr/software/dockerDatabase/jira/data:/var/atlassian/jira |
||||
- /usr/software/dockerDatabase/jira/logs:/opt/atlassian/jira/logs |
||||
- /usr/share/zoneinfo/Asia/Shanghai:/usr/share/zoneinfo/Asia/Shanghai |
||||
- /etc/localtime:/etc/localtime |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
FROM cptactionhank/atlassian-jira-software:latest |
||||
|
||||
USER root |
||||
|
||||
# 将代理破解包加入容器 |
||||
COPY "./lib/atlassian-agent.jar" /opt/atlassian/jira/ |
||||
|
||||
# 设置启动加载代理包 |
||||
RUN echo 'export CATALINA_OPTS="-javaagent:/opt/atlassian/jira/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/jira/bin/setenv.sh |
||||
|
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
|
||||
```bash |
||||
# atlassian-agent.jar证书生成命令 |
||||
java -jar atlassian-agent.jar -p jira -m 1827945911@qq.com -n wangxiang -o wangxiang -s 更换自己的服务器ID |
||||
``` |
Binary file not shown.
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command |
||||
version: '3' |
||||
services: |
||||
# mysql 服务器 |
||||
mysql: |
||||
image: mysql:5.7.32 |
||||
container_name: mysql |
||||
hostname: mysql |
||||
environment: |
||||
TZ: Asia/Shanghai |
||||
MYSQL_ROOT_PASSWORD: kanglai@2022 |
||||
command: |
||||
--character-set-server=utf8mb4 |
||||
--collation-server=utf8mb4_general_ci |
||||
--explicit_defaults_for_timestamp=true |
||||
--lower_case_table_names=1 |
||||
--max_allowed_packet=128M |
||||
volumes: |
||||
- mysql:/var/lib/mysql |
||||
- /usr/software/dockerDatabase/mysql/my.cnf:/etc/my.cnf |
||||
restart: always |
||||
ports: |
||||
- 8052:3306 |
||||
|
||||
# 配置卷 |
||||
volumes: |
||||
mysql: |
||||
driver: local |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command |
||||
version: '3' |
||||
services: |
||||
|
||||
# docker管理面板,已经中文汉化 |
||||
portainer: |
||||
image: 6053537/portainer-ce |
||||
container_name: portainer |
||||
hostname: portainer |
||||
volumes: |
||||
- portainer_data:/data |
||||
- /usr/software/dockerDatabase/portainer/docker.sock:/var/run/docker.sock |
||||
restart: always |
||||
ports: |
||||
- 8051:9000 |
||||
|
||||
# 配置卷 |
||||
volumes: |
||||
portainer_data: |
||||
driver: local |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command |
||||
version: '3' |
||||
services: |
||||
|
||||
# redis服务器 |
||||
redis: |
||||
image: redis:6.2.6 |
||||
container_name: redis |
||||
hostname: redis |
||||
restart: always |
||||
ports: |
||||
- 6379:6379 |
||||
volumes: |
||||
- redis:/data |
||||
- /usr/software/dockerDatabase/redis/redis.conf:/usr/local/etc/redis/redis.conf |
||||
|
||||
# 配置卷 |
||||
volumes: |
||||
redis: |
||||
driver: local |
@ -0,0 +1,96 @@
@@ -0,0 +1,96 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more |
||||
# contributor license agreements. See the NOTICE file distributed with |
||||
# this work for additional information regarding copyright ownership. |
||||
# The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
# (the "License"); you may not use this file except in compliance with |
||||
# the License. You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
|
||||
# 所属集群名字 |
||||
brokerClusterName=DefaultCluster |
||||
|
||||
# broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a, |
||||
# 在 broker-b.properties 使用: broker-b |
||||
brokerName=broker-a |
||||
|
||||
# 0 表示 Master,> 0 表示 Slave |
||||
brokerId=0 |
||||
|
||||
# nameServer地址,分号分割 |
||||
# namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876 |
||||
|
||||
# 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:10909> failed |
||||
# 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP |
||||
brokerIP1=120.26.168.56 |
||||
|
||||
# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 |
||||
defaultTopicQueueNums=4 |
||||
|
||||
# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false |
||||
autoCreateTopicEnable=true |
||||
|
||||
# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 |
||||
autoCreateSubscriptionGroup=true |
||||
|
||||
# Broker 对外服务的监听端口 |
||||
listenPort=10911 |
||||
|
||||
# 删除文件时间点,默认凌晨4点 |
||||
deleteWhen=04 |
||||
|
||||
# 文件保留时间,默认48小时 |
||||
fileReservedTime=120 |
||||
|
||||
# commitLog 每个文件的大小默认1G |
||||
mapedFileSizeCommitLog=1073741824 |
||||
|
||||
# ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整 |
||||
mapedFileSizeConsumeQueue=300000 |
||||
|
||||
# destroyMapedFileIntervalForcibly=120000 |
||||
# redeleteHangedFileInterval=120000 |
||||
# 检测物理文件磁盘空间 |
||||
diskMaxUsedSpaceRatio=88 |
||||
# 存储路径 |
||||
# storePathRootDir=/home/ztztdata/rocketmq-all-4.1.0-incubating/store |
||||
# commitLog 存储路径 |
||||
# storePathCommitLog=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/commitlog |
||||
# 消费队列存储 |
||||
# storePathConsumeQueue=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/consumequeue |
||||
# 消息索引存储路径 |
||||
# storePathIndex=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/index |
||||
# checkpoint 文件存储路径 |
||||
# storeCheckpoint=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/checkpoint |
||||
# abort 文件存储路径 |
||||
# abortFile=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/abort |
||||
# 限制的消息大小 |
||||
maxMessageSize=65536 |
||||
|
||||
# flushCommitLogLeastPages=4 |
||||
# flushConsumeQueueLeastPages=2 |
||||
# flushCommitLogThoroughInterval=10000 |
||||
# flushConsumeQueueThoroughInterval=60000 |
||||
|
||||
# Broker 的角色 |
||||
# - ASYNC_MASTER 异步复制Master |
||||
# - SYNC_MASTER 同步双写Master |
||||
# - SLAVE |
||||
brokerRole=ASYNC_MASTER |
||||
|
||||
# 刷盘方式 |
||||
# - ASYNC_FLUSH 异步刷盘 |
||||
# - SYNC_FLUSH 同步刷盘 |
||||
flushDiskType=ASYNC_FLUSH |
||||
|
||||
# 发消息线程池数量 |
||||
# sendMessageThreadPoolNums=128 |
||||
# 拉消息线程池数量 |
||||
# pullMessageThreadPoolNums=128 |
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command |
||||
version: '3' |
||||
services: |
||||
# rocketmq代理发现注册服务 |
||||
rmqnamesrv: |
||||
image: foxiswho/rocketmq:server |
||||
container_name: rmqnamesrv |
||||
restart: always |
||||
ports: |
||||
- 9876:9876 |
||||
volumes: |
||||
- /usr/software/dockerDatabase/rocketmq/namesrv/logs:/opt/logs |
||||
- /usr/software/dockerDatabase/rocketmq/namesrv/store:/opt/store |
||||
networks: |
||||
rmq: |
||||
aliases: |
||||
- rmqnamesrv |
||||
|
||||
# rocketmq核心消息发送存储代理 |
||||
rmqbroker: |
||||
image: foxiswho/rocketmq:broker |
||||
container_name: rmqbroker |
||||
restart: always |
||||
ports: |
||||
- 10909:10909 |
||||
- 10911:10911 |
||||
volumes: |
||||
- /usr/software/dockerDatabase/rocketmq/namesrv/logs:/opt/logs |
||||
- /usr/software/dockerDatabase/rocketmq/namesrv/store:/opt/store |
||||
- /usr/software/dockerDatabase/rocketmq/broker/brokerconf/broker.conf:/etc/rocketmq/broker.conf |
||||
environment: |
||||
NAMESRV_ADDR: "rmqnamesrv:9876" |
||||
JAVA_OPTS: "-Duser.home=/opt" |
||||
JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m" |
||||
command: mqbroker -c /etc/rocketmq/broker.conf |
||||
depends_on: |
||||
- rmqnamesrv |
||||
networks: |
||||
rmq: |
||||
aliases: |
||||
- rmqbroker |
||||
|
||||
# 局域网网关配置 |
||||
networks: |
||||
rmq: |
||||
driver: bridge |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
|
||||
##nacos-config.sh |
||||
| 命令 | 描述 | 默认 | |
||||
|------|-----------|-------------| |
||||
|-h | nacos主机地址 | 127.0.0.1 | |
||||
|-p | nacos主机端口 | 8848 | |
||||
|-g | nacos分组名称 | public | |
||||
|-t | nacos命名空间 | DEFAULT_GROUP | |
||||
|-u | nacos账户 | 无 | |
||||
|-w | nacos密码 | 无 | |
||||
|
||||
```bash |
||||
# nacos导入命令,把config.txt与nacos-config.sh传到服务器注意需要保持同级目录,然后运行下方命令 |
||||
./nacos-config.sh -h 101.42.231.100 -g SEATA_GROUP -t kicc-seata |
||||
``` |
@ -0,0 +1,134 @@
@@ -0,0 +1,134 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
# 有关配置项的详细信息,请参考:https://seata.io/zh-cn/docs/user/configurations.html |
||||
|
||||
# 客户端与服务端传输方式 |
||||
transport.type=TCP |
||||
transport.server=NIO |
||||
transport.heartbeat=true |
||||
transport.enableTmClientBatchSendRequest=false |
||||
transport.enableRmClientBatchSendRequest=true |
||||
transport.enableTcServerBatchSendResponse=false |
||||
transport.rpcRmRequestTimeout=30000 |
||||
transport.rpcTmRequestTimeout=30000 |
||||
transport.rpcTcRequestTimeout=30000 |
||||
transport.threadFactory.bossThreadPrefix=NettyBoss |
||||
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker |
||||
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler |
||||
transport.threadFactory.shareBossWorker=false |
||||
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector |
||||
transport.threadFactory.clientSelectorThreadSize=1 |
||||
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread |
||||
transport.threadFactory.bossThreadSize=1 |
||||
transport.threadFactory.workerThreadSize=default |
||||
transport.shutdown.wait=3 |
||||
transport.serialization=seata |
||||
transport.compressor=none |
||||
|
||||
# 事务路由规则配置,仅针对客户端 |
||||
# seata事务组编号,用于TC集群名,很重要,与项目配置文件的tx-service-group对应 |
||||
service.vgroupMapping.default_tx_group=default |
||||
# 默认的群组集群list,仅注册中心为file时使用,使用nacos注册中心不需要写了:https://github.com/seata/seata/issues/3473 |
||||
service.default.grouplist=127.0.0.1:8091 |
||||
service.enableDegrade=false |
||||
service.disableGlobalTransaction=false |
||||
|
||||
# 事务规则配置,仅针对客户端 |
||||
client.rm.asyncCommitBufferLimit=10000 |
||||
client.rm.lock.retryInterval=10 |
||||
client.rm.lock.retryTimes=30 |
||||
client.rm.lock.retryPolicyBranchRollbackOnConflict=true |
||||
client.rm.reportRetryCount=5 |
||||
client.rm.tableMetaCheckEnable=false |
||||
client.rm.tableMetaCheckerInterval=60000 |
||||
client.rm.sqlParserType=druid |
||||
client.rm.reportSuccessEnable=false |
||||
client.rm.sagaBranchRegisterEnable=false |
||||
client.rm.sagaJsonParser=fastjson |
||||
client.rm.tccActionInterceptorOrder=-2147482648 |
||||
client.tm.commitRetryCount=5 |
||||
client.tm.rollbackRetryCount=5 |
||||
client.tm.defaultGlobalTransactionTimeout=60000 |
||||
client.tm.degradeCheck=false |
||||
client.tm.degradeCheckAllowTimes=10 |
||||
client.tm.degradeCheckPeriod=2000 |
||||
client.tm.interceptorOrder=-2147482648 |
||||
client.undo.dataValidation=true |
||||
client.undo.logSerialization=jackson |
||||
client.undo.onlyCareUpdateColumns=true |
||||
server.undo.logSaveDays=7 |
||||
server.undo.logDeletePeriod=86400000 |
||||
client.undo.logTable=undo_log |
||||
client.undo.compress.enable=true |
||||
client.undo.compress.type=zip |
||||
client.undo.compress.threshold=64k |
||||
# 针对于TCC交易模式 |
||||
tcc.fence.logTableName=tcc_fence_log |
||||
tcc.fence.cleanPeriod=1h |
||||
|
||||
# 日志规则配置,用于客户端和服务器 |
||||
log.exceptionRate=100 |
||||
|
||||
# 事务存储配置,file,db,redis为可选配置,推荐db模式 |
||||
store.mode=db |
||||
store.lock.mode=file |
||||
store.session.mode=file |
||||
# 用于密码加密 |
||||
# store.publicKey= |
||||
|
||||
# 如果store.mode,store.lock.mode,store.session.mode不等于file可以移除配置块 |
||||
store.file.dir=file_store/data |
||||
store.file.maxBranchSessionSize=16384 |
||||
store.file.maxGlobalSessionSize=512 |
||||
store.file.fileWriteBufferCacheSize=16384 |
||||
store.file.flushDiskMode=async |
||||
store.file.sessionReloadReadSize=100 |
||||
|
||||
# 如果store.mode为db则需要这些配置,如果store.mode,store.lock.mode,store.session.mode不等于db可以移除配置块 |
||||
store.db.datasource=druid |
||||
# 如果为DB模式需要配置数据库,数据库默认数据库为mysql |
||||
store.db.dbType=mysql |
||||
store.db.driverClassName=com.mysql.jdbc.Driver |
||||
store.db.url=jdbc:mysql://120.26.168.56:8052/kicc_seata?useUnicode=true&rewriteBatchedStatements=true |
||||
store.db.user=root |
||||
store.db.password=kanglai@2022 |
||||
store.db.minConn=5 |
||||
store.db.maxConn=30 |
||||
store.db.globalTable=global_table |
||||
store.db.branchTable=branch_table |
||||
store.db.distributedLockTable=distributed_lock |
||||
store.db.queryLimit=100 |
||||
store.db.lockTable=lock_table |
||||
store.db.maxWait=5000 |
||||
|
||||
# 如果store.mode为redis则需要这些配置,如果store.mode,store.lock.mode,store.session.mode不等于redis可以移除配置块 |
||||
store.redis.mode=single |
||||
store.redis.single.host=127.0.0.1 |
||||
store.redis.single.port=6379 |
||||
# store.redis.sentinel.masterName= |
||||
# store.redis.sentinel.sentinelHosts= |
||||
store.redis.maxConn=10 |
||||
store.redis.minConn=1 |
||||
store.redis.maxTotal=100 |
||||
store.redis.database=0 |
||||
# store.redis.password= |
||||
store.redis.queryLimit=100 |
||||
|
||||
# 交易规则配置,只针对服务端 |
||||
server.recovery.committingRetryPeriod=1000 |
||||
server.recovery.asynCommittingRetryPeriod=1000 |
||||
server.recovery.rollbackingRetryPeriod=1000 |
||||
server.recovery.timeoutRetryPeriod=1000 |
||||
server.maxCommitRetryTimeout=-1 |
||||
server.maxRollbackRetryTimeout=-1 |
||||
server.rollbackRetryTimeoutUnlockEnable=false |
||||
server.distributedLockExpireTime=10000 |
||||
server.session.branchAsyncQueueSize=5000 |
||||
server.session.enableBranchAsyncRemove=true |
||||
|
||||
# 关闭metrics统计信息功能,提高性能:https://developer.aliyun.com/article/710333 |
||||
metrics.enabled=false |
||||
metrics.registryType=compact |
||||
metrics.exporterList=prometheus |
||||
metrics.exporterPrometheusPort=9898 |
@ -0,0 +1,120 @@
@@ -0,0 +1,120 @@
|
||||
#!/bin/sh |
||||
# Copyright 1999-2019 Seata.io Group. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at、 |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
while getopts ":h:p:g:t:u:w:" opt |
||||
do |
||||
case $opt in |
||||
h) |
||||
host=$OPTARG |
||||
;; |
||||
p) |
||||
port=$OPTARG |
||||
;; |
||||
g) |
||||
group=$OPTARG |
||||
;; |
||||
t) |
||||
tenant=$OPTARG |
||||
;; |
||||
u) |
||||
username=$OPTARG |
||||
;; |
||||
w) |
||||
password=$OPTARG |
||||
;; |
||||
?) |
||||
echo " USAGE OPTION: $0 [-h host] [-p port] [-g group] [-t tenant] [-u username] [-w password] " |
||||
exit 1 |
||||
;; |
||||
esac |
||||
done |
||||
|
||||
if [ -z ${host} ]; then |
||||
host=localhost |
||||
fi |
||||
if [ -z ${port} ]; then |
||||
port=8848 |
||||
fi |
||||
if [ -z ${group} ]; then |
||||
group="SEATA_GROUP" |
||||
fi |
||||
if [ -z ${tenant} ]; then |
||||
tenant="" |
||||
fi |
||||
if [ -z ${username} ]; then |
||||
username="" |
||||
fi |
||||
if [ -z ${password} ]; then |
||||
password="" |
||||
fi |
||||
|
||||
nacosAddr=$host:$port |
||||
contentType="content-type:application/json;charset=UTF-8" |
||||
|
||||
echo "set nacosAddr=$nacosAddr" |
||||
echo "set group=$group" |
||||
|
||||
urlencode() { |
||||
length="${#1}" |
||||
i=0 |
||||
while [ $length -gt $i ]; do |
||||
char="${1:$i:1}" |
||||
case $char in |
||||
[a-zA-Z0-9.~_-]) printf $char ;; |
||||
*) printf '%%%02X' "'$char" ;; |
||||
esac |
||||
i=`expr $i + 1` |
||||
done |
||||
} |
||||
|
||||
failCount=0 |
||||
tempLog=$(mktemp -u) |
||||
function addConfig() { |
||||
dataId=`urlencode $1` |
||||
content=`urlencode $2` |
||||
curl -X POST -H "${contentType}" "http://$nacosAddr/nacos/v1/cs/configs?dataId=$dataId&group=$group&content=$content&tenant=$tenant&username=$username&password=$password" >"${tempLog}" 2>/dev/null |
||||
if [ -z $(cat "${tempLog}") ]; then |
||||
echo " Please check the cluster status. " |
||||
exit 1 |
||||
fi |
||||
if [ "$(cat "${tempLog}")" == "true" ]; then |
||||
echo "Set $1=$2 successfully " |
||||
else |
||||
echo "Set $1=$2 failure " |
||||
failCount=`expr $failCount + 1` |
||||
fi |
||||
} |
||||
|
||||
count=0 |
||||
COMMENT_START="#" |
||||
for line in $(cat $(dirname "$PWD")/config.txt | sed s/[[:space:]]//g); do |
||||
if [[ "$line" =~ ^"${COMMENT_START}".* ]]; then |
||||
continue |
||||
fi |
||||
count=`expr $count + 1` |
||||
key=${line%%=*} |
||||
value=${line#*=} |
||||
addConfig "${key}" "${value}" |
||||
done |
||||
|
||||
echo "=========================================================================" |
||||
echo " Complete initialization parameters, total-count:$count , failure-count:$failCount " |
||||
echo "=========================================================================" |
||||
|
||||
if [ ${failCount} -eq 0 ]; then |
||||
echo " Init nacos config finished, please start seata-server. " |
||||
else |
||||
echo " init nacos config fail. " |
||||
fi |
@ -0,0 +1,134 @@
@@ -0,0 +1,134 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
# 有关配置项的详细信息,请参考:https://seata.io/zh-cn/docs/user/configurations.html |
||||
|
||||
# 客户端与服务端传输方式 |
||||
transport.type=TCP |
||||
transport.server=NIO |
||||
transport.heartbeat=true |
||||
transport.enableTmClientBatchSendRequest=false |
||||
transport.enableRmClientBatchSendRequest=true |
||||
transport.enableTcServerBatchSendResponse=false |
||||
transport.rpcRmRequestTimeout=30000 |
||||
transport.rpcTmRequestTimeout=30000 |
||||
transport.rpcTcRequestTimeout=30000 |
||||
transport.threadFactory.bossThreadPrefix=NettyBoss |
||||
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker |
||||
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler |
||||
transport.threadFactory.shareBossWorker=false |
||||
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector |
||||
transport.threadFactory.clientSelectorThreadSize=1 |
||||
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread |
||||
transport.threadFactory.bossThreadSize=1 |
||||
transport.threadFactory.workerThreadSize=default |
||||
transport.shutdown.wait=3 |
||||
transport.serialization=seata |
||||
transport.compressor=none |
||||
|
||||
# 事务路由规则配置,仅针对客户端 |
||||
# seata事务组编号,用于TC集群名,很重要,与项目配置文件的tx-service-group对应 |
||||
service.vgroupMapping.default_tx_group=default |
||||
# 默认的群组集群list,仅注册中心为file时使用,使用nacos注册中心不需要写了:https://github.com/seata/seata/issues/3473 |
||||
service.default.grouplist=127.0.0.1:8091 |
||||
service.enableDegrade=false |
||||
service.disableGlobalTransaction=false |
||||
|
||||
# 事务规则配置,仅针对客户端 |
||||
client.rm.asyncCommitBufferLimit=10000 |
||||
client.rm.lock.retryInterval=10 |
||||
client.rm.lock.retryTimes=30 |
||||
client.rm.lock.retryPolicyBranchRollbackOnConflict=true |
||||
client.rm.reportRetryCount=5 |
||||
client.rm.tableMetaCheckEnable=false |
||||
client.rm.tableMetaCheckerInterval=60000 |
||||
client.rm.sqlParserType=druid |
||||
client.rm.reportSuccessEnable=false |
||||
client.rm.sagaBranchRegisterEnable=false |
||||
client.rm.sagaJsonParser=fastjson |
||||
client.rm.tccActionInterceptorOrder=-2147482648 |
||||
client.tm.commitRetryCount=5 |
||||
client.tm.rollbackRetryCount=5 |
||||
client.tm.defaultGlobalTransactionTimeout=60000 |
||||
client.tm.degradeCheck=false |
||||
client.tm.degradeCheckAllowTimes=10 |
||||
client.tm.degradeCheckPeriod=2000 |
||||
client.tm.interceptorOrder=-2147482648 |
||||
client.undo.dataValidation=true |
||||
client.undo.logSerialization=jackson |
||||
client.undo.onlyCareUpdateColumns=true |
||||
server.undo.logSaveDays=7 |
||||
server.undo.logDeletePeriod=86400000 |
||||
client.undo.logTable=undo_log |
||||
client.undo.compress.enable=true |
||||
client.undo.compress.type=zip |
||||
client.undo.compress.threshold=64k |
||||
# 针对于TCC交易模式 |
||||
tcc.fence.logTableName=tcc_fence_log |
||||
tcc.fence.cleanPeriod=1h |
||||
|
||||
# 日志规则配置,用于客户端和服务器 |
||||
log.exceptionRate=100 |
||||
|
||||
# 事务存储配置,file,db,redis为可选配置,推荐db模式 |
||||
store.mode=db |
||||
store.lock.mode=file |
||||
store.session.mode=file |
||||
# 用于密码加密 |
||||
# store.publicKey= |
||||
|
||||
# 如果store.mode,store.lock.mode,store.session.mode不等于file可以移除配置块 |
||||
store.file.dir=file_store/data |
||||
store.file.maxBranchSessionSize=16384 |
||||
store.file.maxGlobalSessionSize=512 |
||||
store.file.fileWriteBufferCacheSize=16384 |
||||
store.file.flushDiskMode=async |
||||
store.file.sessionReloadReadSize=100 |
||||
|
||||
# 如果store.mode为db则需要这些配置,如果store.mode,store.lock.mode,store.session.mode不等于db可以移除配置块 |
||||
store.db.datasource=druid |
||||
# 如果为DB模式需要配置数据库,数据库默认数据库为mysql |
||||
store.db.dbType=mysql |
||||
store.db.driverClassName=com.mysql.jdbc.Driver |
||||
store.db.url=jdbc:mysql://120.26.168.56:8052/kicc_seata?useUnicode=true&rewriteBatchedStatements=true |
||||
store.db.user=root |
||||
store.db.password=kanglai@2022 |
||||
store.db.minConn=5 |
||||
store.db.maxConn=30 |
||||
store.db.globalTable=global_table |
||||
store.db.branchTable=branch_table |
||||
store.db.distributedLockTable=distributed_lock |
||||
store.db.queryLimit=100 |
||||
store.db.lockTable=lock_table |
||||
store.db.maxWait=5000 |
||||
|
||||
# 如果store.mode为redis则需要这些配置,如果store.mode,store.lock.mode,store.session.mode不等于redis可以移除配置块 |
||||
store.redis.mode=single |
||||
store.redis.single.host=127.0.0.1 |
||||
store.redis.single.port=6379 |
||||
# store.redis.sentinel.masterName= |
||||
# store.redis.sentinel.sentinelHosts= |
||||
store.redis.maxConn=10 |
||||
store.redis.minConn=1 |
||||
store.redis.maxTotal=100 |
||||
store.redis.database=0 |
||||
# store.redis.password= |
||||
store.redis.queryLimit=100 |
||||
|
||||
# 交易规则配置,只针对服务端 |
||||
server.recovery.committingRetryPeriod=1000 |
||||
server.recovery.asynCommittingRetryPeriod=1000 |
||||
server.recovery.rollbackingRetryPeriod=1000 |
||||
server.recovery.timeoutRetryPeriod=1000 |
||||
server.maxCommitRetryTimeout=-1 |
||||
server.maxRollbackRetryTimeout=-1 |
||||
server.rollbackRetryTimeoutUnlockEnable=false |
||||
server.distributedLockExpireTime=10000 |
||||
server.session.branchAsyncQueueSize=5000 |
||||
server.session.enableBranchAsyncRemove=true |
||||
|
||||
# 关闭metrics统计信息功能,提高性能:https://developer.aliyun.com/article/710333 |
||||
metrics.enabled=false |
||||
metrics.registryType=compact |
||||
metrics.exporterList=prometheus |
||||
metrics.exporterPrometheusPort=9898 |
@ -0,0 +1,103 @@
@@ -0,0 +1,103 @@
|
||||
registry { |
||||
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa |
||||
type = "nacos" |
||||
loadBalance = "RandomLoadBalance" |
||||
loadBalanceVirtualNodes = 10 |
||||
|
||||
nacos { |
||||
application = "seata-server" |
||||
serverAddr = "101.42.231.100:8848" |
||||
group = "SEATA_GROUP" |
||||
namespace = "kicc-seata" |
||||
cluster = "default" |
||||
# nacos内网使用没配安全权限,可以不写 |
||||
username = "" |
||||
password = "" |
||||
} |
||||
eureka { |
||||
serviceUrl = "http://localhost:8761/eureka" |
||||
application = "default" |
||||
weight = "1" |
||||
} |
||||
redis { |
||||
serverAddr = "localhost:6379" |
||||
db = 0 |
||||
password = "" |
||||
cluster = "default" |
||||
timeout = 0 |
||||
} |
||||
zk { |
||||
cluster = "default" |
||||
serverAddr = "127.0.0.1:2181" |
||||
sessionTimeout = 6000 |
||||
connectTimeout = 2000 |
||||
username = "" |
||||
password = "" |
||||
} |
||||
consul { |
||||
cluster = "default" |
||||
serverAddr = "127.0.0.1:8500" |
||||
aclToken = "" |
||||
} |
||||
etcd3 { |
||||
cluster = "default" |
||||
serverAddr = "http://localhost:2379" |
||||
} |
||||
sofa { |
||||
serverAddr = "127.0.0.1:9603" |
||||
application = "default" |
||||
region = "DEFAULT_ZONE" |
||||
datacenter = "DefaultDataCenter" |
||||
cluster = "default" |
||||
group = "SEATA_GROUP" |
||||
addressWaitTime = "3000" |
||||
} |
||||
file { |
||||
name = "file.conf" |
||||
} |
||||
} |
||||
|
||||
config { |
||||
# file、nacos 、apollo、zk、consul、etcd3 |
||||
type = "nacos" |
||||
|
||||
nacos { |
||||
serverAddr = "101.42.231.100:8848" |
||||
namespace = "kicc-seata" |
||||
group = "SEATA_GROUP" |
||||
# nacos内网使用没配安全权限,可以不写 |
||||
username = "" |
||||
password = "" |
||||
# 目前nacos文件是拆成多个的,也可以整合成一个,将所有配置配置到这个nacos中的properties |
||||
# 但是通过查看客户端源码发现内部不支持dataId这种方式,所以这个配置只对服务端起作用 |
||||
# 所以不能达到统一的一个效果,没什么用,可以注释调,采用nacos多个文件的形式 |
||||
# dataId = "seataServer.properties" |
||||
} |
||||
consul { |
||||
serverAddr = "127.0.0.1:8500" |
||||
aclToken = "" |
||||
} |
||||
apollo { |
||||
appId = "seata-server" |
||||
## apolloConfigService will cover apolloMeta |
||||
apolloMeta = "http://192.168.1.204:8801" |
||||
apolloConfigService = "http://192.168.1.204:8080" |
||||
namespace = "application" |
||||
apolloAccesskeySecret = "" |
||||
cluster = "seata" |
||||
} |
||||
zk { |
||||
serverAddr = "127.0.0.1:2181" |
||||
sessionTimeout = 6000 |
||||
connectTimeout = 2000 |
||||
username = "" |
||||
password = "" |
||||
nodePath = "/seata/seata.properties" |
||||
} |
||||
etcd3 { |
||||
serverAddr = "http://localhost:2379" |
||||
} |
||||
file { |
||||
name = "file.conf" |
||||
} |
||||
} |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# https://support.websoft9.com/docs/docker/zh/solution-compose.html#command |
||||
version: "3" |
||||
services: |
||||
|
||||
# seata分布式事务服务器 |
||||
seata-server: |
||||
image: seataio/seata-server:1.4.2 |
||||
container_name: seata-server |
||||
hostname: seata-server |
||||
restart: always |
||||
networks: |
||||
- seata-server |
||||
ports: |
||||
- 8091:8091 |
||||
environment: |
||||
# https://seata.io/zh-cn/docs/ops/deploy-by-docker.html |
||||
# 注册到nacos上的ip。客户端将通过该ip访问seata服务。 |
||||
# 注意公网ip和内网ip的差异。 |
||||
- SEATA_IP=101.42.231.100 |
||||
# 指定seata服务启动端口 |
||||
- SEATA_PORT=8091 |
||||
# 存储模式 |
||||
- STORE_MODE=db |
||||
volumes: |
||||
- /usr/software/dockerDatabase/seata/config/registry.conf:/seata-server/resources/registry.conf |
||||
- /usr/software/dockerDatabase/seata/logs:/root/logs/seata |
||||
|
||||
# 局域网网关配置 |
||||
networks: |
||||
seata-server: |
||||
driver: bridge |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
|
||||
```bash |
||||
# upsource容器中使用的用户和组不是13001:13001,而是其他,也许是码头工人的用户,需要手动授权,或者写个Dockerfile在里面授权 |
||||
chmod -R 777 /usr/software/dockerDatabase/upsource/data |
||||
chmod -R 777 /usr/software/dockerDatabase/upsource/conf |
||||
chmod -R 777 /usr/software/dockerDatabase/upsource/logs |
||||
chmod -R 777 /usr/software/dockerDatabase/upsource/backups |
||||
``` |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
# PROJECT: 康来生物有限公司kicc(智慧冷链)分布式架构平台 |
||||
# VERSION: 1.0.0 |
||||
# Author: 康来生物科技有限公司-王翔 |
||||
|
||||
# 更多信息请参考官网:https://docs.gitea.io/en-us/install-with-docker/ |
||||
version: '3' |
||||
services: |
||||
#idea代码审查工具 |
||||
#docker安装帮助: https://www.jetbrains.com/help/upsource/docker-installation.html#configure |
||||
upsource-server: |
||||
image: jetbrains/upsource:2020.1.1992 |
||||
container_name: upsource |
||||
hostname: upsource |
||||
restart: always |
||||
volumes: |
||||
- /usr/software/dockerDatabase/upsource/data:/opt/upsource/data |
||||
- /usr/software/dockerDatabase/upsource/conf:/opt/upsource/conf |
||||
- /usr/software/dockerDatabase/upsource/logs:/opt/upsource/logs |
||||
- /usr/software/dockerDatabase/upsource/backups:/opt/upsource/backups |
||||
ports: |
||||
- 9301:8080 |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
FROM moxm/java:1.8-full |
||||
|
||||
RUN mkdir -p /kicc-auth |
||||
|
||||
WORKDIR /kicc-auth |
||||
|
||||
ARG JAR_FILE=target/kicc-auth.jar |
||||
|
||||
COPY ${JAR_FILE} app.jar |
||||
|
||||
EXPOSE 3000 |
||||
|
||||
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" |
||||
|
||||
CMD sleep 60; java -jar app.jar $JAVA_OPTS |
@ -0,0 +1,77 @@
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-auth</artifactId> |
||||
<packaging>jar</packaging> |
||||
|
||||
<description>kicc 认证授权中心,基于 spring security oAuth2</description> |
||||
|
||||
<dependencies> |
||||
<!--注册中心客户端--> |
||||
<dependency> |
||||
<groupId>com.alibaba.cloud</groupId> |
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> |
||||
</dependency> |
||||
<!--配置中心客户端--> |
||||
<dependency> |
||||
<groupId>com.alibaba.cloud</groupId> |
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> |
||||
</dependency> |
||||
<!--断路器依赖--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-feign</artifactId> |
||||
</dependency> |
||||
<!--system api模块--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-system-api</artifactId> |
||||
</dependency> |
||||
<!--数据服务核心包--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-data</artifactId> |
||||
</dependency> |
||||
<!--security安全工具类--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-security</artifactId> |
||||
</dependency> |
||||
<!--log--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-log</artifactId> |
||||
</dependency> |
||||
<!--freemarker--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-freemarker</artifactId> |
||||
</dependency> |
||||
<!--undertow容器--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-undertow</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>io.fabric8</groupId> |
||||
<artifactId>docker-maven-plugin</artifactId> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
</plugin> |
||||
</plugins> |
||||
</build> |
||||
|
||||
</project> |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
package com.cloud.kicc.auth; |
||||
|
||||
import com.cloud.kicc.common.core.annotation.EnableKiccJacksonAutoConvert; |
||||
import com.cloud.kicc.common.feign.annotation.EnableKiccFeignClients; |
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; |
||||
|
||||
/** |
||||
*<p> |
||||
* 认证授权中心 |
||||
*</p> |
||||
* |
||||
* @Author: 开发团队-王翔 |
||||
* @Date: 2022/2/16 |
||||
*/ |
||||
@EnableKiccFeignClients |
||||
@SpringBootApplication |
||||
@EnableKiccJacksonAutoConvert |
||||
public class KiccAuthApplication { |
||||
|
||||
public static void main(String[] args) { |
||||
SpringApplication.run(KiccAuthApplication.class, args); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,140 @@
@@ -0,0 +1,140 @@
|
||||
package com.cloud.kicc.auth.config; |
||||
|
||||
import com.cloud.kicc.common.core.constant.SecurityConstants; |
||||
import com.cloud.kicc.common.data.entity.KiccUser; |
||||
import com.cloud.kicc.common.security.grant.app.ResourceOwnerCustomeAppTokenGranter; |
||||
import com.cloud.kicc.common.security.override.KiccClientDetailsService; |
||||
import com.cloud.kicc.common.security.override.KiccCustomTokenServices; |
||||
import com.cloud.kicc.common.security.override.KiccWebResponseExceptionTranslator; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.SneakyThrows; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.http.HttpMethod; |
||||
import org.springframework.security.authentication.AuthenticationManager; |
||||
import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken; |
||||
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; |
||||
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; |
||||
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; |
||||
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer; |
||||
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer; |
||||
import org.springframework.security.oauth2.provider.ClientDetailsService; |
||||
import org.springframework.security.oauth2.provider.CompositeTokenGranter; |
||||
import org.springframework.security.oauth2.provider.TokenGranter; |
||||
import org.springframework.security.oauth2.provider.token.TokenEnhancer; |
||||
import org.springframework.security.oauth2.provider.token.TokenStore; |
||||
|
||||
import javax.sql.DataSource; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
*<p> |
||||
* 认证服务器配置 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/20 |
||||
*/ |
||||
@Configuration |
||||
@RequiredArgsConstructor |
||||
@EnableAuthorizationServer |
||||
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter { |
||||
|
||||
private final DataSource dataSource; |
||||
|
||||
private final AuthenticationManager authenticationManager; |
||||
|
||||
private final TokenStore redisTokenStore; |
||||
|
||||
@Override |
||||
@SneakyThrows |
||||
public void configure(ClientDetailsServiceConfigurer clients) { |
||||
clients.withClientDetails(kiccClientDetailsService()); |
||||
} |
||||
|
||||
@Override |
||||
public void configure(AuthorizationServerSecurityConfigurer oauthServer) { |
||||
oauthServer.allowFormAuthenticationForClients().checkTokenAccess("permitAll()"); |
||||
} |
||||
|
||||
@Override |
||||
public void configure(AuthorizationServerEndpointsConfigurer endpoints) { |
||||
endpoints.allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST).tokenServices(tokenServices()) |
||||
.tokenStore(redisTokenStore).tokenEnhancer(tokenEnhancer()).authenticationManager(authenticationManager) |
||||
.reuseRefreshTokens(false).pathMapping("/oauth/confirm_access", "/token/confirm_access") |
||||
.exceptionTranslator(new KiccWebResponseExceptionTranslator()); |
||||
setTokenGranter(endpoints); |
||||
} |
||||
|
||||
/** |
||||
* 自定义 APP 认证类型 |
||||
* @param endpoints AuthorizationServerEndpointsConfigurer |
||||
*/ |
||||
private void setTokenGranter(AuthorizationServerEndpointsConfigurer endpoints) { |
||||
// 获取默认授权类型
|
||||
TokenGranter tokenGranter = endpoints.getTokenGranter(); |
||||
ArrayList<TokenGranter> tokenGranters = new ArrayList<>(Arrays.asList(tokenGranter)); |
||||
ResourceOwnerCustomeAppTokenGranter resourceOwnerCustomeAppTokenGranter = new ResourceOwnerCustomeAppTokenGranter( |
||||
authenticationManager, endpoints.getTokenServices(), endpoints.getClientDetailsService(), |
||||
endpoints.getOAuth2RequestFactory()); |
||||
tokenGranters.add(resourceOwnerCustomeAppTokenGranter); |
||||
CompositeTokenGranter compositeTokenGranter = new CompositeTokenGranter(tokenGranters); |
||||
endpoints.tokenGranter(compositeTokenGranter); |
||||
} |
||||
|
||||
/** |
||||
* token 生成接口输出增强 |
||||
* @return TokenEnhancer |
||||
*/ |
||||
@Bean |
||||
public TokenEnhancer tokenEnhancer() { |
||||
return (accessToken, authentication) -> { |
||||
final Map<String, Object> additionalInfo = new HashMap<>(4); |
||||
additionalInfo.put(SecurityConstants.DETAILS_LICENSE, SecurityConstants.PROJECT_LICENSE); |
||||
String clientId = authentication.getOAuth2Request().getClientId(); |
||||
additionalInfo.put(SecurityConstants.CLIENT_ID, clientId); |
||||
|
||||
// 客户端模式不返回具体用户信息
|
||||
if (SecurityConstants.CLIENT_CREDENTIALS.equals(authentication.getOAuth2Request().getGrantType())) { |
||||
((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo); |
||||
return accessToken; |
||||
} |
||||
|
||||
KiccUser kiccUser = (KiccUser) authentication.getUserAuthentication().getPrincipal(); |
||||
additionalInfo.put(SecurityConstants.DETAILS_USER, kiccUser); |
||||
((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo); |
||||
return accessToken; |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 客户端信息加载处理 |
||||
* @return ClientDetailsService |
||||
*/ |
||||
@Bean |
||||
public ClientDetailsService kiccClientDetailsService() { |
||||
KiccClientDetailsService clientDetailsService = new KiccClientDetailsService(dataSource); |
||||
clientDetailsService.setSelectClientDetailsSql(SecurityConstants.DEFAULT_SELECT_STATEMENT); |
||||
clientDetailsService.setFindClientDetailsSql(SecurityConstants.DEFAULT_FIND_STATEMENT); |
||||
return clientDetailsService; |
||||
} |
||||
|
||||
/** |
||||
* token 核心处理 |
||||
* @return tokenServices |
||||
*/ |
||||
@Bean |
||||
public KiccCustomTokenServices tokenServices() { |
||||
KiccCustomTokenServices tokenServices = new KiccCustomTokenServices(); |
||||
tokenServices.setTokenStore(redisTokenStore); |
||||
tokenServices.setSupportRefreshToken(true); |
||||
tokenServices.setReuseRefreshToken(false); |
||||
tokenServices.setClientDetailsService(kiccClientDetailsService()); |
||||
tokenServices.setTokenEnhancer(tokenEnhancer()); |
||||
return tokenServices; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,121 @@
@@ -0,0 +1,121 @@
|
||||
package com.cloud.kicc.auth.config; |
||||
|
||||
import com.cloud.kicc.common.security.grant.provider.KiccDaoAuthenticationProvider; |
||||
import com.cloud.kicc.common.security.grant.provider.CustomAppAuthenticationProvider; |
||||
import com.cloud.kicc.common.security.handler.FormAuthenticationFailureHandler; |
||||
import com.cloud.kicc.common.security.handler.SsoLogoutSuccessHandler; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.SneakyThrows; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.context.annotation.Primary; |
||||
import org.springframework.core.annotation.Order; |
||||
import org.springframework.security.authentication.AuthenticationManager; |
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; |
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
||||
import org.springframework.security.config.annotation.web.builders.WebSecurity; |
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |
||||
import org.springframework.security.crypto.factory.PasswordEncoderFactories; |
||||
import org.springframework.security.crypto.password.PasswordEncoder; |
||||
import org.springframework.security.web.authentication.AuthenticationFailureHandler; |
||||
import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; |
||||
|
||||
/** |
||||
*<p> |
||||
* 认证相关配置 |
||||
* 并且设置为主,以及加载优先级为1,防止被微服务工程覆盖 |
||||
*</p> |
||||
* |
||||
* @Author: 开发团队-王翔 |
||||
* @Date: 2022/2/16 |
||||
*/ |
||||
|
||||
@Primary |
||||
@Order(90) |
||||
@Configuration |
||||
@RequiredArgsConstructor |
||||
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { |
||||
|
||||
@Override |
||||
@SneakyThrows |
||||
protected void configure(HttpSecurity http) { |
||||
http |
||||
.formLogin() |
||||
.loginPage("/token/login") |
||||
.loginProcessingUrl("/token/form") |
||||
.failureHandler(authenticationFailureHandler()) |
||||
.and() |
||||
.logout() |
||||
.logoutSuccessHandler(logoutSuccessHandler()) |
||||
.deleteCookies("JSESSIONID") |
||||
.invalidateHttpSession(true) |
||||
.and() |
||||
.authorizeRequests() |
||||
.antMatchers("/token/**", "/actuator/**", "/mobile/**") |
||||
.permitAll() |
||||
.anyRequest() |
||||
.authenticated() |
||||
.and() |
||||
// CRSF禁用,因为不使用session
|
||||
.csrf().disable(); |
||||
} |
||||
|
||||
/** |
||||
* 自定义 provider 列表注入 |
||||
* @param auth AuthenticationManagerBuilder |
||||
*/ |
||||
@Override |
||||
protected void configure(AuthenticationManagerBuilder auth) { |
||||
KiccDaoAuthenticationProvider daoAuthenticationProvider = new KiccDaoAuthenticationProvider(); |
||||
daoAuthenticationProvider.setPasswordEncoder(passwordEncoder()); |
||||
|
||||
// 处理默认的密码模式认证
|
||||
auth.authenticationProvider(daoAuthenticationProvider); |
||||
// 自定义的认证模式
|
||||
auth.authenticationProvider(new CustomAppAuthenticationProvider()); |
||||
} |
||||
|
||||
@Bean |
||||
@Override |
||||
@SneakyThrows |
||||
public AuthenticationManager authenticationManagerBean() { |
||||
return super.authenticationManagerBean(); |
||||
} |
||||
|
||||
/** |
||||
* 认证中心静态资源处理 |
||||
* @param web WebSecurity |
||||
*/ |
||||
@Override |
||||
public void configure(WebSecurity web) { |
||||
web.ignoring().antMatchers("/css/**"); |
||||
} |
||||
|
||||
/** |
||||
* sso 表单登录失败处理 |
||||
* @return FormAuthenticationFailureHandler |
||||
*/ |
||||
@Bean |
||||
public AuthenticationFailureHandler authenticationFailureHandler() { |
||||
return new FormAuthenticationFailureHandler(); |
||||
} |
||||
|
||||
/** |
||||
* SSO 退出逻辑处理 |
||||
* @return LogoutSuccessHandler |
||||
*/ |
||||
@Bean |
||||
public LogoutSuccessHandler logoutSuccessHandler() { |
||||
return new SsoLogoutSuccessHandler(); |
||||
} |
||||
|
||||
/** |
||||
* 密码处理器 |
||||
* @return 动态密码处理器 {类型}密文 |
||||
*/ |
||||
@Bean |
||||
public PasswordEncoder passwordEncoder() { |
||||
return PasswordEncoderFactories.createDelegatingPasswordEncoder(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,156 @@
@@ -0,0 +1,156 @@
|
||||
package com.cloud.kicc.auth.endpoint; |
||||
|
||||
import cn.hutool.core.map.MapUtil; |
||||
import cn.hutool.core.util.StrUtil; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.cloud.kicc.common.core.constant.CacheConstants; |
||||
import com.cloud.kicc.common.core.constant.CommonConstants; |
||||
import com.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.common.core.util.SpringContextHolder; |
||||
import com.cloud.kicc.common.security.annotation.Inner; |
||||
import com.cloud.kicc.common.security.util.SecurityUtils; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.cache.CacheManager; |
||||
import org.springframework.data.redis.core.RedisTemplate; |
||||
import org.springframework.http.HttpHeaders; |
||||
import org.springframework.security.authentication.event.LogoutSuccessEvent; |
||||
import org.springframework.security.oauth2.common.OAuth2AccessToken; |
||||
import org.springframework.security.oauth2.common.OAuth2RefreshToken; |
||||
import org.springframework.security.oauth2.provider.AuthorizationRequest; |
||||
import org.springframework.security.oauth2.provider.ClientDetails; |
||||
import org.springframework.security.oauth2.provider.ClientDetailsService; |
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication; |
||||
import org.springframework.security.oauth2.provider.token.TokenStore; |
||||
import org.springframework.web.bind.annotation.*; |
||||
import org.springframework.web.servlet.ModelAndView; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import javax.servlet.http.HttpSession; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.Set; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
*<p> |
||||
* token端点管理 |
||||
*</p> |
||||
* |
||||
* @Author: 开发团队-王翔 |
||||
* @Date: 2022/2/16 |
||||
*/ |
||||
@Slf4j |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
@RequestMapping("/token") |
||||
public class kiccTokenEndpoint { |
||||
|
||||
private final ClientDetailsService clientDetailsService; |
||||
|
||||
private final TokenStore tokenStore; |
||||
|
||||
private final RedisTemplate redisTemplate; |
||||
|
||||
private final CacheManager cacheManager; |
||||
|
||||
/** |
||||
* 认证页面 |
||||
* @param modelAndView |
||||
* @param error 表单登录失败处理回调的错误信息 |
||||
* @return ModelAndView |
||||
*/ |
||||
@GetMapping("/login") |
||||
public ModelAndView require(ModelAndView modelAndView, @RequestParam(required = false) String error) { |
||||
modelAndView.setViewName("ftl/login"); |
||||
modelAndView.addObject("error", error); |
||||
return modelAndView; |
||||
} |
||||
|
||||
/** |
||||
* 确认授权页面 |
||||
* @param request |
||||
* @param session |
||||
* @param modelAndView |
||||
* @return |
||||
*/ |
||||
@GetMapping("/confirm_access") |
||||
public ModelAndView confirm(HttpServletRequest request, HttpSession session, ModelAndView modelAndView) { |
||||
Map<String, Object> scopeList = (Map<String, Object>) request.getAttribute("scopes"); |
||||
modelAndView.addObject("scopeList", scopeList.keySet()); |
||||
|
||||
Object auth = session.getAttribute("authorizationRequest"); |
||||
if (auth != null) { |
||||
AuthorizationRequest authorizationRequest = (AuthorizationRequest) auth; |
||||
ClientDetails clientDetails = clientDetailsService.loadClientByClientId(authorizationRequest.getClientId()); |
||||
modelAndView.addObject("app", clientDetails.getAdditionalInformation()); |
||||
modelAndView.addObject("user", SecurityUtils.getUser()); |
||||
} |
||||
|
||||
modelAndView.setViewName("ftl/confirm"); |
||||
return modelAndView; |
||||
} |
||||
|
||||
/** |
||||
* 退出并删除token |
||||
* @param authHeader Authorization |
||||
*/ |
||||
@DeleteMapping("/logout") |
||||
public R<Boolean> logout(@RequestHeader(value = HttpHeaders.AUTHORIZATION, required = false) String authHeader) { |
||||
if (StrUtil.isBlank(authHeader)) { |
||||
return R.ok(); |
||||
} |
||||
|
||||
String tokenValue = authHeader.replace(OAuth2AccessToken.BEARER_TYPE, StrUtil.EMPTY).trim(); |
||||
return removeToken(tokenValue); |
||||
} |
||||
|
||||
/** |
||||
* 删除令牌 |
||||
* @param token token |
||||
*/ |
||||
@Inner |
||||
@DeleteMapping("/{token}") |
||||
public R<Boolean> removeToken(@PathVariable("token") String token) { |
||||
OAuth2AccessToken accessToken = tokenStore.readAccessToken(token); |
||||
if (accessToken == null || StrUtil.isBlank(accessToken.getValue())) { |
||||
return R.ok(); |
||||
} |
||||
|
||||
OAuth2Authentication auth2Authentication = tokenStore.readAuthentication(accessToken); |
||||
// 清空用户信息
|
||||
cacheManager.getCache(CacheConstants.USER_DETAILS).evict(auth2Authentication.getName()); |
||||
|
||||
// 清空access token
|
||||
tokenStore.removeAccessToken(accessToken); |
||||
|
||||
// 清空 refresh token
|
||||
OAuth2RefreshToken refreshToken = accessToken.getRefreshToken(); |
||||
tokenStore.removeRefreshToken(refreshToken); |
||||
|
||||
// 处理自定义退出事件,保存相关日志
|
||||
SpringContextHolder.publishEvent(new LogoutSuccessEvent(auth2Authentication)); |
||||
return R.ok(true); |
||||
} |
||||
|
||||
/** |
||||
* 查询令牌 |
||||
* @param params 分页参数 |
||||
* @return |
||||
*/ |
||||
@Inner |
||||
@PostMapping("/list") |
||||
public R tokenList(@RequestBody Map<String, Object> params) { |
||||
// 根据分页参数获取对应数据
|
||||
String key = String.format("%sauth_to_access:*", CacheConstants.OAUTH_ACCESS); |
||||
int current = MapUtil.getInt(params, CommonConstants.CURRENT); |
||||
int size = MapUtil.getInt(params, CommonConstants.SIZE); |
||||
Set<String> keys = redisTemplate.keys(key); |
||||
List<String> pages = keys.stream().skip((current - 1) * size).limit(size).collect(Collectors.toList()); |
||||
Page result = new Page(current, size); |
||||
result.setRecords(redisTemplate.opsForValue().multiGet(pages)); |
||||
result.setTotal(keys.size()); |
||||
return R.ok(result.getRecords(), result.getTotal()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,63 @@
@@ -0,0 +1,63 @@
|
||||
package com.cloud.kicc.auth.handler; |
||||
|
||||
import com.cloud.kicc.admin.api.entity.OperLog; |
||||
import com.cloud.kicc.common.core.util.SpringContextHolder; |
||||
import com.cloud.kicc.common.data.entity.KiccUser; |
||||
import com.cloud.kicc.common.log.event.SysLogEvent; |
||||
import com.cloud.kicc.common.log.util.LogTypeEnum; |
||||
import com.cloud.kicc.common.log.util.SysLogUtils; |
||||
import com.cloud.kicc.common.security.handler.AbstractAuthenticationFailureEventHandler; |
||||
import com.cloud.kicc.common.security.util.SecurityUtils; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.security.core.Authentication; |
||||
import org.springframework.security.core.AuthenticationException; |
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.Optional; |
||||
|
||||
/** |
||||
*<p> |
||||
* 登录失败处理 |
||||
*</p> |
||||
* |
||||
* @Author: 开发团队-王翔 |
||||
* @Date: 2022/2/16 |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class kiccAuthenticationFailureEventHandler extends AbstractAuthenticationFailureEventHandler { |
||||
|
||||
/** |
||||
* 处理登录失败方法 |
||||
* <p> |
||||
* @param authenticationException 登录的authentication 对象 |
||||
* @param authentication 登录的authenticationException 对象 |
||||
*/ |
||||
@Override |
||||
public void handle(AuthenticationException authenticationException, Authentication authentication) { |
||||
log.info("用户:{} 登录失败,异常:{}", authentication.getPrincipal(), authenticationException.getLocalizedMessage()); |
||||
SecurityContextHolder.getContext().setAuthentication(authentication); |
||||
KiccUser kiccUser = SecurityUtils.getUser(authentication); |
||||
OperLog operLog = SysLogUtils.getSysLog(); |
||||
operLog.setTitle("登录失败"); |
||||
operLog.setType(LogTypeEnum.ERROR.getType()); |
||||
operLog.setErrorMsg(authenticationException.getMessage()); |
||||
operLog.setOperName(kiccUser.getUsername()); |
||||
// 发送异步日志事件
|
||||
Long startTime = System.currentTimeMillis(); |
||||
Long endTime = System.currentTimeMillis(); |
||||
operLog.setExecuteTime((endTime - startTime) + "毫秒"); |
||||
|
||||
if (Optional.ofNullable(kiccUser).isPresent()) { |
||||
operLog.setCreateById(kiccUser.getId()); |
||||
operLog.setCreateByName(kiccUser.getUsername()); |
||||
|
||||
operLog.setUpdateById(kiccUser.getId()); |
||||
operLog.setUpdateByName(kiccUser.getUsername()); |
||||
} |
||||
|
||||
SpringContextHolder.publishEvent(new SysLogEvent(operLog)); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,56 @@
@@ -0,0 +1,56 @@
|
||||
package com.cloud.kicc.auth.handler; |
||||
|
||||
import com.cloud.kicc.admin.api.entity.OperLog; |
||||
import com.cloud.kicc.common.core.util.SpringContextHolder; |
||||
import com.cloud.kicc.common.data.entity.KiccUser; |
||||
import com.cloud.kicc.common.log.event.SysLogEvent; |
||||
import com.cloud.kicc.common.log.util.SysLogUtils; |
||||
import com.cloud.kicc.common.security.handler.AbstractAuthenticationSuccessEventHandler; |
||||
import com.cloud.kicc.common.security.util.SecurityUtils; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.security.core.Authentication; |
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.Optional; |
||||
|
||||
/** |
||||
*<p> |
||||
* 登录成功处理 |
||||
*</p> |
||||
* |
||||
* @Author: 开发团队-王翔 |
||||
* @Date: 2022/2/16 |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class kiccAuthenticationSuccessEventHandler extends AbstractAuthenticationSuccessEventHandler { |
||||
|
||||
/** |
||||
* 处理登录成功方法 |
||||
* <p> |
||||
* 获取到登录的authentication 对象 |
||||
* @param authentication 登录对象 |
||||
*/ |
||||
@Override |
||||
public void handle(Authentication authentication) { |
||||
log.info("用户:{} 登录成功", authentication.getPrincipal()); |
||||
SecurityContextHolder.getContext().setAuthentication(authentication); |
||||
OperLog operLog = SysLogUtils.getSysLog(); |
||||
operLog.setTitle("登录成功"); |
||||
// 发送异步日志事件
|
||||
Long startTime = System.currentTimeMillis(); |
||||
KiccUser kiccUser = SecurityUtils.getUser(authentication); |
||||
if (Optional.ofNullable(kiccUser).isPresent()) { |
||||
operLog.setCreateById(kiccUser.getId()); |
||||
operLog.setCreateByName(kiccUser.getUsername()); |
||||
|
||||
operLog.setUpdateById(kiccUser.getId()); |
||||
operLog.setUpdateByName(kiccUser.getUsername()); |
||||
} |
||||
Long endTime = System.currentTimeMillis(); |
||||
operLog.setExecuteTime((endTime - startTime) + "毫秒"); |
||||
SpringContextHolder.publishEvent(new SysLogEvent(operLog)); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,71 @@
@@ -0,0 +1,71 @@
|
||||
package com.cloud.kicc.auth.handler; |
||||
|
||||
import com.cloud.kicc.admin.api.entity.OperLog; |
||||
import com.cloud.kicc.common.core.util.SpringContextHolder; |
||||
import com.cloud.kicc.common.core.util.WebUtils; |
||||
import com.cloud.kicc.common.data.entity.KiccUser; |
||||
import com.cloud.kicc.common.log.event.SysLogEvent; |
||||
import com.cloud.kicc.common.log.util.SysLogUtils; |
||||
import com.cloud.kicc.common.security.handler.AbstractLogoutSuccessEventHandler; |
||||
import com.cloud.kicc.common.security.util.SecurityUtils; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.http.HttpHeaders; |
||||
import org.springframework.security.core.Authentication; |
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import java.util.Optional; |
||||
|
||||
/** |
||||
*<p> |
||||
* 注销成功处理 |
||||
*</p> |
||||
* |
||||
* @Author: 开发团队-王翔 |
||||
* @Date: 2022/2/16 |
||||
*/ |
||||
@Slf4j |
||||
@Component |
||||
public class kiccLogoutSuccessEventHandler extends AbstractLogoutSuccessEventHandler { |
||||
|
||||
/** |
||||
* 处理退出成功方法 |
||||
* <p> |
||||
* 获取到登录的authentication 对象 |
||||
* @param authentication 登录对象 |
||||
*/ |
||||
@Override |
||||
public void handle(Authentication authentication) { |
||||
log.info("用户:{} 退出成功", authentication.getPrincipal()); |
||||
SecurityContextHolder.getContext().setAuthentication(authentication); |
||||
KiccUser kiccUser = SecurityUtils.getUser(authentication); |
||||
|
||||
OperLog operLog = SysLogUtils.getSysLog(); |
||||
operLog.setTitle("退出成功"); |
||||
// 发送异步日志事件
|
||||
Long startTime = System.currentTimeMillis(); |
||||
Long endTime = System.currentTimeMillis(); |
||||
operLog.setExecuteTime((endTime - startTime) + "毫秒"); |
||||
|
||||
// 设置对应的token
|
||||
WebUtils.getRequest().ifPresent(request -> operLog.setOperParam(request.getHeader(HttpHeaders.AUTHORIZATION))); |
||||
|
||||
// 这边设置ServiceId
|
||||
if (authentication instanceof OAuth2Authentication) { |
||||
OAuth2Authentication auth2Authentication = (OAuth2Authentication) authentication; |
||||
operLog.setServiceId(auth2Authentication.getOAuth2Request().getClientId()); |
||||
} |
||||
|
||||
if (Optional.ofNullable(kiccUser).isPresent()) { |
||||
operLog.setCreateById(kiccUser.getId()); |
||||
operLog.setCreateByName(kiccUser.getUsername()); |
||||
|
||||
operLog.setUpdateById(kiccUser.getId()); |
||||
operLog.setUpdateByName(kiccUser.getUsername()); |
||||
} |
||||
|
||||
SpringContextHolder.publishEvent(new SysLogEvent(operLog)); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
server: |
||||
port: 3000 |
||||
|
||||
spring: |
||||
application: |
||||
name: @artifactId@ |
||||
cloud: |
||||
nacos: |
||||
discovery: |
||||
server-addr: ${NACOS_HOST:kicc-register}:${NACOS_PORT:8848} |
||||
namespace: @profiles.namespace@ |
||||
config: |
||||
server-addr: ${spring.cloud.nacos.discovery.server-addr} |
||||
file-extension: yml |
||||
namespace: @profiles.namespace@ |
||||
shared-configs: |
||||
- application.${spring.cloud.nacos.config.file-extension} |
@ -0,0 +1,57 @@
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!--基础日志配置,工程继承可以进行替换--> |
||||
<configuration debug="false" scan="false"> |
||||
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/> |
||||
<property name="log.path" value="logs/${spring.application.name}"/> |
||||
<!-- 彩色日志格式 --> |
||||
<property name="CONSOLE_LOG_PATTERN" |
||||
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> |
||||
<!-- 彩色日志依赖的渲染类 --> |
||||
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/> |
||||
<conversionRule conversionWord="wex" |
||||
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/> |
||||
<conversionRule conversionWord="wEx" |
||||
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/> |
||||
<!-- 控制台日志输出 --> |
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> |
||||
<encoder> |
||||
<pattern>${CONSOLE_LOG_PATTERN}</pattern> |
||||
</encoder> |
||||
</appender> |
||||
|
||||
<!-- 日志文件调试输出 --> |
||||
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
<file>${log.path}/debug.log</file> |
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
||||
<fileNamePattern>${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> |
||||
<maxFileSize>50MB</maxFileSize> |
||||
<maxHistory>30</maxHistory> |
||||
</rollingPolicy> |
||||
<encoder> |
||||
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern> |
||||
</encoder> |
||||
</appender> |
||||
|
||||
<!-- 日志文件错误输出 --> |
||||
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
<file>${log.path}/error.log</file> |
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
||||
<fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> |
||||
<maxFileSize>50MB</maxFileSize> |
||||
<maxHistory>30</maxHistory> |
||||
</rollingPolicy> |
||||
<encoder> |
||||
<pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern> |
||||
</encoder> |
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> |
||||
<level>ERROR</level> |
||||
</filter> |
||||
</appender> |
||||
|
||||
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 --> |
||||
<root level="INFO"> |
||||
<appender-ref ref="console"/> |
||||
<appender-ref ref="debug"/> |
||||
<appender-ref ref="error"/> |
||||
</root> |
||||
</configuration> |
File diff suppressed because one or more lines are too long
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
.sign_body { |
||||
padding-top: 40px; |
||||
padding-bottom: 40px; |
||||
background-color: #eee; |
||||
} |
||||
|
||||
.form-signin { |
||||
max-width: 330px; |
||||
padding: 15px; |
||||
margin: 0 auto; |
||||
} |
||||
.form-margin-top { |
||||
margin-top: 50px; |
||||
} |
||||
.form-signin .form-signin-heading, |
||||
.form-signin .checkbox { |
||||
margin-bottom: 10px; |
||||
} |
||||
.form-signin .checkbox { |
||||
font-weight: normal; |
||||
} |
||||
.form-signin .form-control { |
||||
position: relative; |
||||
height: auto; |
||||
-webkit-box-sizing: border-box; |
||||
-moz-box-sizing: border-box; |
||||
box-sizing: border-box; |
||||
padding: 10px; |
||||
font-size: 16px; |
||||
} |
||||
.form-signin .form-control:focus { |
||||
z-index: 2; |
||||
} |
||||
.form-signin input[type="email"] { |
||||
margin-bottom: -1px; |
||||
border-bottom-right-radius: 0; |
||||
border-bottom-left-radius: 0; |
||||
} |
||||
.form-signin input[type="password"] { |
||||
margin-bottom: 10px; |
||||
border-top-left-radius: 0; |
||||
border-top-right-radius: 0; |
||||
} |
||||
footer{ |
||||
text-align: center; |
||||
position:absolute; |
||||
bottom:0; |
||||
width:100%; |
||||
height:100px; |
||||
} |
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="UTF-8"/> |
||||
<meta name="viewport" |
||||
content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/> |
||||
<title>长沙康来生物有限公司 第三方授权</title> |
||||
<!--使用/oauth/authorize获取返回页面--> |
||||
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css"/> |
||||
<link rel="stylesheet" type="text/css" href="/css/signin.css"/> |
||||
</head> |
||||
|
||||
<body> |
||||
<nav class="navbar navbar-default container-fluid"> |
||||
<div class="container"> |
||||
<div class="navbar-header"> |
||||
<a class="navbar-brand" href="#">长沙康来生物有限公司微服务架构开放平台</a> |
||||
</div> |
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-5"> |
||||
<p class="navbar-text navbar-right"> |
||||
<a href="javascript:void(0)">技术支持</a> |
||||
</p> |
||||
<p class="navbar-text navbar-right"> |
||||
当前用户:${user.username} |
||||
</p> |
||||
</div> |
||||
</div> |
||||
</nav> |
||||
<div style="padding-top: 80px;width: 300px; color: #555; margin:0px auto;"> |
||||
<form id='confirmationForm' name='confirmationForm' action="/oauth/authorize" method='post'> |
||||
<input name='user_oauth_approval' value='true' type='hidden'/> |
||||
<p> |
||||
<a href="${app.website!''}" target="_blank">${app.appName!'未定义应用名称'}</a> 将获得以下权限:</p> |
||||
<ul class="list-group"> |
||||
<li class="list-group-item"> <span> |
||||
<#list scopeList as scope> |
||||
<input type="hidden" name="${scope}" value="true"/> |
||||
<input type="checkbox" checked="checked"/><label>${scope}</label> |
||||
</#list> |
||||
</ul> |
||||
<p class="help-block">授权后表明你已同意 <a href="javascript:void(0)">服务协议</a></p> |
||||
<button class="btn btn-success pull-right" type="submit" id="write-email-btn">授权</button> |
||||
</p> |
||||
</form> |
||||
</div> |
||||
<footer> |
||||
<p>关于: 长沙康来生物有限公司</p> |
||||
<p>邮箱: <a href="mailto:1827945911@qq.com">联系我们</a>.</p> |
||||
</footer> |
||||
</body> |
||||
</html> |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||
<meta name="description" content=""> |
||||
<meta name="author" content=""> |
||||
|
||||
<!--拦截后返回的页面--> |
||||
<title>长沙康来生物有限公司 统一认证</title> |
||||
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet"> |
||||
<link href="/css/signin.css" rel="stylesheet"> |
||||
</head> |
||||
|
||||
<body class="sign_body"> |
||||
<div class="container form-margin-top"> |
||||
<form class="form-signin" action="/token/form" method="post"> |
||||
<h2 class="form-signin-heading" align="center">康来生物统一认证系统</h2> |
||||
<input type="hidden" name="clientId" class="form-control" value="kicc" placeholder="所属客户端" > |
||||
<input type="text" name="username" class="form-control form-margin-top" placeholder="账号" required autofocus> |
||||
<input type="password" name="password" class="form-control" placeholder="密码" required> |
||||
<button class="btn btn-lg btn-primary btn-block" type="submit">sign in</button> |
||||
<#if error??> |
||||
<span style="color: red; ">${error}</span> |
||||
</#if> |
||||
</form> |
||||
</div> |
||||
<footer> |
||||
<p>关于: 长沙康来生物有限公司</p> |
||||
<p>邮箱: <a href="mailto:1827945911@qq.com">联系我们</a>.</p> |
||||
</footer> |
||||
</body> |
||||
</html> |
@ -0,0 +1,65 @@
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-demo-mq</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-message-consumer</artifactId> |
||||
<packaging>jar</packaging> |
||||
|
||||
<description>mq消息消费者</description> |
||||
|
||||
<dependencies> |
||||
<!--undertow容器--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-undertow</artifactId> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-rocketmq</artifactId> |
||||
</dependency> |
||||
<!--数据服务核心包--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-data</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>io.fabric8</groupId> |
||||
<artifactId>docker-maven-plugin</artifactId> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
</plugin> |
||||
</plugins> |
||||
<resources> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>true</filtering> |
||||
<excludes> |
||||
<exclude>**/*.xlsx</exclude> |
||||
<exclude>**/*.xls</exclude> |
||||
</excludes> |
||||
</resource> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>false</filtering> |
||||
<includes> |
||||
<include>**/*.xlsx</include> |
||||
<include>**/*.xls</include> |
||||
</includes> |
||||
</resource> |
||||
</resources> |
||||
</build> |
||||
|
||||
</project> |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
package com.cloud.kicc.mq; |
||||
|
||||
import com.cloud.kicc.common.rocketmq.channel.KiccSink; |
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; |
||||
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; |
||||
import org.springframework.cloud.stream.annotation.EnableBinding; |
||||
|
||||
/** |
||||
*<p> |
||||
* 消息中心消费者启动类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/9 |
||||
*/ |
||||
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) |
||||
@EnableBinding({KiccSink.class}) |
||||
public class MessageConsumerServer { |
||||
|
||||
public static void main(String[] args) { |
||||
SpringApplication.run(MessageConsumerServer.class, args); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
package com.cloud.kicc.mq.service; |
||||
|
||||
import com.cloud.kicc.common.rocketmq.constant.MessageConstant; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.cloud.stream.annotation.StreamListener; |
||||
import org.springframework.messaging.handler.annotation.Payload; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
*<p> |
||||
* 短信消费者业务 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/9 |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
public class SmsConsumerService { |
||||
|
||||
|
||||
/** |
||||
* 监控听短信input |
||||
* @param message 消费文本内容 |
||||
*/ |
||||
@StreamListener(MessageConstant.SMS_MESSAGE_INPUT) |
||||
public void handler(@Payload String message) { |
||||
log.error("接收到的消息为:{}", message); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
server: |
||||
port: 40003 |
||||
spring: |
||||
application: |
||||
name: @artifactId@ |
||||
cloud: |
||||
stream: |
||||
rocketmq: |
||||
# rocketmq-binder配置项,对应RocketMQBinderConfigurationProperties类 |
||||
binder: |
||||
name-server: 127.0.0.1:9876 |
||||
# 也可以配置密码,可以设置开启acl,目前只是在内网使用没开,后期有这方面需求在开启 |
||||
# access-key: |
||||
# secret-key: |
@ -0,0 +1,65 @@
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-demo-mq</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-message-producer</artifactId> |
||||
<packaging>jar</packaging> |
||||
|
||||
<description>mq消息提供者</description> |
||||
|
||||
<dependencies> |
||||
<!--undertow容器--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-undertow</artifactId> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-rocketmq</artifactId> |
||||
</dependency> |
||||
<!--数据服务核心包--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-data</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>io.fabric8</groupId> |
||||
<artifactId>docker-maven-plugin</artifactId> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
</plugin> |
||||
</plugins> |
||||
<resources> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>true</filtering> |
||||
<excludes> |
||||
<exclude>**/*.xlsx</exclude> |
||||
<exclude>**/*.xls</exclude> |
||||
</excludes> |
||||
</resource> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>false</filtering> |
||||
<includes> |
||||
<include>**/*.xlsx</include> |
||||
<include>**/*.xls</include> |
||||
</includes> |
||||
</resource> |
||||
</resources> |
||||
</build> |
||||
|
||||
</project> |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
package com.cloud.kicc.mq; |
||||
|
||||
import com.cloud.kicc.common.rocketmq.channel.KiccSource; |
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; |
||||
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; |
||||
import org.springframework.cloud.stream.annotation.EnableBinding; |
||||
|
||||
/** |
||||
*<p> |
||||
* 消息中心生产者启动类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/9 |
||||
*/ |
||||
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) |
||||
@EnableBinding({KiccSource.class}) |
||||
public class MessageProducerServer { |
||||
|
||||
public static void main(String[] args) { |
||||
SpringApplication.run(MessageProducerServer.class, args); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
package com.cloud.kicc.mq.controller; |
||||
|
||||
import com.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.mq.service.SmsService; |
||||
import lombok.AllArgsConstructor; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
*<p> |
||||
* 发送短信控制器 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/9 |
||||
*/ |
||||
@RestController |
||||
@AllArgsConstructor |
||||
public class SmsController { |
||||
|
||||
private final SmsService smsService; |
||||
|
||||
@GetMapping("/send/sms") |
||||
public R sendSms(String message) { |
||||
smsService.sendSms(message); |
||||
return R.ok("操作成功"); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
package com.cloud.kicc.mq.controller; |
||||
|
||||
import com.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.mq.service.TransactionOrderService; |
||||
import lombok.AllArgsConstructor; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
*<p> |
||||
* 测试订单事务控制器 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/10 |
||||
*/ |
||||
@RestController |
||||
@AllArgsConstructor |
||||
public class TransactionOrderController { |
||||
|
||||
private final TransactionOrderService transactionOrderService; |
||||
|
||||
@GetMapping("/send/order") |
||||
public R sendOrder() { |
||||
transactionOrderService.testStreamTransaction(); |
||||
return R.ok("操作成功"); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package com.cloud.kicc.mq.service; |
||||
|
||||
/** |
||||
*<p> |
||||
* 订单事务消息 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/9 |
||||
*/ |
||||
public interface TransactionOrderService { |
||||
|
||||
/** |
||||
* 测试事务消息,使用rocketMQ模板rocketMQTemplate发生 |
||||
*/ |
||||
void testTransaction(); |
||||
|
||||
/** |
||||
* 通过spring-cloud-stream方式发送消息 |
||||
* 注意配置spring.cloud.stream.rocketmq.bindings.order-output.producer.transactional=true |
||||
*/ |
||||
void testStreamTransaction(); |
||||
} |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
package com.cloud.kicc.mq.service.impl; |
||||
|
||||
import com.cloud.kicc.common.rocketmq.channel.KiccSource; |
||||
import com.cloud.kicc.mq.service.SmsService; |
||||
import lombok.AllArgsConstructor; |
||||
import org.springframework.messaging.support.MessageBuilder; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
*<p> |
||||
* 发送短信实现类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/9 |
||||
*/ |
||||
@Service |
||||
@AllArgsConstructor |
||||
public class SmsServiceImpl implements SmsService { |
||||
|
||||
private final KiccSource source; |
||||
|
||||
@Override |
||||
public void sendSms(String message) { |
||||
source.smsOutput().send(MessageBuilder.withPayload(message).build()); |
||||
} |
||||
} |
@ -0,0 +1,80 @@
@@ -0,0 +1,80 @@
|
||||
package com.cloud.kicc.mq.service.impl; |
||||
|
||||
import com.cloud.kicc.common.rocketmq.channel.KiccSource; |
||||
import com.cloud.kicc.common.rocketmq.constant.MessageConstant; |
||||
import com.cloud.kicc.common.rocketmq.entity.Order; |
||||
import com.cloud.kicc.mq.service.TransactionOrderService; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.apache.rocketmq.spring.core.RocketMQTemplate; |
||||
import org.apache.rocketmq.spring.support.RocketMQHeaders; |
||||
import org.springframework.messaging.support.MessageBuilder; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.math.BigDecimal; |
||||
import java.time.LocalDateTime; |
||||
import java.util.UUID; |
||||
|
||||
/** |
||||
*<p> |
||||
* 订单事务消息实现 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/9 |
||||
*/ |
||||
@Slf4j |
||||
@Service |
||||
@AllArgsConstructor |
||||
public class TransactionOrderServiceImpl implements TransactionOrderService { |
||||
|
||||
private final RocketMQTemplate rocketMQTemplate; |
||||
|
||||
private final KiccSource kiccSource; |
||||
|
||||
/** |
||||
* 这里消息发送只是half发送, |
||||
* 后面消息队列中half成功后,在TestTransactionListener中的executeLocalTransaction的方法中决定是否要提交本地事务 |
||||
*/ |
||||
@Override |
||||
public void testTransaction() { |
||||
|
||||
Order order = new Order().setId(1L) |
||||
.setGoodsId(100L) |
||||
.setGoodsPrice(BigDecimal.valueOf(100.00)) |
||||
.setTradeId(100L) |
||||
.setNumber(2) |
||||
.setCreateTime(LocalDateTime.now()); |
||||
|
||||
// 事务id
|
||||
String transactionId = UUID.randomUUID().toString(); |
||||
rocketMQTemplate.sendMessageInTransaction(MessageConstant.ORDER_BINDER_GROUP, |
||||
MessageConstant.ORDER_MESSAGE_OUTPUT, |
||||
MessageBuilder.withPayload(order) |
||||
.setHeader(RocketMQHeaders.TRANSACTION_ID, transactionId) |
||||
.setHeader("share_id", 3).build(), |
||||
4L); |
||||
|
||||
log.info("half消息发送成功"); |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void testStreamTransaction() { |
||||
|
||||
Order order = new Order().setId(1L) |
||||
.setGoodsId(100L) |
||||
.setGoodsPrice(BigDecimal.valueOf(100.00)) |
||||
.setTradeId(100L) |
||||
.setNumber(2) |
||||
.setCreateTime(LocalDateTime.now()); |
||||
// 事务id
|
||||
String transactionId = UUID.randomUUID().toString(); |
||||
kiccSource.orderOutput().send( |
||||
MessageBuilder.withPayload(order) |
||||
.setHeader(RocketMQHeaders.TRANSACTION_ID, transactionId) |
||||
.setHeader("share_id", 3).build() |
||||
); |
||||
log.info("half消息发送成功"); |
||||
} |
||||
} |
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
server: |
||||
port: 40002 |
||||
spring: |
||||
application: |
||||
name: @artifactId@ |
||||
cloud: |
||||
stream: |
||||
rocketmq: |
||||
# rocketmq-binder配置项,对应RocketMQBinderConfigurationProperties类 |
||||
binder: |
||||
name-server: 127.0.0.1:9876 |
||||
# 也可以配置密码,可以设置开启acl,目前只是在内网使用没开,后期有这方面需求在开启 |
||||
# access-key: |
||||
# secret-key: |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-demo</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-common-demo-mq</artifactId> |
||||
|
||||
<description>kicc 统一消息中心 演示</description> |
||||
<packaging>pom</packaging> |
||||
|
||||
<modules> |
||||
<module>kicc-message-consumer</module> |
||||
<module>kicc-message-producer</module> |
||||
</modules> |
||||
|
||||
</project> |
@ -0,0 +1,72 @@
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-demo-seata</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-seata-order</artifactId> |
||||
<packaging>jar</packaging> |
||||
|
||||
<description>分布式解决方案演示-订单服务</description> |
||||
|
||||
<dependencies> |
||||
<!--undertow容器--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-undertow</artifactId> |
||||
</dependency> |
||||
<!--seata分布式事务解决方案--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-seata</artifactId> |
||||
</dependency> |
||||
<!--数据服务核心包--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-data</artifactId> |
||||
</dependency> |
||||
<!--注册中心客户端--> |
||||
<dependency> |
||||
<groupId>com.alibaba.cloud</groupId> |
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>io.fabric8</groupId> |
||||
<artifactId>docker-maven-plugin</artifactId> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
</plugin> |
||||
</plugins> |
||||
<resources> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>true</filtering> |
||||
<excludes> |
||||
<exclude>**/*.xlsx</exclude> |
||||
<exclude>**/*.xls</exclude> |
||||
</excludes> |
||||
</resource> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>false</filtering> |
||||
<includes> |
||||
<include>**/*.xlsx</include> |
||||
<include>**/*.xls</include> |
||||
</includes> |
||||
</resource> |
||||
</resources> |
||||
</build> |
||||
|
||||
</project> |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
package com.cloud.kicc.order; |
||||
|
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
|
||||
/** |
||||
*<p> |
||||
* Seata订单启动类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@SpringBootApplication |
||||
public class SeataOrderServer { |
||||
|
||||
public static void main(String[] args) { |
||||
SpringApplication.run(SeataOrderServer.class, args); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
package com.cloud.kicc.order.controller; |
||||
|
||||
import com.cloud.kicc.order.entity.Order; |
||||
import com.cloud.kicc.order.service.OrderService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.transaction.annotation.Transactional; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
*<p> |
||||
* 订单控制器类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
public class OrderController { |
||||
private final OrderService orderService; |
||||
|
||||
@Transactional(rollbackFor = Exception.class) |
||||
@PostMapping("/order") |
||||
public void createOrder() { |
||||
Order order = new Order(); |
||||
int a = 1 / 0; |
||||
order.setMoney(100); |
||||
orderService.save(order); |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
package com.cloud.kicc.order.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
import lombok.experimental.Accessors; |
||||
|
||||
/** |
||||
*<p> |
||||
* 订单实体类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@Accessors(chain = true) |
||||
@TableName("demo_seata_order") |
||||
public class Order { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId |
||||
private String id; |
||||
|
||||
private Integer money; |
||||
|
||||
} |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
package com.cloud.kicc.order.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.order.entity.Order; |
||||
|
||||
/** |
||||
*<p> |
||||
* 订单mapper |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
public interface OrderMapper extends BaseMapper<Order> { |
||||
} |
@ -0,0 +1,16 @@
@@ -0,0 +1,16 @@
|
||||
package com.cloud.kicc.order.service; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.cloud.kicc.order.entity.Order; |
||||
|
||||
/** |
||||
*<p> |
||||
* 订单业务接口类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
public interface OrderService extends IService<Order> { |
||||
} |
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
package com.cloud.kicc.order.service.impl; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.cloud.kicc.order.entity.Order; |
||||
import com.cloud.kicc.order.mapper.OrderMapper; |
||||
import com.cloud.kicc.order.service.OrderService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
*<p> |
||||
* 订单业务实现类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@Service |
||||
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService { |
||||
} |
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
server: |
||||
port: 60001 |
||||
spring: |
||||
application: |
||||
name: @artifactId@ |
||||
cloud: |
||||
nacos: |
||||
discovery: |
||||
server-addr: ${NACOS_HOST:101.42.231.100}:${NACOS_PORT:8848} |
||||
namespace: ${seata.registry.nacos.namespace} |
||||
group: ${seata.registry.nacos.group} |
||||
datasource: |
||||
# 数据源采用spring-boot自带kari,轻量化 |
||||
type: com.zaxxer.hikari.HikariDataSource |
||||
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
username: ${MYSQL_USER:root} |
||||
password: ${MYSQL_PWD:root} |
||||
url: jdbc:mysql://${MYSQL_HOST:127.0.0.1}:${MYSQL_PORT:3306}/${MYSQL_DB:kicc}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true |
||||
|
||||
# mybatis-plus配置 |
||||
mybatis-plus: |
||||
mapper-locations: |
||||
- classpath:mapper/**/*.xml |
||||
typeAliasesPackage: com.cloud.kicc.**.entity |
||||
global-config: |
||||
# 不显示banner |
||||
banner: false |
||||
# 数据库相关配置 |
||||
db-config: |
||||
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; |
||||
id-type: assign_id |
||||
configuration: |
||||
call-setters-on-nulls: true |
||||
|
||||
# 日志配置 |
||||
logging: |
||||
level: |
||||
com.cloud.kicc: debug |
||||
org.springframework: WARN |
||||
org.spring.springboot.dao: debug |
@ -0,0 +1,71 @@
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-demo-seata</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-seata-point</artifactId> |
||||
<packaging>jar</packaging> |
||||
|
||||
<description>分布式解决方案演示-积分服务</description> |
||||
|
||||
<dependencies> |
||||
<!--undertow容器--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-undertow</artifactId> |
||||
</dependency> |
||||
<!--seata分布式事务解决方案--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-seata</artifactId> |
||||
</dependency> |
||||
<!--数据服务核心包--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-data</artifactId> |
||||
</dependency> |
||||
<!--注册中心客户端--> |
||||
<dependency> |
||||
<groupId>com.alibaba.cloud</groupId> |
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>io.fabric8</groupId> |
||||
<artifactId>docker-maven-plugin</artifactId> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
</plugin> |
||||
</plugins> |
||||
<resources> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>true</filtering> |
||||
<excludes> |
||||
<exclude>**/*.xlsx</exclude> |
||||
<exclude>**/*.xls</exclude> |
||||
</excludes> |
||||
</resource> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>false</filtering> |
||||
<includes> |
||||
<include>**/*.xlsx</include> |
||||
<include>**/*.xls</include> |
||||
</includes> |
||||
</resource> |
||||
</resources> |
||||
</build> |
||||
|
||||
</project> |
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
package com.cloud.kicc.point; |
||||
|
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
|
||||
/** |
||||
*<p> |
||||
* Seata积分启动类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@SpringBootApplication |
||||
public class SeataPointServer { |
||||
|
||||
public static void main(String[] args) { |
||||
SpringApplication.run(SeataPointServer.class, args); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
package com.cloud.kicc.point.controller; |
||||
|
||||
import com.cloud.kicc.point.entity.Point; |
||||
import com.cloud.kicc.point.service.PointService; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.transaction.annotation.Transactional; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
*<p> |
||||
* 积分控制器类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
public class PointController { |
||||
|
||||
private final PointService pointService; |
||||
|
||||
/** |
||||
* 创建积分 |
||||
*/ |
||||
@Transactional(rollbackFor = Exception.class) |
||||
@PostMapping("/point") |
||||
public void setPoint() { |
||||
Point point = new Point(); |
||||
point.setCount(10); |
||||
pointService.saveOrUpdate(point); |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
package com.cloud.kicc.point.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
import lombok.experimental.Accessors; |
||||
|
||||
/** |
||||
*<p> |
||||
* 积分实体类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@Accessors(chain = true) |
||||
@TableName("demo_seata_point") |
||||
public class Point { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
@TableId |
||||
private String id; |
||||
|
||||
private Integer count; |
||||
|
||||
} |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
package com.cloud.kicc.point.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.point.entity.Point; |
||||
|
||||
/** |
||||
*<p> |
||||
* 积分mapper类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
public interface PointMapper extends BaseMapper<Point> { |
||||
} |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
package com.cloud.kicc.point.service; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.cloud.kicc.point.entity.Point; |
||||
|
||||
/** |
||||
*<p> |
||||
* 积分业务接口类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
public interface PointService extends IService<Point> { |
||||
} |
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
package com.cloud.kicc.point.service.impl; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.cloud.kicc.point.entity.Point; |
||||
import com.cloud.kicc.point.mapper.PointMapper; |
||||
import com.cloud.kicc.point.service.PointService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
*<p> |
||||
* 积分业务实现类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@Service |
||||
public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements PointService { |
||||
} |
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
server: |
||||
port: 60002 |
||||
spring: |
||||
application: |
||||
name: @artifactId@ |
||||
cloud: |
||||
nacos: |
||||
discovery: |
||||
server-addr: ${NACOS_HOST:101.42.231.100}:${NACOS_PORT:8848} |
||||
namespace: ${seata.registry.nacos.namespace} |
||||
group: ${seata.registry.nacos.group} |
||||
datasource: |
||||
# 数据源采用spring-boot自带kari,轻量化 |
||||
type: com.zaxxer.hikari.HikariDataSource |
||||
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
username: ${MYSQL_USER:root} |
||||
password: ${MYSQL_PWD:root} |
||||
url: jdbc:mysql://${MYSQL_HOST:127.0.0.1}:${MYSQL_PORT:3306}/${MYSQL_DB:kicc}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true |
||||
|
||||
# mybatis-plus配置 |
||||
mybatis-plus: |
||||
mapper-locations: |
||||
- classpath:mapper/**/*.xml |
||||
typeAliasesPackage: com.cloud.kicc.**.entity |
||||
global-config: |
||||
# 不显示banner |
||||
banner: false |
||||
# 数据库相关配置 |
||||
db-config: |
||||
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; |
||||
id-type: assign_id |
||||
configuration: |
||||
call-setters-on-nulls: true |
||||
|
||||
# 日志配置 |
||||
logging: |
||||
level: |
||||
com.cloud.kicc: debug |
||||
org.springframework: WARN |
||||
org.spring.springboot.dao: debug |
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-demo-seata</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-seata-user</artifactId> |
||||
<packaging>jar</packaging> |
||||
|
||||
<description>分布式解决方案演示-用户服务</description> |
||||
|
||||
<dependencies> |
||||
<!--undertow容器--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-undertow</artifactId> |
||||
</dependency> |
||||
<!--seata分布式事务解决方案--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-seata</artifactId> |
||||
</dependency> |
||||
<!--feign远程调用--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-feign</artifactId> |
||||
</dependency> |
||||
<!--数据服务核心包--> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-data</artifactId> |
||||
</dependency> |
||||
<!--注册中心客户端--> |
||||
<dependency> |
||||
<groupId>com.alibaba.cloud</groupId> |
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>io.fabric8</groupId> |
||||
<artifactId>docker-maven-plugin</artifactId> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
</plugin> |
||||
</plugins> |
||||
<resources> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>true</filtering> |
||||
<excludes> |
||||
<exclude>**/*.xlsx</exclude> |
||||
<exclude>**/*.xls</exclude> |
||||
</excludes> |
||||
</resource> |
||||
<resource> |
||||
<directory>src/main/resources</directory> |
||||
<filtering>false</filtering> |
||||
<includes> |
||||
<include>**/*.xlsx</include> |
||||
<include>**/*.xls</include> |
||||
</includes> |
||||
</resource> |
||||
</resources> |
||||
</build> |
||||
|
||||
</project> |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package com.cloud.kicc.user; |
||||
|
||||
import com.cloud.kicc.common.feign.annotation.EnableKiccFeignClients; |
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
|
||||
/** |
||||
*<p> |
||||
* Seata用户启动类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@SpringBootApplication |
||||
@EnableKiccFeignClients |
||||
public class SeataUserServer { |
||||
|
||||
public static void main(String[] args) { |
||||
SpringApplication.run(SeataUserServer.class, args); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
package com.cloud.kicc.user.controller; |
||||
|
||||
import com.cloud.kicc.common.core.api.R; |
||||
import com.cloud.kicc.user.entity.User; |
||||
import com.cloud.kicc.user.feign.RemoteOrderService; |
||||
import com.cloud.kicc.user.feign.RemotePointService; |
||||
import com.cloud.kicc.user.service.UserService; |
||||
import io.seata.spring.annotation.GlobalTransactional; |
||||
import io.seata.spring.boot.autoconfigure.properties.client.ServiceProperties; |
||||
import io.seata.spring.boot.autoconfigure.properties.registry.RegistryProperties; |
||||
import lombok.RequiredArgsConstructor; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
*<p> |
||||
* 用户控制器 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@RestController |
||||
@RequiredArgsConstructor |
||||
public class UserController { |
||||
|
||||
private final UserService userService; |
||||
private final RemoteOrderService remoteOrderService; |
||||
private final RemotePointService remotePointService; |
||||
|
||||
private final RegistryProperties registryProperties; |
||||
private final ServiceProperties serviceProperties; |
||||
|
||||
@GlobalTransactional(rollbackFor = Exception.class) |
||||
@PostMapping("/user") |
||||
public R createUser(@RequestBody User user) { |
||||
System.out.println(registryProperties); |
||||
System.out.println(serviceProperties); |
||||
userService.saveOrUpdate(user); |
||||
remotePointService.createPoint(); |
||||
remoteOrderService.createOrder(); |
||||
return R.ok(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
package com.cloud.kicc.user.entity; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
import lombok.experimental.Accessors; |
||||
|
||||
/** |
||||
*<p> |
||||
* 用户表 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@Accessors(chain = true) |
||||
@TableName("demo_seata_user") |
||||
public class User { |
||||
|
||||
@TableId |
||||
private String id; |
||||
|
||||
private String name; |
||||
|
||||
private Integer age; |
||||
|
||||
} |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
package com.cloud.kicc.user.feign; |
||||
|
||||
import com.cloud.kicc.common.core.constant.ServiceNameConstants; |
||||
import org.springframework.cloud.openfeign.FeignClient; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
||||
/** |
||||
*<p> |
||||
* 远程调用订单接口 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@FeignClient(contextId = "remoteOrderService" , value = ServiceNameConstants.SEATA_ORDER_SERVICE) |
||||
public interface RemoteOrderService { |
||||
|
||||
/** 创建订单 */ |
||||
@PostMapping("/order") |
||||
void createOrder(); |
||||
|
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package com.cloud.kicc.user.feign; |
||||
|
||||
import com.cloud.kicc.common.core.constant.ServiceNameConstants; |
||||
import org.springframework.cloud.openfeign.FeignClient; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
||||
/** |
||||
*<p> |
||||
* 远程调用积分接口 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@FeignClient(contextId = "remotePointService" , value = ServiceNameConstants.SEATA_POINT_SERVICE) |
||||
public interface RemotePointService { |
||||
|
||||
/** 创建积分 */ |
||||
@PostMapping("/point") |
||||
void createPoint(); |
||||
|
||||
} |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
package com.cloud.kicc.user.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.cloud.kicc.user.entity.User; |
||||
|
||||
/** |
||||
*<p> |
||||
* 用户mapper类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
public interface UserMapper extends BaseMapper<User> { |
||||
} |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
package com.cloud.kicc.user.service; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.cloud.kicc.user.entity.User; |
||||
|
||||
/** |
||||
*<p> |
||||
* 用户业务类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
public interface UserService extends IService<User> { |
||||
} |
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
package com.cloud.kicc.user.service.impl; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.cloud.kicc.user.entity.User; |
||||
import com.cloud.kicc.user.mapper.UserMapper; |
||||
import com.cloud.kicc.user.service.UserService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
*<p> |
||||
* 用户业务实现类 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/3/11 |
||||
*/ |
||||
@Service |
||||
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { |
||||
} |
@ -0,0 +1,71 @@
@@ -0,0 +1,71 @@
|
||||
server: |
||||
port: 60003 |
||||
|
||||
spring: |
||||
application: |
||||
name: @artifactId@ |
||||
cloud: |
||||
nacos: |
||||
discovery: |
||||
server-addr: ${NACOS_HOST:101.42.231.100}:${NACOS_PORT:8848} |
||||
namespace: ${seata.registry.nacos.namespace} |
||||
group: ${seata.registry.nacos.group} |
||||
sentinel: |
||||
filter: |
||||
# 关闭内部拦截,与spring cloud 2021有不兼容的问题 |
||||
enabled: false |
||||
datasource: |
||||
# 数据源采用spring-boot自带kari,轻量化 |
||||
type: com.zaxxer.hikari.HikariDataSource |
||||
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
username: ${MYSQL_USER:root} |
||||
password: ${MYSQL_PWD:root} |
||||
url: jdbc:mysql://${MYSQL_HOST:127.0.0.1}:${MYSQL_PORT:3306}/${MYSQL_DB:kicc}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true |
||||
|
||||
# feign配置 |
||||
feign: |
||||
# 开启对sentinel的支持能提供接口调用自动熔断降级的功能 |
||||
sentinel: |
||||
enabled: true |
||||
# 开启okhttp |
||||
okhttp: |
||||
enabled: true |
||||
# 关闭feign默认使用的jdk中的HttpURLConnection请求性能太低,集成别的组件来替换掉 |
||||
httpclient: |
||||
enabled: false |
||||
client: |
||||
config: |
||||
default: |
||||
# 连接超时时间 |
||||
connectTimeout: 10000 |
||||
# 读超时时间 |
||||
readTimeout: 10000 |
||||
compression: |
||||
# 开启请求 GZIP 压缩,加快传输速度 |
||||
request: |
||||
enabled: true |
||||
# 开启响应 GZIP 压缩,加快传输速度 |
||||
response: |
||||
enabled: true |
||||
|
||||
# mybatis-plus配置 |
||||
mybatis-plus: |
||||
mapper-locations: |
||||
- classpath:mapper/**/*.xml |
||||
typeAliasesPackage: com.cloud.kicc.**.entity |
||||
global-config: |
||||
# 不显示banner |
||||
banner: false |
||||
# 数据库相关配置 |
||||
db-config: |
||||
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; |
||||
id-type: assign_id |
||||
configuration: |
||||
call-setters-on-nulls: true |
||||
|
||||
# 日志配置 |
||||
logging: |
||||
level: |
||||
com.cloud.kicc: debug |
||||
org.springframework: WARN |
||||
org.spring.springboot.dao: debug |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-demo</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-common-demo-seata</artifactId> |
||||
|
||||
<description>kicc 阿里巴巴分布式事务解决方案 演示</description> |
||||
<packaging>pom</packaging> |
||||
|
||||
<modules> |
||||
<module>kicc-seata-order</module> |
||||
<module>kicc-seata-point</module> |
||||
<module>kicc-seata-user</module> |
||||
</modules> |
||||
|
||||
</project> |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-common-demo</artifactId> |
||||
|
||||
<description>kicc-组件使用案列</description> |
||||
<packaging>pom</packaging> |
||||
|
||||
<modules> |
||||
<module>kicc-common-demo-mq</module> |
||||
<module>kicc-common-demo-seata</module> |
||||
</modules> |
||||
|
||||
</project> |
@ -0,0 +1,215 @@
@@ -0,0 +1,215 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
|
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-bom</artifactId> |
||||
<version>1.0.0</version> |
||||
<packaging>pom</packaging> |
||||
|
||||
<name>kicc-common-bom</name> |
||||
<description>全局jar BOM标准定义(可以设置工程内部的jar的标准,也可以设置第三方依赖jar的标准)</description> |
||||
|
||||
<properties> |
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
<maven.compiler.source>1.8</maven.compiler.source> |
||||
<maven.compiler.target>1.8</maven.compiler.target> |
||||
<kicc.common.version>${project.version}</kicc.common.version> |
||||
<spring-boot.version>2.6.3</spring-boot.version> |
||||
<security.oauth.version>2.1.8.RELEASE</security.oauth.version> |
||||
<cloud.stream.version>3.0.13.RELEASE</cloud.stream.version> |
||||
<alibaba-seata.version>2021.0.1.0</alibaba-seata.version> |
||||
<log4j2.version>2.17.1</log4j2.version> |
||||
<fastjson.version>1.2.78</fastjson.version> |
||||
<swagger.core.version>1.5.24</swagger.core.version> |
||||
<mybatis-plus.version>3.5.1</mybatis-plus.version> |
||||
<nacos.version>2.0.3</nacos.version> |
||||
<sms.version>1.2.0</sms.version> |
||||
<git.commit.plugin>4.9.9</git.commit.plugin> |
||||
<spring.checkstyle.plugin>0.0.29</spring.checkstyle.plugin> |
||||
<captcha.version>2.2.1</captcha.version> |
||||
<oss.version>1.0.3</oss.version> |
||||
<excel.version>1.1.1</excel.version> |
||||
</properties> |
||||
|
||||
<!-- 定义全局jar版本,模块使用需要再次引入但不用写版本号--> |
||||
<dependencyManagement> |
||||
<dependencies> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-core</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-data</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-datasource</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-feign</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-rocketmq</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-seata</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-job</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-log</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-mock</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-security</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common-swagger</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-system-api</artifactId> |
||||
<version>${kicc.common.version}</version> |
||||
</dependency> |
||||
<!--最新版本2021.1 com.alibaba.cloud.seata.rest.SeataRestTemplateAutoConfiguration有自调Bean问题 |
||||
与当前 spring cloud 2021 不兼容,更换2021.0.1.0兼容版本--> |
||||
<dependency> |
||||
<groupId>com.alibaba.cloud</groupId> |
||||
<artifactId>spring-cloud-starter-alibaba-seata</artifactId> |
||||
<version>${alibaba-seata.version}</version> |
||||
</dependency> |
||||
<!--稳定版本,目前最新版采用函数编程经过测试rocketMQ消费者接受消息收不到, |
||||
目前最新版适配还存在一定的问题,替代spring-cloud-starter-stream-rocketmq2021.1 bom内置--> |
||||
<dependency> |
||||
<groupId>org.springframework.cloud</groupId> |
||||
<artifactId>spring-cloud-stream</artifactId> |
||||
<version>${cloud.stream.version}</version> |
||||
</dependency> |
||||
<!--稳定版本,替代spring security2.6.3 bom内置--> |
||||
<dependency> |
||||
<groupId>org.springframework.security.oauth.boot</groupId> |
||||
<artifactId>spring-security-oauth2-autoconfigure</artifactId> |
||||
<version>${security.oauth.version}</version> |
||||
</dependency> |
||||
<!--swagger 最新依赖内置版本--> |
||||
<dependency> |
||||
<groupId>io.swagger</groupId> |
||||
<artifactId>swagger-models</artifactId> |
||||
<version>${swagger.core.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>io.swagger</groupId> |
||||
<artifactId>swagger-annotations</artifactId> |
||||
<version>${swagger.core.version}</version> |
||||
</dependency> |
||||
<!--fastjson 版本--> |
||||
<dependency> |
||||
<groupId>com.alibaba</groupId> |
||||
<artifactId>fastjson</artifactId> |
||||
<version>${fastjson.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.alibaba.nacos</groupId> |
||||
<artifactId>nacos-client</artifactId> |
||||
<version>${nacos.version}</version> |
||||
</dependency> |
||||
<!--阿里云短信服务--> |
||||
<dependency> |
||||
<groupId>cn.javaer.aliyun</groupId> |
||||
<artifactId>aliyun-spring-boot-starter-sms</artifactId> |
||||
<version>${sms.version}</version> |
||||
</dependency> |
||||
<!--orm mybatis-plus相关--> |
||||
<dependency> |
||||
<groupId>com.baomidou</groupId> |
||||
<artifactId>mybatis-plus-boot-starter</artifactId> |
||||
<version>${mybatis-plus.version}</version> |
||||
</dependency> |
||||
<!--web 模块--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-web</artifactId> |
||||
<version>${spring-boot.version}</version> |
||||
<exclusions> |
||||
<!--排除tomcat依赖,使用undertow容器--> |
||||
<exclusion> |
||||
<artifactId>spring-boot-starter-tomcat</artifactId> |
||||
<groupId>org.springframework.boot</groupId> |
||||
</exclusion> |
||||
</exclusions> |
||||
</dependency> |
||||
<!--指定 log4j 版本--> |
||||
<dependency> |
||||
<groupId>org.apache.logging.log4j</groupId> |
||||
<artifactId>log4j-bom</artifactId> |
||||
<version>${log4j2.version}</version> |
||||
<type>pom</type> |
||||
<scope>import</scope> |
||||
</dependency> |
||||
<!--oss文件管理,采用S3协议封装,兼容阿里云OSS,腾讯云COS,七牛云,京东云,minio 等不需要引入对应厂商的SDK就可以使用厂商的OSS服务 |
||||
代码开源地址: https://github.com/pig-mesh/oss-spring-boot-starter --> |
||||
<dependency> |
||||
<groupId>com.pig4cloud.plugin</groupId> |
||||
<artifactId>oss-spring-boot-starter</artifactId> |
||||
<version>${oss.version}</version> |
||||
</dependency> |
||||
<!-- 验证码处理支持很多种验证码风格基于google的aviator计算引擎实现,性能比较高效 |
||||
代码开源地址: https://github.com/pig-mesh/easy-captcha --> |
||||
<dependency> |
||||
<groupId>com.pig4cloud.plugin</groupId> |
||||
<artifactId>captcha-spring-boot-starter</artifactId> |
||||
<version>${captcha.version}</version> |
||||
</dependency> |
||||
<!-- excel 导入导出处理,基于alibaba的EasyExcel实现,读取大文件不怎么吃内存,性能比较高效 |
||||
代码开源地址: https://github.com/pig-mesh/excel-spring-boot-starter --> |
||||
<dependency> |
||||
<groupId>com.pig4cloud.excel</groupId> |
||||
<artifactId>excel-spring-boot-starter</artifactId> |
||||
<version>${excel.version}</version> |
||||
</dependency> |
||||
</dependencies> |
||||
</dependencyManagement> |
||||
|
||||
<build> |
||||
<plugins> |
||||
<!--maven打包插件(打jar包会在classes生成git.properties文件包含了目前git相关信息方便查看git环境错误)--> |
||||
<plugin> |
||||
<groupId>io.github.git-commit-id</groupId> |
||||
<artifactId>git-commit-id-maven-plugin</artifactId> |
||||
<version>${git.commit.plugin}</version> |
||||
</plugin> |
||||
<!--代码格式插件,默认使用spring 规则,跟前端EsLine一样保证代码规范--> |
||||
<plugin> |
||||
<groupId>io.spring.javaformat</groupId> |
||||
<artifactId>spring-javaformat-maven-plugin</artifactId> |
||||
<version>${spring.checkstyle.plugin}</version> |
||||
</plugin> |
||||
</plugins> |
||||
</build> |
||||
|
||||
</project> |
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.cloud</groupId> |
||||
<artifactId>kicc-common</artifactId> |
||||
<version>1.0.0</version> |
||||
</parent> |
||||
|
||||
<artifactId>kicc-common-core</artifactId> |
||||
<packaging>jar</packaging> |
||||
|
||||
<description>kicc 公共工具类核心包</description> |
||||
|
||||
<!--考虑这个作为一个单模块使用,后续引入依赖需要注意低耦合--> |
||||
<dependencies> |
||||
<!--hutool--> |
||||
<dependency> |
||||
<groupId>cn.hutool</groupId> |
||||
<artifactId>hutool-all</artifactId> |
||||
<version>${hutool.version}</version> |
||||
</dependency> |
||||
<!--server-api--> |
||||
<dependency> |
||||
<groupId>javax.servlet</groupId> |
||||
<artifactId>javax.servlet-api</artifactId> |
||||
</dependency> |
||||
<!--hibernate-validator--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-validation</artifactId> |
||||
</dependency> |
||||
<!--json模块--> |
||||
<dependency> |
||||
<groupId>org.springframework.boot</groupId> |
||||
<artifactId>spring-boot-starter-json</artifactId> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>org.springframework</groupId> |
||||
<artifactId>spring-webmvc</artifactId> |
||||
<scope>provided</scope> |
||||
</dependency> |
||||
<!--swagger 依赖支持注解--> |
||||
<dependency> |
||||
<groupId>io.swagger</groupId> |
||||
<artifactId>swagger-annotations</artifactId> |
||||
</dependency> |
||||
</dependencies> |
||||
</project> |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
package com.cloud.kicc.common.core.annotation; |
||||
|
||||
import com.cloud.kicc.common.core.config.JacksonAutoConfiguration; |
||||
import org.springframework.context.annotation.Import; |
||||
|
||||
import java.lang.annotation.*; |
||||
|
||||
/** |
||||
*<p> |
||||
* 激活 Jackson 自动转换配置 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/19 |
||||
*/ |
||||
@Target({ ElementType.TYPE }) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Documented |
||||
@Inherited |
||||
@Import({ JacksonAutoConfiguration.class }) |
||||
public @interface EnableKiccJacksonAutoConvert { |
||||
} |
@ -0,0 +1,114 @@
@@ -0,0 +1,114 @@
|
||||
package com.cloud.kicc.common.core.api; |
||||
|
||||
import io.swagger.annotations.ApiModelProperty; |
||||
import lombok.*; |
||||
import lombok.experimental.Accessors; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.LinkedHashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
*<p> |
||||
* 响应信息主体 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
@ToString |
||||
@NoArgsConstructor |
||||
@AllArgsConstructor |
||||
@Accessors(chain = true) |
||||
public class R<T> implements Serializable { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
/** |
||||
* 成功标记 |
||||
*/ |
||||
private static Integer SUCCESS = 200; |
||||
/** |
||||
* 失败标记 |
||||
*/ |
||||
private static Integer FAIL = 500; |
||||
/** |
||||
* 未认证 |
||||
*/ |
||||
private static Integer UNAUTH = 401; |
||||
|
||||
@Getter |
||||
@Setter |
||||
@ApiModelProperty("状态编码") |
||||
private int code; |
||||
|
||||
@Getter |
||||
@Setter |
||||
@ApiModelProperty("提示消息") |
||||
private String msg; |
||||
|
||||
@Getter |
||||
@Setter |
||||
@ApiModelProperty("结果集数量统计") |
||||
private long total; |
||||
|
||||
@Getter |
||||
@Setter |
||||
@ApiModelProperty("结果集") |
||||
private T data; |
||||
|
||||
public static <T> R<T> ok() { |
||||
return restResult(null, SUCCESS, "成功"); |
||||
} |
||||
|
||||
public static <T> R<T> ok(T data) { |
||||
return restResult(data, SUCCESS, "成功"); |
||||
} |
||||
|
||||
public static <T> R<T> ok(T data, String msg) { |
||||
return restResult(data, SUCCESS, msg); |
||||
} |
||||
|
||||
public static <T> R<T> ok(T data, long total) { |
||||
return restData(data, SUCCESS, null, total); |
||||
} |
||||
|
||||
public static <T> R<T> error() { |
||||
return restResult(null, FAIL, "失败"); |
||||
} |
||||
|
||||
public static <T> R<T> error(String msg) { |
||||
return restResult(null, FAIL, msg); |
||||
} |
||||
|
||||
public static <T> R<T> error(T data) { |
||||
return restResult(data, FAIL, null); |
||||
} |
||||
|
||||
public static <T> R<T> error(T data, String msg) { |
||||
return restResult(data, FAIL, msg); |
||||
} |
||||
|
||||
public static <T> R<T> unAuth(String msg) { |
||||
return restResult(null, UNAUTH, msg); |
||||
} |
||||
|
||||
|
||||
private static <T> R<T> restResult(T data, int code, String msg) { |
||||
R<T> apiResult = new R<>(); |
||||
apiResult.setCode(code); |
||||
apiResult.setData(data); |
||||
apiResult.setMsg(msg); |
||||
return apiResult; |
||||
} |
||||
|
||||
private static <T> R<T> restData(T data, int code, String msg, long total) { |
||||
R<T> apiData = new R<>(); |
||||
apiData.setCode(code); |
||||
apiData.setMsg(msg); |
||||
apiData.setTotal(total); |
||||
apiData.setData(data); |
||||
return apiData; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
package com.cloud.kicc.common.core.config; |
||||
|
||||
import cn.hutool.core.date.DatePattern; |
||||
import com.cloud.kicc.common.core.jackson.KiccJavaTimeModule; |
||||
import com.fasterxml.jackson.databind.ObjectMapper; |
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore; |
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; |
||||
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
|
||||
import java.time.ZoneId; |
||||
import java.util.Locale; |
||||
import java.util.TimeZone; |
||||
|
||||
/** |
||||
*<p> |
||||
* 配置全局JacksonConfig,影响mvc层的对象传输日期格式 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
@EnableAutoConfiguration |
||||
@Configuration(proxyBeanMethods = false) |
||||
@ConditionalOnClass(ObjectMapper.class) |
||||
@AutoConfigureBefore(org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration.class) |
||||
public class JacksonAutoConfiguration { |
||||
|
||||
@Bean |
||||
@ConditionalOnMissingBean |
||||
public Jackson2ObjectMapperBuilderCustomizer customizer() { |
||||
return builder -> { |
||||
builder.locale(Locale.CHINA); |
||||
builder.timeZone(TimeZone.getTimeZone(ZoneId.systemDefault())); |
||||
// 针对于Date类型,文本格式化,已经实现前端返回时间戳
|
||||
builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN); |
||||
// 解决返回给前端的Long类型数据失去精度,将Long转换为String
|
||||
builder.serializerByType(Long.class, ToStringSerializer.instance); |
||||
// 针对于JDK新时间类,序列化时带有T的问题,自定义格式化字符串
|
||||
builder.modules(new KiccJavaTimeModule()); |
||||
}; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
package com.cloud.kicc.common.core.config; |
||||
|
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.web.client.RestTemplate; |
||||
|
||||
/** |
||||
*<p> |
||||
* Rest 配置 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
@Configuration(proxyBeanMethods = false) |
||||
public class RestTemplateConfiguration { |
||||
|
||||
@Bean |
||||
public RestTemplate restTemplate() { |
||||
return new RestTemplate(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
package com.cloud.kicc.common.core.config; |
||||
|
||||
import cn.hutool.core.date.DatePattern; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.format.FormatterRegistry; |
||||
import org.springframework.format.datetime.standard.DateTimeFormatterRegistrar; |
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; |
||||
|
||||
import java.time.format.DateTimeFormatter; |
||||
|
||||
import static org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type.SERVLET; |
||||
|
||||
/** |
||||
*<p> |
||||
* 全局DateTimeFormat |
||||
* 针对GET请求传入参数转换 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
@Configuration(proxyBeanMethods = false) |
||||
@ConditionalOnWebApplication(type = SERVLET) |
||||
public class WebMvcConfiguration implements WebMvcConfigurer { |
||||
|
||||
/** |
||||
* 增加GET请求参数中时间类型转换 {@link com.cloud.kicc.common.core.jackson.KiccJavaTimeModule} |
||||
* <ul> |
||||
* <li>HH:mm:ss -> LocalTime</li> |
||||
* <li>yyyy-MM-dd -> LocalDate</li> |
||||
* <li>yyyy-MM-dd HH:mm:ss -> LocalDateTime</li> |
||||
* </ul> |
||||
* @param registry |
||||
*/ |
||||
@Override |
||||
public void addFormatters(FormatterRegistry registry) { |
||||
DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar(); |
||||
registrar.setTimeFormatter(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)); |
||||
registrar.setDateFormatter(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); |
||||
registrar.setDateTimeFormatter(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)); |
||||
registrar.registerFormatters(registry); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
package com.cloud.kicc.common.core.constant; |
||||
|
||||
/** |
||||
*<p> |
||||
* 应用前缀 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/24 |
||||
*/ |
||||
public interface AppConstants { |
||||
|
||||
String APP_SYSTEM = "/system"; |
||||
|
||||
String APP_MONITOR = "/monitor"; |
||||
|
||||
} |
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
package com.cloud.kicc.common.core.constant; |
||||
|
||||
/** |
||||
*<p> |
||||
* 缓存的key 常量 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
public interface CacheConstants { |
||||
|
||||
/** |
||||
* oauth 缓存前缀 |
||||
*/ |
||||
String OAUTH_ACCESS = ServiceNameConstants.AUTH_SERVICE + ":access:"; |
||||
|
||||
/** |
||||
* oauth 缓存令牌前缀 |
||||
*/ |
||||
String OAUTH_TOKEN = ServiceNameConstants.AUTH_SERVICE + ":token:"; |
||||
|
||||
/** |
||||
* 验证码前缀 |
||||
*/ |
||||
String VERIFICATION_CODE = ServiceNameConstants.SYSTEM_SERVICE + ":verification_code:"; |
||||
|
||||
/** |
||||
* oauth 客户端信息缓存 |
||||
*/ |
||||
String OAUTH_CLIENT_DETAILS = ServiceNameConstants.AUTH_SERVICE + ":client_details"; |
||||
|
||||
/** |
||||
* 菜单信息缓存 |
||||
*/ |
||||
String MENU_DETAILS = ServiceNameConstants.AUTH_SERVICE + ":menu_details"; |
||||
|
||||
/** |
||||
* 用户信息缓存 |
||||
*/ |
||||
String USER_DETAILS = ServiceNameConstants.AUTH_SERVICE + ":user_details"; |
||||
|
||||
/** |
||||
* 字典信息缓存 |
||||
*/ |
||||
String DICT_DETAILS = ServiceNameConstants.AUTH_SERVICE + ":dict_details"; |
||||
|
||||
/** |
||||
* 全局配置缓存 |
||||
*/ |
||||
String CONFIG_PARAM = ServiceNameConstants.AUTH_SERVICE + ":config_param"; |
||||
|
||||
} |
@ -0,0 +1,58 @@
@@ -0,0 +1,58 @@
|
||||
package com.cloud.kicc.common.core.constant; |
||||
|
||||
/** |
||||
*<p> |
||||
* 通用常量 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
public interface CommonConstants { |
||||
|
||||
/** |
||||
* 正常 |
||||
*/ |
||||
String STATUS_NORMAL = "0"; |
||||
|
||||
/** |
||||
* 锁定 |
||||
*/ |
||||
String STATUS_LOCK = "9"; |
||||
|
||||
/** |
||||
* 编码 |
||||
*/ |
||||
String UTF8 = "UTF-8"; |
||||
|
||||
/** |
||||
* JSON 资源 |
||||
*/ |
||||
String CONTENT_TYPE = "application/json; charset=utf-8"; |
||||
|
||||
/** |
||||
* 前端工程名 |
||||
*/ |
||||
String FRONT_END_PROJECT = "kicc-ui"; |
||||
|
||||
/** |
||||
* 后端工程名 |
||||
*/ |
||||
String BACK_END_PROJECT = "kicc"; |
||||
|
||||
/** |
||||
* 失败标记 |
||||
*/ |
||||
Integer FAIL = 1; |
||||
|
||||
/** |
||||
* 当前页 |
||||
*/ |
||||
String CURRENT = "current"; |
||||
|
||||
/** |
||||
* size |
||||
*/ |
||||
String SIZE = "size"; |
||||
|
||||
} |
@ -0,0 +1,110 @@
@@ -0,0 +1,110 @@
|
||||
package com.cloud.kicc.common.core.constant; |
||||
|
||||
/** |
||||
*<p> |
||||
* 安全常量 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
public interface SecurityConstants { |
||||
|
||||
/** |
||||
* 角色前缀 |
||||
*/ |
||||
String ROLE = "ROLE_"; |
||||
|
||||
/** |
||||
* 项目的license |
||||
*/ |
||||
String PROJECT_LICENSE = "长沙康来生物有限公司"; |
||||
|
||||
/** |
||||
* 内部接口调用密钥 |
||||
*/ |
||||
String FROM_IN = "kG8qA6qG1aP5aR3g"; |
||||
|
||||
/** |
||||
* 内部接口调用Key标志 |
||||
*/ |
||||
String FROM = "from"; |
||||
|
||||
/** |
||||
* 默认登录URL |
||||
*/ |
||||
String OAUTH_TOKEN_URL = "/oauth/token"; |
||||
|
||||
/** |
||||
* grant_type |
||||
*/ |
||||
String REFRESH_TOKEN = "refresh_token"; |
||||
|
||||
/** |
||||
* 手机号登录 |
||||
*/ |
||||
String APP = "app"; |
||||
|
||||
/** |
||||
* {bcrypt} 加密的特征码 |
||||
*/ |
||||
String BCRYPT = "{bcrypt}"; |
||||
|
||||
/** |
||||
* sys_oauth_client_details 表的字段,不包括client_id、client_secret |
||||
*/ |
||||
String CLIENT_FIELDS = "client_id, CONCAT('{noop}',client_secret) as client_secret, resource_ids, scope, " |
||||
+ "authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, " |
||||
+ "refresh_token_validity, additional_information, autoapprove"; |
||||
|
||||
/** |
||||
* JdbcClientDetailsService 查询语句 |
||||
*/ |
||||
String BASE_FIND_STATEMENT = "select " + CLIENT_FIELDS + " from sys_oauth_client_details"; |
||||
|
||||
/** |
||||
* 默认的查询语句 |
||||
*/ |
||||
String DEFAULT_FIND_STATEMENT = BASE_FIND_STATEMENT + " order by client_id"; |
||||
|
||||
/** |
||||
* 按条件client_id 查询 |
||||
*/ |
||||
String DEFAULT_SELECT_STATEMENT = BASE_FIND_STATEMENT + " where client_id = ?"; |
||||
|
||||
/*** |
||||
* 资源服务器默认bean名称 |
||||
*/ |
||||
String RESOURCE_SERVER_CONFIGURER = "resourceServerConfigurerAdapter"; |
||||
|
||||
/** |
||||
* 用户信息 |
||||
*/ |
||||
String DETAILS_USER = "user_info"; |
||||
|
||||
/** |
||||
* 协议字段 |
||||
*/ |
||||
String DETAILS_LICENSE = "license"; |
||||
|
||||
/** |
||||
* 验证码有效期,默认 60秒 |
||||
*/ |
||||
long CODE_TIME = 60; |
||||
|
||||
/** |
||||
* 手机验证码长度 |
||||
*/ |
||||
String PHONE_CODE_SIZE = "6"; |
||||
|
||||
/** |
||||
* 客户端模式 |
||||
*/ |
||||
String CLIENT_CREDENTIALS = "client_credentials"; |
||||
|
||||
/** |
||||
* 客户端ID |
||||
*/ |
||||
String CLIENT_ID = "clientId"; |
||||
|
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
package com.cloud.kicc.common.core.constant; |
||||
|
||||
/** |
||||
*<p> |
||||
* 服务名称 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
public interface ServiceNameConstants { |
||||
|
||||
/** |
||||
* 认证服务的SERVICE_ID |
||||
*/ |
||||
String AUTH_SERVICE = "kicc-auth"; |
||||
|
||||
/** |
||||
* SYSTEM模块 |
||||
*/ |
||||
String SYSTEM_SERVICE = "kicc-system-biz"; |
||||
|
||||
/** |
||||
* seata分布式事务演示-订单模块 |
||||
*/ |
||||
String SEATA_ORDER_SERVICE = "kicc-seata-order"; |
||||
|
||||
/** |
||||
* seata分布式事务演示-积分模块 |
||||
*/ |
||||
String SEATA_POINT_SERVICE = "kicc-seata-point"; |
||||
|
||||
|
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
package com.cloud.kicc.common.core.enums; |
||||
|
||||
import lombok.Getter; |
||||
import lombok.RequiredArgsConstructor; |
||||
|
||||
/** |
||||
*<p> |
||||
* 社交登录类型 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
@Getter |
||||
@RequiredArgsConstructor |
||||
public enum LoginTypeEnum { |
||||
|
||||
/** |
||||
* 账号密码登录 |
||||
*/ |
||||
PWD("PWD", "账号密码登录"), |
||||
|
||||
/** |
||||
* 验证码登录 |
||||
*/ |
||||
SMS("SMS", "验证码登录"); |
||||
|
||||
/** |
||||
* 类型 |
||||
*/ |
||||
private final String type; |
||||
|
||||
/** |
||||
* 描述 |
||||
*/ |
||||
private final String description; |
||||
|
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
package com.cloud.kicc.common.core.exception; |
||||
|
||||
import lombok.NoArgsConstructor; |
||||
|
||||
/** |
||||
*<p> |
||||
* 检查异常 |
||||
*</p> |
||||
* |
||||
* @Author: entfrm开发团队-王翔 |
||||
* @Date: 2022/2/18 |
||||
*/ |
||||
@NoArgsConstructor |
||||
public class CheckedException extends RuntimeException { |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
public CheckedException(String message) { |
||||
super(message); |
||||
} |
||||
|
||||
public CheckedException(Throwable cause) { |
||||
super(cause); |
||||
} |
||||
|
||||
public CheckedException(String message, Throwable cause) { |
||||
super(message, cause); |
||||
} |
||||
|
||||
public CheckedException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { |
||||
super(message, cause, enableSuppression, writableStackTrace); |
||||
} |
||||
|
||||
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue