Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_backend
This commit is contained in:
5
.vscode/extensions.json
vendored
5
.vscode/extensions.json
vendored
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"codium.codium"
|
||||
]
|
||||
}
|
||||
13
.vscode/settings.json
vendored
13
.vscode/settings.json
vendored
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"go.toolsEnvVars": {
|
||||
"GOARCH": "amd64",
|
||||
"GOOS": "windows"
|
||||
},
|
||||
"go.testEnvVars": {
|
||||
"GOARCH": "wasm",
|
||||
"GOOS": "js"
|
||||
},
|
||||
"commentTranslate.hover.enabled": true,
|
||||
"CodeGPT.apiKey": "OpenAI",
|
||||
"CodeGPT.Autocomplete.enabled": true
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,28 +1,15 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : local_mariadb
|
||||
Source Server Type : MariaDB
|
||||
Source Server Version : 100338 (10.3.38-MariaDB)
|
||||
Source Host : localhost:33066
|
||||
Source Schema : omc_db
|
||||
|
||||
Target Server Type : MariaDB
|
||||
Target Server Version : 100338 (10.3.38-MariaDB)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 23/04/2024 14:05:00
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for alarm_forward_log
|
||||
-- ----------------------------
|
||||
--
|
||||
-- Table structure for table `alarm_forward_log`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `alarm_forward_log`;
|
||||
|
||||
CREATE TABLE `alarm_forward_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
@@ -32,8 +19,8 @@ CREATE TABLE `alarm_forward_log` (
|
||||
`interface` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`to_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`oper_result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`log_time` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE CURRENT_TIMESTAMP,
|
||||
`log_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 209149 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 209163 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
@@ -1,54 +1,30 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
-- Table structure for table `measure_task`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `measure_task`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `measure_task` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(16) DEFAULT NULL,
|
||||
`ne_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||
`kpi_set` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||
`start_time` varchar(32) DEFAULT NULL,
|
||||
`end_time` varchar(32) DEFAULT NULL,
|
||||
`periods` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||
`schedule` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||
`granul_option` enum('15M','30M','60M','24H') NOT NULL DEFAULT '15M',
|
||||
`status` enum('Inactive','Active','Suspend','Deleted') NOT NULL DEFAULT 'Inactive',
|
||||
`account_id` varchar(32) DEFAULT NULL,
|
||||
`comment` varchar(255) DEFAULT NULL,
|
||||
`create_time` datetime DEFAULT current_timestamp(),
|
||||
`update_time` datetime DEFAULT NULL,
|
||||
`delete_time` datetime DEFAULT NULL,
|
||||
|
||||
CREATE TABLE `measure_task` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`ne_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
|
||||
`kpi_set` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
|
||||
`start_time` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`end_time` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`periods` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
|
||||
`schedule` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
|
||||
`granul_option` enum('15M','30M','60M','24H') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '15M',
|
||||
`status` enum('Inactive','Active','Suspend','Deleted') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'Inactive',
|
||||
`account_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`update_time` datetime NULL DEFAULT NULL,
|
||||
`delete_time` datetime NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:55
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
@@ -23,18 +23,18 @@ DROP TABLE IF EXISTS `monitor_base`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `monitor_base` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
|
||||
`cpu` float DEFAULT 0 COMMENT 'cpu使用率',
|
||||
`load_usage` float DEFAULT 0 COMMENT 'cpu平均使用率',
|
||||
`cpu_load1` float DEFAULT 0 COMMENT 'cpu使用1分钟',
|
||||
`cpu_load5` float DEFAULT 0 COMMENT 'cpu使用5分钟',
|
||||
`cpu_load15` float DEFAULT 0 COMMENT 'cpu使用15分钟',
|
||||
`memory` float DEFAULT 0 COMMENT '内存使用率',
|
||||
`ne_type` varchar(32) DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) DEFAULT NULL COMMENT '网元ID',
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`cpu` float DEFAULT '0' COMMENT 'cpu使用率',
|
||||
`load_usage` float DEFAULT '0' COMMENT 'cpu平均使用率',
|
||||
`cpu_load1` float DEFAULT '0' COMMENT 'cpu使用1分钟',
|
||||
`cpu_load5` float DEFAULT '0' COMMENT 'cpu使用5分钟',
|
||||
`cpu_load15` float DEFAULT '0' COMMENT 'cpu使用15分钟',
|
||||
`memory` float DEFAULT '0' COMMENT '内存使用率',
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元ID',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=108643 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_基本信息';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_基本信息';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
|
||||
@@ -23,17 +23,17 @@ DROP TABLE IF EXISTS `monitor_io`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `monitor_io` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
|
||||
`name` varchar(50) NOT NULL COMMENT '磁盘名',
|
||||
`read` int(11) DEFAULT 0 COMMENT '读取K',
|
||||
`write` int(11) DEFAULT 0 COMMENT '写入K',
|
||||
`count` int(11) DEFAULT 0 COMMENT '读写次数',
|
||||
`time` int(11) DEFAULT 0 COMMENT '读写延迟',
|
||||
`ne_type` varchar(32) DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) DEFAULT NULL COMMENT '网元ID',
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '磁盘名',
|
||||
`read` int DEFAULT '0' COMMENT '读取K',
|
||||
`write` int DEFAULT '0' COMMENT '写入K',
|
||||
`count` int DEFAULT '0' COMMENT '读写次数',
|
||||
`time` int DEFAULT '0' COMMENT '读写延迟',
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元ID',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=201014 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_磁盘IO';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_磁盘IO';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
|
||||
@@ -23,15 +23,15 @@ DROP TABLE IF EXISTS `monitor_network`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `monitor_network` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
|
||||
`name` varchar(50) NOT NULL COMMENT '网卡名',
|
||||
`up` float DEFAULT 0 COMMENT '上行',
|
||||
`down` float DEFAULT 0 COMMENT '下行',
|
||||
`ne_type` varchar(32) DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) DEFAULT NULL COMMENT '网元ID',
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网卡名',
|
||||
`up` float DEFAULT '0' COMMENT '上行',
|
||||
`down` float DEFAULT '0' COMMENT '下行',
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元ID',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=821562 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_网络IO';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_网络IO';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
|
||||
63
database/install/ne_host.sql
Normal file
63
database/install/ne_host.sql
Normal file
@@ -0,0 +1,63 @@
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
-- Table structure for table `ne_host`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `ne_host`;
|
||||
|
||||
CREATE TABLE `ne_host` (
|
||||
`host_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主机主键',
|
||||
`host_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机类型 ssh telnet',
|
||||
`group_id` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '分组(0默认 1网元 2系统)',
|
||||
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '标题名称',
|
||||
`addr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机地址',
|
||||
`port` int NULL DEFAULT 22 COMMENT 'SSH端口',
|
||||
`user` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机用户名',
|
||||
`auth_mode` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '认证模式(0密码 1主机私钥 2已免密)',
|
||||
`password` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '认证密码',
|
||||
`private_key` varchar(6000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '认证私钥',
|
||||
`pass_phrase` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '认证私钥密码',
|
||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`host_id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_type_group_title`(`host_type` ASC, `group_id` ASC, `title` ASC) USING BTREE COMMENT '同组内名称唯一'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元主机表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- 初始数据对应网元
|
||||
INSERT INTO `ne_host` VALUES (1, 'ssh', '1', 'OMC_001_22', '172.16.5.100', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (2, 'telnet', '1', 'OMC_001_4100', '172.16.5.100', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (3, 'ssh', '1', 'IMS_001_22', '172.16.5.110', 22, 'manager', '2', '', '', '', '', 'admin', 1708314682742, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (4, 'telnet', '1', 'IMS_001_4100', '172.16.5.110', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (5, 'ssh', '1', 'AMF_001_22', '172.16.5.120', 22, 'manager', '2', '', '', '', '', 'admin', 1708314682742, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (6, 'telnet', '1', 'AMF_001_4100', '172.16.5.120', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (7, 'ssh', '1', 'AUSF_001_22', '172.16.5.130', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (8, 'telnet', '1', 'AUSF_001_4100', '172.16.5.130', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (9, 'ssh', '1', 'UDM_001_22', '172.16.5.140', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (10, 'telnet', '1', 'UDM_001_4100', '172.16.5.140', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (11, 'ssh', '1', 'SMF_001_22', '172.16.5.150', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (12, 'telnet', '1', 'SMF_001_4100', '172.16.5.150', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (13, 'ssh', '1', 'PCF_001_22', '172.16.5.160', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (14, 'telnet', '1', 'PCF_001_4100', '172.16.5.160', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (15, 'ssh', '1', 'NSSF_001_22', '172.16.5.170', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (16, 'telnet', '1', 'NSSF_001_4100', '172.16.5.170', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (17, 'ssh', '1', 'NRF_001_22', '172.16.5.180', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (18, 'telnet', '1', 'NRF_001_4100', '172.16.5.180', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (19, 'ssh', '1', 'UPF_001_22', '172.16.5.190', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (20, 'telnet', '1', 'UPF_001_4100', '172.16.5.190', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (21, 'telnet', '1', 'UPF_001_5002', '172.16.5.190', 5002, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (22, 'ssh', '1', 'LMF_001_22', '172.16.5.200', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (23, 'telnet', '1', 'LMF_001_4100', '172.16.5.200', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (24, 'ssh', '1', 'NEF_001_22', '172.16.5.210', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (25, 'telnet', '1', 'NEF_001_4100', '172.16.5.210', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (26, 'ssh', '1', 'MME_001_22', '172.16.5.220', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (27, 'telnet', '1', 'MME_001_4100', '172.16.5.220', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (28, 'ssh', '1', 'N3IWF_001_22', '172.16.5.230', 22, 'manager', '2', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
INSERT INTO `ne_host` VALUES (29, 'telnet', '1', 'N3IWF_001_4100', '172.16.5.230', 4100, 'admin', '0', '', '', '', '', 'admin', 1708333292882, NULL, 0);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
26
database/install/ne_host_cmd.sql
Normal file
26
database/install/ne_host_cmd.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
-- Table structure for table `ne_host_cmd`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `ne_host_cmd`;
|
||||
|
||||
CREATE TABLE `ne_host_cmd` (
|
||||
`cmd_id` bigint NOT NULL AUTO_INCREMENT COMMENT '命令主键',
|
||||
`cmd_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '命令类型',
|
||||
`group_id` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '分组(0默认 1快速命令)',
|
||||
`title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '标题名称',
|
||||
`command` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '命令字符串',
|
||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`cmd_id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_type_group_title`(`cmd_type` ASC, `group_id` ASC, `title` ASC) USING BTREE COMMENT '同组内名称唯一'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元主机命令表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
@@ -1,55 +1,53 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
-- Table structure for table `ne_info`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `ne_info`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
|
||||
CREATE TABLE `ne_info` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) NOT NULL,
|
||||
`ne_id` varchar(32) NOT NULL DEFAULT '',
|
||||
`rm_uid` varchar(40) DEFAULT NULL,
|
||||
`ne_name` varchar(64) DEFAULT NULL,
|
||||
`ip` varchar(128) DEFAULT '',
|
||||
`port` int(11) DEFAULT NULL,
|
||||
`pv_flag` enum('PNF','VNF') DEFAULT 'PNF',
|
||||
`province` varchar(32) DEFAULT NULL,
|
||||
`vendor_name` varchar(64) DEFAULT NULL,
|
||||
`dn` varchar(255) DEFAULT NULL,
|
||||
`ne_address` varchar(64) DEFAULT NULL,
|
||||
`status` int(11) DEFAULT 0 COMMENT '0: 在线 1: 下线 2: 备用 3: 待下发配置',
|
||||
`update_time` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`host_ids` varchar(64) DEFAULT '' COMMENT '网元主机ID组 数据格式(ssh,telnet,telnet)',
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
||||
`rm_uid` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
|
||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
|
||||
`ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
|
||||
`port` int NULL DEFAULT 0 COMMENT '端口',
|
||||
`pv_flag` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'PNF' COMMENT '\'PNF\',\'VNF\'',
|
||||
`province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '省份地域',
|
||||
`vendor_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-',
|
||||
`dn` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
|
||||
`ne_address` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'MAC地址',
|
||||
`host_ids` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '网元主机ID组 数据格式(ssh,telnet,telnet)',
|
||||
`status` int NULL DEFAULT 0 COMMENT '0离线 1在线 2配置待下发',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `idx_netype_neid` (`ne_type`,`ne_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=218 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='网元信息表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
UNIQUE INDEX `ux_netype_neid`(`ne_type` ASC, `ne_id` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元信息表 对应一个网元版本、网元授权、网元主机' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
-- 初始网元数据
|
||||
INSERT INTO `ne_info` VALUES (1, 'OMC', '001', '4400HXOMC001', 'OMC_001', '172.16.5.100', 33030, 'PNF', '-', '-', '-', '-', '1,2', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (2, 'IMS', '001', '4400HXIMS001', 'IMS_001', '172.16.5.110', 33030, 'PNF', '-', '-', '-', '-', '3,4', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (3, 'AMF', '001', '4400HXAMF001', 'AMF_001', '172.16.5.120', 33030, 'PNF', '-', '-', '-', '', '5,6', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (4, 'AUSF', '001', '4400HXAUSF001', 'AUSF_001', '172.16.5.130', 33030, 'PNF', '-', '-', '-', '', '7,8', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (5, 'UDM', '001', '4400HXUDM001', 'UDM_001', '172.16.5.140', 33030, 'PNF', '-', '-', '-', '-', '9,10', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (6, 'SMF', '001', '4400HXSMF001', 'SMF_001', '172.16.5.150', 33030, 'PNF', '-', '-', '-', '-', '11,12', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (7, 'PCF', '001', '4400HXPCF001', 'PCF_001', '172.16.5.160', 33030, 'PNF', '-', '-', '-', '-', '13,14', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (8, 'NSSF', '001', '4400HXNSF001', 'NSSF_001', '172.16.5.170', 33030, 'PNF', '-', '-', '-', '-', '15,16', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (9, 'NRF', '001', '4400HXNRF001', 'NRF_001', '172.16.5.180', 33030, 'PNF', '-', '-', '-', '-', '17,18', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (10, 'UPF', '001', '4400HXUPF001', 'UPF_001', '172.16.5.190', 33030, 'PNF', '-', '-', '-', '', '19,20,21', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (11, 'LMF', '001', '4400HXLMF001', 'LMF_001', '172.16.5.200', 33030, 'PNF', '-', '-', '-', '-', '22,23', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (12, 'NEF', '001', '4400HXNEF001', 'NEF_001', '172.16.5.210', 33030, 'PNF', '-', '-', '-', '-', '24,25', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (13, 'MME', '001', '4400HXMME001', 'MME_001', '172.16.5.220', 33030, 'PNF', '-', '-', '-', '', '26,27', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (14, 'N3IWF', '001', '4400HXN3IWF001', 'N3IWF_001', '172.16.5.230', 33030, 'PNF', '-', '-', '-', '', '28,29', 0, '', '', 0, '', 0);
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:57
|
||||
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
@@ -1,54 +1,45 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
-- Table structure for table `ne_license`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `ne_license`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `ne_license` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(16) DEFAULT NULL,
|
||||
`ne_id` varchar(32) DEFAULT '',
|
||||
`serial_no` varchar(16) DEFAULT NULL,
|
||||
`capcity` int(11) DEFAULT NULL,
|
||||
`used` int(11) DEFAULT NULL,
|
||||
`feature_enabled` varchar(64) DEFAULT NULL,
|
||||
`expiration_date` varchar(16) DEFAULT NULL,
|
||||
`status` enum('ACTIVE','INACTIVE','PENDING') DEFAULT 'ACTIVE',
|
||||
`path` varchar(128) DEFAULT NULL,
|
||||
`file_name` varchar(64) DEFAULT NULL,
|
||||
`comment` varchar(255) DEFAULT NULL,
|
||||
`created_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`updated_at` datetime DEFAULT NULL,
|
||||
`deleted_at` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='NE license management';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
CREATE TABLE `ne_license` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
||||
`activation_request_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '激活申请代码',
|
||||
`license_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '激活授权文件',
|
||||
`serial_num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '序列号',
|
||||
`expiry_date` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '许可证到期日期',
|
||||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态 0无效 1有效',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_type_id`(`ne_type` ASC, `ne_id` ASC) USING BTREE COMMENT '唯一网元类型和网元ID'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元授权激活信息' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:57
|
||||
-- 初始数据对应网元
|
||||
INSERT INTO `ne_license` VALUES (1, 'OMC', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (2, 'IMS', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (3, 'AMF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (4, 'AUSF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (5, 'UDM', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (6, 'SMF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (7, 'PCF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (8, 'NSSF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (9, 'NRF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (10, 'UPF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (11, 'LMF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (12, 'NEF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (13, 'MME', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
INSERT INTO `ne_license` VALUES (14, 'N3IWF', '001', '', '', '', '', '0', '', 'supervisor', 1713928436971, '', 0);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
@@ -1,49 +1,26 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
-- Table structure for table `ne_software`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `ne_software`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
|
||||
CREATE TABLE `ne_software` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) DEFAULT NULL,
|
||||
`file_name` varchar(64) DEFAULT NULL,
|
||||
`path` varchar(128) DEFAULT '',
|
||||
`version` varchar(32) DEFAULT NULL,
|
||||
`md5_sum` varchar(64) DEFAULT NULL,
|
||||
`status` enum('Uploaded','Inactive','Active') DEFAULT NULL,
|
||||
`comment` varchar(255) DEFAULT NULL,
|
||||
`update_time` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`patch_time` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=68 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
||||
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包名称',
|
||||
`path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '包路径',
|
||||
`version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包版本',
|
||||
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '包说明',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_type_name_version` (`ne_type`,`name`,`version`) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='网元软件包';
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:57
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
@@ -1,41 +1,28 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : local_mariadb
|
||||
Source Server Type : MariaDB
|
||||
Source Server Version : 100338 (10.3.38-MariaDB)
|
||||
Source Host : localhost:33066
|
||||
Source Schema : omc_db
|
||||
|
||||
Target Server Type : MariaDB
|
||||
Target Server Version : 100338 (10.3.38-MariaDB)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 16/04/2024 09:47:50
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for ne_state
|
||||
-- ----------------------------
|
||||
--
|
||||
-- Table structure for table `ne_state`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `ne_state`;
|
||||
CREATE TABLE `ne_state` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
|
||||
CREATE TABLE `ne_state` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`version` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`capability` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`serial_num` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`expiry_date` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-',
|
||||
`cpu_usage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
||||
`mem_usage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
||||
`disk_space` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
|
||||
`timestamp` datetime NULL DEFAULT current_timestamp(),
|
||||
`cpu_usage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
|
||||
`mem_usage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
|
||||
`disk_space` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL,
|
||||
`timestamp` datetime NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `idx_ne_type_id`(`ne_type`, `ne_id`) USING BTREE,
|
||||
INDEX `idx_timestamp`(`timestamp`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 8551941 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
INDEX `idx_ne_type_id`(`ne_type` ASC, `ne_id` ASC) USING BTREE,
|
||||
INDEX `idx_timestamp`(`timestamp` ASC) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 8551941 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
@@ -1,50 +1,49 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
-- Table structure for table `ne_version`
|
||||
--
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `ne_version`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `ne_version` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) DEFAULT NULL,
|
||||
`ne_id` varchar(32) DEFAULT NULL,
|
||||
`version` varchar(32) DEFAULT NULL,
|
||||
`file_path` varchar(255) DEFAULT NULL,
|
||||
`pre_version` varchar(32) DEFAULT NULL,
|
||||
`pre_file` varchar(255) DEFAULT NULL,
|
||||
`new_version` varchar(32) DEFAULT NULL,
|
||||
`new_file` varchar(255) DEFAULT NULL,
|
||||
`status` enum('Uploaded','Inactive','Active') DEFAULT NULL,
|
||||
`update_time` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
CREATE TABLE `ne_version` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
||||
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '当前包名',
|
||||
`version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '当前版本',
|
||||
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '当前软件包',
|
||||
`pre_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '上一版本包名',
|
||||
`pre_version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '上一版本',
|
||||
`pre_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '上一版本软件包',
|
||||
`new_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '新版本报名',
|
||||
`new_version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '新版本',
|
||||
`new_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '新版软件包',
|
||||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '当前状态 0无 1当前版本 2上一版本 3有新版本',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_type_id`(`ne_type` ASC, `ne_id` ASC) USING BTREE COMMENT '唯一网元类型和ID'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元版本信息' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:57
|
||||
-- 初始数据对应网元
|
||||
INSERT INTO `ne_version` VALUES (1, 'OMC', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (2, 'IMS', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (3, 'AMF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (4, 'AUSF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (5, 'UDM', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (6, 'SMF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (7, 'PCF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (8, 'NSSF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (9, 'NRF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (10, 'UPF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (11, 'LMF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (12, 'NEF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (13, 'MME', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
INSERT INTO `ne_version` VALUES (14, 'N3IWF', '001', '', '', '', '', '', '', '', '', '', '0', 'supervisor', 1713928436957, '', 0);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `permission`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `permission`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `permission` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`permission_name` varchar(32) NOT NULL,
|
||||
`method` varchar(10) DEFAULT '*',
|
||||
`module` varchar(32) DEFAULT '*',
|
||||
`management` varchar(32) DEFAULT '*',
|
||||
`element` varchar(10) DEFAULT '*',
|
||||
`object` varchar(16) DEFAULT '*',
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
`created_at` datetime DEFAULT current_timestamp(),
|
||||
`updated_at` datetime DEFAULT NULL,
|
||||
`deleted_at` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`permission_name`) USING BTREE,
|
||||
UNIQUE KEY `id` (`id`) USING BTREE,
|
||||
UNIQUE KEY `permission_name` (`permission_name`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='del-已使用sys_menu权限标识';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:57
|
||||
@@ -1,44 +0,0 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `role`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `role`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `role` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`role_name` varchar(255) NOT NULL,
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
`create_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
PRIMARY KEY (`id`,`role_name`) USING BTREE,
|
||||
KEY `role_name` (`role_name`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='del-已使用sys_role';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:58
|
||||
@@ -1,49 +0,0 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `rs_subscribe`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `rs_subscribe`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `rs_subscribe` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`created_at` datetime(3) DEFAULT NULL,
|
||||
`updated_at` datetime(3) DEFAULT NULL,
|
||||
`deleted_at` datetime(3) DEFAULT NULL,
|
||||
`user` varchar(64) DEFAULT NULL,
|
||||
`event_type` varchar(255) DEFAULT NULL,
|
||||
`ne_type` varchar(64) DEFAULT NULL,
|
||||
`object_type` varchar(64) DEFAULT NULL,
|
||||
`callback_url` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_rs_subscribe_deleted_at` (`deleted_at`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:58
|
||||
@@ -43,7 +43,24 @@ CREATE TABLE `sys_config` (
|
||||
|
||||
LOCK TABLES `sys_config` WRITE;
|
||||
/*!40000 ALTER TABLE `sys_config` DISABLE KEYS */;
|
||||
INSERT INTO `sys_config` VALUES (1,'config.sys.user.initPassword','sys.user.initPassword','Abcd@1234..','Y','supervisor',1700000000000,NULL,0,'config.sys.user.initPasswordRemark'),(2,'config.sys.account.captchaEnabled','sys.account.captchaEnabled','false','Y','supervisor',1700000000000,NULL,0,'config.sys.account.captchaEnabledRemark'),(3,'config.sys.account.registerUser','sys.account.registerUser','false','Y','supervisor',1700000000000,NULL,0,'config.sys.account.registerUserRemark'),(4,'config.sys.user.maxRetryCount','sys.user.maxRetryCount','5','Y','supervisor',1700000000000,NULL,0,'config.sys.user.maxRetryCountRemark'),(5,'config.sys.user.lockTime','sys.user.lockTime','10','Y','supervisor',1700000000000,NULL,0,'config.sys.user.lockTimeRemark'),(6,'config.sys.officialUrl','sys.officialUrl','#','Y','supervisor',1700000000000,NULL,0,'config.sys.officialUrlRemark'),(7,'config.sys.helpDoc','sys.helpDoc','/static/helpDoc/{language}_doc.pdf','Y','supervisor',1700000000000,NULL,0,'config.sys.helpDocRemark'),(8,'sys.account.captchaType','sys.account.captchaType','math','Y','supervisor',1705410000000,NULL,0,'sys.account.captchaTypeRemark'),(10,'config.monitor.sysResource.storeDays','monitor.sysResource.storeDays','30','Y','supervisor',1700000000000,NULL,0,'config.monitor.sysResource.storeDaysRemark'),(102,'config.sys.logo.type','sys.logo.type','icon','Y','supervisor',1700000000000,NULL,0,'config.sys.logo.typeRemark'),(103,'config.sys.logo.filePathIcon','sys.logo.filePathIcon','/static/logo/{language}_icon.png','Y','supervisor',1700000000000,NULL,0,'config.sys.logo.filePathIconRemark'),(104,'config.sys.logo.filePathBrand','sys.logo.filePathBrand','/static/logo/{language}_brand.png','Y','supervisor',1700000000000,NULL,0,'config.sys.logo.filePathBrandRemark'),(105,'config.sys.loginBackground','sys.loginBackground','#','Y','supervisor',1700000000000,NULL,0,'config.sys.loginBackgroundRemark'),(106,'config.sys.title','sys.title','config.sys.titleValue','Y','supervisor',1700000000000,NULL,0,'config.sys.titleRemark'),(107,'config.sys.copyright','sys.copyright','config.sys.copyrightValue','Y','supervisor',1700000000000,NULL,0,'config.sys.copyrightRemark'),(108,'config.sys.i18nOpen','sys.i18n.open','true','Y','supervisor',1700000000000,NULL,0,'config.sys.i18nOpenRemark'),(109,'config.sys.i18nDefault','sys.i18n.default','en_US','Y','supervisor',1700000000000,NULL,0,'config.sys.i18nDefaultRemark'),(110,'config.sys.lockTime','sys.lockTime','0','Y','supervisor',1704960008300,'admin',1706838764703,'config.sys.lockTimeRemark');
|
||||
INSERT INTO `sys_config` VALUES (1, 'config.sys.user.initPassword', 'sys.user.initPassword', 'Abcd@1234..', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.user.initPasswordRemark');
|
||||
INSERT INTO `sys_config` VALUES (2, 'config.sys.account.captchaEnabled', 'sys.account.captchaEnabled', 'false', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.account.captchaEnabledRemark');
|
||||
INSERT INTO `sys_config` VALUES (3, 'config.sys.account.registerUser', 'sys.account.registerUser', 'false', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.account.registerUserRemark');
|
||||
INSERT INTO `sys_config` VALUES (4, 'config.sys.user.maxRetryCount', 'sys.user.maxRetryCount', '5', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.user.maxRetryCountRemark');
|
||||
INSERT INTO `sys_config` VALUES (5, 'config.sys.user.lockTime', 'sys.user.lockTime', '10', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.user.lockTimeRemark');
|
||||
INSERT INTO `sys_config` VALUES (6, 'config.sys.officialUrl', 'sys.officialUrl', '#', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.officialUrlRemark');
|
||||
INSERT INTO `sys_config` VALUES (7, 'config.sys.helpDoc', 'sys.helpDoc', '/static/helpDoc/{language}_doc.pdf', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.helpDocRemark');
|
||||
INSERT INTO `sys_config` VALUES (8, 'sys.account.captchaType', 'sys.account.captchaType', 'math', 'Y', 'supervisor', 1705410000000, NULL, 0, 'sys.account.captchaTypeRemark');
|
||||
INSERT INTO `sys_config` VALUES (10, 'config.monitor.sysResource.storeDays', 'monitor.sysResource.storeDays', '30', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.monitor.sysResource.storeDaysRemark');
|
||||
INSERT INTO `sys_config` VALUES (102, 'config.sys.logo.type', 'sys.logo.type', 'icon', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.logo.typeRemark');
|
||||
INSERT INTO `sys_config` VALUES (103, 'config.sys.logo.filePathIcon', 'sys.logo.filePathIcon', '/static/logo/{language}_icon.png', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.logo.filePathIconRemark');
|
||||
INSERT INTO `sys_config` VALUES (104, 'config.sys.logo.filePathBrand', 'sys.logo.filePathBrand', '/static/logo/{language}_brand.png', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.logo.filePathBrandRemark');
|
||||
INSERT INTO `sys_config` VALUES (105, 'config.sys.loginBackground', 'sys.loginBackground', '#', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.loginBackgroundRemark');
|
||||
INSERT INTO `sys_config` VALUES (106, 'config.sys.title', 'sys.title', 'config.sys.titleValue', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.titleRemark');
|
||||
INSERT INTO `sys_config` VALUES (107, 'config.sys.copyright', 'sys.copyright', 'config.sys.copyrightValue', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.copyrightRemark');
|
||||
INSERT INTO `sys_config` VALUES (108, 'config.sys.i18nOpen', 'sys.i18n.open', 'true', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.i18nOpenRemark');
|
||||
INSERT INTO `sys_config` VALUES (109, 'config.sys.i18nDefault', 'sys.i18n.default', 'en_US', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.i18nDefaultRemark');
|
||||
INSERT INTO `sys_config` VALUES (110, 'config.sys.lockTime', 'sys.lockTime', '0', 'Y', 'supervisor', 1704960008300, 'admin', 1706838764703, 'config.sys.lockTimeRemark');
|
||||
/*!40000 ALTER TABLE `sys_config` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
@@ -38,19 +38,15 @@ CREATE TABLE `sys_dept` (
|
||||
`update_by` varchar(50) DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint(20) DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`dept_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门表';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `sys_dept`
|
||||
--
|
||||
|
||||
LOCK TABLES `sys_dept` WRITE;
|
||||
/*!40000 ALTER TABLE `sys_dept` DISABLE KEYS */;
|
||||
INSERT INTO `sys_dept` VALUES (100,0,'0','dept.root',0,'supervisor',NULL,NULL,'1','0','supervisor',1699348237468,NULL,0),(101,100,'0,100','dept.root.item1',1,'supervisor',NULL,NULL,'1','0','supervisor',1699348237468,NULL,0);
|
||||
/*!40000 ALTER TABLE `sys_dept` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
INSERT INTO `sys_dept` VALUES (1, 0, '0', 'dept.root', 0, 'supervisor', NULL, NULL, '1', '0', 'supervisor', 1699348237468, NULL, 0);
|
||||
INSERT INTO `sys_dept` VALUES (2, 1, '0,1', 'dept.root.item1', 1, 'supervisor', NULL, NULL, '1', '0', 'supervisor', 1699348237468, 'supervisor', 1715570736053);
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
|
||||
@@ -36,7 +36,7 @@ CREATE TABLE `sys_dict_data` (
|
||||
`update_time` bigint(20) NULL DEFAULT 0 COMMENT '更新时间',
|
||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`dict_code`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 4130 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 10000 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_dict_data
|
||||
@@ -158,12 +158,16 @@ INSERT INTO `sys_dict_data` VALUES (114, 0, 'dictData.ne_host_authMode.0', '0',
|
||||
INSERT INTO `sys_dict_data` VALUES (115, 1, 'dictData.ne_host_authMode.1', '1', 'ne_host_authMode', '', '', '1', 'supervisor', 1706620000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (116, 0, 'dictData.ne_host_cmd_groupId.0', '0', 'ne_host_cmd_groupId', '', '', '1', 'supervisor', 1706620000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (117, 1, 'dictData.ne_host_cmd_groupId.1', '1', 'ne_host_cmd_groupId', '', '', '1', 'supervisor', 1706620000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (118, 0, 'dictData.ne_info_status.0', '0', 'ne_info_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1709642157849, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (119, 1, 'dictData.ne_info_status.1', '1', 'ne_info_status', '', 'error', '1', 'supervisor', 1706620000000, 'supervisor', 1709642164831, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (120, 2, 'dictData.ne_info_status.2', '2', 'ne_info_status', '', '', '1', 'supervisor', 1706620000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (121, 3, 'dictData.ne_info_status.3', '3', 'ne_info_status', '', 'warning', '1', 'supervisor', 1706620000000, 'supervisor', 1709642169871, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (122, 0, 'ne_license_status.0', '0', 'ne_license_status', '', 'warning', '1', 'supervisor', 1706620000000, 'supervisor', 1712720196537, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (123, 1, 'ne_license_status.1', '1', 'ne_license_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (118, 0, 'dictData.ne_info_status.0', '0', 'ne_info_status', '', 'error', '1', 'supervisor', 1706620000000, 'supervisor', 1709642157849, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (119, 1, 'dictData.ne_info_status.1', '1', 'ne_info_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1709642164831, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (120, 2, 'dictData.ne_info_status.2', '2', 'ne_info_status', '', 'warning', '1', 'supervisor', 1706620000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (121, 3, 'dictData.ne_info_status.3', '3', 'ne_info_status', '', '', '1', 'supervisor', 1706620000000, 'supervisor', 1709642169871, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (122, 0, 'dictData.ne_license_status.0', '0', 'ne_license_status', '', 'warning', '1', 'supervisor', 1706620000000, 'supervisor', 1712720196537, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (123, 1, 'dictData.ne_license_status.1', '1', 'ne_license_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (124, 2, 'dictData.ne_host_authMode.2', '2', 'ne_host_authMode', '', '', '1', 'supervisor', 1706620000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (125, 0, 'dictData.ne_version_status.0', '0', 'ne_version_status', '', 'default', '1', 'supervisor', 1706620000000, 'supervisor', 1712720196537, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (126, 1, 'dictData.ne_version_status.1', '1', 'ne_version_status', '', 'success', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (127, 1, 'dictData.ne_version_status.2', '2', 'ne_version_status', '', 'purple', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (128, 1, 'dictData.ne_version_status.3', '3', 'ne_version_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -634,22 +634,22 @@ INSERT INTO `sys_dict_data` VALUES (2107, 2107, 'neInfo.errKeyExists', '网元
|
||||
INSERT INTO `sys_dict_data` VALUES (2108, 2108, 'log.operate.title.imsCDR', 'IMS-CDR会话', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2109, 2109, 'menu.dashboard.amfUE', '用户事件', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2110, 2110, 'log.operate.title.amfUE', 'AMF-UE事件', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2111, 2111, 'dictData.ne_info_status.0', '在线', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2112, 2112, 'dictData.ne_info_status.1', '离线', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2113, 2113, 'dictData.ne_info_status.2', '-', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2114, 2114, 'dictData.ne_info_status.3', '同步配置', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2111, 2111, 'dictData.ne_info_status.0', '离线', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2112, 2112, 'dictData.ne_info_status.1', '在线', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2113, 2113, 'dictData.ne_info_status.2', '等待同步', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2114, 2114, 'dictData.ne_info_status.3', '-', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2115, 2115, 'dictType.ne_info_status', '网元信息状态', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2116, 2116, 'menu.tools.neQuickSetup', '网元快速安装', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2116, 2116, 'menu.ne.neQuickSetup', '网元快速安装', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2117, 2117, 'log.operate.title.neConfig', '网元参数配置', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2118, 2118, 'menu.config.neLicense', '网元授权', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2119, 2119, 'log.operate.title.neLicense', '网元授权', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2118, 2118, 'menu.config.neLicense', '网元许可', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2119, 2119, 'log.operate.title.neLicense', '网元许可', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2120, 2120, 'menu.config.neSoftware', '网元软件包', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2121, 2121, 'log.operate.title.neSoftware', '网元软件包', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2122, 2122, 'log.operate.title.neVersion', '网元版本', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2123, 2123, 'menu.config.neVersion', '网元版本', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2124, 2124, 'dictType.ne_license_status', '网元授权状态', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2125, 2125, 'ne_license_status.0', '无效', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2126, 2126, 'ne_license_status.1', '有效', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2124, 2124, 'dictType.ne_license_status', '网元许可状态', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2125, 2125, 'dictData.ne_license_status.0', '无效', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2126, 2126, 'dictData.ne_license_status.1', '有效', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2127, 2127, 'menu.dashboard.mocn', 'MOCN', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2128, 2128, 'menu.monitor.cdr', '话单', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2129, 2129, 'menu.monitor.event', '事件', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
@@ -657,7 +657,10 @@ INSERT INTO `sys_dict_data` VALUES (2130, 2130, 'post.export.time', '创建时
|
||||
INSERT INTO `sys_dict_data` VALUES (2131, 2131, 'role.export.time', '创建时间', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2132, 2132, 'dictData.ne_host_authMode.2', '免密认证', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2133, 2133, 'menu.ne.neConfPara5G', '网元公共配置', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2134, 2134, 'menu.fault.event', '事件通知', 'i18n_zh', '', '', '1', 'supervisor', 1717051745866, '', 0, '');
|
||||
|
||||
INSERT INTO `sys_dict_data` VALUES (2134, 2134, 'dictData.ne_version_status.0', '无', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2135, 2135, 'dictData.ne_version_status.1', '已是最新', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2136, 2136, 'dictData.ne_version_status.2', '上一版本', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2137, 2137, 'dictData.ne_version_status.3', '有新版本', 'i18n_zh', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2138, 2138, 'menu.fault.event', '事件通知', 'i18n_zh', '', '', '1', 'supervisor', 1717051745866, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -634,12 +634,12 @@ INSERT INTO `sys_dict_data` VALUES (4107, 4107, 'neInfo.errKeyExists', 'NE info
|
||||
INSERT INTO `sys_dict_data` VALUES (4108, 4108, 'log.operate.title.imsCDR', 'IMS-CDR session', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4109, 4109, 'menu.dashboard.amfUE', 'UE Event', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4110, 4110, 'log.operate.title.amfUE', 'AMF-UE event', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4111, 4111, 'dictData.ne_info_status.0', 'Online', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4112, 4112, 'dictData.ne_info_status.1', 'Offline', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4113, 4113, 'dictData.ne_info_status.2', '-', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4114, 4114, 'dictData.ne_info_status.3', 'Sync Config', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4111, 4111, 'dictData.ne_info_status.0', 'Offline', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4112, 4112, 'dictData.ne_info_status.1', 'Online', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4113, 4113, 'dictData.ne_info_status.2', 'Wait Sync', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4114, 4114, 'dictData.ne_info_status.3', '-', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4115, 4115, 'dictType.ne_info_status', 'NE Info State', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4116, 4116, 'menu.tools.neQuickSetup', 'NE Quick Setup', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4116, 4116, 'menu.ne.neQuickSetup', 'NE Quick Setup', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4117, 4117, 'log.operate.title.neConfig', 'NE Parameter Configuration', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4118, 4118, 'menu.config.neLicense', 'NE License', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4119, 4119, 'log.operate.title.neLicense', 'NE License', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
@@ -648,16 +648,19 @@ INSERT INTO `sys_dict_data` VALUES (4121, 4121, 'log.operate.title.neSoftware',
|
||||
INSERT INTO `sys_dict_data` VALUES (4122, 4122, 'menu.config.neVersion', 'Ne Version', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4123, 4123, 'log.operate.title.neVersion', 'Ne Version', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4124, 4124, 'dictType.ne_license_status', 'NE License Status', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4125, 4125, 'ne_license_status.0', 'Invalid', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4126, 4126, 'ne_license_status.1', 'Valid', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4125, 4125, 'dictData.ne_license_status.0', 'Invalid', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4126, 4126, 'dictData.ne_license_status.1', 'Valid', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4127, 4127, 'menu.dashboard.mocn', 'MOCN', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4128, 4128, 'menu.monitor.cdr', 'CDR', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4129, 4129, 'menu.monitor.event', 'Event', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4130, 4130, 'post.export.time', 'Creation Time', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4131, 4131, 'role.export.time', 'Creation Time', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4132, 4132, 'dictData.ne_host_authMode.2', 'Confidentiality Auth Mode', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4133, 4133, 'menu.ne.neConfPara5G', 'NE Config Public 5G', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4134, 4134, 'menu.fault.event', 'Event Notification', 'i18n_en', NULL, NULL, '1', 'supervisor', 1717051688260, '', 0, NULL);
|
||||
|
||||
INSERT INTO `sys_dict_data` VALUES (4133, 4133, 'menu.ne.neConfPara5G', 'NE Public Config', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4134, 4134, 'dictData.ne_version_status.0', 'Nothing', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4135, 4135, 'dictData.ne_version_status.1', 'Updated', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4136, 4136, 'dictData.ne_version_status.2', 'Previous', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4137, 4137, 'dictData.ne_version_status.3', 'Has New', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4138, 4138, 'menu.fault.event', 'Event Notification', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -34,7 +34,7 @@ CREATE TABLE `sys_dict_type` (
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`dict_id`) USING BTREE,
|
||||
UNIQUE KEY `dict_type` (`dict_type`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=123 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='字典类型表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='字典类型表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
@@ -43,7 +43,39 @@ CREATE TABLE `sys_dict_type` (
|
||||
|
||||
LOCK TABLES `sys_dict_type` WRITE;
|
||||
/*!40000 ALTER TABLE `sys_dict_type` DISABLE KEYS */;
|
||||
INSERT INTO `sys_dict_type` VALUES (1,'dictType.sys_user_sex','sys_user_sex','1','supervisor',1699350000000,NULL,0,'dictType.sys_user_sex_remark'),(2,'dictType.sys_show_hide','sys_show_hide','1','supervisor',1699350000000,NULL,0,'dictType.sys_show_hide_remark'),(3,'dictType.sys_normal_disable','sys_normal_disable','1','supervisor',1699350000000,NULL,0,'dictType.sys_normal_disable_remark'),(4,'dictType.sys_job_status','sys_job_status','1','supervisor',1699350000000,NULL,0,'dictType.sys_job_status_remark'),(5,'dictType.sys_job_group','sys_job_group','1','supervisor',1699350000000,NULL,0,'dictType.sys_job_group_remark'),(6,'dictType.sys_yes_no','sys_yes_no','1','supervisor',1699350000000,NULL,0,'dictType.sys_yes_no_remark'),(9,'dictType.sys_oper_type','sys_oper_type','1','supervisor',1699350000000,NULL,0,'dictType.sys_oper_type_remark'),(10,'dictType.sys_common_status','sys_common_status','1','supervisor',1699350000000,NULL,0,'dictType.sys_common_status_remark'),(100,'dictType.trace_type','trace_type','1','supervisor',1699350000000,NULL,0,'dictType.trace_type_remark'),(101,'dictType.operation_log_type','operation_log_type','1','supervisor',1699350000000,NULL,0,'dictType.operation_log_type_remark'),(102,'dictType.alarm_status','alarm_status','1','supervisor',1699350000000,NULL,0,'dictType.alarm_status_remark'),(103,'dictType.security_log_type','security_log_type','1','supervisor',1699350000000,NULL,0,'dictType.security_log_type_remark'),(104,'dictType.ne_version_status','ne_version_status','1','supervisor',1699350000000,NULL,0,'dictType.ne_version_status_remark'),(105,'dictType.i18n_en','i18n_en','1','supervisor',1699350000000,NULL,0,'dictType.i18n_en_remark'),(106,'dictType.i18n_zh','i18n_zh','1','supervisor',1699350000000,NULL,0,'dictType.i18n_zh_remark'),(107,'dictType.sys_role_datascope','sys_role_datascope','1','supervisor',1699350000000,NULL,0,'dictType.sys_role_datascope_remark'),(108,'dictType.active_alarm_type','active_alarm_type','1','supervisor',1699350000000,NULL,0,'dictType.active_alarm_type_remark'),(109,'dictType.active_clear_type','active_clear_type','1','supervisor',1699350000000,NULL,0,'dictType.active_clear_type_remark'),(110,'dictType.active_ack_state','active_ack_state','1','supervisor',1699350000000,NULL,0,'dictType.active_ack_state_remark'),(111,'dictType.active_alarm_severity','active_alarm_severity','1','supervisor',1699350000000,NULL,0,'dictType.active_alarm_severity_remark'),(112,'dictType.index_status','index_status','1','supervisor',1702019398308,NULL,0,'dictType.index_status_remark'),(113,'dictType.cdr_sip_code','cdr_sip_code','1','supervisor',1706611609998,'supervisor',1706612186095,NULL),(114,'dictType.cdr_call_type','cdr_call_type','1','supervisor',1706612292095,NULL,0,NULL),(115,'dictType.ue_auth_code','ue_auth_code','1','supervisor',1706615964700,'supervisor',1706617253275,NULL),(116,'dictType.ue_event_type','ue_event_type','1','supervisor',1706617070548,'supervisor',1706617236965,NULL),(117,'dictType.ue_event_cm_state','ue_event_cm_state','1','supervisor',1706617070548,'supervisor',1706617236965,''),(118,'dictType.ne_host_type','ne_host_type','1','supervisor',1702020000000,'',0,''),(119,'dictType.ne_host_groupId','ne_host_groupId','1','supervisor',1702020000000,'',0,''),(120,'dictType.ne_host_authMode','ne_host_authMode','1','supervisor',1702020000000,'',0,''),(121,'dictType.ne_host_cmd_groupId','ne_host_cmd_groupId','1','supervisor',1702020000000,'',0,''),(122,'dictType.ne_info_status','ne_info_status','1','supervisor',1702020000000,'',0,'');
|
||||
INSERT INTO `sys_dict_type` VALUES (1, 'dictType.sys_user_sex', 'sys_user_sex', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_user_sex_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (2, 'dictType.sys_show_hide', 'sys_show_hide', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_show_hide_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (3, 'dictType.sys_normal_disable', 'sys_normal_disable', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_normal_disable_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (4, 'dictType.sys_job_status', 'sys_job_status', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_job_status_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (5, 'dictType.sys_job_group', 'sys_job_group', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_job_group_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (6, 'dictType.sys_yes_no', 'sys_yes_no', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_yes_no_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (9, 'dictType.sys_oper_type', 'sys_oper_type', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_oper_type_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (10, 'dictType.sys_common_status', 'sys_common_status', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_common_status_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (100, 'dictType.trace_type', 'trace_type', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.trace_type_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (101, 'dictType.operation_log_type', 'operation_log_type', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.operation_log_type_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (102, 'dictType.alarm_status', 'alarm_status', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.alarm_status_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (103, 'dictType.security_log_type', 'security_log_type', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.security_log_type_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (104, 'dictType.ne_version_status', 'ne_version_status', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.ne_version_status_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (105, 'dictType.i18n_en', 'i18n_en', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.i18n_en_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (106, 'dictType.i18n_zh', 'i18n_zh', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.i18n_zh_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (107, 'dictType.sys_role_datascope', 'sys_role_datascope', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.sys_role_datascope_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (108, 'dictType.active_alarm_type', 'active_alarm_type', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.active_alarm_type_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (109, 'dictType.active_clear_type', 'active_clear_type', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.active_clear_type_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (110, 'dictType.active_ack_state', 'active_ack_state', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.active_ack_state_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (111, 'dictType.active_alarm_severity', 'active_alarm_severity', '1', 'supervisor', 1699350000000, NULL, 0, 'dictType.active_alarm_severity_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (112, 'dictType.index_status', 'index_status', '1', 'supervisor', 1702019398308, NULL, 0, 'dictType.index_status_remark');
|
||||
INSERT INTO `sys_dict_type` VALUES (113, 'dictType.cdr_sip_code', 'cdr_sip_code', '1', 'supervisor', 1706611609998, 'supervisor', 1706612186095, NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (114, 'dictType.cdr_call_type', 'cdr_call_type', '1', 'supervisor', 1706612292095, NULL, 0, NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (115, 'dictType.ue_auth_code', 'ue_auth_code', '1', 'supervisor', 1706615964700, 'supervisor', 1706617253275, NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (116, 'dictType.ue_event_type', 'ue_event_type', '1', 'supervisor', 1706617070548, 'supervisor', 1706617236965, NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (117, 'dictType.ue_event_cm_state', 'ue_event_cm_state', '1', 'supervisor', 1706617070548, 'supervisor', 1706617236965, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (118, 'dictType.ne_host_type', 'ne_host_type', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (119, 'dictType.ne_host_groupId', 'ne_host_groupId', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (120, 'dictType.ne_host_authMode', 'ne_host_authMode', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (121, 'dictType.ne_host_cmd_groupId', 'ne_host_cmd_groupId', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (122, 'dictType.ne_info_status', 'ne_info_status', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
INSERT INTO `sys_dict_type` VALUES (123, 'dictType.ne_license_status', 'ne_license_status', '1', 'supervisor', 1702020000000, '', 0, '');
|
||||
|
||||
/*!40000 ALTER TABLE `sys_dict_type` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
@@ -39,7 +39,7 @@ CREATE TABLE `sys_job` (
|
||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
|
||||
PRIMARY KEY (`job_id`) USING BTREE,
|
||||
UNIQUE INDEX `idx_uni_name_group`(`job_name`, `job_group`) USING BTREE COMMENT 'unique index for job_name and job_group'
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '调度任务调度表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '调度任务调度表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_job
|
||||
@@ -50,7 +50,7 @@ INSERT INTO `sys_job` VALUES (5, 'job.deleteExpiredAlarmRecord', 'SYSTEM', 'dele
|
||||
INSERT INTO `sys_job` VALUES (6, 'job.deleteExpiredKpiRecord', 'SYSTEM', 'deleteExpiredRecord', '{\"duration\":30,\"tableName\":\"gold_kpi\",\"colName\":\"date\"}', '0 15 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'supervisor', 1700570673113, 'job.deleteExpiredKpiRecordRemark');
|
||||
INSERT INTO `sys_job` VALUES (7, 'job.backupEtcFromNE', 'SYSTEM', 'backupEtcFromNE', NULL, '0 30 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134843, NULL, 0, 'job.backupEtcFromNERemark');
|
||||
INSERT INTO `sys_job` VALUES (8, 'job.deleteExpiredNeStateRecord', 'SYSTEM', 'deleteExpiredRecord', '{\"duration\":1,\"tableName\":\"ne_state\",\"colName\":\"timestamp\"}', '0 25 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1703668901929, 'job.deleteExpiredNeStateRecordRemark');
|
||||
INSERT INTO `sys_job` VALUES (9, 'job.getStateFromNE', 'SYSTEM', 'getStateFromNE', '', '0/10 * * * * ?', '3', '0', '1', '0', 'supervisor', 1698478134842, 'admin', 1713231120503, 'job.getStateFromNERemark');
|
||||
INSERT INTO `sys_job` VALUES (10, 'job.genNeStateAlarm', 'SYSTEM', 'genNeStateAlarm', '{\"alarmID\":\"HXEMSSM10000\",\"alarmCode\":10000,\"alarmTitle\":\"The system state is abnormal\",\"neType\":\"OMC\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\": \"Major\",\"objectName\":\"EMS;SystemManagement;Heartbeat\",\"objectType\":\"SystemState\",\"specificProblem\":\"Alarm cause: the system state of target NE has not been received for {threshold} seconds\", \"specificProblemID\":\"AC10000\",\"threshold\":30}', '0/5 * * * * ?', '3', '0', '1', '0', 'supervisor', 1698478134842, 'admin', 1713781643031, 'job.genNeStateAlarmRemark');
|
||||
INSERT INTO `sys_job` VALUES (9, 'job.getStateFromNE', 'SYSTEM', 'getStateFromNE', '', '0/10 * * * * ?', '3', '0', '0', '0', 'supervisor', 1698478134842, 'admin', 1713231120503, 'job.getStateFromNERemark');
|
||||
INSERT INTO `sys_job` VALUES (10, 'job.genNeStateAlarm', 'SYSTEM', 'genNeStateAlarm', '{\"alarmID\":\"HXEMSSM10000\",\"alarmCode\":10000,\"alarmTitle\":\"The system state is abnormal\",\"neType\":\"OMC\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\": \"Major\",\"objectName\":\"EMS;SystemManagement;Heartbeat\",\"objectType\":\"SystemState\",\"specificProblem\":\"Alarm cause: the system state of target NE has not been received for {threshold} seconds\", \"specificProblemID\":\"AC10000\",\"threshold\":30}', '0/5 * * * * ?', '3', '0', '0', '0', 'supervisor', 1698478134842, 'admin', 1713781643031, 'job.genNeStateAlarmRemark');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -33,7 +33,7 @@ CREATE TABLE `sys_job_log` (
|
||||
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
|
||||
`cost_time` bigint(20) DEFAULT 0 COMMENT '消耗时间(毫秒)',
|
||||
PRIMARY KEY (`job_log_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=763 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='调度任务调度日志表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='调度任务调度日志表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ CREATE TABLE `sys_log_login` (
|
||||
`msg` varchar(255) DEFAULT '' COMMENT '提示消息',
|
||||
`login_time` bigint(20) DEFAULT 0 COMMENT '登录时间',
|
||||
PRIMARY KEY (`login_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1177 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统登录日志表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统登录日志表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ CREATE TABLE `sys_log_operate` (
|
||||
`oper_time` bigint(20) DEFAULT 0 COMMENT '操作时间',
|
||||
`cost_time` bigint(20) DEFAULT 0 COMMENT '消耗时间(毫秒)',
|
||||
PRIMARY KEY (`oper_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=4083 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统操作日志表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统操作日志表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ CREATE TABLE `sys_menu` (
|
||||
`update_time` bigint(20) NULL DEFAULT 0 COMMENT '更新时间',
|
||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
|
||||
PRIMARY KEY (`menu_id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2148 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_menu
|
||||
@@ -145,7 +145,7 @@ INSERT INTO `sys_menu` VALUES (2099, 'menu.perf', 0, 5, 'perfManage', NULL, '1',
|
||||
INSERT INTO `sys_menu` VALUES (2100, 'menu.perf.task', 2099, 1, 'taskManage', 'perfManage/taskManage/index', '1', '1', 'M', '0', '1', 'perfManage:taskManage:index', 'icon-wofaqi', 'supervisor', 1700000000000, 'admin', 1713177036412, 'menu.perf.taskRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2101, 'menu.perf.data', 2099, 2, 'perfData', 'perfManage/perfData/index', '1', '1', 'M', '0', '1', 'perfManage:perfData:index', 'icon-soutubiao', 'supervisor', 1700000000000, 'admin', 1713177042915, 'menu.perf.dataRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2102, 'menu.perf.report', 2099, 3, 'perfReport', 'perfManage/perfReport/index', '1', '0', 'M', '0', '0', 'perfManage:perfReport:index', 'icon-gonggaodayi', 'supervisor', 1700000000000, NULL, 0, 'menu.perf.reportRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2103, 'menu.perf.threshold', 2099, 4, 'perfThreshold', 'perfManage/perfThreshold/index', '1', '0', 'M', '0', '1', 'perfManage:perfThreshold:index', 'icon-zhuanrang', 'supervisor', 1700000000000, 'supervisor', 1715417264697, 'menu.perf.thresholdRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2103, 'menu.perf.threshold', 2099, 4, 'perfThreshold', 'perfManage/perfThreshold/index', '1', '0', 'M', '0', '0', 'perfManage:perfThreshold:index', 'icon-zhuanrang', 'supervisor', 1700000000000, 'supervisor', 1715417264697, 'menu.perf.thresholdRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2104, 'menu.perf.kpi', 2099, 5, 'goldTarget', 'perfManage/goldTarget/index', '1', '1', 'M', '1', '1', 'perfManage:goldTarget:index', 'icon-soutubiao', 'supervisor', 1700000000000, NULL, 0, 'menu.perf.kpiRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2105, 'menu.perf.customTarget', 2099, 6, 'customTarget', 'perfManage/customTarget/index', '1', '1', 'M', '0', '0', 'perfManage:customTarget:index', 'icon-fanhui1', 'supervisor', 1700000000000, 'admin', 1712807948673, 'menu.perf.customTargetRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2106, 'menu.perf.set', 2099, 7, 'perfSet', 'perfManage/perfSet/index', '1', '0', 'M', '0', '0', 'perfManage:perfSet:index', 'icon-gonggao', 'supervisor', 1700000000000, NULL, 0, 'menu.perf.setRemark');
|
||||
@@ -180,6 +180,11 @@ INSERT INTO `sys_menu` VALUES (2137, 'menu.config.neInfo', 4, 14, 'neInfo', 'ne/
|
||||
INSERT INTO `sys_menu` VALUES (2138, 'menu.dashboard.amfUE', 2141, 1, 'amfUE', 'dashboard/amfUE/index', '1', '0', 'M', '1', '1', 'dashboard:amfUE:index', 'icon-paixu', 'supervisor', 1705550000000, 'supervisor', 1711354049893, '');
|
||||
INSERT INTO `sys_menu` VALUES (2140, 'menu.monitor.cdr', 2087, 40, 'cdr', '', '1', '0', 'D', '1', '1', '', 'icon-tubiaoku', 'supervisor', 1711352709786, 'supervisor', 1712751135878, '');
|
||||
INSERT INTO `sys_menu` VALUES (2141, 'menu.monitor.event', 2087, 50, 'event', '', '1', '0', 'D', '1', '1', '', 'icon-gengduo', 'supervisor', 1711352768797, 'supervisor', 1712751125648, '');
|
||||
INSERT INTO `sys_menu` VALUES (2144, 'menu.fault.event', 2129, 3, 'event', 'faultManage/event/index', '1', '0', 'M', '1', '1', 'faultManage:event:index', 'icon-tubiaoku', 'supervisor', 1717051993146, 'supervisor', 1717052106943, '');
|
||||
INSERT INTO `sys_menu` VALUES (2142, 'menu.ne.neQuickSetup', 4, 10, 'neQuickSetup', 'ne/neQuickSetup/index', '1', '1', 'M', '1', '1', 'ne:neQuickSetup:list', 'icon-wofaqi', 'supervisor', 1708580000000, '', 0, '');
|
||||
INSERT INTO `sys_menu` VALUES (2143, 'menu.config.neLicense', 4, 20, 'neLicense', 'ne/neLicense/index', '1', '0', 'M', '1', '1', 'ne:neLicense:list', 'icon-fuzhidaima', 'supervisor', 1708580000000, '', 0, '');
|
||||
INSERT INTO `sys_menu` VALUES (2144, 'menu.config.neSoftware', 4, 23, 'neSoftware', 'ne/neSoftware/index', '1', '0', 'M', '1', '1', 'ne:neSoftware:list', 'icon-fuzhidaima', 'supervisor', 1708580000000, '', 0, '');
|
||||
INSERT INTO `sys_menu` VALUES (2145, 'menu.config.neVersion', 4, 26, 'neVersion', 'ne/neVersion/index', '1', '0', 'M', '1', '1', 'ne:neVersion:list', 'icon-fuzhidaima', 'supervisor', 1708580000000, '', 0, '');
|
||||
INSERT INTO `sys_menu` VALUES (2146, 'menu.ne.neConfPara5G', 4, 8, 'neConfPara5G', 'ne/neConfPara5G/index', '1', '0', 'M', '1', '1', 'ne:neConfPara5G:list', 'icon-wofaqi', 'supervisor', 1708580000000, '', 0, '');
|
||||
INSERT INTO `sys_menu` VALUES (2147, 'menu.fault.event', 2129, 3, 'event', 'faultManage/event/index', '1', '0', 'M', '1', '1', 'faultManage:event:index', 'icon-tubiaoku', 'supervisor', 1717051993146, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -1,27 +1,9 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `sys_post`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `sys_post`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `sys_post` (
|
||||
`post_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID',
|
||||
`post_code` varchar(50) NOT NULL COMMENT '岗位编码',
|
||||
@@ -34,26 +16,19 @@ CREATE TABLE `sys_post` (
|
||||
`update_time` bigint(20) DEFAULT 0 COMMENT '更新时间',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`post_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='岗位信息表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='岗位信息表';
|
||||
|
||||
--
|
||||
-- Dumping data for table `sys_post`
|
||||
--
|
||||
|
||||
LOCK TABLES `sys_post` WRITE;
|
||||
/*!40000 ALTER TABLE `sys_post` DISABLE KEYS */;
|
||||
INSERT INTO `sys_post` VALUES (1,'administator','post.admin',1,'1','supervisor',1697110106499,NULL,0,NULL),(2,'operator','post.operator',2,'1','supervisor',1697110106499,NULL,0,NULL),(3,'monitor','post.monitor',3,'1','supervisor',1697110106499,NULL,0,NULL),(4,'visitor','post.visitor',4,'1','supervisor',1697110106499,NULL,0,NULL),(5,'111','test1',7,'0','admin',1701766022383,'',0,'remark');
|
||||
/*!40000 ALTER TABLE `sys_post` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
INSERT INTO `sys_post` VALUES (1, 'administator', 'post.admin', 1, '1', 'supervisor', 1697110106499, NULL, 0, NULL);
|
||||
INSERT INTO `sys_post` VALUES (2, 'operator', 'post.operator', 2, '1', 'supervisor', 1697110106499, NULL, 0, NULL);
|
||||
INSERT INTO `sys_post` VALUES (3, 'monitor', 'post.monitor', 3, '1', 'supervisor', 1697110106499, NULL, 0, NULL);
|
||||
INSERT INTO `sys_post` VALUES (4, 'visitor', 'post.visitor', 4, '1', 'supervisor', 1697110106499, NULL, 0, NULL);
|
||||
|
||||
UNLOCK TABLES;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:27:00
|
||||
|
||||
@@ -1,27 +1,10 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `sys_role`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `sys_role`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `sys_role` (
|
||||
`role_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
||||
`role_name` varchar(30) NOT NULL COMMENT '角色名称',
|
||||
@@ -38,26 +21,21 @@ CREATE TABLE `sys_role` (
|
||||
`update_time` bigint(20) DEFAULT 0 COMMENT '更新时间',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`role_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=118 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='角色信息表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='角色信息表';
|
||||
|
||||
--
|
||||
-- Dumping data for table `sys_role`
|
||||
--
|
||||
|
||||
LOCK TABLES `sys_role` WRITE;
|
||||
/*!40000 ALTER TABLE `sys_role` DISABLE KEYS */;
|
||||
INSERT INTO `sys_role` VALUES (1,'role.admin','supervisor',1,'1','1','1','1','0','supervisor',1697091437683,NULL,0,'role.adminRemark'),(2,'role.adminAssign','administrator',2,'1','1','1','1','0','supervisor',1698486915894,'supervisor',1706774375473,'role.adminAssignRemark'),(3,'role.operator','operator',3,'1','1','1','1','0','supervisor',1698486934900,'supervisor',1706774382221,'role.operatorRemark'),(4,'role.monitor','monitor',4,'1','1','1','1','0','supervisor',1698486950714,'supervisor',1706774389300,'role.monitorRemark'),(5,'role.vistor','vistor',5,'1','1','1','1','0','supervisor',1698486975779,'supervisor',1706774405096,'role.vistorRemark');
|
||||
/*!40000 ALTER TABLE `sys_role` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
INSERT INTO `sys_role` VALUES (1, 'role.admin', 'supervisor', 1, '1', '1', '1', '1', '0', 'supervisor', 1697091437683, 'supervisor', 1697091437683, 'role.adminRemark');
|
||||
INSERT INTO `sys_role` VALUES (2, 'role.adminAssign', 'administrator', 2, '1', '1', '1', '1', '0', 'supervisor', 1698486915894, 'supervisor', 1717143830709, 'role.adminAssignRemark');
|
||||
INSERT INTO `sys_role` VALUES (3, 'role.operator', 'operator', 3, '1', '1', '1', '1', '0', 'supervisor', 1698486934900, 'supervisor', 1717143582784, 'role.operatorRemark');
|
||||
INSERT INTO `sys_role` VALUES (4, 'role.monitor', 'monitor', 4, '1', '1', '1', '1', '0', 'supervisor', 1698486950714, 'supervisor', 1706774389300, 'role.monitorRemark');
|
||||
INSERT INTO `sys_role` VALUES (5, 'role.vistor', 'vistor', 5, '1', '1', '1', '1', '0', 'supervisor', 1698486975779, 'supervisor', 1706774405096, 'role.vistorRemark');
|
||||
|
||||
UNLOCK TABLES;
|
||||
|
||||
|
||||
-- Dump completed on 2024-03-06 17:27:00
|
||||
|
||||
@@ -1,19 +1,3 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server : local_mariadb
|
||||
Source Server Type : MariaDB
|
||||
Source Server Version : 100338 (10.3.38-MariaDB)
|
||||
Source Host : localhost:33066
|
||||
Source Schema : omc_db
|
||||
|
||||
Target Server Type : MariaDB
|
||||
Target Server Version : 100338 (10.3.38-MariaDB)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 30/05/2024 17:22:32
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
@@ -27,246 +11,253 @@ CREATE TABLE `sys_role_menu` (
|
||||
PRIMARY KEY (`role_id`, `menu_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_role_menu
|
||||
-- ----------------------------
|
||||
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, 100);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 101);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 102);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 103);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 104);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 105);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 108);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 111);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 112);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 115);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 116);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 117);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 500);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 501);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1000);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1001);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1002);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1003);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1004);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1005);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1006);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1007);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1008);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1009);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1010);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1011);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1012);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1013);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1014);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1015);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1016);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1017);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1018);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1019);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1020);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1021);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1022);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1023);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1024);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1030);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1031);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1032);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1033);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1034);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1039);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1040);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1041);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1042);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1043);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1044);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1045);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1048);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1049);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1050);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1051);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1052);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1053);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1054);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1055);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1056);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2009);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2010);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2075);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2078);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2079);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2080);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2081);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2082);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2083);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2084);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2085);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2086);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2087);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2088);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2089);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2091);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2092);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2094);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2097);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2098);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2099);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2100);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2101);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2102);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2103);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2104);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2105);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2106);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2107);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2108);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2109);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2111);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2112);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2113);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2114);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2118);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2119);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2120);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2121);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2122);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2123);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2124);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2125);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2126);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2128);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2129);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2130);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2131);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2132);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2133);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2138);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2140);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2141);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2144);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 1);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 4);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 5);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 108);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 112);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 115);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 500);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 501);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 1030);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 1031);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 1032);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 1034);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 1039);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 1042);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 1048);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2009);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2010);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2075);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2078);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2080);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2081);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2082);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2083);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2084);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2085);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2086);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2087);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2088);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2089);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2091);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2092);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2094);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2097);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2098);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2099);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2100);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2101);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2102);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2103);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2104);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2105);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2106);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2107);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2108);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2109);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2111);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2112);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2113);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2118);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2119);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2120);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2123);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2124);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2125);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2126);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2127);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2128);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2129);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2130);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2131);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2132);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2133);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2138);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2140);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2141);
|
||||
INSERT INTO `sys_role_menu` VALUES (3, 2144);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 1);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 5);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 112);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 115);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 500);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 501);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 1039);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 1041);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 1042);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 1044);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 1048);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2080);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2081);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2082);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2083);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2084);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2085);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2086);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2087);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2088);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2089);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2091);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2092);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2094);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2097);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2098);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2099);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2101);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2104);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2113);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2119);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2120);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2124);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2125);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2126);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2127);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2128);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2129);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2130);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2131);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2132);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2133);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2138);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2140);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2141);
|
||||
INSERT INTO `sys_role_menu` VALUES (4, 2144);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 1);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 5);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 112);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 2080);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 2081);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 2082);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 2087);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 2131);
|
||||
INSERT INTO `sys_role_menu` VALUES (5, 2132);
|
||||
--
|
||||
-- Dumping data for table `sys_role_menu`
|
||||
--
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
LOCK TABLES `sys_role_menu` WRITE;
|
||||
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 4);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 5);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 100);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 101);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 102);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 103);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 104);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 105);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 108);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 111);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 112);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 115);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 116);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 117);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 500);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 501);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1000);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1001);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1002);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1003);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1004);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1005);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1006);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1007);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1008);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1009);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1010);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1011);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1012);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1013);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1014);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1015);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1016);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1017);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1018);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1019);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1020);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1021);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1022);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1023);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1024);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1030);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1031);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1032);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1033);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1034);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1039);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1040);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1041);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1042);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1043);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1044);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1045);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1048);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1049);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1050);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1051);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1052);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1053);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1054);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1055);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1056);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2009);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2010);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2078);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2080);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2081);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2082);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2083);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2084);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2085);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2086);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2087);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2088);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2089);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2091);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2092);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2094);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2097);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2098);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2099);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2100);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2101);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2102);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2103);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2104);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2105);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2106);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2107);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2108);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2109);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2111);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2113);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2114);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2118);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2119);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2120);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2121);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2122);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2123);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2124);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2125);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2126);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2128);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2129);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2130);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2131);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2132);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2133);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2137);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2138);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2140);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2141);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2142);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2143);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2145);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2146);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2147);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 4);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 5);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 108);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 112);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 115);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 500);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 501);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1030);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1031);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1032);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1034);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1039);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1042);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1048);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2009);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2010);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2078);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2080);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2081);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2082);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2083);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2084);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2085);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2086);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2087);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2088);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2089);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2091);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2092);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2094);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2097);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2098);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2099);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2100);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2101);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2102);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2103);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2104);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2105);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2106);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2107);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2108);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2109);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2111);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2113);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2118);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2119);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2120);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2123);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2124);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2125);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2126);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2127);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2128);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2129);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2130);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2131);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2132);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2133);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2137);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2138);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2140);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2141);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2143);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2147);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 5);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 112);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 115);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 500);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 501);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1039);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1041);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1042);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1044);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1048);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2080);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2081);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2082);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2083);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2084);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2085);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2086);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2087);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2088);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2089);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2091);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2092);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2094);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2097);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2098);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2099);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2101);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2104);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2113);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2119);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2120);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2124);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2125);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2126);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2127);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2128);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2129);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2130);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2131);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2132);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2133);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2138);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2140);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2141);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2147);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 1);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 5);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 112);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2080);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2081);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2082);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2087);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2131);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2132);
|
||||
|
||||
UNLOCK TABLES;
|
||||
|
||||
-- Dump completed on 2024-04-12 21:19:19
|
||||
|
||||
@@ -1,27 +1,10 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `sys_user`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `sys_user`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `sys_user` (
|
||||
`user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||||
`dept_id` bigint DEFAULT '0' COMMENT '部门ID',
|
||||
@@ -44,7 +27,6 @@ CREATE TABLE `sys_user` (
|
||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
||||
PRIMARY KEY (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='用户信息表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `sys_user`
|
||||
@@ -52,17 +34,12 @@ CREATE TABLE `sys_user` (
|
||||
|
||||
LOCK TABLES `sys_user` WRITE;
|
||||
/*!40000 ALTER TABLE `sys_user` DISABLE KEYS */;
|
||||
INSERT INTO `sys_user` VALUES (1,NULL,'supervisor','supervisor','sys','','','','','$2a$10$QgIcp6yuOEGrEU0TNU12K.uQRLbcufesEU7hiRYlRSSdUO7OAkoTq','1','0','192.168.5.58',1709631361655,'admin',1697091656500,'supervisor',1709631361656,''),(2,NULL,'admin','admin','sys','','','','','$2a$10$QgIcp6yuOEGrEU0TNU12K.uQRLbcufesEU7hiRYlRSSdUO7OAkoTq','1','0','192.168.2.219',1709713306413,'admin',1697091656500,'admin',1709713306416,''),(103,NULL,'manager','manager','sys','','','','','$2a$10$RND3fUw9Ai.WcggYSI57tu.u3OIlktdPxFzlWkmiHC1paV038t0I2','1','0','192.168.2.219',1701425631740,'admin',1698661521780,'manager',1701425631741,''),(104,NULL,'monitor','monitor','sys','','','','','$2a$10$t3zpKQ0olECotFyI1yO43.tCoS0EXoSRBDcqwl09xvrsmn14qFHHy','1','0','192.168.2.219',1699345510602,'admin',1698661684898,'monitor',1699345510603,''),(106,100,'admin1','admin1','sys','','','1','','$2a$10$HmaZLRdHqWJ.PFanzQoBiOVWcjy.gIj4o6C6KE49FO.AM4f/U6YP.','0','0','',0,'admin',1701424142061,'',0,NULL);
|
||||
/*!40000 ALTER TABLE `sys_user` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
INSERT INTO `sys_user` VALUES (1, NULL, 'supervisor', 'supervisor', 'sys', '', '', '', '', '$2a$10$QgIcp6yuOEGrEU0TNU12K.uQRLbcufesEU7hiRYlRSSdUO7OAkoTq', '1', '0', '127.0.0.1', 0, '', 0, '', 0, '');
|
||||
INSERT INTO `sys_user` VALUES (2, NULL, 'admin', 'admin', 'sys', '', '', '', '', '$2a$10$QgIcp6yuOEGrEU0TNU12K.uQRLbcufesEU7hiRYlRSSdUO7OAkoTq', '1', '0', '127.0.0.1', 0, '', 0, '', 0, '');
|
||||
INSERT INTO `sys_user` VALUES (3, NULL, 'manager', 'manager', 'sys', '', '', '', '', '$2a$10$RND3fUw9Ai.WcggYSI57tu.u3OIlktdPxFzlWkmiHC1paV038t0I2', '1', '0', '127.0.0.1', 0, '', 0, '', 0, '');
|
||||
INSERT INTO `sys_user` VALUES (4, NULL, 'monitor', 'monitor', 'sys', '', '', '', '', '$2a$10$t3zpKQ0olECotFyI1yO43.tCoS0EXoSRBDcqwl09xvrsmn14qFHHy', '1', '0', '127.0.0.1', 0, '', 0, '', 0, '');
|
||||
|
||||
UNLOCK TABLES;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:27:00
|
||||
|
||||
@@ -1,51 +1,24 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `sys_user_post`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `sys_user_post`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `sys_user_post` (
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
|
||||
`post_id` bigint(20) NOT NULL COMMENT '岗位ID',
|
||||
PRIMARY KEY (`user_id`,`post_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='用户与岗位关联表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `sys_user_post`
|
||||
--
|
||||
|
||||
LOCK TABLES `sys_user_post` WRITE;
|
||||
/*!40000 ALTER TABLE `sys_user_post` DISABLE KEYS */;
|
||||
INSERT INTO `sys_user_post` VALUES (1,1),(101,3),(103,2);
|
||||
/*!40000 ALTER TABLE `sys_user_post` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
INSERT INTO `sys_user_post` VALUES (1,1),(2,2),(3,3),(4,3);
|
||||
|
||||
UNLOCK TABLES;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:27:00
|
||||
|
||||
@@ -1,51 +1,24 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `sys_user_role`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `sys_user_role`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `sys_user_role` (
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
|
||||
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
|
||||
PRIMARY KEY (`user_id`,`role_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='用户和角色关联表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `sys_user_role`
|
||||
--
|
||||
|
||||
LOCK TABLES `sys_user_role` WRITE;
|
||||
/*!40000 ALTER TABLE `sys_user_role` DISABLE KEYS */;
|
||||
INSERT INTO `sys_user_role` VALUES (1,1),(2,2),(100,2),(101,117),(102,2),(103,3),(104,4);
|
||||
/*!40000 ALTER TABLE `sys_user_role` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
INSERT INTO `sys_user_role` VALUES (1,1),(2,2),(3,3),(4,4);
|
||||
|
||||
UNLOCK TABLES;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:27:01
|
||||
|
||||
@@ -46,7 +46,7 @@ CREATE TABLE `u_sub_user` (
|
||||
`static_ip` varchar(50) DEFAULT NULL COMMENT 'staticIpstatic_ip指给4G UE分配的静态IP,没有可不带此字段名',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_ne唯一索引'
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=12123 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM签约用户';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM签约用户';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `user`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `user`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `user` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`account_id` varchar(32) NOT NULL,
|
||||
`name` varchar(10) DEFAULT NULL,
|
||||
`real_name` varchar(128) DEFAULT NULL,
|
||||
`sn` varchar(128) DEFAULT NULL,
|
||||
`gender` varchar(128) DEFAULT NULL,
|
||||
`email` varchar(128) DEFAULT NULL,
|
||||
`id_card_number` varchar(128) DEFAULT NULL,
|
||||
`description` varchar(128) DEFAULT NULL,
|
||||
`telephone_number` varchar(128) DEFAULT NULL,
|
||||
`phone` varchar(128) DEFAULT NULL,
|
||||
`mobile` varchar(128) DEFAULT NULL,
|
||||
`employee_number` varchar(128) DEFAULT NULL,
|
||||
`employee_type` varchar(128) DEFAULT NULL,
|
||||
`organize` varchar(128) DEFAULT NULL,
|
||||
`supporter_corp_name` varchar(128) DEFAULT NULL,
|
||||
`start_time` varchar(128) DEFAULT NULL,
|
||||
`end_time` varchar(128) DEFAULT NULL,
|
||||
`password` varchar(256) DEFAULT NULL,
|
||||
`password_sha512` varchar(1024) DEFAULT NULL,
|
||||
`change_password_flag` tinyint(4) unsigned zerofill DEFAULT 0000,
|
||||
`password_expiration` datetime DEFAULT NULL,
|
||||
`status` enum('Active','Closed','Locked','Pending') DEFAULT 'Active',
|
||||
`user_expiration` datetime DEFAULT NULL,
|
||||
`group_name` varchar(16) DEFAULT 'omc',
|
||||
`profile` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||
`create_time` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`update_time` datetime DEFAULT NULL,
|
||||
`unit` varchar(128) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `idx_uni_user_acc_id` (`account_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='del-旧前端使用';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:59
|
||||
@@ -1,509 +1,5 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`user` (
|
||||
`id`,
|
||||
`account_id`,
|
||||
`name`,
|
||||
`real_name`,
|
||||
`sn`,
|
||||
`gender`,
|
||||
`email`,
|
||||
`id_card_number`,
|
||||
`description`,
|
||||
`telephone_number`,
|
||||
`phone`,
|
||||
`mobile`,
|
||||
`employee_number`,
|
||||
`employee_type`,
|
||||
`organize`,
|
||||
`supporter_corp_name`,
|
||||
`start_time`,
|
||||
`end_time`,
|
||||
`password`,
|
||||
`password_sha512`,
|
||||
`change_password_flag`,
|
||||
`password_expiration`,
|
||||
`status`,
|
||||
`user_expiration`,
|
||||
`group_name`,
|
||||
`profile`
|
||||
)
|
||||
VALUES (
|
||||
1,
|
||||
'admin',
|
||||
'admin',
|
||||
'administrator',
|
||||
'',
|
||||
'',
|
||||
'admin@aa.com',
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
'312',
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
'$2a$10$QgIcp6yuOEGrEU0TNU12K.uQRLbcufesEU7hiRYlRSSdUO7OAkoTq',
|
||||
'324584ab0b03a5af1899c1801485de8a455a114d5f6ee08a48dbdf7e8f1a047eaaa1789e881f9eb268113f6c6814fa20f43183ffa6e014765f2aa8733c526048',
|
||||
0000,
|
||||
NULL,
|
||||
'Active',
|
||||
NULL,
|
||||
'admin',
|
||||
'{\"color\":{\"critical\":\"#e8994a\",\"event\":\"#c5d2dc\",\"major\":\"#494040\",\"minor\":\"#5f70a8\",\"sound\":\"custom\",\"warning\":\"#b9e1dd\"},\"sound\":\"custom\",\"custom\":\"hrxz.com-exz2s3uxhc47391.mp3\"}'
|
||||
);
|
||||
|
||||
-- add default ne info
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
1,
|
||||
'OMC',
|
||||
'001',
|
||||
'4400HX101',
|
||||
'OMC_001',
|
||||
'172.16.5.100',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
2,
|
||||
'IMS',
|
||||
'001',
|
||||
'4400HX1IMS001',
|
||||
'IMS_001',
|
||||
'172.16.5.110',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
3,
|
||||
'AMF',
|
||||
'001',
|
||||
'4400HX1AMF001',
|
||||
'AMF_001',
|
||||
'172.16.5.120',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
4,
|
||||
'AUSF',
|
||||
'001',
|
||||
'4400HX1AUF001',
|
||||
'AUSF_001',
|
||||
'172.16.5.130',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
5,
|
||||
'UDM',
|
||||
'001',
|
||||
'4400HX1UDM001',
|
||||
'UDM_001',
|
||||
'172.16.5.140',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
6,
|
||||
'SMF',
|
||||
'001',
|
||||
'4400HX1SMF001',
|
||||
'SMF_001',
|
||||
'172.16.5.150',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
7,
|
||||
'PCF',
|
||||
'001',
|
||||
'4400HX1PCF001',
|
||||
'PCF_001',
|
||||
'172.16.5.160',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
8,
|
||||
'NSSF',
|
||||
'001',
|
||||
'4400HX1NSF001',
|
||||
'NSSF_001',
|
||||
'172.16.5.170',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
9,
|
||||
'NRF',
|
||||
'001',
|
||||
'4400HX1NRF001',
|
||||
'NRF_001',
|
||||
'172.16.5.180',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
10,
|
||||
'UPF',
|
||||
'001',
|
||||
'4400HX1UPF001',
|
||||
'UPF_001',
|
||||
'172.16.5.190',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
11,
|
||||
'LMF',
|
||||
'001',
|
||||
'4400HX1LMF001',
|
||||
'LMF_001',
|
||||
'172.16.5.200',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
12,
|
||||
'NEF',
|
||||
'001',
|
||||
'4400HX1NEF001',
|
||||
'NEF_001',
|
||||
'172.16.5.210',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
13,
|
||||
'MME',
|
||||
'001',
|
||||
'4400HX1MME001',
|
||||
'MME_001',
|
||||
'172.16.5.220',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`ne_info` (
|
||||
`id`,
|
||||
`ne_type`,
|
||||
`ne_id`,
|
||||
`rm_uid`,
|
||||
`ne_name`,
|
||||
`ip`,
|
||||
`port`,
|
||||
`pv_flag`,
|
||||
`province`,
|
||||
`vendor_name`,
|
||||
`dn`,
|
||||
`ne_address`,
|
||||
`status`
|
||||
)
|
||||
VALUES (
|
||||
14,
|
||||
'N3IWF',
|
||||
'001',
|
||||
'4400HX1IWF001',
|
||||
'N3IWF_001',
|
||||
'172.16.5.230',
|
||||
33030,
|
||||
'PNF',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
'-',
|
||||
0
|
||||
);
|
||||
--
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
@@ -57,7 +57,7 @@ CREATE TABLE IF NOT EXISTS `alarm_event` (
|
||||
UNIQUE INDEX `idx_uni_aid_ne_aseq`(`ne_type`, `ne_id`, `alarm_id`, `alarm_seq`) USING BTREE,
|
||||
INDEX `idx_event_time`(`event_time`) USING BTREE,
|
||||
INDEX `idx_severity_status`(`alarm_status`, `orig_severity`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 228788 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
-- Move event alarm from table alarm to alarm_event
|
||||
START TRANSACTION;
|
||||
|
||||
@@ -16,25 +16,24 @@
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `sys_backup`
|
||||
-- Table structure for table `monitor_base`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `sys_backup`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `sys_backup` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`created_at` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`updated_at` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`backup_type` varchar(50) DEFAULT NULL COMMENT '备份类型 0文件资源 1数据库',
|
||||
`backup_way` varchar(50) DEFAULT NULL COMMENT '备份方式 0手动备份 1周期备份',
|
||||
`name` varchar(50) DEFAULT NULL COMMENT '文件名',
|
||||
`path` varchar(200) DEFAULT NULL COMMENT '文件路径',
|
||||
`backup_time` datetime DEFAULT NULL COMMENT '备份时间',
|
||||
`backup_medium` varchar(200) DEFAULT NULL COMMENT '备份介质',
|
||||
`backup_value` varchar(50) DEFAULT NULL COMMENT '备份内容',
|
||||
CREATE TABLE IF NOT EXISTS `monitor_base` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`cpu` float DEFAULT '0' COMMENT 'cpu使用率',
|
||||
`load_usage` float DEFAULT '0' COMMENT 'cpu平均使用率',
|
||||
`cpu_load1` float DEFAULT '0' COMMENT 'cpu使用1分钟',
|
||||
`cpu_load5` float DEFAULT '0' COMMENT 'cpu使用5分钟',
|
||||
`cpu_load15` float DEFAULT '0' COMMENT 'cpu使用15分钟',
|
||||
`memory` float DEFAULT '0' COMMENT '内存使用率',
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元ID',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='del-旧前端使用的系统文件数据备份';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_基本信息';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
@@ -46,4 +45,4 @@ CREATE TABLE `sys_backup` (
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:58
|
||||
-- Dump completed on 2024-03-06 17:26:56
|
||||
@@ -16,23 +16,23 @@
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `security_log`
|
||||
-- Table structure for table `monitor_io`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `security_log`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `security_log` (
|
||||
`id` int(10) NOT NULL AUTO_INCREMENT,
|
||||
`account_name` varchar(32) NOT NULL,
|
||||
`account_type` varchar(16) NOT NULL COMMENT 'group_name',
|
||||
`op_ip` varchar(64) DEFAULT NULL,
|
||||
`op_type` tinyint(4) DEFAULT NULL COMMENT '// 0-Login 1-Logout 2-Add 3-Update 4-Delete 5-Lock 6-Unlock',
|
||||
`op_content` text DEFAULT NULL,
|
||||
`op_result` tinyint(4) DEFAULT NULL,
|
||||
`op_time` datetime DEFAULT NULL,
|
||||
CREATE TABLE IF NOT EXISTS `monitor_io` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '磁盘名',
|
||||
`read` int DEFAULT '0' COMMENT '读取K',
|
||||
`write` int DEFAULT '0' COMMENT '写入K',
|
||||
`count` int DEFAULT '0' COMMENT '读写次数',
|
||||
`time` int DEFAULT '0' COMMENT '读写延迟',
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元ID',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=646 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_磁盘IO';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
@@ -44,4 +44,4 @@ CREATE TABLE `security_log` (
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:58
|
||||
-- Dump completed on 2024-03-06 17:26:56
|
||||
@@ -16,25 +16,21 @@
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `session`
|
||||
-- Table structure for table `monitor_network`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `session`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `session` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`account_id` varchar(32) DEFAULT NULL,
|
||||
`name` varchar(32) DEFAULT NULL,
|
||||
`host` varchar(32) DEFAULT NULL,
|
||||
`access_token` varchar(255) DEFAULT NULL,
|
||||
`expires` int(11) DEFAULT NULL,
|
||||
`status` enum('online','offline') DEFAULT 'online',
|
||||
`login_time` datetime DEFAULT current_timestamp(),
|
||||
`shake_time` datetime DEFAULT NULL,
|
||||
`logout_time` datetime DEFAULT NULL,
|
||||
CREATE TABLE IF NOT EXISTS `monitor_network` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网卡名',
|
||||
`up` float DEFAULT '0' COMMENT '上行',
|
||||
`down` float DEFAULT '0' COMMENT '下行',
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '网元ID',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1194 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='监控_网络IO';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
@@ -46,4 +42,4 @@ CREATE TABLE `session` (
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:58
|
||||
-- Dump completed on 2024-03-06 17:26:56
|
||||
@@ -1,14 +1,14 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `omc_db`.`ne_host` (
|
||||
CREATE TABLE IF NOT EXISTS `ne_host` (
|
||||
`host_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主机主键',
|
||||
`host_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机类型 ssh telnet',
|
||||
`group_id` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '分组(0默认 1网元 2系统)',
|
||||
`title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '标题名称',
|
||||
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '标题名称',
|
||||
`addr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机地址',
|
||||
`port` int NULL DEFAULT 22 COMMENT 'SSH端口',
|
||||
`user` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机用户名',
|
||||
`auth_mode` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '认证模式(0密码 1主机私钥)',
|
||||
`auth_mode` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '认证模式(0密码 1主机私钥 2已免密)',
|
||||
`password` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '认证密码',
|
||||
`private_key` varchar(6000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '认证私钥',
|
||||
`pass_phrase` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '认证私钥密码',
|
||||
@@ -21,39 +21,4 @@ CREATE TABLE IF NOT EXISTS `omc_db`.`ne_host` (
|
||||
UNIQUE INDEX `uk_type_group_title`(`host_type` ASC, `group_id` ASC, `title` ASC) USING BTREE COMMENT '同组内名称唯一'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元主机表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
|
||||
-- 初始记录
|
||||
INSERT IGNORE INTO `ne_host` VALUES (1, 'ssh', '1', 'OMC_001_22', '172.16.5.100', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (2, 'telnet', '1', 'OMC_001_4100', '172.16.5.100', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (3, 'ssh', '1', 'IMS_001_22', '172.16.5.110', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708314682742, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (4, 'telnet', '1', 'IMS_001_4100', '172.16.5.110', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (5, 'ssh', '1', 'AMF_001_22', '172.16.5.120', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708314682742, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (6, 'telnet', '1', 'AMF_001_4100', '172.16.5.120', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (7, 'ssh', '1', 'AUSF_001_22', '172.16.5.130', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (8, 'telnet', '1', 'AUSF_001_4100', '172.16.5.130', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (9, 'ssh', '1', 'UDM_001_22', '172.16.5.140', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (10, 'telnet', '1', 'UDM_001_4100', '172.16.5.140', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (11, 'ssh', '1', 'SMF_001_22', '172.16.5.150', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (12, 'telnet', '1', 'SMF_001_4100', '172.16.5.150', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (13, 'ssh', '1', 'PCF_001_22', '172.16.5.160', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (14, 'telnet', '1', 'PCF_001_4100', '172.16.5.160', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (15, 'ssh', '1', 'NSSF_001_22', '172.16.5.170', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (16, 'telnet', '1', 'NSSF_001_4100', '172.16.5.170', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (17, 'ssh', '1', 'NRF_001_22', '172.16.5.180', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (18, 'telnet', '1', 'NRF_001_4100', '172.16.5.180', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (19, 'ssh', '1', 'UPF_001_22', '172.16.5.190', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (20, 'telnet', '1', 'UPF_001_4100', '172.16.5.190', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (21, 'telnet', '1', 'UPF_001_5002', '172.16.5.190', 5002, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (22, 'ssh', '1', 'LMF_001_22', '172.16.5.200', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (23, 'telnet', '1', 'LMF_001_4100', '172.16.5.200', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (24, 'ssh', '1', 'NEF_001_22', '172.16.5.210', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (25, 'telnet', '1', 'NEF_001_4100', '172.16.5.210', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (26, 'ssh', '1', 'MME_001_22', '172.16.5.220', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (27, 'telnet', '1', 'MME_001_4100', '172.16.5.220', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (28, 'ssh', '1', 'N3IWF_001_22', '172.16.5.230', 22, 'agtuser', '0', '1I8tB3dTRd5IjVZWRp+m9ppxzQ323U6XJZUJE510hus=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
INSERT IGNORE INTO `ne_host` VALUES (29, 'telnet', '1', 'N3IWF_001_4100', '172.16.5.230', 4100, 'admin', '0', 'YYxSAY9Zng3EuB3dngRqNoPIh8GK3GhesFqIznv5qAA=', NULL, NULL, NULL, 'admin', 1708333292882, NULL, 0);
|
||||
|
||||
-- 更新记录
|
||||
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
@@ -1,6 +1,6 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `omc_db`.`ne_host_cmd` (
|
||||
CREATE TABLE IF NOT EXISTS `ne_host_cmd` (
|
||||
`cmd_id` bigint NOT NULL AUTO_INCREMENT COMMENT '命令主键',
|
||||
`cmd_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '命令类型',
|
||||
`group_id` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '分组(0默认 1快速命令)',
|
||||
@@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS `omc_db`.`ne_host_cmd` (
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`cmd_id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_type_group_title`(`cmd_type` ASC, `group_id` ASC, `title` ASC) USING BTREE COMMENT '同组内名称唯一'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元主机命令表' ROW_FORMAT = DYNAMIC;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元主机命令表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- 初始记录
|
||||
|
||||
|
||||
@@ -1,24 +1,43 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
ALTER TABLE `omc_db`.`ne_info` COMMENT = '网元信息表';
|
||||
-- ----------------------------
|
||||
-- Table structure for ne_info
|
||||
-- ----------------------------
|
||||
CREATE TABLE IF NOT EXISTS `ne_info` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
||||
`rm_uid` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
|
||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
|
||||
`ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
|
||||
`port` int NULL DEFAULT 0 COMMENT '端口',
|
||||
`pv_flag` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'PNF' COMMENT '\'PNF\',\'VNF\'',
|
||||
`province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '省份地域',
|
||||
`vendor_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-',
|
||||
`dn` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
|
||||
`ne_address` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'MAC地址',
|
||||
`host_ids` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '网元主机ID组 数据格式(ssh,telnet,telnet)',
|
||||
`status` int NULL DEFAULT 0 COMMENT '0离线 1在线 2配置待下发',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `ux_netype_neid`(`ne_type` ASC, `ne_id` ASC) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元信息表 对应一个网元版本、网元授权、网元主机' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
ALTER TABLE `omc_db`.`ne_info` ADD COLUMN IF NOT EXISTS `host_ids` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '网元主机ID组 数据格式(ssh,telnet,telnet)' AFTER `update_time`;
|
||||
|
||||
ALTER TABLE `omc_db`.`ne_info` MODIFY COLUMN `status` int NULL DEFAULT 0 COMMENT '0: 在线 1: 下线 2: 备用 3: 待下发配置' AFTER `ne_address`;
|
||||
|
||||
-- 初始网元主机绑定
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'OMC', `host_ids` = '1,2' WHERE `id` = 1;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'IMS', `host_ids` = '3,4' WHERE `id` = 2;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'AMF', `host_ids` = '5,6' WHERE `id` = 3;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'AUSF', `host_ids` = '7,8' WHERE `id` = 4;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'SMF', `host_ids` = '11,12' WHERE `id` = 6;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'PCF', `host_ids` = '13,14' WHERE `id` = 7;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'NSSF', `host_ids` = '15,16' WHERE `id` = 8;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'NRF', `host_ids` = '17,18' WHERE `id` = 9;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'UPF', `host_ids` = '19,20,21' WHERE `id` = 10;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'LMF', `host_ids` = '22,23' WHERE `id` = 11;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'NEF', `host_ids` = '24,25' WHERE `id` = 12;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'MME', `host_ids` = '26,27' WHERE `id` = 13;
|
||||
UPDATE `omc_db`.`ne_info` SET `ne_type` = 'N3IWF', `host_ids` = '28,29' WHERE `id` = 14;
|
||||
-- 20240511前旧表更新
|
||||
ALTER TABLE `ne_info` COMMENT = '网元信息表 对应一个网元版本、网元授权、网元主机';
|
||||
ALTER TABLE `ne_info` ADD COLUMN IF NOT EXISTS `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注' AFTER `status`;
|
||||
ALTER TABLE `ne_info` ADD COLUMN IF NOT EXISTS `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者' AFTER `remark`;
|
||||
ALTER TABLE `ne_info` ADD COLUMN IF NOT EXISTS `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `create_by`;
|
||||
ALTER TABLE `ne_info` ADD COLUMN IF NOT EXISTS `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者' AFTER `create_time`;
|
||||
ALTER TABLE `ne_info` MODIFY COLUMN `pv_flag` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'PNF' COMMENT '\'PNF\',\'VNF\'' AFTER `port`;
|
||||
ALTER TABLE `ne_info` MODIFY COLUMN `province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省份地域' AFTER `pv_flag`;
|
||||
ALTER TABLE `ne_info` MODIFY COLUMN `ne_address` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'MAC地址' AFTER `dn`;
|
||||
ALTER TABLE `ne_info` MODIFY COLUMN `host_ids` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '网元主机ID组 数据格式(ssh,telnet,telnet)' AFTER `ne_address`;
|
||||
ALTER TABLE `ne_info` MODIFY COLUMN `status` int NULL DEFAULT 0 COMMENT '0离线 1在线 2配置待下发' AFTER `host_ids`;
|
||||
ALTER TABLE `ne_info` MODIFY COLUMN `update_time` bigint NULL DEFAULT 0 COMMENT '更新时间' AFTER `update_by`;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
52
database/upgrade/upg_ne_license.sql
Normal file
52
database/upgrade/upg_ne_license.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for ne_license
|
||||
-- ----------------------------
|
||||
CREATE TABLE IF NOT EXISTS `ne_license` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
||||
`activation_request_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '激活申请代码',
|
||||
`license_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '激活授权文件',
|
||||
`serial_num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '序列号',
|
||||
`expiry_date` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '许可证到期日期',
|
||||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态 0无效 1有效',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_type_id`(`ne_type` ASC, `ne_id` ASC) USING BTREE COMMENT '唯一网元类型和网元ID'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元授权激活信息' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- 20240511前旧表更新
|
||||
ALTER TABLE `ne_license` COMMENT = '网元授权激活信息';
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `activation_request_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '激活申请代码' AFTER `ne_id`;
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `license_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '激活授权文件' AFTER `activation_request_code`;
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `serial_num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '序列号' AFTER `license_path`;
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `expiry_date` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '许可证到期日期' AFTER `serial_num`;
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注' AFTER `status`;
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者' AFTER `remark`;
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `create_by`;
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者' AFTER `create_time`;
|
||||
ALTER TABLE `ne_license` ADD COLUMN IF NOT EXISTS `update_time` bigint NULL DEFAULT 0 COMMENT '更新时间' AFTER `update_by`;
|
||||
ALTER TABLE `ne_license` MODIFY COLUMN `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型' AFTER `id`;
|
||||
ALTER TABLE `ne_license` MODIFY COLUMN `ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID' AFTER `ne_type`;
|
||||
ALTER TABLE `ne_license` MODIFY COLUMN `status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态 0无效 1有效' AFTER `expiry_date`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `serial_no`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `capcity`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `used`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `feature_enabled`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `expiration_date`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `path`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `file_name`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `comment`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `created_at`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `updated_at`;
|
||||
ALTER TABLE `ne_license` DROP COLUMN IF EXISTS `deleted_at`;
|
||||
ALTER TABLE `ne_license` ADD UNIQUE INDEX IF NOT EXISTS `uk_type_id`(`ne_type` ASC, `ne_id` ASC) USING BTREE COMMENT '唯一网元类型和网元ID';
|
||||
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
39
database/upgrade/upg_ne_software.sql
Normal file
39
database/upgrade/upg_ne_software.sql
Normal file
@@ -0,0 +1,39 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for ne_software
|
||||
-- ----------------------------
|
||||
CREATE TABLE IF NOT EXISTS `ne_software` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
||||
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包名称',
|
||||
`path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '包路径',
|
||||
`version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包版本',
|
||||
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '包说明',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_type_name_version` (`ne_type`,`name`,`version`) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='网元软件包';
|
||||
|
||||
-- 20240511前旧表更新
|
||||
ALTER TABLE `ne_software` COMMENT = '网元软件包';
|
||||
ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包名称' AFTER `ne_type`;
|
||||
ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '包说明' AFTER `version`;
|
||||
ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者' AFTER `description`;
|
||||
ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `create_by`;
|
||||
ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者' AFTER `create_time`;
|
||||
ALTER TABLE `ne_software` MODIFY COLUMN `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型' AFTER `id`;
|
||||
ALTER TABLE `ne_software` MODIFY COLUMN `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '包路径' AFTER `name`;
|
||||
ALTER TABLE `ne_software` MODIFY COLUMN `version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包版本' AFTER `path`;
|
||||
ALTER TABLE `ne_software` MODIFY COLUMN `update_time` bigint NULL DEFAULT 0 COMMENT '更新时间' AFTER `update_by`;
|
||||
ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `file_name`;
|
||||
ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `md5_sum`;
|
||||
ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `status`;
|
||||
ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `comment`;
|
||||
ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `patch_time`;
|
||||
ALTER TABLE `ne_software` ADD UNIQUE INDEX IF NOT EXISTS `uk_type_name_version`(`ne_type` ASC, `name` ASC, `version` ASC) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
51
database/upgrade/upg_ne_version.sql
Normal file
51
database/upgrade/upg_ne_version.sql
Normal file
@@ -0,0 +1,51 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for ne_version
|
||||
-- ----------------------------
|
||||
CREATE TABLE IF NOT EXISTS `ne_version` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
||||
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '当前包名',
|
||||
`version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '当前版本',
|
||||
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '当前软件包',
|
||||
`pre_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '上一版本包名',
|
||||
`pre_version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '上一版本',
|
||||
`pre_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '上一版本软件包',
|
||||
`new_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '新版本报名',
|
||||
`new_version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '新版本',
|
||||
`new_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '新版软件包',
|
||||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '当前状态 0无 1当前版本 2上一版本 3有新版本',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_type_id`(`ne_type` ASC, `ne_id` ASC) USING BTREE COMMENT '唯一网元类型和ID'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元版本信息' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- 20240511前旧表更新
|
||||
ALTER TABLE `ne_version` COMMENT = '网元版本信息';
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '当前包名' AFTER `ne_id`;
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '当前软件包' AFTER `version`;
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `pre_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '上一版本包名' AFTER `path`;
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `pre_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '上一版本软件包' AFTER `pre_version`;
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `new_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '新版本报名' AFTER `pre_path`;
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `new_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '新版软件包' AFTER `new_version`;
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者' AFTER `status`;
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `create_by`;
|
||||
ALTER TABLE `ne_version` ADD COLUMN IF NOT EXISTS `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者' AFTER `create_time`;
|
||||
ALTER TABLE `ne_version` MODIFY COLUMN `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型' AFTER `id`;
|
||||
ALTER TABLE `ne_version` MODIFY COLUMN `ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID' AFTER `ne_type`;
|
||||
ALTER TABLE `ne_version` MODIFY COLUMN `version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '当前版本' AFTER `name`;
|
||||
ALTER TABLE `ne_version` MODIFY COLUMN `pre_version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '上一版本' AFTER `pre_name`;
|
||||
ALTER TABLE `ne_version` MODIFY COLUMN `new_version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '-' COMMENT '新版本' AFTER `new_name`;
|
||||
ALTER TABLE `ne_version` MODIFY COLUMN `status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '当前状态 1当前版本 2上一版本 3有新版本' AFTER `new_path`;
|
||||
ALTER TABLE `ne_version` MODIFY COLUMN `update_time` bigint NULL DEFAULT 0 COMMENT '更新时间' AFTER `update_by`;
|
||||
ALTER TABLE `ne_version` DROP COLUMN IF EXISTS `file_path`;
|
||||
ALTER TABLE `ne_version` DROP COLUMN IF EXISTS `pre_file`;
|
||||
ALTER TABLE `ne_version` DROP COLUMN IF EXISTS `new_file`;
|
||||
ALTER TABLE `ne_version` ADD UNIQUE INDEX IF NOT EXISTS `uk_type_id`(`ne_type` ASC, `ne_id` ASC) USING BTREE COMMENT '唯一网元类型和ID';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
@@ -23,7 +23,7 @@ INSERT IGNORE INTO `sys_config` VALUES (2, 'config.sys.account.captchaEnabled',
|
||||
INSERT IGNORE INTO `sys_config` VALUES (3, 'config.sys.account.registerUser', 'sys.account.registerUser', 'false', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.account.registerUserRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (4, 'config.sys.user.maxRetryCount', 'sys.user.maxRetryCount', '5', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.user.maxRetryCountRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (5, 'config.sys.user.lockTime', 'sys.user.lockTime', '10', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.user.lockTimeRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (6, 'config.sys.officialUrl', 'sys.officialUrl', 'https://www.agrandtech.com', 'Y', 'supervisor', 1698110000000, 'admin', 1700809804330, 'config.sys.officialUrlRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (6, 'config.sys.officialUrl', 'sys.officialUrl', '#', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.officialUrlRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (7, 'config.sys.helpDoc', 'sys.helpDoc', '/static/helpDoc/{language}_doc.pdf', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.helpDocRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (8, 'sys.account.captchaType', 'sys.account.captchaType', 'math', 'Y', 'supervisor', 1705410000000, NULL, 0, 'sys.account.captchaTypeRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (10, 'config.monitor.sysResource.storeDays', 'monitor.sysResource.storeDays', '30', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.monitor.sysResource.storeDaysRemark');
|
||||
@@ -31,10 +31,10 @@ INSERT IGNORE INTO `sys_config` VALUES (102, 'config.sys.logo.type', 'sys.logo.t
|
||||
INSERT IGNORE INTO `sys_config` VALUES (103, 'config.sys.logo.filePathIcon', 'sys.logo.filePathIcon', '/static/logo/{language}_icon.png', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.logo.filePathIconRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (104, 'config.sys.logo.filePathBrand', 'sys.logo.filePathBrand', '/static/logo/{language}_brand.png', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.logo.filePathBrandRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (105, 'config.sys.loginBackground', 'sys.loginBackground', '#', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.loginBackgroundRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (106, 'config.sys.title', 'sys.title', 'config.sys.titleValue', 'Y', 'supervisor', 1698110000000, NULL, 0, 'config.sys.titleRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (107, 'config.sys.copyright', 'sys.copyright', 'config.sys.copyrightValue', 'Y', 'supervisor', 1698110000000, NULL, 0, 'config.sys.copyrightRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (108, 'config.sys.i18nOpen', 'sys.i18n.open', 'false', 'Y', 'supervisor', 1698110000000, NULL, 0, 'config.sys.i18nOpenRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (109, 'Internationalization Default Language', 'sys.i18n.default', 'en_US', 'Y', 'supervisor', 1698110000000, 'supervisor', 1702632906566, 'config.sys.i18nDefaultRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (106, 'config.sys.title', 'sys.title', 'config.sys.titleValue', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.titleRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (107, 'config.sys.copyright', 'sys.copyright', 'config.sys.copyrightValue', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.copyrightRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (108, 'config.sys.i18nOpen', 'sys.i18n.open', 'true', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.i18nOpenRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (109, 'config.sys.i18nDefault', 'sys.i18n.default', 'en_US', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.i18nDefaultRemark');
|
||||
INSERT IGNORE INTO `sys_config` VALUES (110, 'config.sys.lockTime', 'sys.lockTime', '0', 'Y', 'supervisor', 1704960008300, 'admin', 1706838764703, 'config.sys.lockTimeRemark');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
@@ -1,126 +1,25 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `omc_db`.`sys_dept` (
|
||||
`dept_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门id',
|
||||
`parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父部门id 默认0',
|
||||
`ancestors` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '祖级列表',
|
||||
`dept_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '部门名称',
|
||||
`order_num` int(11) NULL DEFAULT 0 COMMENT '显示顺序',
|
||||
`leader` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人',
|
||||
`phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话',
|
||||
`email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
|
||||
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '部门状态(0停用 1正常)',
|
||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint(20) NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`dept_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表' ROW_FORMAT = Dynamic;
|
||||
DROP TABLE IF EXISTS `sys_menu`;
|
||||
CREATE TABLE IF NOT EXISTS `sys_dept` (
|
||||
`dept_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门id',
|
||||
`parent_id` bigint(20) DEFAULT 0 COMMENT '父部门id 默认0',
|
||||
`ancestors` varchar(50) DEFAULT '' COMMENT '祖级列表',
|
||||
`dept_name` varchar(128) DEFAULT '' COMMENT '部门名称',
|
||||
`order_num` int(11) DEFAULT 0 COMMENT '显示顺序',
|
||||
`leader` varchar(20) DEFAULT NULL COMMENT '负责人',
|
||||
`phone` varchar(11) DEFAULT NULL COMMENT '联系电话',
|
||||
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
|
||||
`status` char(1) DEFAULT '0' COMMENT '部门状态(0停用 1正常)',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||||
`create_by` varchar(50) DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint(20) DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`dept_id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门表';
|
||||
|
||||
-- -- add default dept
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`sys_dept` (
|
||||
`dept_id`,
|
||||
`parent_id`,
|
||||
`ancestors`,
|
||||
`dept_name`,
|
||||
`order_num`,
|
||||
`leader`,
|
||||
`phone`,
|
||||
`email`,
|
||||
`status`,
|
||||
`del_flag`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`
|
||||
)
|
||||
VALUES (
|
||||
100,
|
||||
0,
|
||||
'0',
|
||||
'系统维护部',
|
||||
0,
|
||||
'admin',
|
||||
'',
|
||||
'',
|
||||
'1',
|
||||
'0',
|
||||
'admin',
|
||||
1697091866188,
|
||||
'',
|
||||
NULL
|
||||
);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`sys_dept` (
|
||||
`dept_id`,
|
||||
`parent_id`,
|
||||
`ancestors`,
|
||||
`dept_name`,
|
||||
`order_num`,
|
||||
`leader`,
|
||||
`phone`,
|
||||
`email`,
|
||||
`status`,
|
||||
`del_flag`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`
|
||||
)
|
||||
VALUES (
|
||||
101,
|
||||
100,
|
||||
'0,100',
|
||||
'运维一部',
|
||||
1,
|
||||
'admin',
|
||||
'',
|
||||
'',
|
||||
'1',
|
||||
'0',
|
||||
'admin',
|
||||
1697091866192,
|
||||
'',
|
||||
NULL
|
||||
);
|
||||
|
||||
-- for cn/en locale
|
||||
UPDATE `omc_db`.`sys_dept`
|
||||
SET
|
||||
`parent_id` = 0,
|
||||
`ancestors` = '0',
|
||||
`dept_name` = 'dept.root',
|
||||
`order_num` = 0,
|
||||
`leader` = 'supervisor',
|
||||
`phone` = NULL,
|
||||
`email` = NULL,
|
||||
`status` = '1',
|
||||
`del_flag` = '0',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1699348237468,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0
|
||||
WHERE `dept_id` = 100;
|
||||
|
||||
UPDATE `omc_db`.`sys_dept`
|
||||
SET
|
||||
`parent_id` = 100,
|
||||
`ancestors` = '0,100',
|
||||
`dept_name` = 'dept.root.item1',
|
||||
`order_num` = 1,
|
||||
`leader` = 'supervisor',
|
||||
`phone` = NULL,
|
||||
`email` = NULL,
|
||||
`status` = '1',
|
||||
`del_flag` = '0',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1699348237468,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0
|
||||
WHERE `dept_id` = 101;
|
||||
INSERT IGNORE INTO `sys_dept` VALUES (1, 0, '0', 'dept.root', 0, 'supervisor', NULL, NULL, '1', '0', 'supervisor', 1699348237468, NULL, 0);
|
||||
INSERT IGNORE INTO `sys_dept` VALUES (2, 1, '0,1', 'dept.root.item1', 1, 'supervisor', NULL, NULL, '1', '0', 'supervisor', 1699348237468, 'supervisor', 1715570736053);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
@@ -37,7 +37,6 @@ CREATE TABLE IF NOT EXISTS `sys_dict_data` (
|
||||
PRIMARY KEY (`dict_code`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 10000 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic;
|
||||
|
||||
ALTER TABLE `sys_dict_data` AUTO_INCREMENT = 10000;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_dict_data
|
||||
@@ -163,10 +162,18 @@ INSERT IGNORE INTO `sys_dict_data` VALUES (118, 0, 'dictData.ne_info_status.0',
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (119, 1, 'dictData.ne_info_status.1', '1', 'ne_info_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1709642164831, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (120, 2, 'dictData.ne_info_status.2', '2', 'ne_info_status', '', 'warning', '1', 'supervisor', 1706620000000, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (121, 3, 'dictData.ne_info_status.3', '3', 'ne_info_status', '', '', '1', 'supervisor', 1706620000000, 'supervisor', 1709642169871, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (122, 0, 'ne_license_status.0', '0', 'ne_license_status', '', 'warning', '1', 'supervisor', 1706620000000, 'supervisor', 1712720196537, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (123, 1, 'ne_license_status.1', '1', 'ne_license_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (122, 0, 'ne_license_status.0', '0', 'ne_license_status', '', 'warning', '1', 'supervisor', 1706620000000, 'supervisor', 1712720196537, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (123, 1, 'ne_license_status.1', '1', 'ne_license_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (122, 0, 'dictData.ne_license_status.0', '0', 'ne_license_status', '', 'warning', '1', 'supervisor', 1706620000000, 'supervisor', 1712720196537, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (123, 1, 'dictData.ne_license_status.1', '1', 'ne_license_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (124, 2, 'dictData.ne_host_authMode.2', '2', 'ne_host_authMode', '', '', '1', 'supervisor', 1706620000000, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (125, 0, 'dictData.ne_version_status.0', '0', 'ne_version_status', '', 'default', '1', 'supervisor', 1706620000000, 'supervisor', 1712720196537, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (126, 1, 'dictData.ne_version_status.1', '1', 'ne_version_status', '', 'success', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (127, 1, 'dictData.ne_version_status.2', '2', 'ne_version_status', '', 'purple', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` VALUES (128, 1, 'dictData.ne_version_status.3', '3', 'ne_version_status', '', 'processing', '1', 'supervisor', 1706620000000, 'supervisor', 1712720201349, '');
|
||||
|
||||
-- 指定记录条件更新
|
||||
UPDATE `sys_dict_data` SET `tag_type` = 'error' WHERE `dict_code` = 118;
|
||||
UPDATE `sys_dict_data` SET `tag_type` = 'processing' WHERE `dict_code` = 119;
|
||||
UPDATE `sys_dict_data` SET `tag_type` = 'warning' WHERE `dict_code` = 120;
|
||||
UPDATE `sys_dict_data` SET `tag_type` = '' WHERE `dict_code` = 121;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -32,7 +32,7 @@ CREATE TABLE IF NOT EXISTS `sys_dict_type` (
|
||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`dict_id`) USING BTREE,
|
||||
UNIQUE INDEX `dict_type`(`dict_type`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 115 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic;
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_dict_type
|
||||
|
||||
@@ -16,24 +16,23 @@
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `role_permission`
|
||||
-- Table structure for table `sys_job_log`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `role_permission`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `role_permission` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`r_name` varchar(255) DEFAULT NULL,
|
||||
`p_name` varchar(255) DEFAULT NULL,
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
`create_at` datetime DEFAULT current_timestamp(),
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `r_name` (`r_name`) USING BTREE,
|
||||
KEY `role_permission_ibfk_2` (`p_name`) USING BTREE,
|
||||
CONSTRAINT `role_permission_ibfk_1` FOREIGN KEY (`r_name`) REFERENCES `role` (`role_name`),
|
||||
CONSTRAINT `role_permission_ibfk_2` FOREIGN KEY (`p_name`) REFERENCES `permission` (`permission_name`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='del-已使用sys_menu菜单权限标识';
|
||||
CREATE TABLE IF NOT EXISTS `sys_job_log` (
|
||||
`job_log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID',
|
||||
`job_name` varchar(64) NOT NULL COMMENT '任务名称',
|
||||
`job_group` varchar(64) NOT NULL COMMENT '任务组名',
|
||||
`invoke_target` varchar(64) NOT NULL COMMENT '调用目标字符串',
|
||||
`target_params` varchar(500) DEFAULT '' COMMENT '调用目标传入参数',
|
||||
`job_msg` varchar(500) DEFAULT '' COMMENT '日志信息',
|
||||
`status` char(1) DEFAULT '0' COMMENT '执行状态(0失败 1正常)',
|
||||
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
|
||||
`cost_time` bigint(20) DEFAULT 0 COMMENT '消耗时间(毫秒)',
|
||||
PRIMARY KEY (`job_log_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='调度任务调度日志表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
@@ -16,21 +16,23 @@
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `user_menu`
|
||||
-- Table structure for table `sys_log_login`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `user_menu`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `user_menu` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) DEFAULT NULL,
|
||||
`menu_tag` varchar(64) DEFAULT '',
|
||||
`sort_id` int(11) DEFAULT NULL,
|
||||
`lang_tag` varchar(16) DEFAULT NULL,
|
||||
`menu_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='del-已使用sys_menu';
|
||||
CREATE TABLE IF NOT EXISTS `sys_log_login` (
|
||||
`login_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '登录ID',
|
||||
`user_name` varchar(50) DEFAULT '' COMMENT '用户账号',
|
||||
`ipaddr` varchar(128) DEFAULT '' COMMENT '登录IP地址',
|
||||
`login_location` varchar(50) DEFAULT '' COMMENT '登录地点',
|
||||
`browser` varchar(50) DEFAULT '' COMMENT '浏览器类型',
|
||||
`os` varchar(50) DEFAULT '' COMMENT '操作系统',
|
||||
`status` char(1) DEFAULT '0' COMMENT '登录状态(0失败 1成功)',
|
||||
`msg` varchar(255) DEFAULT '' COMMENT '提示消息',
|
||||
`login_time` bigint(20) DEFAULT 0 COMMENT '登录时间',
|
||||
PRIMARY KEY (`login_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统登录日志表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
@@ -16,24 +16,30 @@
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `user_role`
|
||||
-- Table structure for table `sys_log_operate`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `user_role`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `user_role` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`u_name` varchar(255) DEFAULT NULL,
|
||||
`r_name` varchar(255) DEFAULT NULL,
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
`create_at` datetime DEFAULT current_timestamp(),
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `r_name` (`u_name`) USING BTREE,
|
||||
KEY `p_name` (`r_name`) USING BTREE,
|
||||
CONSTRAINT `user_role_rbfk1` FOREIGN KEY (`u_name`) REFERENCES `user` (`account_id`),
|
||||
CONSTRAINT `user_role_rbfk2` FOREIGN KEY (`r_name`) REFERENCES `role` (`role_name`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='del-已经使用sys_role_user';
|
||||
CREATE TABLE IF NOT EXISTS `sys_log_operate` (
|
||||
`oper_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键',
|
||||
`title` varchar(50) DEFAULT '' COMMENT '模块标题',
|
||||
`business_type` char(1) DEFAULT '0' COMMENT '业务类型(0其它 1新增 2修改 3删除 4授权 5导出 6导入 7强退 8清空数据)',
|
||||
`method` varchar(100) DEFAULT '' COMMENT '方法名称',
|
||||
`request_method` varchar(10) DEFAULT '' COMMENT '请求方式',
|
||||
`operator_type` char(1) DEFAULT '0' COMMENT '操作人员类别(0其它 1后台用户 2手机端用户)',
|
||||
`oper_name` varchar(50) DEFAULT '' COMMENT '操作人员',
|
||||
`dept_name` varchar(50) DEFAULT '' COMMENT '部门名称',
|
||||
`oper_url` varchar(255) DEFAULT '' COMMENT '请求URL',
|
||||
`oper_ip` varchar(128) DEFAULT '' COMMENT '主机地址',
|
||||
`oper_location` varchar(255) DEFAULT '' COMMENT '操作地点',
|
||||
`oper_param` varchar(2000) DEFAULT '' COMMENT '请求参数',
|
||||
`oper_msg` varchar(2000) DEFAULT '' COMMENT '操作消息',
|
||||
`status` char(1) DEFAULT '0' COMMENT '操作状态(0异常 1正常)',
|
||||
`oper_time` bigint(20) DEFAULT 0 COMMENT '操作时间',
|
||||
`cost_time` bigint(20) DEFAULT 0 COMMENT '消耗时间(毫秒)',
|
||||
PRIMARY KEY (`oper_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统操作日志表';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,176 +1,22 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `omc_db`.`sys_post` (
|
||||
`post_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID',
|
||||
`post_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位编码',
|
||||
`post_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位名称',
|
||||
`post_sort` int(11) NULL DEFAULT 0 COMMENT '显示顺序',
|
||||
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0停用 1正常)',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint(20) NULL DEFAULT 0 COMMENT '更新时间',
|
||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`post_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位信息表' ROW_FORMAT = Dynamic;
|
||||
CREATE TABLE IF NOT EXISTS `sys_post` (
|
||||
`post_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID',
|
||||
`post_code` varchar(50) NOT NULL COMMENT '岗位编码',
|
||||
`post_name` varchar(50) NOT NULL COMMENT '岗位名称',
|
||||
`post_sort` int(11) DEFAULT 0 COMMENT '显示顺序',
|
||||
`status` char(1) DEFAULT '0' COMMENT '状态(0停用 1正常)',
|
||||
`create_by` varchar(50) DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
|
||||
`update_by` varchar(50) DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint(20) DEFAULT 0 COMMENT '更新时间',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`post_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='岗位信息表';
|
||||
|
||||
DELETE FROM `omc_db`.`sys_post` WHERE `post_id` in (1,2,3,4,5);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_post` (
|
||||
`post_id`,
|
||||
`post_code`,
|
||||
`post_name`,
|
||||
`post_sort`,
|
||||
`status`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
1,
|
||||
'Administrator',
|
||||
'管理人员',
|
||||
1,
|
||||
'1',
|
||||
'admin',
|
||||
1697110106499,
|
||||
'admin',
|
||||
1698487012626,
|
||||
''
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_post` (
|
||||
`post_id`,
|
||||
`post_code`,
|
||||
`post_name`,
|
||||
`post_sort`,
|
||||
`status`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
2,
|
||||
'Operator',
|
||||
'运维人员',
|
||||
2,
|
||||
'1',
|
||||
'admin',
|
||||
1697110106502,
|
||||
'admin',
|
||||
1698487019898,
|
||||
''
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_post` (
|
||||
`post_id`,
|
||||
`post_code`,
|
||||
`post_name`,
|
||||
`post_sort`,
|
||||
`status`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
3,
|
||||
'Monitor',
|
||||
'监控人员',
|
||||
3,
|
||||
'1',
|
||||
'admin',
|
||||
1697110106504,
|
||||
'admin',
|
||||
1698487031259,
|
||||
''
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_post` (
|
||||
`post_id`,
|
||||
`post_code`,
|
||||
`post_name`,
|
||||
`post_sort`,
|
||||
`status`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
4,
|
||||
'Visitor',
|
||||
'普通用户',
|
||||
4,
|
||||
'1',
|
||||
'admin',
|
||||
1697110106507,
|
||||
'admin',
|
||||
1698487043293,
|
||||
''
|
||||
);
|
||||
|
||||
-- for cn/en locales
|
||||
UPDATE `omc_db`.`sys_post`
|
||||
SET
|
||||
`post_code` = 'administator',
|
||||
`post_name` = 'post.admin',
|
||||
`post_sort` = 1,
|
||||
`status` = '1',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1697110106499,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = NULL
|
||||
WHERE `post_id` = 1;
|
||||
|
||||
UPDATE `omc_db`.`sys_post`
|
||||
SET
|
||||
`post_code` = 'operator',
|
||||
`post_name` = 'post.operator',
|
||||
`post_sort` = 2,
|
||||
`status` = '1',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1697110106499,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = NULL
|
||||
WHERE `post_id` = 2;
|
||||
|
||||
UPDATE `omc_db`.`sys_post`
|
||||
SET
|
||||
`post_code` = 'monitor',
|
||||
`post_name` = 'post.monitor',
|
||||
`post_sort` = 3,
|
||||
`status` = '1',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1697110106499,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = NULL
|
||||
WHERE `post_id` = 3;
|
||||
|
||||
UPDATE `omc_db`.`sys_post`
|
||||
SET
|
||||
`post_code` = 'visitor',
|
||||
`post_name` = 'post.visitor',
|
||||
`post_sort` = 4,
|
||||
`status` = '1',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1697110106499,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = NULL
|
||||
WHERE `post_id` = 4;
|
||||
INSERT INTO `sys_post` VALUES (1, 'administator', 'post.admin', 1, '1', 'supervisor', 1697110106499, NULL, 0, NULL);
|
||||
INSERT INTO `sys_post` VALUES (2, 'operator', 'post.operator', 2, '1', 'supervisor', 1697110106499, NULL, 0, NULL);
|
||||
INSERT INTO `sys_post` VALUES (3, 'monitor', 'post.monitor', 3, '1', 'supervisor', 1697110106499, NULL, 0, NULL);
|
||||
INSERT INTO `sys_post` VALUES (4, 'visitor', 'post.visitor', 4, '1', 'supervisor', 1697110106499, NULL, 0, NULL);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
@@ -1,261 +1,9 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role` WHERE `role_id` IN (1,2,3,4,5);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_role` (
|
||||
`role_id`,
|
||||
`role_name`,
|
||||
`role_key`,
|
||||
`role_sort`,
|
||||
`data_scope`,
|
||||
`menu_check_strictly`,
|
||||
`dept_check_strictly`,
|
||||
`status`,
|
||||
`del_flag`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
1,
|
||||
'Supervisor',
|
||||
'supervisor',
|
||||
1,
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'0',
|
||||
'admin',
|
||||
1697091437683,
|
||||
'',
|
||||
0,
|
||||
'超级管理员,无法修改删除'
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_role` (
|
||||
`role_id`,
|
||||
`role_name`,
|
||||
`role_key`,
|
||||
`role_sort`,
|
||||
`data_scope`,
|
||||
`menu_check_strictly`,
|
||||
`dept_check_strictly`,
|
||||
`status`,
|
||||
`del_flag`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
2,
|
||||
'Administrator',
|
||||
'administrator',
|
||||
2,
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'0',
|
||||
'admin',
|
||||
1698486915894,
|
||||
'supervisor',
|
||||
1698739249610,
|
||||
'管理人员 可以对设备进行任何操作'
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_role` (
|
||||
`role_id`,
|
||||
`role_name`,
|
||||
`role_key`,
|
||||
`role_sort`,
|
||||
`data_scope`,
|
||||
`menu_check_strictly`,
|
||||
`dept_check_strictly`,
|
||||
`status`,
|
||||
`del_flag`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
3,
|
||||
'Operator',
|
||||
'operator',
|
||||
3,
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'0',
|
||||
'admin',
|
||||
1698486934900,
|
||||
'supervisor',
|
||||
1698739285488,
|
||||
'运维人员 可以从设备读取数据,并对设备进行配置,但是不能对设备进行软件升级操作。'
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_role` (
|
||||
`role_id`,
|
||||
`role_name`,
|
||||
`role_key`,
|
||||
`role_sort`,
|
||||
`data_scope`,
|
||||
`menu_check_strictly`,
|
||||
`dept_check_strictly`,
|
||||
`status`,
|
||||
`del_flag`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
4,
|
||||
'Monitor',
|
||||
'monitor',
|
||||
4,
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'0',
|
||||
'admin',
|
||||
1698486950714,
|
||||
'admin',
|
||||
1698718807790,
|
||||
'监控人员 只能从设备读取数据,而不能对设备进行任何设置'
|
||||
);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_role` (
|
||||
`role_id`,
|
||||
`role_name`,
|
||||
`role_key`,
|
||||
`role_sort`,
|
||||
`data_scope`,
|
||||
`menu_check_strictly`,
|
||||
`dept_check_strictly`,
|
||||
`status`,
|
||||
`del_flag`,
|
||||
`create_by`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_time`,
|
||||
`remark`
|
||||
)
|
||||
VALUES (
|
||||
5,
|
||||
'Visitor',
|
||||
'vistor',
|
||||
5,
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'0',
|
||||
'admin',
|
||||
1698486975779,
|
||||
'admin',
|
||||
1698718839597,
|
||||
'普通用户 只可看系统相关信息'
|
||||
);
|
||||
|
||||
-- for cn/en locales
|
||||
UPDATE `omc_db`.`sys_role`
|
||||
SET
|
||||
`role_name` = 'role.admin',
|
||||
`role_key` = 'supervisor',
|
||||
`role_sort` = 1,
|
||||
`data_scope` = '1',
|
||||
`menu_check_strictly` = '1',
|
||||
`dept_check_strictly` = '1',
|
||||
`status` = '1',
|
||||
`del_flag` = '0',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1697091437683,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = 'role.adminRemark'
|
||||
WHERE `role_id` = 1;
|
||||
|
||||
UPDATE `omc_db`.`sys_role`
|
||||
SET
|
||||
`role_name` = 'role.adminAssign',
|
||||
`role_key` = 'administrator',
|
||||
`role_sort` = 2,
|
||||
`data_scope` = '1',
|
||||
`menu_check_strictly` = '1',
|
||||
`dept_check_strictly` = '1',
|
||||
`status` = '1',
|
||||
`del_flag` = '0',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1698486915894,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = 'role.adminAssignRemark'
|
||||
WHERE `role_id` = 2;
|
||||
|
||||
UPDATE `omc_db`.`sys_role`
|
||||
SET
|
||||
`role_name` = 'role.operator',
|
||||
`role_key` = 'operator',
|
||||
`role_sort` = 3,
|
||||
`data_scope` = '1',
|
||||
`menu_check_strictly` = '1',
|
||||
`dept_check_strictly` = '1',
|
||||
`status` = '1',
|
||||
`del_flag` = '0',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1698486934900,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = 'role.operatorRemark'
|
||||
WHERE `role_id` = 3;
|
||||
|
||||
UPDATE `omc_db`.`sys_role`
|
||||
SET
|
||||
`role_name` = 'role.monitor',
|
||||
`role_key` = 'monitor',
|
||||
`role_sort` = 4,
|
||||
`data_scope` = '1',
|
||||
`menu_check_strictly` = '1',
|
||||
`dept_check_strictly` = '1',
|
||||
`status` = '1',
|
||||
`del_flag` = '0',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1698486950714,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = 'role.monitorRemark'
|
||||
WHERE `role_id` = 4;
|
||||
|
||||
UPDATE `omc_db`.`sys_role`
|
||||
SET
|
||||
`role_name` = 'role.vistor',
|
||||
`role_key` = 'vistor',
|
||||
`role_sort` = 5,
|
||||
`data_scope` = '1',
|
||||
`menu_check_strictly` = '1',
|
||||
`dept_check_strictly` = '1',
|
||||
`status` = '1',
|
||||
`del_flag` = '0',
|
||||
`create_by` = 'supervisor',
|
||||
`create_time` = 1698486975779,
|
||||
`update_by` = NULL,
|
||||
`update_time` = 0,
|
||||
`remark` = 'role.vistorRemark'
|
||||
WHERE `role_id` = 5;
|
||||
INSERT IGNORE INTO `sys_role` VALUES (1, 'role.admin', 'supervisor', 1, '1', '1', '1', '1', '0', 'supervisor', 1697091437683, 'supervisor', 1697091437683, 'role.adminRemark');
|
||||
INSERT IGNORE INTO `sys_role` VALUES (2, 'role.adminAssign', 'administrator', 2, '1', '1', '1', '1', '0', 'supervisor', 1698486915894, 'supervisor', 1717143830709, 'role.adminAssignRemark');
|
||||
INSERT IGNORE INTO `sys_role` VALUES (3, 'role.operator', 'operator', 3, '1', '1', '1', '1', '0', 'supervisor', 1698486934900, 'supervisor', 1717143582784, 'role.operatorRemark');
|
||||
INSERT IGNORE INTO `sys_role` VALUES (4, 'role.monitor', 'monitor', 4, '1', '1', '1', '1', '0', 'supervisor', 1698486950714, 'supervisor', 1706774389300, 'role.monitorRemark');
|
||||
INSERT IGNORE INTO `sys_role` VALUES (5, 'role.vistor', 'vistor', 5, '1', '1', '1', '1', '0', 'supervisor', 1698486975779, 'supervisor', 1706774405096, 'role.vistorRemark');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
@@ -38,12 +38,9 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (2, 102);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 103);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 104);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 105);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 106);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 107);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 108);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 111);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 112);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 113);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 115);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 116);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 117);
|
||||
@@ -74,11 +71,6 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1021);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1022);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1023);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1024);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1025);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1026);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1027);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1028);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1029);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1030);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1031);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1032);
|
||||
@@ -102,9 +94,7 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1055);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 1056);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2009);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2010);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2075);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2078);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2079);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2080);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2081);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2082);
|
||||
@@ -132,7 +122,6 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2107);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2108);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2109);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2111);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2112);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2113);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2114);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2118);
|
||||
@@ -149,6 +138,16 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2129);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2130);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2131);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2132);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2133);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2137);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2138);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2140);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2141);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2142);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2143);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2145);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2146);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2147);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 4);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 5);
|
||||
@@ -166,7 +165,6 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1042);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1048);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2009);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2010);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2075);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2078);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2080);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2081);
|
||||
@@ -195,7 +193,6 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2107);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2108);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2109);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2111);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2112);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2113);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2118);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2119);
|
||||
@@ -210,6 +207,13 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2129);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2130);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2131);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2132);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2133);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2137);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2138);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2140);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2141);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2143);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2147);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 5);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 112);
|
||||
@@ -251,6 +255,11 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2129);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2130);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2131);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2132);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2133);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2138);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2140);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2141);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 2147);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 1);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 5);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 112);
|
||||
@@ -260,66 +269,5 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2082);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2087);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2131);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (5, 2132);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (100, 1);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (100, 100);
|
||||
INSERT IGNORE INTO `sys_role_menu` VALUES (100, 1000);
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role_menu`
|
||||
WHERE
|
||||
`role_id` = 2
|
||||
AND `menu_id` = 106;
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role_menu`
|
||||
WHERE
|
||||
`role_id` = 2
|
||||
AND `menu_id` = 107;
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role_menu`
|
||||
WHERE
|
||||
`role_id` = 2
|
||||
AND `menu_id` = 113;
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role_menu`
|
||||
WHERE
|
||||
`role_id` = 2
|
||||
AND `menu_id` = 1025;
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role_menu`
|
||||
WHERE
|
||||
`role_id` = 2
|
||||
AND `menu_id` = 1026;
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role_menu`
|
||||
WHERE
|
||||
`role_id` = 2
|
||||
AND `menu_id` = 1027;
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role_menu`
|
||||
WHERE
|
||||
`role_id` = 2
|
||||
AND `menu_id` = 1028;
|
||||
|
||||
DELETE FROM `omc_db`.`sys_role_menu`
|
||||
WHERE
|
||||
`role_id` = 2
|
||||
AND `menu_id` = 1029;
|
||||
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 2133);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 2138);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 2140);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 2141);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (3, 2133);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (3, 2138);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (3, 2140);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (3, 2141);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (4, 2133);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (4, 2138);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (4, 2140);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (4, 2141);
|
||||
|
||||
-- alarm event to role
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 2144);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (3, 2144);
|
||||
INSERT IGNORE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (4, 2144);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -1,19 +1,5 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_user_role` (`user_id`, `role_id`)
|
||||
VALUES (1, 1);
|
||||
|
||||
INSERT IGNORE INTO
|
||||
`omc_db`.`sys_user_role` (`user_id`, `role_id`)
|
||||
VALUES (2, 2);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`sys_user_role` (`user_id`, `role_id`)
|
||||
VALUES (103, 3);
|
||||
|
||||
INSERT
|
||||
IGNORE INTO `omc_db`.`sys_user_role` (`user_id`, `role_id`)
|
||||
VALUES (104, 4);
|
||||
INSERT IGNORE INTO `sys_user_role` VALUES (1,1),(2,2),(3,3),(4,4);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
60
database/upgrade/upg_u_sub_user.sql
Normal file
60
database/upgrade/upg_u_sub_user.sql
Normal file
@@ -0,0 +1,60 @@
|
||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 192.168.2.219 Database: omc_db
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.38-MariaDB
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `u_sub_user`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE IF NOT EXISTS `u_sub_user` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`msisdn` varchar(50) DEFAULT NULL COMMENT '相当手机号',
|
||||
`imsi` varchar(50) DEFAULT NULL COMMENT 'SIM卡号',
|
||||
`ambr` varchar(50) DEFAULT NULL COMMENT 'SubUeAMBRTemp',
|
||||
`nssai` varchar(50) DEFAULT NULL COMMENT 'SubSNSSAITemp',
|
||||
`rat` varchar(50) DEFAULT NULL COMMENT 'rat',
|
||||
`arfb` varchar(50) DEFAULT NULL COMMENT 'forbiddenAreasTemp',
|
||||
`sar` varchar(50) DEFAULT NULL COMMENT 'serviceAreaRestrictTemp',
|
||||
`cn` varchar(50) DEFAULT NULL COMMENT 'cnType',
|
||||
`sm_data` varchar(1500) DEFAULT NULL COMMENT 'smData',
|
||||
`smf_sel` varchar(50) DEFAULT NULL COMMENT 'smfSel',
|
||||
`eps_dat` varchar(1500) DEFAULT NULL COMMENT 'Eps',
|
||||
`ne_id` varchar(50) DEFAULT '' COMMENT 'UDM网元标识-子系统',
|
||||
`eps_flag` varchar(50) DEFAULT NULL COMMENT 'epsFlag',
|
||||
`eps_odb` varchar(50) DEFAULT NULL COMMENT 'epsOdb',
|
||||
`hplmn_odb` varchar(50) DEFAULT NULL COMMENT 'hplmnOdb',
|
||||
`ard` varchar(50) DEFAULT NULL COMMENT 'Ard',
|
||||
`epstpl` varchar(50) DEFAULT NULL COMMENT 'Epstpl',
|
||||
`context_id` varchar(50) DEFAULT NULL COMMENT 'ContextId',
|
||||
`apn_context` varchar(50) DEFAULT NULL COMMENT 'apnContext',
|
||||
`static_ip` varchar(50) DEFAULT NULL COMMENT 'staticIpstatic_ip指给4G UE分配的静态IP,没有可不带此字段名',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_ne唯一索引'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM签约用户';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-03-06 17:26:59
|
||||
@@ -1,49 +0,0 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `omc_db`.`sys_job_log` (
|
||||
`job_log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID',
|
||||
`job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务名称',
|
||||
`job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务组名',
|
||||
`invoke_target` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调用目标字符串',
|
||||
`target_params` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '调用目标传入参数',
|
||||
`job_msg` varchar(500) 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正常)',
|
||||
`create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`cost_time` bigint(20) NULL DEFAULT 0 COMMENT '消耗时间(毫秒)',
|
||||
PRIMARY KEY (`job_log_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '调度任务调度日志表' ROW_FORMAT = Dynamic;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `omc_db`.`sys_log_login` (
|
||||
`login_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '登录ID',
|
||||
`user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户账号',
|
||||
`ipaddr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '登录IP地址',
|
||||
`login_location` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '登录地点',
|
||||
`browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '浏览器类型',
|
||||
`os` varchar(50) 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成功)',
|
||||
`msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '提示消息',
|
||||
`login_time` bigint(20) NULL DEFAULT 0 COMMENT '登录时间',
|
||||
PRIMARY KEY (`login_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统登录日志表' ROW_FORMAT = Dynamic;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `omc_db`.`sys_log_operate` (
|
||||
`oper_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键',
|
||||
`title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '模块标题',
|
||||
`business_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '业务类型(0其它 1新增 2修改 3删除 4授权 5导出 6导入 7强退 8清空数据)',
|
||||
`method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '方法名称',
|
||||
`request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求方式',
|
||||
`operator_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '操作人员类别(0其它 1后台用户 2手机端用户)',
|
||||
`oper_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作人员',
|
||||
`dept_name` 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(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机地址',
|
||||
`oper_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作地点',
|
||||
`oper_param` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求参数',
|
||||
`oper_msg` varchar(2000) 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正常)',
|
||||
`oper_time` bigint(20) NULL DEFAULT 0 COMMENT '操作时间',
|
||||
`cost_time` bigint(20) NULL DEFAULT 0 COMMENT '消耗时间(毫秒)',
|
||||
PRIMARY KEY (`oper_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统操作日志表' ROW_FORMAT = Dynamic;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
@@ -1,92 +0,0 @@
|
||||
|
||||
|
||||
-- 创建表 监控_基本信息
|
||||
|
||||
ALTER TABLE `omc_db`.`monitor_base` DROP COLUMN IF EXISTS `created_at`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` DROP COLUMN IF EXISTS `updated_at`;
|
||||
ALTER TABLE `omc_db`.`monitor_base` DROP COLUMN IF EXISTS `db_size`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` MODIFY COLUMN `id` bigint(20) NOT NULL COMMENT 'id' FIRST;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `id`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` MODIFY COLUMN `cpu` float NULL DEFAULT 0 COMMENT 'cpu使用率' AFTER `create_time`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` MODIFY COLUMN `load_usage` float NULL DEFAULT 0 COMMENT 'cpu平均使用率' AFTER `cpu`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` MODIFY COLUMN `cpu_load1` float NULL DEFAULT 0 COMMENT 'cpu使用1分钟' AFTER `load_usage`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` MODIFY COLUMN `cpu_load5` float NULL DEFAULT 0 COMMENT 'cpu使用5分钟' AFTER `cpu_load1`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` MODIFY COLUMN `cpu_load15` float NULL DEFAULT 0 COMMENT 'cpu使用15分钟' AFTER `cpu_load5`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` MODIFY COLUMN `memory` float NULL DEFAULT 0 COMMENT '内存使用率' AFTER `cpu_load15`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网元类型' AFTER `memory`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网元ID' AFTER `ne_type`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_base` MODIFY COLUMN `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id';
|
||||
|
||||
-- 创建表 监控_磁盘IO
|
||||
|
||||
ALTER TABLE `omc_db`.`monitor_io` DROP COLUMN IF EXISTS `created_at`;
|
||||
ALTER TABLE `omc_db`.`monitor_io` DROP COLUMN IF EXISTS `updated_at`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_io` MODIFY COLUMN `id` bigint(20) NOT NULL COMMENT 'id' FIRST;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_io`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `id`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_io` MODIFY COLUMN `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '磁盘名' AFTER `create_time`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_io` MODIFY COLUMN `read` int(11) NULL DEFAULT 0 COMMENT '读取K' AFTER `name`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_io` MODIFY COLUMN `write` int(11) NULL DEFAULT 0 COMMENT '写入K' AFTER `read`;
|
||||
ALTER TABLE `omc_db`.`monitor_io` MODIFY COLUMN `count` int NULL DEFAULT 0 COMMENT '读写次数' AFTER `write`;
|
||||
ALTER TABLE `omc_db`.`monitor_io` MODIFY COLUMN `time` int NULL DEFAULT 0 COMMENT '读写延迟' AFTER `count`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_io`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网元类型' AFTER `time`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_io`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网元ID' AFTER `ne_type`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_io` MODIFY COLUMN `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id';
|
||||
|
||||
-- 创建表 监控_网络IO
|
||||
|
||||
ALTER TABLE `omc_db`.`monitor_network` DROP COLUMN IF EXISTS `created_at`;
|
||||
ALTER TABLE `omc_db`.`monitor_network` DROP COLUMN IF EXISTS `updated_at`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_network` MODIFY COLUMN `id` bigint(20) NOT NULL COMMENT 'id' FIRST;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_network`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `create_time` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `id`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_network` MODIFY COLUMN `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网卡名' AFTER `create_time`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_network` MODIFY COLUMN `up` float NULL DEFAULT 0 COMMENT '上行' AFTER `name`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_network` MODIFY COLUMN `down` float NULL DEFAULT 0 COMMENT '下行' AFTER `up`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_network`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网元类型' AFTER `down`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_network`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '网元ID' AFTER `ne_type`;
|
||||
ALTER TABLE
|
||||
`omc_db`.`monitor_network` MODIFY COLUMN `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id';
|
||||
@@ -3,52 +3,22 @@ DROP TRIGGER IF EXISTS `tg_account_menu`;
|
||||
ALTER TABLE `omc_db`.`gold_kpi`
|
||||
MODIFY COLUMN `value` bigint NULL DEFAULT 0 AFTER `kpi_id`;
|
||||
|
||||
ALTER TABLE `omc_db`.`user`
|
||||
DROP INDEX IF EXISTS `account_id`,
|
||||
DROP INDEX IF EXISTS `idx_uni_user_acc_id`,
|
||||
ADD UNIQUE INDEX `idx_uni_user_acc_id`(`account_id`) USING BTREE;
|
||||
|
||||
ALTER TABLE `omc_db`.`ne_link` DROP INDEX IF EXISTS `idx_netype_neid`;
|
||||
|
||||
ALTER TABLE `omc_db`.`user`
|
||||
MODIFY COLUMN `password_expiration` date NULL DEFAULT NULL AFTER `change_password_flag`,
|
||||
MODIFY COLUMN `user_expiration` date NULL DEFAULT NULL AFTER `status`;
|
||||
|
||||
ALTER TABLE `omc_db`.`config`
|
||||
ADD COLUMN IF NOT EXISTS `comment` varchar(255) NULL AFTER `update_time`;
|
||||
|
||||
ALTER TABLE `omc_db`.`nbi_operation_log`
|
||||
MODIFY COLUMN `created_at` datetime NULL DEFAULT NULL AFTER `log_time`;
|
||||
|
||||
ALTER TABLE `omc_db`.`permission`
|
||||
ADD COLUMN IF NOT EXISTS `management` varchar(32) NULL DEFAULT '*' AFTER `method`;
|
||||
|
||||
ALTER TABLE `omc_db`.`permission`
|
||||
CHANGE COLUMN IF EXISTS `create_at` `created_at` datetime NULL DEFAULT current_timestamp AFTER `description`,
|
||||
MODIFY COLUMN `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '*' AFTER `permission_name`,
|
||||
MODIFY COLUMN `management` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '*' AFTER `method`,
|
||||
MODIFY COLUMN `element` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '*' AFTER `management`,
|
||||
MODIFY COLUMN `object` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '*' AFTER `element`,
|
||||
ADD COLUMN IF NOT EXISTS `updated_at` datetime NULL AFTER `created_at`,
|
||||
ADD COLUMN IF NOT EXISTS `deleted_at` datetime NULL AFTER `updated_at`;
|
||||
|
||||
ALTER TABLE `omc_db`.`permission`
|
||||
ADD UNIQUE INDEX IF NOT EXISTS `permission_name`(`permission_name`) USING BTREE;
|
||||
|
||||
|
||||
ALTER TABLE `omc_db`.`alarm_log`
|
||||
ADD COLUMN IF NOT EXISTS `alarm_seq` int NULL AFTER `ne_id`;
|
||||
|
||||
ALTER TABLE `omc_db`.`ne_software`
|
||||
ADD COLUMN IF NOT EXISTS `patch_time` datetime NULL AFTER `update_time`;
|
||||
|
||||
ALTER TABLE `omc_db`.`nbi_alarm_log`
|
||||
ADD COLUMN IF NOT EXISTS `alarm_status` int NULL COMMENT '0/1: 清除告警/活动告警' AFTER `alarm_code`;
|
||||
|
||||
ALTER TABLE `omc_db`.`cert_info` DROP INDEX IF EXISTS `idx_netype_neid`;
|
||||
|
||||
ALTER TABLE `omc_db`.`user`
|
||||
MODIFY COLUMN `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL AFTER `account_id`;
|
||||
|
||||
ALTER TABLE `omc_db`.`measure_threshold`
|
||||
CHANGE COLUMN IF EXISTS `alarm_id` `alarm_code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '10200' AFTER `orig_severity`;
|
||||
|
||||
@@ -59,16 +29,10 @@ ADD COLUMN IF NOT EXISTS `comment` varchar(255) NULL AFTER `account_id`;
|
||||
ALTER TABLE `omc_db`.`trace_task`
|
||||
ADD COLUMN IF NOT EXISTS `account_id` varchar(32) NULL AFTER `status`,
|
||||
ADD COLUMN IF NOT EXISTS `comment` varchar(255) NULL AFTER `account_id`;
|
||||
|
||||
ALTER TABLE `omc_db`.`u_auth_user` ENGINE = InnoDB;
|
||||
ALTER TABLE `omc_db`.`u_sub_user` ENGINE = InnoDB;
|
||||
|
||||
|
||||
INSERT IGNORE INTO `omc_db`.`config` (`id`, `module_name`, `config_tag`, `title_json`, `value`, `value_json`, `comment`)
|
||||
VALUES ('37', 'System', 'logo', '{\"cn\":\"系统LOGO\",\"en\":\"System LOGO\"}', 'logo30.png', '', '');
|
||||
|
||||
ALTER TABLE `omc_db`.`security_log`
|
||||
MODIFY COLUMN `id` int(10) NOT NULL AUTO_INCREMENT FIRST;
|
||||
|
||||
ALTER TABLE `omc_db`.`param_config`
|
||||
ADD COLUMN IF NOT EXISTS `method` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '*' COMMENT 'method allow: \"get\", \"get,post,put\", \"*\"' AFTER `top_display`;
|
||||
|
||||
@@ -78,32 +42,15 @@ MODIFY COLUMN `timestamp` bigint NULL DEFAULT NULL AFTER `msg_direct`;
|
||||
|
||||
ALTER TABLE `omc_db`.`param_config`
|
||||
MODIFY COLUMN `method` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'method allow: \"get\", \"get,post,put\", \"delete\"' AFTER `top_display`;
|
||||
|
||||
ALTER TABLE `omc_db`.`ne_license`
|
||||
MODIFY COLUMN `status` enum('ACTIVE','INACTIVE','PENDING') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'ACTIVE' AFTER `expiration_date`,
|
||||
ADD COLUMN IF NOT EXISTS `path` varchar(128) NULL AFTER `status`,
|
||||
ADD COLUMN IF NOT EXISTS `file_name` varchar(64) NULL AFTER `path`,
|
||||
ADD COLUMN IF NOT EXISTS `comment` varchar(255) NULL AFTER `file_name`;
|
||||
|
||||
DELETE FROM ne_license WHERE file_name IS NULL;
|
||||
|
||||
|
||||
ALTER TABLE `omc_db`.`trace_data`
|
||||
ADD COLUMN IF NOT EXISTS `length` int NULL AFTER `msg_direct`;
|
||||
|
||||
-- UDM签约存储长度不足
|
||||
ALTER TABLE `omc_db`.`u_sub_user`
|
||||
MODIFY COLUMN `sm_data` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'smData' AFTER `cn`,
|
||||
MODIFY COLUMN `eps_dat` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Eps' AFTER `smf_sel`;
|
||||
|
||||
|
||||
ALTER TABLE
|
||||
`omc_db`.`ne_backup`
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `comment` varchar(255) NULL AFTER `md5_sum`;
|
||||
|
||||
ALTER TABLE
|
||||
`omc_db`.`sys_dict_data` MODIFY COLUMN `dict_label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典标签' AFTER `dict_sort`,
|
||||
MODIFY COLUMN `dict_value` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典键值' AFTER `dict_label`;
|
||||
|
||||
ALTER TABLE
|
||||
`omc_db`.`mml_command`
|
||||
ADD
|
||||
@@ -129,28 +76,9 @@ ALTER TABLE
|
||||
ADD
|
||||
COLUMN IF NOT EXISTS `operation` varchar(16) NULL AFTER `process_id`;
|
||||
|
||||
UPDATE ne_info SET `province` = '-' WHERE `province` = 'GD';
|
||||
|
||||
UPDATE ne_info
|
||||
SET
|
||||
`vendor_name` = "AGrandTech"
|
||||
WHERE `vendor_name` = "AGT";
|
||||
|
||||
UPDATE ne_info SET `dn` = "-" WHERE `dn` = "TN";
|
||||
|
||||
ALTER TABLE
|
||||
`omc_db`.`sys_dept` MODIFY COLUMN `dept_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '部门名称' AFTER `ancestors`;
|
||||
|
||||
ALTER TABLE `omc_db`.`sys_dict_data`
|
||||
MODIFY COLUMN `dict_code` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码' FIRST;
|
||||
|
||||
ALTER TABLE `omc_db`.`gold_kpi`
|
||||
ADD COLUMN IF NOT EXISTS `granularity` tinyint NULL DEFAULT 60 COMMENT '时间颗粒度: 5/10/.../60/300 (秒)' AFTER `index`;
|
||||
|
||||
ALTER TABLE `omc_db`.`ne_info`
|
||||
DROP PRIMARY KEY,
|
||||
ADD PRIMARY KEY (`id`) USING BTREE;
|
||||
|
||||
|
||||
ALTER TABLE `omc_db`.`gold_kpi`
|
||||
ADD INDEX IF NOT EXISTS `idx_kpiid` (`kpi_id`) USING BTREE,
|
||||
ADD INDEX IF NOT EXISTS `idx_timestamp` (`timestamp`) USING BTREE;
|
||||
@@ -170,13 +98,7 @@ ADD INDEX IF NOT EXISTS `idx_kpi_id` (`kpi_id`) USING BTREE;
|
||||
|
||||
ALTER TABLE `omc_db`.`alarm`
|
||||
ADD UNIQUE INDEX IF NOT EXISTS `idx_pk_id` (`id`) USING BTREE;
|
||||
|
||||
REPLACE INTO
|
||||
`omc_db`.`sys_dict_data`
|
||||
VALUES (
|
||||
4034, 4034, 'menu.dashboard.overview', 'Overview', 'i18n_en', NULL, NULL, '1', 'supervisor', 1705550000000, NULL, 0, NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE `omc_db`.`alarm`
|
||||
ADD INDEX IF NOT EXISTS `idx_severity_status` (
|
||||
`alarm_status`, `orig_severity`
|
||||
|
||||
@@ -8,11 +8,13 @@ import (
|
||||
"os/exec"
|
||||
"strings"
|
||||
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
|
||||
neModel "be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
@@ -503,22 +505,54 @@ func UploadLicenseFileData(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}
|
||||
*/
|
||||
neLicense := dborm.NeLicense{
|
||||
NeType: neTypeUpper,
|
||||
NeID: neId,
|
||||
Status: "ACTIVE",
|
||||
Path: licensePath,
|
||||
FileName: licenseFileName,
|
||||
Comment: comment,
|
||||
|
||||
// neLicense := dborm.NeLicense{
|
||||
// NeType: neTypeUpper,
|
||||
// NeID: neId,
|
||||
// Status: "ACTIVE",
|
||||
// Path: licensePath,
|
||||
// FileName: licenseFileName,
|
||||
// Comment: comment,
|
||||
// }
|
||||
|
||||
// log.Debug("neLicense:", neLicense)
|
||||
// _, err = dborm.XormInsertTableOne("ne_license", neLicense)
|
||||
// if err != nil {
|
||||
// log.Error("Faile to XormInsertTableOne:", err)
|
||||
// services.ResponseInternalServerError500ProcessError(w, err)
|
||||
// }
|
||||
|
||||
neLicense := neModel.NeLicense{
|
||||
NeType: neTypeUpper,
|
||||
NeId: neId,
|
||||
Status: "0",
|
||||
LicensePath: neFilePath,
|
||||
Remark: comment,
|
||||
}
|
||||
|
||||
log.Debug("neLicense:", neLicense)
|
||||
_, err = dborm.XormInsertTableOne("ne_license", neLicense)
|
||||
if err != nil {
|
||||
log.Error("Faile to XormInsertTableOne:", err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
|
||||
// 检查是否存在授权记录
|
||||
neLicense2 := neService.NewNeLicenseImpl.SelectByNeTypeAndNeID(neTypeUpper, neId)
|
||||
if neLicense2.NeId != neId {
|
||||
// 读取授权码
|
||||
code, _ := neService.NewNeLicenseImpl.ReadLicenseInfo(neLicense)
|
||||
neLicense.ActivationRequestCode = code
|
||||
|
||||
neLicense.CreateBy = ctx.LoginUserToUserName(r)
|
||||
insertId := neService.NewNeLicenseImpl.Insert(neLicense)
|
||||
if insertId != "" {
|
||||
services.ResponseStatusOK204NoContent(w)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
neLicense2.UpdateBy = ctx.LoginUserToUserName(r)
|
||||
upRows := neService.NewNeLicenseImpl.Update(neLicense2)
|
||||
if upRows > 0 {
|
||||
services.ResponseStatusOK204NoContent(w)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
services.ResponseStatusOK204NoContent(w)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
}
|
||||
|
||||
@@ -20,9 +20,9 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
SoftwareStatusUploaded = "Uploaded"
|
||||
SoftwareStatusInactive = "Inactive"
|
||||
SoftwareStatusActive = "Active"
|
||||
SoftwareStatusUploaded = "3"
|
||||
SoftwareStatusInactive = "3"
|
||||
SoftwareStatusActive = "1"
|
||||
DigestsSignOkString = "digests signatures OK"
|
||||
SoftwareVerifiedOk = "Verified OK"
|
||||
)
|
||||
@@ -419,7 +419,7 @@ func DownloadSoftwareFile(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
fileName := (*neSoftware)[0]["file_name"]
|
||||
fileName := (*neSoftware)[0]["name"]
|
||||
path := (*neSoftware)[0]["path"]
|
||||
md5Sum := (*neSoftware)[0]["md5_sum"]
|
||||
|
||||
@@ -473,7 +473,7 @@ func DeleteSoftwareFile(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
fileName := (*neSoftware)[0]["file_name"]
|
||||
fileName := (*neSoftware)[0]["name"]
|
||||
path := (*neSoftware)[0]["path"]
|
||||
filePath := fmt.Sprintf("%s/%s", path, fileName)
|
||||
err = os.Remove(filePath)
|
||||
@@ -560,7 +560,7 @@ func DistributeSoftwareToNF(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
fileName := (*neSoftware)[0]["file_name"]
|
||||
fileName := (*neSoftware)[0]["name"]
|
||||
path := (*neSoftware)[0]["path"]
|
||||
srcFile := fmt.Sprintf("%s/%s", path, fileName)
|
||||
|
||||
@@ -611,7 +611,7 @@ func DistributeSoftwareToNF(w http.ResponseWriter, r *http.Request) {
|
||||
Version: (*neSoftware)[0]["version"],
|
||||
FilePath: fmt.Sprintf("%s/software/%s/%s", config.GetYamlConfig().NE.OmcDir, neTypeLower, fileName),
|
||||
PreVersion: (*neVersion)[0]["version"],
|
||||
PreFile: (*neVersion)[0]["file_path"],
|
||||
PreFile: (*neVersion)[0]["path"],
|
||||
Status: SoftwareStatusInactive,
|
||||
}
|
||||
|
||||
@@ -695,7 +695,7 @@ func ActiveSoftwareToNF(w http.ResponseWriter, r *http.Request) {
|
||||
log.Trace("neVersion:", neVersion)
|
||||
|
||||
if !config.GetYamlConfig().OMC.TestMode {
|
||||
filePath := (*neVersion)[0]["file_path"]
|
||||
filePath := (*neVersion)[0]["path"]
|
||||
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
|
||||
|
||||
runCmd := fmt.Sprintf("sudo rm -f %s/actpkg.sh", config.GetYamlConfig().NE.ScpDir)
|
||||
@@ -935,7 +935,7 @@ func RollBackSoftwareToNF(w http.ResponseWriter, r *http.Request) {
|
||||
PreVersion: "-",
|
||||
PreFile: "-",
|
||||
NewVersion: (*neVersion)[0]["version"],
|
||||
NewFile: (*neVersion)[0]["file_path"],
|
||||
NewFile: (*neVersion)[0]["path"],
|
||||
Status: SoftwareStatusActive,
|
||||
}
|
||||
|
||||
@@ -1037,7 +1037,7 @@ func RollBackSoftwareToNF(w http.ResponseWriter, r *http.Request) {
|
||||
PreVersion: "-",
|
||||
PreFile: "-",
|
||||
NewVersion: (*neVersion)[0]["version"],
|
||||
NewFile: (*neVersion)[0]["file_path"],
|
||||
NewFile: (*neVersion)[0]["path"],
|
||||
Status: SoftwareStatusActive,
|
||||
}
|
||||
|
||||
|
||||
@@ -72,13 +72,13 @@ func UploadFile(w http.ResponseWriter, r *http.Request) {
|
||||
fileName = fileNamePath
|
||||
} else {
|
||||
path = config.GetYamlConfig().OMC.FrontUpload
|
||||
fileName, err := services.HandleUploadFile(r, path, fileName)
|
||||
fileNamePath, err := services.HandleUploadFile(r, path, fileName)
|
||||
if err != nil {
|
||||
log.Error("Faile to HandleUploadFile:", err)
|
||||
services.ResponseInternalServerError500ProcessError(w, err)
|
||||
return
|
||||
}
|
||||
fileName = fileName
|
||||
fileName = fileNamePath
|
||||
}
|
||||
log.Debugf("upload file=%s to path=%s", fileName, path)
|
||||
|
||||
|
||||
@@ -1,313 +0,0 @@
|
||||
package maintenance
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
"runtime"
|
||||
"time"
|
||||
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
"github.com/shirou/gopsutil/cpu"
|
||||
"github.com/shirou/gopsutil/disk"
|
||||
"github.com/shirou/gopsutil/mem"
|
||||
)
|
||||
|
||||
// (1) OMC能够对相关的文件系统资源、内存、CPU资源、数据存储空间、数据库空间等系统指标进行监控管理;
|
||||
// 对于虚拟化部署OMC系统,能够对虚机内存、虚机CPU、虚拟存储空间、文件系统资源、数据库空间等指标进行监控,提供界面截图 ;
|
||||
|
||||
// (2) 系统监控指标的采样时间和阈值可由用户设定,超过阈值将产生不同级别的告警,提供界面截图 ;
|
||||
|
||||
// (3) OMC能够方便的查询数据库连接情况;并可手工干预数据库的连接,能方便的终结非法的数据库连接 ;
|
||||
|
||||
// (4) 用户能方便的查询系统进程、应用进程等的进程名、进程类型、开始时间、运行主机等信息,提供界面截图
|
||||
// (5) 用户能方便的对系统进程、应用进程等做中断或者启动操作,提供界面截图
|
||||
|
||||
// (6) 对于文件系统资源、内存、CPU资源、数据存储空间、数据库空间等系统指标数据,要求OMC能够保存至少3个月,提供界面截图 ;
|
||||
// (7) 用户可以按照需求自定义报表模板并生成OMC系统维护数据报表,提供界面截图 ;
|
||||
|
||||
// (8) OMC具备自身告警管理功能,对于传统OMC系统,如:服务器单电源告警,存储硬盘告警、OMC系统软件故障等;
|
||||
// 对于虚拟化OMC系统,如虚机告警、虚拟硬盘告警等,提供界面截图 。
|
||||
|
||||
var (
|
||||
// parameter config management
|
||||
Uri = config.UriPrefix + "/maintenance/{apiVersion}/zz"
|
||||
|
||||
// (1) OMC能够对相关的文件系统资源、内存、CPU资源、数据存储空间、数据库空间等系统指标进行监控管理;
|
||||
UriPref = config.UriPrefix + "/maintenance/{apiVersion}/pref"
|
||||
|
||||
// (6) 对于文件系统资源、内存、CPU资源、数据存储空间、数据库空间等系统指标数据,要求OMC能够保存至少3个月,提供界面截图 ;
|
||||
UriPrefLog = config.UriPrefix + "/maintenance/{apiVersion}/prefLog"
|
||||
|
||||
// (2) 系统监控指标的采样时间和阈值可由用户设定,超过阈值将产生不同级别的告警,提供界面截图 ;
|
||||
UriConfig = config.UriPrefix + "/maintenance/{apiVersion}/config"
|
||||
|
||||
// (3) OMC能够方便的查询数据库连接情况;并可手工干预数据库的连接,能方便的终结非法的数据库连接
|
||||
UriSqlClient = config.UriPrefix + "/maintenance/{apiVersion}/sqlClient"
|
||||
|
||||
// (4) 用户能方便的查询系统进程、应用进程等的进程名、进程类型、开始时间、运行主机等信息,提供界面截图
|
||||
// (5) 用户能方便的对系统进程、应用进程等做中断或者启动操作,提供界面截图
|
||||
UriTop = config.UriPrefix + "/maintenance/{apiVersion}/top"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 定時收集 TODO
|
||||
prefLogSave("")
|
||||
}
|
||||
|
||||
func List(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Println("zz List")
|
||||
services.ResponseStatusOK200Null(w)
|
||||
}
|
||||
|
||||
// 性能指標
|
||||
func prefInfo(dirName string) map[string]any {
|
||||
data := make(map[string]any)
|
||||
|
||||
// 显示文件資源目录
|
||||
dirPath := "D://"
|
||||
if runtime.GOOS == "linux" {
|
||||
dirPath = "/home"
|
||||
}
|
||||
// 訪問下級
|
||||
if dirName != "" {
|
||||
dirPath = path.Join(dirPath, dirName)
|
||||
}
|
||||
dir_list, e := os.ReadDir(dirPath)
|
||||
if e != nil {
|
||||
log.Error(e)
|
||||
}
|
||||
list := make([]map[string]any, 0)
|
||||
for _, v := range dir_list {
|
||||
o, err := v.Info()
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
list = append(list, map[string]any{
|
||||
"name": o.Name(),
|
||||
"size": o.Size(),
|
||||
"mode": o.Mode().String(),
|
||||
"modTime": o.ModTime().Format("2006-01-02 15:04:05"),
|
||||
"isDir": o.IsDir(),
|
||||
})
|
||||
}
|
||||
data["dirList"] = list
|
||||
|
||||
// 文件資源使用率
|
||||
u, _ := disk.Usage(dirPath)
|
||||
usedGB := int(u.Used) / (1024 * 1024 * 1024 * 1)
|
||||
data["dirUse"] = fmt.Sprintf("%d", usedGB)
|
||||
|
||||
// CPU使用率
|
||||
percent, err := cpu.Percent(time.Second, false)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
data["cpuUse"] = fmt.Sprintf("%.2f", percent[0])
|
||||
|
||||
// 内存使用率
|
||||
memInfo, err := mem.VirtualMemory()
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
data["memUse"] = memInfo.UsedPercent
|
||||
|
||||
// 獲取數據庫占用空間
|
||||
if dborm.DbClient.XEngine != nil {
|
||||
conf := config.GetYamlConfig()
|
||||
result, err := dborm.DbClient.XEngine.QueryString(`SELECT
|
||||
CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,
|
||||
CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,
|
||||
CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,
|
||||
CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size
|
||||
FROM information_schema.tables WHERE TABLE_SCHEMA = ?;
|
||||
`, conf.Database.Name)
|
||||
if err == nil {
|
||||
data["dbInfo"] = result[0]
|
||||
} else {
|
||||
data["dbInfo"] = map[string]string{}
|
||||
}
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
// 性能指標存入數據庫
|
||||
func prefLogSave(dirName string) {
|
||||
if dborm.DbClient.XEngine != nil {
|
||||
data := prefInfo(dirName)
|
||||
|
||||
dirListByte, err := json.Marshal(data["dirList"])
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
dbInfoByte, err := json.Marshal(data["dbInfo"])
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
rse, err := dborm.DbClient.XEngine.Exec(`INSERT INTO sys_perf_data
|
||||
(id, create_time, dir_used, dir_list, db_info, mem_used, cpu_used)
|
||||
VALUES(NULL, NOW(), ?, ?, ?, ?, ?);
|
||||
`, data["dirUse"], string(dirListByte), string(dbInfoByte), data["memUse"], data["cpuUse"])
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
fmt.Println(rse.LastInsertId())
|
||||
}
|
||||
}
|
||||
|
||||
// GET http://192.168.21.183:3040/api/rest/maintenance/v1/pref?dir=true
|
||||
func Pref(w http.ResponseWriter, r *http.Request) {
|
||||
// 知道下級文件資源目录
|
||||
dirName := r.URL.Query().Get("dirName")
|
||||
data := prefInfo(dirName)
|
||||
services.ResponseWithJson(w, http.StatusOK, data)
|
||||
}
|
||||
|
||||
// POST http://192.168.21.183:3040/api/rest/maintenance/v1/config
|
||||
func Config(w http.ResponseWriter, r *http.Request) {
|
||||
// json 請求參數獲取
|
||||
var bodyArgs struct {
|
||||
Key string `json:"key"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
err := ctx.ShouldBindJSON(r, &bodyArgs)
|
||||
if err != nil {
|
||||
log.Error("io.ReadAll is failed:", err)
|
||||
services.ResponseNotFound404UriNotExist(w, r)
|
||||
return
|
||||
}
|
||||
|
||||
// 進行值更新
|
||||
if dborm.DbClient.XEngine != nil {
|
||||
result, err := dborm.DbClient.XEngine.QueryString("SELECT * FROM information_schema.processlist")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println(result)
|
||||
rse, err := dborm.DbClient.XEngine.Exec("UPDATE sys_config SET value = ? where id = ?", "true", 100)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println(rse)
|
||||
}
|
||||
|
||||
services.ResponseStatusOK200Null(w)
|
||||
}
|
||||
|
||||
// http://192.168.21.183:3040/api/rest/maintenance/v1/sqlClient?type=close
|
||||
// http://192.168.21.183:3040/api/rest/maintenance/v1/sqlClient?type=connet
|
||||
// http://192.168.21.183:3040/api/rest/maintenance/v1/sqlClient?type=user
|
||||
func SqlClient(w http.ResponseWriter, r *http.Request) {
|
||||
// 关闭
|
||||
isClose := r.URL.Query().Get("type")
|
||||
if isClose == "close" && dborm.DbClient.XEngine != nil {
|
||||
dborm.DbClient.XEngine.Close()
|
||||
}
|
||||
|
||||
// 重连
|
||||
isConnet := r.URL.Query().Get("type")
|
||||
if isConnet == "connet" && dborm.DbClient.XEngine == nil {
|
||||
conf := config.GetYamlConfig()
|
||||
err := dborm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
|
||||
conf.Database.Host, conf.Database.Port, conf.Database.Name, conf.Database.ConnParam)
|
||||
if err != nil {
|
||||
fmt.Println("dborm.initDbClient err:", err)
|
||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 查询实例
|
||||
isUser := r.URL.Query().Get("type")
|
||||
if isUser == "user" && dborm.DbClient.XEngine != nil {
|
||||
result, err := dborm.DbClient.XEngine.QueryString("SELECT * FROM information_schema.processlist")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println(result)
|
||||
rse, err := dborm.DbClient.XEngine.Exec("KILL CONNECTION CONNECTION_ID()")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println(rse)
|
||||
}
|
||||
|
||||
// 进行连接测试
|
||||
err := dborm.DbClient.XEngine.Ping()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
services.ResponseStatusOK200Null(w)
|
||||
}
|
||||
|
||||
// GET http://192.168.21.183:3040/api/rest/maintenance/v1/top?grep=
|
||||
func Top(w http.ResponseWriter, r *http.Request) {
|
||||
// 過濾命令
|
||||
grep := r.URL.Query().Get("grep")
|
||||
// 命令拼接
|
||||
var cmd *exec.Cmd
|
||||
switch runtime.GOOS {
|
||||
case "linux":
|
||||
command := "ps -ef "
|
||||
if grep != "" {
|
||||
command += grep
|
||||
}
|
||||
cmd = exec.Command(command)
|
||||
case "windows":
|
||||
command := "wmic process list brief "
|
||||
if grep != "" {
|
||||
command += grep
|
||||
}
|
||||
cmd = exec.Command("cmd", "/C", command)
|
||||
}
|
||||
|
||||
out, err := cmd.CombinedOutput()
|
||||
fmt.Println(string(out))
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
services.ResponseWithJson(w, http.StatusOK, string(out))
|
||||
}
|
||||
|
||||
// PATCH http://192.168.21.183:3040/api/rest/maintenance/v1/top?ops=&name=
|
||||
func TopOps(w http.ResponseWriter, r *http.Request) {
|
||||
// json 請求參數獲取
|
||||
var bodyArgs struct {
|
||||
Ops string `json:"ops"`
|
||||
Pid string `json:"pid"`
|
||||
}
|
||||
err := ctx.ShouldBindJSON(r, &bodyArgs)
|
||||
if err != nil {
|
||||
log.Error("io.ReadAll is failed:", err)
|
||||
services.ResponseNotFound404UriNotExist(w, r)
|
||||
return
|
||||
}
|
||||
// 命令拼接
|
||||
var cmd *exec.Cmd
|
||||
switch runtime.GOOS {
|
||||
case "linux":
|
||||
switch bodyArgs.Ops {
|
||||
case "kill":
|
||||
cmd = exec.Command("kill", "-9", bodyArgs.Pid)
|
||||
}
|
||||
case "windows":
|
||||
switch bodyArgs.Ops {
|
||||
case "kill":
|
||||
cmd = exec.Command("cmd", "/C", "taskkill", "-PID", bodyArgs.Pid, "-F")
|
||||
}
|
||||
}
|
||||
|
||||
out, err := cmd.CombinedOutput()
|
||||
fmt.Println(string(out))
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
services.ResponseWithJson(w, http.StatusOK, string(out))
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package monitor
|
||||
|
||||
import "time"
|
||||
|
||||
type MonitorBase struct {
|
||||
ID uint `xorm:"id" json:"id"`
|
||||
CreatedAt time.Time `xorm:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `xorm:"updated_at" json:"updatedAt"`
|
||||
|
||||
Cpu float64 `xorm:"cpu" json:"cpu"`
|
||||
|
||||
LoadUsage float64 `xorm:"load_usage" json:"loadUsage"`
|
||||
CpuLoad1 float64 `xorm:"cpu_load1" json:"cpuLoad1"`
|
||||
CpuLoad5 float64 `xorm:"cpu_load5" json:"cpuLoad5"`
|
||||
CpuLoad15 float64 `xorm:"cpu_load15" json:"cpuLoad15"`
|
||||
|
||||
Memory float64 `xorm:"memory" json:"memory"`
|
||||
|
||||
DbSize uint `xorm:"db_size" json:"dbSize"`
|
||||
}
|
||||
|
||||
type MonitorIO struct {
|
||||
ID uint `xorm:"id" json:"id"`
|
||||
CreatedAt time.Time `xorm:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `xorm:"updated_at" json:"updatedAt"`
|
||||
|
||||
Name string `xorm:"name" json:"name"`
|
||||
Read uint64 `xorm:"read" json:"read"`
|
||||
Write uint64 `xorm:"write" json:"write"`
|
||||
Count uint64 `xorm:"count" json:"count"`
|
||||
Time uint64 `xorm:"time" json:"time"`
|
||||
}
|
||||
|
||||
type MonitorNetwork struct {
|
||||
ID uint `xorm:"id" json:"id"`
|
||||
CreatedAt time.Time `xorm:"created_at" json:"createdAt"`
|
||||
UpdatedAt time.Time `xorm:"updated_at" json:"updatedAt"`
|
||||
|
||||
Name string `xorm:"name" json:"name"`
|
||||
Up float64 `xorm:"up" json:"up"`
|
||||
Down float64 `xorm:"down" json:"down"`
|
||||
}
|
||||
|
||||
type MonitorSearch struct {
|
||||
Param string `json:"param" validate:"required,oneof=all cpu memory load io network"`
|
||||
Info string `json:"info"`
|
||||
StartTime time.Time `json:"startTime"`
|
||||
EndTime time.Time `json:"endTime"`
|
||||
}
|
||||
|
||||
type MonitorData struct {
|
||||
Param string `json:"param" validate:"required,oneof=cpu memory load io network"`
|
||||
Date []time.Time `json:"date"`
|
||||
Value []interface{} `json:"value"`
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
package monitor
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
"github.com/shirou/gopsutil/disk"
|
||||
"github.com/shirou/gopsutil/net"
|
||||
)
|
||||
|
||||
// 点击【主机 - 监控】菜单,进入监控报表,直观的了解服务器的运行状态,包含【平均负载】、【CPU性能监控】、【内存使用监控】、【磁盘IO监控】、【网络IO监控】
|
||||
|
||||
// 可以查看昨天,今天,最近7天,最近30天,自定义时间的监控指标情况。
|
||||
// 默认监控是开启的,可以在【面板设置 - 监控】页面中根据需求对监控进行开启和关闭。
|
||||
// 监控数据默认保存30天,可以自行修改,也可手动清理该日志。
|
||||
|
||||
var (
|
||||
// IP地址
|
||||
UriIPAddr = config.DefaultUriPrefix + "/monitor/{apiVersion}/monitor/ipaddr"
|
||||
// 可选网络
|
||||
UriNetOpt = config.DefaultUriPrefix + "/monitor/{apiVersion}/monitor/netoptions"
|
||||
// 可选磁盘
|
||||
UriIoOpt = config.DefaultUriPrefix + "/monitor/{apiVersion}/monitor/iooptions"
|
||||
// 加载
|
||||
UriLoad = config.DefaultUriPrefix + "/monitor/{apiVersion}/monitor/load"
|
||||
|
||||
// IP地址
|
||||
UriIPAddrOAM = config.UriPrefix + "/monitor/{apiVersion}/monitor/ipaddr"
|
||||
// 可选网络
|
||||
UriNetOptOAM = config.UriPrefix + "/monitor/{apiVersion}/monitor/netoptions"
|
||||
// 可选磁盘
|
||||
UriIoOptOAM = config.UriPrefix + "/monitor/{apiVersion}/monitor/iooptions"
|
||||
// 加载
|
||||
UriLoadOAM = config.UriPrefix + "/monitor/{apiVersion}/monitor/load"
|
||||
)
|
||||
|
||||
// IPAddr IP地址
|
||||
func IPAddr(w http.ResponseWriter, r *http.Request) {
|
||||
ipAddrs := []map[string]string{}
|
||||
interfaces, err := net.Interfaces()
|
||||
if err == nil {
|
||||
for _, iface := range interfaces {
|
||||
addrs := map[string]string{}
|
||||
for _, v := range iface.Addrs {
|
||||
prefix := strings.Split(v.Addr, "/")[0]
|
||||
if strings.Contains(prefix, "::") {
|
||||
addrs["IPv6"] = prefix
|
||||
}
|
||||
if strings.Contains(prefix, ".") {
|
||||
addrs["IPv4"] = prefix
|
||||
}
|
||||
}
|
||||
ipAddrs = append(ipAddrs, addrs)
|
||||
}
|
||||
}
|
||||
services.ResponseWithJson(w, 200, ipAddrs)
|
||||
}
|
||||
|
||||
// Netoptions 可选网络
|
||||
func Netoptions(w http.ResponseWriter, r *http.Request) {
|
||||
netStat, _ := net.IOCounters(true)
|
||||
var options []string
|
||||
options = append(options, "all")
|
||||
for _, net := range netStat {
|
||||
options = append(options, net.Name)
|
||||
}
|
||||
sort.Strings(options)
|
||||
services.ResponseWithJson(w, 200, options)
|
||||
}
|
||||
|
||||
// Iooptions 可选磁盘
|
||||
func Iooptions(w http.ResponseWriter, r *http.Request) {
|
||||
diskStat, _ := disk.IOCounters()
|
||||
var options []string
|
||||
options = append(options, "all")
|
||||
for _, net := range diskStat {
|
||||
options = append(options, net.Name)
|
||||
}
|
||||
sort.Strings(options)
|
||||
services.ResponseWithJson(w, 200, options)
|
||||
}
|
||||
|
||||
// LoadMonitor 载入监控
|
||||
func LoadMonitor(w http.ResponseWriter, r *http.Request) {
|
||||
// json 請求參數獲取
|
||||
var bodyArgs MonitorSearch
|
||||
err := ctx.ShouldBindJSON(r, &bodyArgs)
|
||||
if err != nil || dborm.DbClient.XEngine == nil {
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
loc := time.Now().Location()
|
||||
bodyArgs.StartTime = bodyArgs.StartTime.In(loc)
|
||||
bodyArgs.EndTime = bodyArgs.EndTime.In(loc)
|
||||
|
||||
var backdatas []MonitorData
|
||||
if bodyArgs.Param == "all" || bodyArgs.Param == "cpu" || bodyArgs.Param == "memory" || bodyArgs.Param == "load" {
|
||||
var bases []MonitorBase
|
||||
err := dborm.DbClient.XEngine.Table("monitor_base").
|
||||
Where("created_at > ? AND created_at < ?", bodyArgs.StartTime, bodyArgs.EndTime).
|
||||
Desc("created_at").
|
||||
Find(&bases)
|
||||
if err != nil {
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
var itemData MonitorData
|
||||
itemData.Param = "base"
|
||||
for _, base := range bases {
|
||||
itemData.Date = append(itemData.Date, base.CreatedAt)
|
||||
itemData.Value = append(itemData.Value, base)
|
||||
}
|
||||
backdatas = append(backdatas, itemData)
|
||||
}
|
||||
if bodyArgs.Param == "all" || bodyArgs.Param == "io" {
|
||||
var bases []MonitorIO
|
||||
err := dborm.DbClient.XEngine.Table("monitor_io").
|
||||
Where("created_at > ? AND created_at < ?", bodyArgs.StartTime, bodyArgs.EndTime).
|
||||
Desc("created_at").
|
||||
Find(&bases)
|
||||
if err != nil {
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
var itemData MonitorData
|
||||
itemData.Param = "io"
|
||||
for _, base := range bases {
|
||||
itemData.Date = append(itemData.Date, base.CreatedAt)
|
||||
itemData.Value = append(itemData.Value, base)
|
||||
}
|
||||
backdatas = append(backdatas, itemData)
|
||||
}
|
||||
if bodyArgs.Param == "all" || bodyArgs.Param == "network" {
|
||||
var bases []MonitorNetwork
|
||||
err := dborm.DbClient.XEngine.Table("monitor_network").
|
||||
Where("name = ? AND created_at > ? AND created_at < ?", bodyArgs.Info, bodyArgs.StartTime, bodyArgs.EndTime).
|
||||
Desc("created_at").
|
||||
Find(&bases)
|
||||
if err != nil {
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
var itemData MonitorData
|
||||
itemData.Param = "network"
|
||||
for _, base := range bases {
|
||||
itemData.Date = append(itemData.Date, base.CreatedAt)
|
||||
itemData.Value = append(itemData.Value, base)
|
||||
}
|
||||
backdatas = append(backdatas, itemData)
|
||||
}
|
||||
services.ResponseWithJson(w, 200, backdatas)
|
||||
}
|
||||
@@ -1,233 +0,0 @@
|
||||
package monitor
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/restagent/config"
|
||||
"github.com/robfig/cron/v3"
|
||||
"github.com/shirou/gopsutil/v3/cpu"
|
||||
"github.com/shirou/gopsutil/v3/disk"
|
||||
"github.com/shirou/gopsutil/v3/load"
|
||||
"github.com/shirou/gopsutil/v3/mem"
|
||||
"github.com/shirou/gopsutil/v3/net"
|
||||
)
|
||||
|
||||
type MonitorService struct{}
|
||||
|
||||
type IMonitorService interface {
|
||||
Run()
|
||||
}
|
||||
|
||||
func NewIMonitorService() IMonitorService {
|
||||
return &MonitorService{}
|
||||
}
|
||||
|
||||
func (m *MonitorService) Run() {
|
||||
// monitorStatus, _ := dborm.XormGetConfig("SystemMonitor", "MonitorStatus")
|
||||
// if monitorStatus["value"] == "disable" {
|
||||
// return
|
||||
// }
|
||||
var itemModel MonitorBase
|
||||
itemModel.CreatedAt = time.Now()
|
||||
itemModel.UpdatedAt = time.Now()
|
||||
|
||||
totalPercent, _ := cpu.Percent(3*time.Second, false)
|
||||
if len(totalPercent) == 1 {
|
||||
itemModel.Cpu = totalPercent[0]
|
||||
}
|
||||
cpuCount, _ := cpu.Counts(false)
|
||||
|
||||
loadInfo, _ := load.Avg()
|
||||
itemModel.CpuLoad1 = loadInfo.Load1
|
||||
itemModel.CpuLoad5 = loadInfo.Load5
|
||||
itemModel.CpuLoad15 = loadInfo.Load15
|
||||
itemModel.LoadUsage = loadInfo.Load1 / (float64(cpuCount*2) * 0.75) * 100
|
||||
|
||||
memoryInfo, _ := mem.VirtualMemory()
|
||||
itemModel.Memory = memoryInfo.UsedPercent
|
||||
|
||||
var dataSize int
|
||||
conf := config.GetYamlConfig()
|
||||
result, err := dborm.DbClient.XEngine.QueryString("SELECT SUM(data_length) AS data_size FROM information_schema.tables WHERE TABLE_SCHEMA = ?;", conf.Database.Name)
|
||||
if err != nil {
|
||||
dataSize = 0
|
||||
} else {
|
||||
v, _ := strconv.Atoi(result[0]["data_size"])
|
||||
dataSize = v
|
||||
}
|
||||
itemModel.DbSize = uint(dataSize)
|
||||
|
||||
_, errx := dborm.DbClient.XEngine.Table("monitor_base").Insert(itemModel)
|
||||
if errx != nil {
|
||||
log.Errorf("Insert basic monitoring data failed, err: %v", err)
|
||||
}
|
||||
|
||||
go loadDiskIO()
|
||||
go loadNetIO()
|
||||
|
||||
// 删除保留的记录
|
||||
// monitorStoreDays, _ := dborm.XormGetConfig("SystemMonitor", "MonitorStoreDays")
|
||||
// if monitorStoreDays["value"] != "" {
|
||||
// return
|
||||
// }
|
||||
// storeDays, err := strconv.Atoi(MonitorStoreDays.Value)
|
||||
// if err != nil {
|
||||
// timeForDelete := time.Now().AddDate(0, 0, -storeDays)
|
||||
// DelMonitorBase(timeForDelete)
|
||||
// DelMonitorIO(timeForDelete)
|
||||
// DelMonitorNet(timeForDelete)
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
func loadDiskIO() {
|
||||
ioStat, _ := disk.IOCounters()
|
||||
|
||||
time.Sleep(60 * time.Second)
|
||||
|
||||
ioStat2, _ := disk.IOCounters()
|
||||
var ioList []MonitorIO
|
||||
for _, io2 := range ioStat2 {
|
||||
for _, io1 := range ioStat {
|
||||
if io2.Name == io1.Name {
|
||||
var itemIO MonitorIO
|
||||
itemIO.CreatedAt = time.Now()
|
||||
itemIO.UpdatedAt = time.Now()
|
||||
|
||||
itemIO.Name = io1.Name
|
||||
if io2.ReadBytes != 0 && io1.ReadBytes != 0 && io2.ReadBytes > io1.ReadBytes {
|
||||
itemIO.Read = uint64(float64(io2.ReadBytes-io1.ReadBytes) / 60)
|
||||
}
|
||||
if io2.WriteBytes != 0 && io1.WriteBytes != 0 && io2.WriteBytes > io1.WriteBytes {
|
||||
itemIO.Write = uint64(float64(io2.WriteBytes-io1.WriteBytes) / 60)
|
||||
}
|
||||
|
||||
if io2.ReadCount != 0 && io1.ReadCount != 0 && io2.ReadCount > io1.ReadCount {
|
||||
itemIO.Count = uint64(float64(io2.ReadCount-io1.ReadCount) / 60)
|
||||
}
|
||||
writeCount := uint64(0)
|
||||
if io2.WriteCount != 0 && io1.WriteCount != 0 && io2.WriteCount > io1.WriteCount {
|
||||
writeCount = uint64(float64(io2.WriteCount-io1.WriteCount) / 60)
|
||||
}
|
||||
if writeCount > itemIO.Count {
|
||||
itemIO.Count = writeCount
|
||||
}
|
||||
|
||||
if io2.ReadTime != 0 && io1.ReadTime != 0 && io2.ReadTime > io1.ReadTime {
|
||||
itemIO.Time = uint64(float64(io2.ReadTime-io1.ReadTime) / 60)
|
||||
}
|
||||
writeTime := uint64(0)
|
||||
if io2.WriteTime != 0 && io1.WriteTime != 0 && io2.WriteTime > io1.WriteTime {
|
||||
writeTime = uint64(float64(io2.WriteTime-io1.WriteTime) / 60)
|
||||
}
|
||||
if writeTime > itemIO.Time {
|
||||
itemIO.Time = writeTime
|
||||
}
|
||||
ioList = append(ioList, itemIO)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
_, err := dborm.DbClient.XEngine.Table("monitor_io").Insert(ioList)
|
||||
if err != nil {
|
||||
log.Errorf("Insert io monitoring data failed, err: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func loadNetIO() {
|
||||
netStat, _ := net.IOCounters(true)
|
||||
netStatAll, _ := net.IOCounters(false)
|
||||
|
||||
time.Sleep(60 * time.Second)
|
||||
|
||||
netStat2, _ := net.IOCounters(true)
|
||||
var netList []MonitorNetwork
|
||||
for _, net2 := range netStat2 {
|
||||
for _, net1 := range netStat {
|
||||
if net2.Name == net1.Name {
|
||||
var itemNet MonitorNetwork
|
||||
itemNet.CreatedAt = time.Now()
|
||||
itemNet.UpdatedAt = time.Now()
|
||||
|
||||
itemNet.Name = net1.Name
|
||||
|
||||
if net2.BytesSent != 0 && net1.BytesSent != 0 && net2.BytesSent > net1.BytesSent {
|
||||
itemNet.Up = float64(net2.BytesSent-net1.BytesSent) / 1024 / 60
|
||||
}
|
||||
if net2.BytesRecv != 0 && net1.BytesRecv != 0 && net2.BytesRecv > net1.BytesRecv {
|
||||
itemNet.Down = float64(net2.BytesRecv-net1.BytesRecv) / 1024 / 60
|
||||
}
|
||||
netList = append(netList, itemNet)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
netStatAll2, _ := net.IOCounters(false)
|
||||
for _, net2 := range netStatAll2 {
|
||||
for _, net1 := range netStatAll {
|
||||
if net2.Name == net1.Name {
|
||||
var itemNet MonitorNetwork
|
||||
itemNet.Name = net1.Name
|
||||
if net2.BytesSent != 0 && net1.BytesSent != 0 && net2.BytesSent > net1.BytesSent {
|
||||
itemNet.Up = float64(net2.BytesSent-net1.BytesSent) / 1024 / 60
|
||||
}
|
||||
|
||||
if net2.BytesRecv != 0 && net1.BytesRecv != 0 && net2.BytesRecv > net1.BytesRecv {
|
||||
itemNet.Down = float64(net2.BytesRecv-net1.BytesRecv) / 1024 / 60
|
||||
}
|
||||
netList = append(netList, itemNet)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_, err := dborm.DbClient.XEngine.Table("monitor_network").Insert(netList)
|
||||
if err != nil {
|
||||
log.Errorf("Insert network monitoring data failed, err: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
var c *cron.Cron
|
||||
var monitorCronID int
|
||||
|
||||
func init() {
|
||||
c = cron.New()
|
||||
c.Start()
|
||||
monitorCronID = 0
|
||||
}
|
||||
|
||||
// StartMonitor 开始监控任务 removeBefore删除上次任务,间隔interval分钟
|
||||
func StartMonitor(removeBefore bool, interval string) error {
|
||||
if removeBefore {
|
||||
c.Remove(cron.EntryID(monitorCronID))
|
||||
}
|
||||
|
||||
// 读取配置
|
||||
if interval == "" {
|
||||
v, err := dborm.XormGetConfig("SystemMonitor", "sampleTime")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
data := make(map[string]any)
|
||||
err = json.Unmarshal([]byte(v["value_json"].(string)), &data)
|
||||
if err != nil {
|
||||
log.Error("json StartMonitor:%s", err.Error())
|
||||
return err
|
||||
}
|
||||
interval = data["sampleTime"].(string)
|
||||
}
|
||||
|
||||
imservice := NewIMonitorService()
|
||||
monitorID, err := c.AddJob(fmt.Sprintf("@every %sm", interval), imservice)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
imservice.Run()
|
||||
monitorCronID = int(monitorID)
|
||||
return nil
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
package psnet
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/lib/wsinfo"
|
||||
"be.ems/restagent/config"
|
||||
"github.com/gorilla/websocket"
|
||||
"github.com/shirou/gopsutil/process"
|
||||
)
|
||||
|
||||
var (
|
||||
// websockte通信
|
||||
UriWs = config.DefaultUriPrefix + "/monitor/{apiVersion}/psnet/ws"
|
||||
// 停止进程
|
||||
UriStop = config.DefaultUriPrefix + "/monitor/{apiVersion}/psnet/stop"
|
||||
|
||||
// 检查ip端口请求
|
||||
UriPing = config.DefaultUriPrefix + "/monitor/{apiVersion}/psnet/ping"
|
||||
)
|
||||
|
||||
// 进程管理
|
||||
var wsUpgrade = websocket.Upgrader{
|
||||
CheckOrigin: func(r *http.Request) bool {
|
||||
return true
|
||||
},
|
||||
}
|
||||
|
||||
// ProcessWs
|
||||
func ProcessWs(w http.ResponseWriter, r *http.Request) {
|
||||
ws, err := wsUpgrade.Upgrade(w, r, nil)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
wsClient := wsinfo.NewWsClient("processClient", ws)
|
||||
go wsClient.Read()
|
||||
go wsClient.Write()
|
||||
}
|
||||
|
||||
// 停止进程 {"PID":30040}
|
||||
func StopProcess(w http.ResponseWriter, r *http.Request) {
|
||||
// json 請求參數獲取
|
||||
var bodyArgs struct {
|
||||
PID int32 `json:"PID" validate:"required"`
|
||||
}
|
||||
err := ctx.ShouldBindJSON(r, &bodyArgs)
|
||||
if err != nil {
|
||||
log.Error("io.ReadAll is failed:", err)
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
proc, err := process.NewProcess(bodyArgs.PID)
|
||||
if err != nil {
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
if err := proc.Kill(); err != nil {
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
services.ResponseStatusOK200Null(w)
|
||||
}
|
||||
|
||||
// 检查ip端口请求
|
||||
func Ping(w http.ResponseWriter, r *http.Request) {
|
||||
// json 請求參數獲取
|
||||
var bodyArgs struct {
|
||||
Host string `json:"host" validate:"required"`
|
||||
Port string `json:"port" validate:"required"`
|
||||
}
|
||||
err := ctx.ShouldBindJSON(r, &bodyArgs)
|
||||
if err != nil {
|
||||
log.Error("io.ReadAll is failed:", err)
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
conn, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%s", bodyArgs.Host, bodyArgs.Port), 3*time.Second)
|
||||
if err != nil {
|
||||
services.ResponseErrorWithJson(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
defer conn.Close()
|
||||
services.ResponseStatusOK200Null(w)
|
||||
|
||||
}
|
||||
@@ -2,30 +2,16 @@ package security
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"image/color"
|
||||
"io"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/features/security/service"
|
||||
sysConfigService "be.ems/features/sys_config/service"
|
||||
"be.ems/lib/core/account"
|
||||
"be.ems/lib/core/cache"
|
||||
"be.ems/lib/core/constants/cachekey"
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/core/vo/result"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/global"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/lib/oauth"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
srcConfig "be.ems/src/framework/config"
|
||||
"be.ems/src/framework/redis"
|
||||
"github.com/mojocn/base64Captcha"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -34,22 +20,6 @@ var (
|
||||
|
||||
CustomUriOauthToken = config.UriPrefix + "/securityManagement/{apiVersion}/{elementTypeValue}/token"
|
||||
CustomUriOauthHandshake = config.UriPrefix + "/securityManagement/{apiVersion}/{elementTypeValue}/handshake"
|
||||
|
||||
// 系统登录
|
||||
UriLogin = config.DefaultUriPrefix + "/securityManagement/{apiVersion}/login"
|
||||
CustomUriLogin = config.UriPrefix + "/securityManagement/{apiVersion}/login"
|
||||
|
||||
// 获取验证码
|
||||
UriCaptchaImage = config.DefaultUriPrefix + "/securityManagement/{apiVersion}/captchaImage"
|
||||
CustomUriCaptchaImage = config.UriPrefix + "/securityManagement/{apiVersion}/captchaImage"
|
||||
|
||||
// 登录用户信息
|
||||
UriUserInfo = config.DefaultUriPrefix + "/securityManagement/{apiVersion}/getUserInfo"
|
||||
CustomUriUserInfo = config.UriPrefix + "/securityManagement/{apiVersion}/getUserInfo"
|
||||
|
||||
// 登录用户路由信息
|
||||
UriRouters = config.DefaultUriPrefix + "/securityManagement/{apiVersion}/getRouters"
|
||||
CustomUriRouters = config.UriPrefix + "/securityManagement/{apiVersion}/getRouters"
|
||||
)
|
||||
|
||||
func LoginFromOMC(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -134,14 +104,8 @@ func LoginFromOMC(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
if user != nil {
|
||||
// 缓存用户信息
|
||||
account.CacheLoginUser(user)
|
||||
redis.SetByExpire("", "session_token", token, time.Second*1800)
|
||||
// 角色权限集合,管理员拥有所有权限
|
||||
userId := fmt.Sprint(user.Id)
|
||||
isAdmin := srcConfig.IsAdmin(userId)
|
||||
roles, perms := service.NewServiceAccount.RoleAndMenuPerms(userId, isAdmin)
|
||||
services.ResponseStatusOK200LoginWhitRP(w, token, user, roles, perms)
|
||||
empty := []string{}
|
||||
services.ResponseStatusOK200LoginWhitRP(w, token, user, empty, empty)
|
||||
return
|
||||
}
|
||||
services.ResponseBadRequest400IncorrectLogin(w)
|
||||
@@ -223,189 +187,3 @@ func HandshakeFromOMC(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
services.ResponseStatusOK200Null(w)
|
||||
}
|
||||
|
||||
// 系统登录
|
||||
//
|
||||
// POST /login
|
||||
func LoginOMC(w http.ResponseWriter, r *http.Request) {
|
||||
log.Info("LoginOMC processing... ")
|
||||
var body struct {
|
||||
Username string `json:"username" binding:"required"` // Username 用户名
|
||||
Password string `json:"password" binding:"required"` // Password 用户密码
|
||||
Code string `json:"code"` // Code 验证码
|
||||
UUID string `json:"uuid"` // UUID 验证码唯一标识
|
||||
}
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil {
|
||||
log.Error("Invalid Json Format")
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
// response 400-5
|
||||
if body.Username == "" || body.Password == "" {
|
||||
log.Error("Wrong parameter value")
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 校验验证码
|
||||
// 从数据库配置获取验证码开关 true开启,false关闭
|
||||
captchaEnabledStr := sysConfigService.NewServiceSysConfig.SelectConfigValueByKey("sys.account.captchaEnabled")
|
||||
captchaEnabled, err := strconv.ParseBool(captchaEnabledStr)
|
||||
if err != nil {
|
||||
captchaEnabled = false
|
||||
}
|
||||
if captchaEnabled {
|
||||
if body.Code == "" || body.UUID == "" {
|
||||
log.Error("Authentication failed, mismatch captcha")
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "Verification code information error"))
|
||||
return
|
||||
}
|
||||
verifyKey := cachekey.CAPTCHA_CODE_KEY + body.UUID
|
||||
captcha, ok := cache.GetLocalTTL(verifyKey)
|
||||
if captcha == nil || !ok {
|
||||
log.Error("Authentication failed, captcha emtry")
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "The verification code has expired"))
|
||||
return
|
||||
}
|
||||
cache.DeleteLocalTTL(verifyKey)
|
||||
if captcha.(string) != body.Code {
|
||||
log.Error("Authentication failed, not match captcha")
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "Verification code error"))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
validUser, user, err := dborm.XormCheckLoginUser(body.Username, body.Password, config.GetYamlConfig().Auth.Crypt)
|
||||
if !validUser || err != nil {
|
||||
// response 400-4
|
||||
log.Error("Authentication failed, mismatch user or password")
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
token := oauth.GenRandToken("omc") // Generate new token to session ID
|
||||
sourceAddr := r.RemoteAddr[:strings.Index(r.RemoteAddr, ":")]
|
||||
affected, err := dborm.XormInsertSession(body.Username, sourceAddr, token,
|
||||
config.GetExpiresFromConfig(), config.GetYamlConfig().Auth.Session)
|
||||
if err != nil {
|
||||
log.Error("Failed to XormInsertSession:", err)
|
||||
if affected == -1 {
|
||||
services.ResponseForbidden403MultiLoginNotAllowed(w)
|
||||
} else {
|
||||
services.ResponseBadRequest400IncorrectLogin(w)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if user != nil {
|
||||
// 缓存用户信息
|
||||
account.CacheLoginUser(user)
|
||||
redis.SetByExpire("", "session_token", token, time.Second*1800)
|
||||
ctx.JSON(w, 200, result.OkData(map[string]any{
|
||||
"accessToken": token,
|
||||
}))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 获取验证码
|
||||
//
|
||||
// GET /captchaImage
|
||||
func CaptchaImage(w http.ResponseWriter, r *http.Request) {
|
||||
configService := sysConfigService.NewServiceSysConfig
|
||||
|
||||
// 从数据库配置获取验证码开关 true开启,false关闭
|
||||
captchaEnabledStr := configService.SelectConfigValueByKey("sys.account.captchaEnabled")
|
||||
captchaEnabled, err := strconv.ParseBool(captchaEnabledStr)
|
||||
if err != nil {
|
||||
captchaEnabled = false
|
||||
}
|
||||
if !captchaEnabled {
|
||||
ctx.JSON(w, 200, result.Ok(map[string]any{
|
||||
"captchaEnabled": captchaEnabled,
|
||||
}))
|
||||
return
|
||||
}
|
||||
|
||||
// 生成唯一标识
|
||||
verifyKey := ""
|
||||
data := map[string]any{
|
||||
"captchaEnabled": captchaEnabled,
|
||||
"uuid": "",
|
||||
"img": "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
|
||||
}
|
||||
|
||||
// char 字符验证
|
||||
driverCaptcha := &base64Captcha.DriverString{
|
||||
//Height png height in pixel.
|
||||
Height: 40,
|
||||
// Width Captcha png width in pixel.
|
||||
Width: 120,
|
||||
//NoiseCount text noise count.
|
||||
NoiseCount: 4,
|
||||
//Length random string length.
|
||||
Length: 4,
|
||||
//Source is a unicode which is the rand string from.
|
||||
Source: "023456789abcdefghjkmnprstuvwxyz",
|
||||
//ShowLineOptions := OptionShowHollowLine | OptionShowSlimeLine | OptionShowSineLine .
|
||||
ShowLineOptions: base64Captcha.OptionShowHollowLine,
|
||||
//BgColor captcha image background color (optional)
|
||||
BgColor: &color.RGBA{
|
||||
R: 250,
|
||||
G: 250,
|
||||
B: 250,
|
||||
A: 255, // 不透明
|
||||
},
|
||||
}
|
||||
// 验证码生成
|
||||
id, question, answer := driverCaptcha.GenerateIdQuestionAnswer()
|
||||
// 验证码表达式解析输出
|
||||
item, err := driverCaptcha.DrawCaptcha(question)
|
||||
if err != nil {
|
||||
log.Infof("Generate Id Question Answer %s : %v", question, err)
|
||||
} else {
|
||||
data["uuid"] = id
|
||||
data["img"] = item.EncodeB64string()
|
||||
verifyKey = cachekey.CAPTCHA_CODE_KEY + id
|
||||
cache.SetLocalTTL(verifyKey, answer, 120*time.Second)
|
||||
}
|
||||
|
||||
// 本地开发下返回验证码结果,方便接口调试
|
||||
// text, ok := cache.GetLocalTTL(verifyKey)
|
||||
// if ok {
|
||||
// data["text"] = text.(string)
|
||||
// }
|
||||
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
// 登录用户信息
|
||||
func UserInfo(w http.ResponseWriter, r *http.Request) {
|
||||
loginUser, err := ctx.LoginUser(r)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.OkData(err.Error()))
|
||||
}
|
||||
// 角色权限集合,管理员拥有所有权限
|
||||
userId := fmt.Sprint(loginUser.UserID)
|
||||
isAdmin := srcConfig.IsAdmin(userId)
|
||||
roles, perms := service.NewServiceAccount.RoleAndMenuPerms(userId, isAdmin)
|
||||
|
||||
ctx.JSON(w, 200, result.OkData(map[string]any{
|
||||
"user": loginUser.User,
|
||||
"roles": roles,
|
||||
"permissions": perms,
|
||||
}))
|
||||
}
|
||||
|
||||
// 登录用户路由信息
|
||||
func Routers(w http.ResponseWriter, r *http.Request) {
|
||||
userID := ctx.LoginUserToUserID(r)
|
||||
|
||||
// 前端路由,管理员拥有所有
|
||||
isAdmin := srcConfig.IsAdmin(userID)
|
||||
buildMenus := service.NewServiceAccount.RouteMenus(userID, isAdmin)
|
||||
ctx.JSON(w, 200, result.OkData(buildMenus))
|
||||
}
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
menuService "be.ems/features/sys_menu/service"
|
||||
roleService "be.ems/features/sys_role/service"
|
||||
userService "be.ems/features/sys_user/service"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/core/vo"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceAccount 结构体
|
||||
var NewServiceAccount = &ServiceAccount{
|
||||
sysUserService: userService.NewServiceSysUser,
|
||||
sysRoleService: roleService.NewServiceSysRole,
|
||||
sysMenuService: menuService.NewServiceSysMenu,
|
||||
}
|
||||
|
||||
// 账号身份操作服务 服务层处理
|
||||
type ServiceAccount struct {
|
||||
// 用户信息服务
|
||||
sysUserService *userService.ServiceSysUser
|
||||
// 角色服务
|
||||
sysRoleService *roleService.ServiceSysRole
|
||||
// 菜单服务
|
||||
sysMenuService *menuService.ServiceSysMenu
|
||||
}
|
||||
|
||||
// RoleAndMenuPerms 角色和菜单数据权限
|
||||
func (s *ServiceAccount) RoleAndMenuPerms(userId string, isAdmin bool) ([]string, []string) {
|
||||
if isAdmin {
|
||||
return []string{"admin"}, []string{"*:*:*"}
|
||||
} else {
|
||||
// 角色key
|
||||
roleGroup := []string{}
|
||||
roles := s.sysRoleService.SelectRoleListByUserId(userId)
|
||||
for _, role := range roles {
|
||||
roleGroup = append(roleGroup, role.RoleKey)
|
||||
}
|
||||
// 菜单权限key
|
||||
perms := s.sysMenuService.SelectMenuPermsByUserId(userId)
|
||||
return parse.RemoveDuplicates(roleGroup), parse.RemoveDuplicates(perms)
|
||||
}
|
||||
}
|
||||
|
||||
// RouteMenus 前端路由所需要的菜单
|
||||
func (s *ServiceAccount) RouteMenus(userId string, isAdmin bool) []vo.Router {
|
||||
var buildMenus []vo.Router
|
||||
if isAdmin {
|
||||
menus := s.sysMenuService.SelectMenuTreeByUserId("*")
|
||||
buildMenus = s.sysMenuService.BuildRouteMenus(menus, "")
|
||||
} else {
|
||||
menus := s.sysMenuService.SelectMenuTreeByUserId(userId)
|
||||
buildMenus = s.sysMenuService.BuildRouteMenus(menus, "")
|
||||
}
|
||||
return buildMenus
|
||||
}
|
||||
@@ -1,230 +0,0 @@
|
||||
package sysconfig
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"be.ems/features/sys_config/model"
|
||||
"be.ems/features/sys_config/service"
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/core/vo/result"
|
||||
"be.ems/lib/midware"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
)
|
||||
|
||||
// 参数配置信息接口添加到路由
|
||||
func Routers() []services.RouterItem {
|
||||
// 实例化控制层 SysConfigApi 结构体
|
||||
var apis = &SysConfigApi{
|
||||
sysConfigService: service.NewServiceSysConfig,
|
||||
}
|
||||
|
||||
rs := [...]services.RouterItem{
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/configs",
|
||||
Handler: apis.List,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/config/{configId}",
|
||||
Handler: apis.Info,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "POST",
|
||||
Pattern: "/config",
|
||||
Handler: apis.Add,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/config",
|
||||
Handler: apis.Edit,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "DELETE",
|
||||
Pattern: "/config/{configIds}",
|
||||
Handler: apis.Remove,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/config/refreshCache",
|
||||
Handler: apis.RefreshCache,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/config/configKey/{configKey}",
|
||||
Handler: apis.ConfigKey,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
// 添加更多的 Router 对象...
|
||||
}
|
||||
|
||||
// 生成两组前缀路由
|
||||
rsPrefix := []services.RouterItem{}
|
||||
for _, v := range rs {
|
||||
path := "/configManage/{apiVersion}" + v.Pattern
|
||||
// 固定前缀
|
||||
v.Pattern = config.DefaultUriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
// 可配置
|
||||
v.Pattern = config.UriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
}
|
||||
return rsPrefix
|
||||
}
|
||||
|
||||
// 参数配置信息
|
||||
//
|
||||
// PATH /configManage
|
||||
type SysConfigApi struct {
|
||||
// 参数配置服务
|
||||
sysConfigService *service.ServiceSysConfig
|
||||
}
|
||||
|
||||
// 参数配置列表
|
||||
//
|
||||
// GET /list
|
||||
func (s *SysConfigApi) List(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
data := s.sysConfigService.SelectConfigPage(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
// 参数配置信息
|
||||
//
|
||||
// GET /:configId
|
||||
func (s *SysConfigApi) Info(w http.ResponseWriter, r *http.Request) {
|
||||
configId := ctx.Param(r, "configId")
|
||||
if configId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
data := s.sysConfigService.SelectConfigById(configId)
|
||||
if data.ConfigID == configId {
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 参数配置新增
|
||||
//
|
||||
// POST /
|
||||
func (s *SysConfigApi) Add(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysConfig
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.ConfigID != "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查属性值唯一
|
||||
uniqueConfigKey := s.sysConfigService.CheckUniqueConfigKey(body.ConfigKey, "")
|
||||
if !uniqueConfigKey {
|
||||
msg := fmt.Sprintf("[%s] Parameter key name already exists", body.ConfigKey)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
body.CreateBy = ctx.LoginUserToUserName(r)
|
||||
insertId := s.sysConfigService.InsertConfig(body)
|
||||
if insertId != "" {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 参数配置修改
|
||||
//
|
||||
// PUT /
|
||||
func (s *SysConfigApi) Edit(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysConfig
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.ConfigID == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查属性值唯一
|
||||
uniqueConfigKey := s.sysConfigService.CheckUniqueConfigKey(body.ConfigKey, body.ConfigID)
|
||||
if !uniqueConfigKey {
|
||||
msg := fmt.Sprintf("[%s] Parameter key name already exists", body.ConfigKey)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否存在
|
||||
config := s.sysConfigService.SelectConfigById(body.ConfigID)
|
||||
if config.ConfigID != body.ConfigID {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access parameter configuration data!"))
|
||||
return
|
||||
}
|
||||
|
||||
body.UpdateBy = ctx.LoginUserToUserName(r)
|
||||
rows := s.sysConfigService.UpdateConfig(body)
|
||||
if rows > 0 {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 参数配置删除
|
||||
//
|
||||
// DELETE /:configIds
|
||||
func (s *SysConfigApi) Remove(w http.ResponseWriter, r *http.Request) {
|
||||
configIds := ctx.Param(r, "configIds")
|
||||
if configIds == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
// 处理字符转id数组后去重
|
||||
ids := strings.Split(configIds, ",")
|
||||
uniqueIDs := parse.RemoveDuplicates(ids)
|
||||
if len(uniqueIDs) <= 0 {
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
return
|
||||
}
|
||||
rows, err := s.sysConfigService.DeleteConfigByIds(uniqueIDs)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
msg := fmt.Sprintf("删除成功:%d", rows)
|
||||
ctx.JSON(w, 200, result.OkMsg(msg))
|
||||
}
|
||||
|
||||
// 参数配置刷新缓存
|
||||
//
|
||||
// PUT /refreshCache
|
||||
func (s *SysConfigApi) RefreshCache(w http.ResponseWriter, r *http.Request) {
|
||||
s.sysConfigService.ResetConfigCache()
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
}
|
||||
|
||||
// 参数配置根据参数键名
|
||||
//
|
||||
// GET /configKey/:configKey
|
||||
func (s *SysConfigApi) ConfigKey(w http.ResponseWriter, r *http.Request) {
|
||||
configKey := ctx.Param(r, "configKey")
|
||||
if configKey == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
key := s.sysConfigService.SelectConfigValueByKey(configKey)
|
||||
if key != "" {
|
||||
ctx.JSON(w, 200, result.OkData(key))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package model
|
||||
|
||||
// 参数配置对象 sys_config
|
||||
type SysConfig struct {
|
||||
// 参数主键
|
||||
ConfigID string `json:"configId"`
|
||||
// 参数名称
|
||||
ConfigName string `json:"configName" binding:"required"`
|
||||
// 参数键名
|
||||
ConfigKey string `json:"configKey" binding:"required"`
|
||||
// 参数键值
|
||||
ConfigValue string `json:"configValue" binding:"required"`
|
||||
// 系统内置(Y是 N否)
|
||||
ConfigType string `json:"configType"`
|
||||
// 创建者
|
||||
CreateBy string `json:"createBy"`
|
||||
// 创建时间
|
||||
CreateTime int64 `json:"createTime"`
|
||||
// 更新者
|
||||
UpdateBy string `json:"updateBy"`
|
||||
// 更新时间
|
||||
UpdateTime int64 `json:"updateTime"`
|
||||
// 备注
|
||||
Remark string `json:"remark"`
|
||||
}
|
||||
@@ -1,336 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/features/sys_config/model"
|
||||
"be.ems/lib/core/datasource"
|
||||
"be.ems/lib/core/utils/date"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/log"
|
||||
)
|
||||
|
||||
// 实例化数据层 RepoSysConfig 结构体
|
||||
var NewRepoSysConfig = &RepoSysConfig{
|
||||
selectSql: `select
|
||||
config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark
|
||||
from sys_config`,
|
||||
|
||||
resultMap: map[string]string{
|
||||
"config_id": "ConfigID",
|
||||
"config_name": "ConfigName",
|
||||
"config_key": "ConfigKey",
|
||||
"config_value": "ConfigValue",
|
||||
"config_type": "ConfigType",
|
||||
"remark": "Remark",
|
||||
"create_by": "CreateBy",
|
||||
"create_time": "CreateTime",
|
||||
"update_by": "UpdateBy",
|
||||
"update_time": "UpdateTime",
|
||||
},
|
||||
}
|
||||
|
||||
// RepoSysConfig 参数配置表 数据层处理
|
||||
type RepoSysConfig struct {
|
||||
// 查询视图对象SQL
|
||||
selectSql string
|
||||
// 结果字段与实体映射
|
||||
resultMap map[string]string
|
||||
}
|
||||
|
||||
// convertResultRows 将结果记录转实体结果组
|
||||
func (r *RepoSysConfig) convertResultRows(rows []map[string]any) []model.SysConfig {
|
||||
arr := make([]model.SysConfig, 0)
|
||||
for _, row := range rows {
|
||||
sysConfig := model.SysConfig{}
|
||||
for key, value := range row {
|
||||
if keyMapper, ok := r.resultMap[key]; ok {
|
||||
datasource.SetFieldValue(&sysConfig, keyMapper, value)
|
||||
}
|
||||
}
|
||||
arr = append(arr, sysConfig)
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
// SelectDictDataPage 分页查询参数配置列表数据
|
||||
func (r *RepoSysConfig) SelectConfigPage(query map[string]any) map[string]any {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if v, ok := query["configName"]; ok && v != "" {
|
||||
conditions = append(conditions, "config_name like concat(?, '%')")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["configType"]; ok && v != "" {
|
||||
conditions = append(conditions, "config_type = ?")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["configKey"]; ok && v != "" {
|
||||
conditions = append(conditions, "config_key like concat(?, '%')")
|
||||
params = append(params, v)
|
||||
}
|
||||
beginTime, ok := query["beginTime"]
|
||||
if !ok {
|
||||
beginTime, ok = query["params[beginTime]"]
|
||||
}
|
||||
if ok && beginTime != "" {
|
||||
conditions = append(conditions, "create_time >= ?")
|
||||
beginDate := date.ParseStrToDate(beginTime.(string), date.YYYY_MM_DD)
|
||||
params = append(params, beginDate.UnixMilli())
|
||||
}
|
||||
endTime, ok := query["endTime"]
|
||||
if !ok {
|
||||
endTime, ok = query["params[endTime]"]
|
||||
}
|
||||
if ok && endTime != "" {
|
||||
conditions = append(conditions, "create_time <= ?")
|
||||
endDate := date.ParseStrToDate(endTime.(string), date.YYYY_MM_DD)
|
||||
params = append(params, endDate.UnixMilli())
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数量 长度为0直接返回
|
||||
totalSql := "select count(1) as 'total' from sys_config"
|
||||
totalRows, err := datasource.RawDB("", totalSql+whereSql, params)
|
||||
if err != nil {
|
||||
log.Errorf("total err => %v", err)
|
||||
}
|
||||
total := parse.Number(totalRows[0]["total"])
|
||||
if total == 0 {
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": []model.SysConfig{},
|
||||
}
|
||||
}
|
||||
|
||||
// 分页
|
||||
pageNum, pageSize := datasource.PageNumSize(query["pageNum"], query["pageSize"])
|
||||
pageSql := " limit ?,? "
|
||||
params = append(params, pageNum*pageSize)
|
||||
params = append(params, pageSize)
|
||||
|
||||
// 查询数据
|
||||
querySql := r.selectSql + whereSql + pageSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
rows := r.convertResultRows(results)
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": rows,
|
||||
}
|
||||
}
|
||||
|
||||
// SelectConfigList 查询参数配置列表
|
||||
func (r *RepoSysConfig) SelectConfigList(sysConfig model.SysConfig) []model.SysConfig {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysConfig.ConfigName != "" {
|
||||
conditions = append(conditions, "config_name like concat(?, '%')")
|
||||
params = append(params, sysConfig.ConfigName)
|
||||
}
|
||||
if sysConfig.ConfigType != "" {
|
||||
conditions = append(conditions, "config_type = ?")
|
||||
params = append(params, sysConfig.ConfigType)
|
||||
}
|
||||
if sysConfig.ConfigKey != "" {
|
||||
conditions = append(conditions, "config_key like concat(?, '%')")
|
||||
params = append(params, sysConfig.ConfigKey)
|
||||
}
|
||||
if sysConfig.CreateTime > 0 {
|
||||
conditions = append(conditions, "create_time >= ?")
|
||||
params = append(params, sysConfig.CreateTime)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := r.selectSql + whereSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysConfig{}
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// SelectConfigValueByKey 通过参数键名查询参数键值
|
||||
func (r *RepoSysConfig) SelectConfigValueByKey(configKey string) string {
|
||||
querySql := "select config_value as 'str' from sys_config where config_key = ?"
|
||||
results, err := datasource.RawDB("", querySql, []any{configKey})
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return ""
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return fmt.Sprint(results[0]["str"])
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// SelectConfigByIds 通过配置ID查询参数配置信息
|
||||
func (r *RepoSysConfig) SelectConfigByIds(configIds []string) []model.SysConfig {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(configIds))
|
||||
querySql := r.selectSql + " where config_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(configIds)
|
||||
results, err := datasource.RawDB("", querySql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysConfig{}
|
||||
}
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// CheckUniqueConfig 校验配置参数是否唯一
|
||||
func (r *RepoSysConfig) CheckUniqueConfig(sysConfig model.SysConfig) string {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysConfig.ConfigKey != "" {
|
||||
conditions = append(conditions, "config_key = ?")
|
||||
params = append(params, sysConfig.ConfigKey)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := "select config_id as 'str' from sys_config " + whereSql + " limit 1"
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err %v", err)
|
||||
return ""
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return fmt.Sprint(results[0]["str"])
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// InsertConfig 新增参数配置
|
||||
func (r *RepoSysConfig) InsertConfig(sysConfig model.SysConfig) string {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysConfig.ConfigName != "" {
|
||||
params["config_name"] = sysConfig.ConfigName
|
||||
}
|
||||
if sysConfig.ConfigKey != "" {
|
||||
params["config_key"] = sysConfig.ConfigKey
|
||||
}
|
||||
if sysConfig.ConfigValue != "" {
|
||||
params["config_value"] = sysConfig.ConfigValue
|
||||
}
|
||||
if sysConfig.ConfigType != "" {
|
||||
params["config_type"] = sysConfig.ConfigType
|
||||
}
|
||||
if sysConfig.Remark != "" {
|
||||
params["remark"] = sysConfig.Remark
|
||||
}
|
||||
if sysConfig.CreateBy != "" {
|
||||
params["create_by"] = sysConfig.CreateBy
|
||||
params["create_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, placeholder, values := datasource.KeyPlaceholderValueByInsert(params)
|
||||
sql := "insert into sys_config (" + strings.Join(keys, ",") + ")values(" + placeholder + ")"
|
||||
|
||||
// 执行插入
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
|
||||
insertId, err := results.LastInsertId()
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprint(insertId)
|
||||
}
|
||||
|
||||
// UpdateConfig 修改参数配置
|
||||
func (r *RepoSysConfig) UpdateConfig(sysConfig model.SysConfig) int64 {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysConfig.ConfigName != "" {
|
||||
params["config_name"] = sysConfig.ConfigName
|
||||
}
|
||||
if sysConfig.ConfigKey != "" {
|
||||
params["config_key"] = sysConfig.ConfigKey
|
||||
}
|
||||
if sysConfig.ConfigValue != "" {
|
||||
params["config_value"] = sysConfig.ConfigValue
|
||||
}
|
||||
if sysConfig.ConfigType != "" {
|
||||
params["config_type"] = sysConfig.ConfigType
|
||||
}
|
||||
if sysConfig.Remark != "" {
|
||||
params["remark"] = sysConfig.Remark
|
||||
}
|
||||
if sysConfig.UpdateBy != "" {
|
||||
params["update_by"] = sysConfig.UpdateBy
|
||||
params["update_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, values := datasource.KeyValueByUpdate(params)
|
||||
sql := "update sys_config set " + strings.Join(keys, ",") + " where config_id = ?"
|
||||
|
||||
// 执行更新
|
||||
values = append(values, sysConfig.ConfigID)
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("update row : %v", err.Error())
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("update err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// DeleteConfigByIds 批量删除参数配置信息
|
||||
func (r *RepoSysConfig) DeleteConfigByIds(configIds []string) int64 {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(configIds))
|
||||
sql := "delete from sys_config where config_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(configIds)
|
||||
results, err := datasource.ExecDB("", sql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
@@ -1,155 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"be.ems/features/sys_config/model"
|
||||
"be.ems/lib/core/cache"
|
||||
"be.ems/lib/core/constants/cachekey"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceSysConfig 结构体
|
||||
var NewServiceSysConfig = &ServiceSysConfig{
|
||||
sysConfigRepository: NewRepoSysConfig,
|
||||
}
|
||||
|
||||
// ServiceSysConfig 参数配置 服务层处理
|
||||
type ServiceSysConfig struct {
|
||||
// 参数配置表
|
||||
sysConfigRepository *RepoSysConfig
|
||||
}
|
||||
|
||||
// SelectDictDataPage 分页查询参数配置列表数据
|
||||
func (r *ServiceSysConfig) SelectConfigPage(query map[string]any) map[string]any {
|
||||
return r.sysConfigRepository.SelectConfigPage(query)
|
||||
}
|
||||
|
||||
// SelectConfigList 查询参数配置列表
|
||||
func (r *ServiceSysConfig) SelectConfigList(sysConfig model.SysConfig) []model.SysConfig {
|
||||
return r.sysConfigRepository.SelectConfigList(sysConfig)
|
||||
}
|
||||
|
||||
// SelectConfigValueByKey 通过参数键名查询参数键值
|
||||
func (r *ServiceSysConfig) SelectConfigValueByKey(configKey string) string {
|
||||
cacheKey := r.getCacheKey(configKey)
|
||||
// 从缓存中读取
|
||||
cacheValue, ok := cache.GetLocal(cacheKey)
|
||||
if cacheValue != nil && ok {
|
||||
return cacheValue.(string)
|
||||
}
|
||||
// 无缓存时读取数据放入缓存中
|
||||
configValue := r.sysConfigRepository.SelectConfigValueByKey(configKey)
|
||||
if configValue != "" {
|
||||
cache.SetLocal(cacheKey, configValue)
|
||||
return configValue
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// SelectConfigById 通过配置ID查询参数配置信息
|
||||
func (r *ServiceSysConfig) SelectConfigById(configId string) model.SysConfig {
|
||||
if configId == "" {
|
||||
return model.SysConfig{}
|
||||
}
|
||||
configs := r.sysConfigRepository.SelectConfigByIds([]string{configId})
|
||||
if len(configs) > 0 {
|
||||
return configs[0]
|
||||
}
|
||||
return model.SysConfig{}
|
||||
}
|
||||
|
||||
// CheckUniqueConfigKey 校验参数键名是否唯一
|
||||
func (r *ServiceSysConfig) CheckUniqueConfigKey(configKey, configId string) bool {
|
||||
uniqueId := r.sysConfigRepository.CheckUniqueConfig(model.SysConfig{
|
||||
ConfigKey: configKey,
|
||||
})
|
||||
if uniqueId == configId {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// InsertConfig 新增参数配置
|
||||
func (r *ServiceSysConfig) InsertConfig(sysConfig model.SysConfig) string {
|
||||
configId := r.sysConfigRepository.InsertConfig(sysConfig)
|
||||
if configId != "" {
|
||||
r.loadingConfigCache(sysConfig.ConfigKey)
|
||||
}
|
||||
return configId
|
||||
}
|
||||
|
||||
// UpdateConfig 修改参数配置
|
||||
func (r *ServiceSysConfig) UpdateConfig(sysConfig model.SysConfig) int64 {
|
||||
rows := r.sysConfigRepository.UpdateConfig(sysConfig)
|
||||
if rows > 0 {
|
||||
r.loadingConfigCache(sysConfig.ConfigKey)
|
||||
}
|
||||
return rows
|
||||
}
|
||||
|
||||
// DeleteConfigByIds 批量删除参数配置信息
|
||||
func (r *ServiceSysConfig) DeleteConfigByIds(configIds []string) (int64, error) {
|
||||
// 检查是否存在
|
||||
configs := r.sysConfigRepository.SelectConfigByIds(configIds)
|
||||
if len(configs) <= 0 {
|
||||
return 0, errors.New("does not have permission to access parameter configuration data")
|
||||
}
|
||||
for _, config := range configs {
|
||||
// 检查是否为内置参数
|
||||
if config.ConfigType == "Y" {
|
||||
return 0, errors.New(config.ConfigID + " Configuration parameters are built-in parameters and their deletion is prohibited!")
|
||||
}
|
||||
// 清除缓存
|
||||
r.clearConfigCache(config.ConfigKey)
|
||||
}
|
||||
if len(configs) == len(configIds) {
|
||||
rows := r.sysConfigRepository.DeleteConfigByIds(configIds)
|
||||
return rows, nil
|
||||
}
|
||||
return 0, errors.New("failed to delete parameter configuration information")
|
||||
}
|
||||
|
||||
// ResetConfigCache 重置参数缓存数据
|
||||
func (r *ServiceSysConfig) ResetConfigCache() {
|
||||
r.clearConfigCache("*")
|
||||
r.loadingConfigCache("*")
|
||||
}
|
||||
|
||||
// getCacheKey 组装缓存key
|
||||
func (r *ServiceSysConfig) getCacheKey(configKey string) string {
|
||||
return cachekey.SYS_CONFIG_KEY + configKey
|
||||
}
|
||||
|
||||
// loadingConfigCache 加载参数缓存数据
|
||||
func (r *ServiceSysConfig) loadingConfigCache(configKey string) {
|
||||
// 查询全部参数
|
||||
if configKey == "*" {
|
||||
sysConfigs := r.SelectConfigList(model.SysConfig{})
|
||||
for _, v := range sysConfigs {
|
||||
key := r.getCacheKey(v.ConfigKey)
|
||||
cache.DeleteLocal(key)
|
||||
cache.SetLocal(key, v.ConfigValue)
|
||||
}
|
||||
return
|
||||
}
|
||||
// 指定参数
|
||||
if configKey != "" {
|
||||
cacheValue := r.sysConfigRepository.SelectConfigValueByKey(configKey)
|
||||
if cacheValue != "" {
|
||||
key := r.getCacheKey(configKey)
|
||||
cache.DeleteLocal(key)
|
||||
cache.SetLocal(key, cacheValue)
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// clearConfigCache 清空参数缓存数据
|
||||
func (r *ServiceSysConfig) clearConfigCache(configKey string) bool {
|
||||
key := r.getCacheKey(configKey)
|
||||
keys := cache.GetLocalKeys(key)
|
||||
for _, v := range keys {
|
||||
cache.DeleteLocal(v)
|
||||
}
|
||||
return len(keys) > 0
|
||||
}
|
||||
@@ -1,247 +0,0 @@
|
||||
package sysdictdata
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"be.ems/features/sys_dict_data/model"
|
||||
sysDictDataService "be.ems/features/sys_dict_data/service"
|
||||
sysDictTypeService "be.ems/features/sys_dict_type/service"
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/core/vo/result"
|
||||
"be.ems/lib/midware"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
)
|
||||
|
||||
// 字典类型对应的字典数据信息接口添加到路由
|
||||
func Routers() []services.RouterItem {
|
||||
// 实例化控制层 SysDictDataApi 结构体
|
||||
var apis = &SysDictDataApi{
|
||||
sysDictDataService: sysDictDataService.NewServiceSysDictData,
|
||||
sysDictTypeService: sysDictTypeService.NewServiceSysDictType,
|
||||
}
|
||||
|
||||
rs := [...]services.RouterItem{
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/dictDatas",
|
||||
Handler: apis.List,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/dictData/{dictCode}",
|
||||
Handler: apis.Info,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "POST",
|
||||
Pattern: "/dictData",
|
||||
Handler: apis.Add,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/dictData",
|
||||
Handler: apis.Edit,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "DELETE",
|
||||
Pattern: "/dictData/{dictCodes}",
|
||||
Handler: apis.Remove,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/dictData/type/{dictType}",
|
||||
Handler: apis.DictType,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
// 添加更多的 Router 对象...
|
||||
}
|
||||
|
||||
// 生成两组前缀路由
|
||||
rsPrefix := []services.RouterItem{}
|
||||
for _, v := range rs {
|
||||
path := "/dictDataManage/{apiVersion}" + v.Pattern
|
||||
// 固定前缀
|
||||
v.Pattern = config.DefaultUriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
// 可配置
|
||||
v.Pattern = config.UriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
}
|
||||
return rsPrefix
|
||||
}
|
||||
|
||||
// 字典类型对应的字典数据信息
|
||||
//
|
||||
// PATH /dictDataManage
|
||||
type SysDictDataApi struct {
|
||||
// 字典数据服务
|
||||
sysDictDataService *sysDictDataService.ServiceSysDictData
|
||||
// 字典类型服务
|
||||
sysDictTypeService *sysDictTypeService.ServiceSysDictType
|
||||
}
|
||||
|
||||
// 字典数据列表
|
||||
//
|
||||
// GET /list
|
||||
func (s *SysDictDataApi) List(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
data := s.sysDictDataService.SelectDictDataPage(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
// 字典数据详情
|
||||
//
|
||||
// GET /:dictCode
|
||||
func (s *SysDictDataApi) Info(w http.ResponseWriter, r *http.Request) {
|
||||
dictCode := ctx.Param(r, "dictCode")
|
||||
if dictCode == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
data := s.sysDictDataService.SelectDictDataByCode(dictCode)
|
||||
if data.DictCode == dictCode {
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 字典数据新增
|
||||
//
|
||||
// POST /
|
||||
func (s *SysDictDataApi) Add(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysDictData
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.DictCode != "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典类型是否存在
|
||||
sysDictType := s.sysDictTypeService.SelectDictTypeByType(body.DictType)
|
||||
if sysDictType.DictType != body.DictType {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access dictionary type data!"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典标签唯一
|
||||
uniqueDictLabel := s.sysDictDataService.CheckUniqueDictLabel(body.DictType, body.DictLabel, "")
|
||||
if !uniqueDictLabel {
|
||||
msg := fmt.Sprintf("[%s] The subscript signature of this dictionary type already exists", body.DictLabel)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典键值唯一
|
||||
uniqueDictValue := s.sysDictDataService.CheckUniqueDictValue(body.DictType, body.DictValue, "")
|
||||
if !uniqueDictValue {
|
||||
msg := fmt.Sprintf("[%s] The label value under this dictionary type already exists", body.DictValue)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
body.CreateBy = ctx.LoginUserToUserName(r)
|
||||
insertId := s.sysDictDataService.InsertDictData(body)
|
||||
if insertId != "" {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 字典类型修改
|
||||
//
|
||||
// PUT /
|
||||
func (s *SysDictDataApi) Edit(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysDictData
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.DictCode == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典类型是否存在
|
||||
sysDictType := s.sysDictTypeService.SelectDictTypeByType(body.DictType)
|
||||
if sysDictType.DictType != body.DictType {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access dictionary type data!"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典编码是否存在
|
||||
SysDictDataApi := s.sysDictDataService.SelectDictDataByCode(body.DictCode)
|
||||
if SysDictDataApi.DictCode != body.DictCode {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access dictionary encoding data!"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典标签唯一
|
||||
uniqueDictLabel := s.sysDictDataService.CheckUniqueDictLabel(body.DictType, body.DictLabel, body.DictCode)
|
||||
if !uniqueDictLabel {
|
||||
msg := fmt.Sprintf("Data modification failed for [%s], the dictionary type subscript signature already exists", body.DictLabel)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典键值唯一
|
||||
uniqueDictValue := s.sysDictDataService.CheckUniqueDictValue(body.DictType, body.DictValue, body.DictCode)
|
||||
if !uniqueDictValue {
|
||||
msg := fmt.Sprintf("Data modification failed for [%s], label value already exists under this dictionary type", body.DictValue)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
body.UpdateBy = ctx.LoginUserToUserName(r)
|
||||
rows := s.sysDictDataService.UpdateDictData(body)
|
||||
if rows > 0 {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 字典数据删除
|
||||
//
|
||||
// DELETE /:dictCodes
|
||||
func (s *SysDictDataApi) Remove(w http.ResponseWriter, r *http.Request) {
|
||||
dictCodes := ctx.Param(r, "dictCodes")
|
||||
if dictCodes == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
// 处理字符转id数组后去重
|
||||
ids := strings.Split(dictCodes, ",")
|
||||
uniqueIDs := parse.RemoveDuplicates(ids)
|
||||
if len(uniqueIDs) <= 0 {
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
return
|
||||
}
|
||||
rows, err := s.sysDictDataService.DeleteDictDataByCodes(uniqueIDs)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
msg := fmt.Sprintf("Successfully deleted: %d", rows)
|
||||
ctx.JSON(w, 200, result.OkMsg(msg))
|
||||
}
|
||||
|
||||
// 字典数据列表(指定字典类型)
|
||||
//
|
||||
// GET /type/:dictType
|
||||
func (s *SysDictDataApi) DictType(w http.ResponseWriter, r *http.Request) {
|
||||
dictType := ctx.Param(r, "dictType")
|
||||
if dictType == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
data := s.sysDictDataService.SelectDictDataByType(dictType)
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package model
|
||||
|
||||
// SysDictData 字典数据对象 sys_dict_data
|
||||
type SysDictData struct {
|
||||
// 字典编码
|
||||
DictCode string `json:"dictCode"`
|
||||
// 字典排序
|
||||
DictSort int `json:"dictSort"`
|
||||
// 字典标签
|
||||
DictLabel string `json:"dictLabel" binding:"required"`
|
||||
// 字典键值
|
||||
DictValue string `json:"dictValue" binding:"required"`
|
||||
// 字典类型
|
||||
DictType string `json:"dictType" binding:"required"`
|
||||
// 样式属性(样式扩展)
|
||||
TagClass string `json:"tagClass"`
|
||||
// 标签类型(预设颜色)
|
||||
TagType string `json:"tagType"`
|
||||
// 状态(0停用 1正常)
|
||||
Status string `json:"status"`
|
||||
// 创建者
|
||||
CreateBy string `json:"createBy"`
|
||||
// 创建时间
|
||||
CreateTime int64 `json:"createTime"`
|
||||
// 更新者
|
||||
UpdateBy string `json:"updateBy"`
|
||||
// 更新时间
|
||||
UpdateTime int64 `json:"updateTime"`
|
||||
// 备注
|
||||
Remark string `json:"remark"`
|
||||
}
|
||||
@@ -1,369 +0,0 @@
|
||||
package repo
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/features/sys_dict_data/model"
|
||||
"be.ems/lib/core/datasource"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/log"
|
||||
)
|
||||
|
||||
// 实例化数据层 RepoSysDictData 结构体
|
||||
var NewRepoSysDictData = &RepoSysDictData{
|
||||
selectSql: `select
|
||||
dict_code, dict_sort, dict_label, dict_value, dict_type, tag_class, tag_type, status, create_by, create_time, remark
|
||||
from sys_dict_data`,
|
||||
|
||||
resultMap: map[string]string{
|
||||
"dict_code": "DictCode",
|
||||
"dict_sort": "DictSort",
|
||||
"dict_label": "DictLabel",
|
||||
"dict_value": "DictValue",
|
||||
"dict_type": "DictType",
|
||||
"tag_class": "TagClass",
|
||||
"tag_type": "TagType",
|
||||
"status": "Status",
|
||||
"remark": "Remark",
|
||||
"create_by": "CreateBy",
|
||||
"create_time": "CreateTime",
|
||||
"update_by": "UpdateBy",
|
||||
"update_time": "UpdateTime",
|
||||
},
|
||||
}
|
||||
|
||||
// RepoSysDictData 字典类型数据表 数据层处理
|
||||
type RepoSysDictData struct {
|
||||
// 查询视图对象SQL
|
||||
selectSql string
|
||||
// 结果字段与实体映射
|
||||
resultMap map[string]string
|
||||
}
|
||||
|
||||
// convertResultRows 将结果记录转实体结果组
|
||||
func (r *RepoSysDictData) convertResultRows(rows []map[string]any) []model.SysDictData {
|
||||
arr := make([]model.SysDictData, 0)
|
||||
for _, row := range rows {
|
||||
sysDictData := model.SysDictData{}
|
||||
for key, value := range row {
|
||||
if keyMapper, ok := r.resultMap[key]; ok {
|
||||
datasource.SetFieldValue(&sysDictData, keyMapper, value)
|
||||
}
|
||||
}
|
||||
arr = append(arr, sysDictData)
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
// SelectDictDataPage 根据条件分页查询字典数据
|
||||
func (r *RepoSysDictData) SelectDictDataPage(query map[string]any) map[string]any {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if v, ok := query["dictType"]; ok && v != "" {
|
||||
conditions = append(conditions, "dict_type = ?")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["dictLabel"]; ok && v != "" {
|
||||
conditions = append(conditions, "dict_label like concat(?, '%')")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["status"]; ok && v != "" {
|
||||
conditions = append(conditions, "status = ?")
|
||||
params = append(params, v)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数量 长度为0直接返回
|
||||
totalSql := "select count(1) as 'total' from sys_dict_data"
|
||||
totalRows, err := datasource.RawDB("", totalSql+whereSql, params)
|
||||
if err != nil {
|
||||
log.Errorf("total err => %v", err)
|
||||
}
|
||||
total := parse.Number(totalRows[0]["total"])
|
||||
if total == 0 {
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": []model.SysDictData{},
|
||||
}
|
||||
}
|
||||
|
||||
// 分页
|
||||
pageNum, pageSize := datasource.PageNumSize(query["pageNum"], query["pageSize"])
|
||||
pageSql := " order by dict_sort asc limit ?,? "
|
||||
params = append(params, pageNum*pageSize)
|
||||
params = append(params, pageSize)
|
||||
|
||||
// 查询数据
|
||||
querySql := r.selectSql + whereSql + pageSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
rows := r.convertResultRows(results)
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": rows,
|
||||
}
|
||||
}
|
||||
|
||||
// SelectDictDataList 根据条件查询字典数据
|
||||
func (r *RepoSysDictData) SelectDictDataList(sysDictData model.SysDictData) []model.SysDictData {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysDictData.DictLabel != "" {
|
||||
conditions = append(conditions, "dict_label like concat(?, '%')")
|
||||
params = append(params, sysDictData.DictLabel)
|
||||
}
|
||||
if sysDictData.DictType != "" {
|
||||
conditions = append(conditions, "dict_type = ?")
|
||||
params = append(params, sysDictData.DictType)
|
||||
}
|
||||
if sysDictData.Status != "" {
|
||||
conditions = append(conditions, "status = ?")
|
||||
params = append(params, sysDictData.Status)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
orderSql := " order by dict_sort asc "
|
||||
querySql := r.selectSql + whereSql + orderSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysDictData{}
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// SelectDictDataByCodes 根据字典数据编码查询信息
|
||||
func (r *RepoSysDictData) SelectDictDataByCodes(dictCodes []string) []model.SysDictData {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(dictCodes))
|
||||
querySql := r.selectSql + " where dict_code in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(dictCodes)
|
||||
results, err := datasource.RawDB("", querySql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysDictData{}
|
||||
}
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// CountDictDataByType 查询字典数据
|
||||
func (r *RepoSysDictData) CountDictDataByType(dictType string) int64 {
|
||||
querySql := "select count(1) as 'total' from sys_dict_data where dict_type = ?"
|
||||
results, err := datasource.RawDB("", querySql, []any{dictType})
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return 0
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return parse.Number(results[0]["total"])
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// CheckUniqueDictData 校验字典数据是否唯一
|
||||
func (r *RepoSysDictData) CheckUniqueDictData(sysDictData model.SysDictData) string {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysDictData.DictType != "" {
|
||||
conditions = append(conditions, "dict_type = ?")
|
||||
params = append(params, sysDictData.DictType)
|
||||
}
|
||||
if sysDictData.DictLabel != "" {
|
||||
conditions = append(conditions, "dict_label = ?")
|
||||
params = append(params, sysDictData.DictLabel)
|
||||
}
|
||||
if sysDictData.DictValue != "" {
|
||||
conditions = append(conditions, "dict_value = ?")
|
||||
params = append(params, sysDictData.DictValue)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := "select dict_code as 'str' from sys_dict_data " + whereSql + " limit 1"
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err %v", err)
|
||||
return ""
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return fmt.Sprint(results[0]["str"])
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// DeleteDictDataByCodes 批量删除字典数据信息
|
||||
func (r *RepoSysDictData) DeleteDictDataByCodes(dictCodes []string) int64 {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(dictCodes))
|
||||
sql := "delete from sys_dict_data where dict_code in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(dictCodes)
|
||||
results, err := datasource.ExecDB("", sql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// InsertDictData 新增字典数据信息
|
||||
func (r *RepoSysDictData) InsertDictData(sysDictData model.SysDictData) string {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysDictData.DictSort > 0 {
|
||||
params["dict_sort"] = sysDictData.DictSort
|
||||
}
|
||||
if sysDictData.DictLabel != "" {
|
||||
params["dict_label"] = sysDictData.DictLabel
|
||||
}
|
||||
if sysDictData.DictValue != "" {
|
||||
params["dict_value"] = sysDictData.DictValue
|
||||
}
|
||||
if sysDictData.DictType != "" {
|
||||
params["dict_type"] = sysDictData.DictType
|
||||
}
|
||||
if sysDictData.TagClass != "" {
|
||||
params["tag_class"] = sysDictData.TagClass
|
||||
}
|
||||
if sysDictData.TagType != "" {
|
||||
params["tag_type"] = sysDictData.TagType
|
||||
}
|
||||
if sysDictData.Status != "" {
|
||||
params["status"] = sysDictData.Status
|
||||
}
|
||||
if sysDictData.Remark != "" {
|
||||
params["remark"] = sysDictData.Remark
|
||||
}
|
||||
if sysDictData.CreateBy != "" {
|
||||
params["create_by"] = sysDictData.CreateBy
|
||||
params["create_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, placeholder, values := datasource.KeyPlaceholderValueByInsert(params)
|
||||
sql := "insert into sys_dict_data (" + strings.Join(keys, ",") + ")values(" + placeholder + ")"
|
||||
|
||||
// 执行插入
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
insertId, err := results.LastInsertId()
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprint(insertId)
|
||||
}
|
||||
|
||||
// UpdateDictData 修改字典数据信息
|
||||
func (r *RepoSysDictData) UpdateDictData(sysDictData model.SysDictData) int64 {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysDictData.DictSort > 0 {
|
||||
params["dict_sort"] = sysDictData.DictSort
|
||||
}
|
||||
if sysDictData.DictLabel != "" {
|
||||
params["dict_label"] = sysDictData.DictLabel
|
||||
}
|
||||
if sysDictData.DictValue != "" {
|
||||
params["dict_value"] = sysDictData.DictValue
|
||||
}
|
||||
if sysDictData.DictType != "" {
|
||||
params["dict_type"] = sysDictData.DictType
|
||||
}
|
||||
if sysDictData.TagClass != "" {
|
||||
params["tag_class"] = sysDictData.TagClass
|
||||
}
|
||||
if sysDictData.TagType != "" {
|
||||
params["tag_type"] = sysDictData.TagType
|
||||
}
|
||||
if sysDictData.Status != "" {
|
||||
params["status"] = sysDictData.Status
|
||||
}
|
||||
if sysDictData.Remark != "" {
|
||||
params["remark"] = sysDictData.Remark
|
||||
}
|
||||
if sysDictData.UpdateBy != "" {
|
||||
params["update_by"] = sysDictData.UpdateBy
|
||||
params["update_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, values := datasource.KeyValueByUpdate(params)
|
||||
sql := "update sys_dict_data set " + strings.Join(keys, ",") + " where dict_code = ?"
|
||||
|
||||
// 执行更新
|
||||
values = append(values, sysDictData.DictCode)
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("update row : %v", err.Error())
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("update err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// UpdateDictDataType 同步修改字典类型
|
||||
func (r *RepoSysDictData) UpdateDictDataType(oldDictType string, newDictType string) int64 {
|
||||
// 参数拼接
|
||||
params := make([]any, 0)
|
||||
if oldDictType == "" || newDictType == "" {
|
||||
return 0
|
||||
}
|
||||
params = append(params, newDictType)
|
||||
params = append(params, oldDictType)
|
||||
|
||||
// 构建执行语句
|
||||
sql := "update sys_dict_data set dict_type = ? where dict_type = ?"
|
||||
|
||||
// 执行更新
|
||||
results, err := datasource.ExecDB("", sql, params)
|
||||
if err != nil {
|
||||
log.Errorf("update row : %v", err.Error())
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("update err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"be.ems/features/sys_dict_data/model"
|
||||
"be.ems/features/sys_dict_data/repo"
|
||||
sysDictTypeService "be.ems/features/sys_dict_type/service"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceSysDictData 结构体
|
||||
var NewServiceSysDictData = &ServiceSysDictData{
|
||||
sysDictDataRepository: *repo.NewRepoSysDictData,
|
||||
sysDictTypeService: *sysDictTypeService.NewServiceSysDictType,
|
||||
}
|
||||
|
||||
// ServiceSysDictData 字典类型数据 服务层处理
|
||||
type ServiceSysDictData struct {
|
||||
// 字典数据服务
|
||||
sysDictDataRepository repo.RepoSysDictData
|
||||
// 字典类型服务
|
||||
sysDictTypeService sysDictTypeService.ServiceSysDictType
|
||||
}
|
||||
|
||||
// SelectDictDataPage 根据条件分页查询字典数据
|
||||
func (r *ServiceSysDictData) SelectDictDataPage(query map[string]any) map[string]any {
|
||||
return r.sysDictDataRepository.SelectDictDataPage(query)
|
||||
}
|
||||
|
||||
// SelectDictDataList 根据条件查询字典数据
|
||||
func (r *ServiceSysDictData) SelectDictDataList(sysDictData model.SysDictData) []model.SysDictData {
|
||||
return r.sysDictDataRepository.SelectDictDataList(sysDictData)
|
||||
}
|
||||
|
||||
// SelectDictDataByCode 根据字典数据编码查询信息
|
||||
func (r *ServiceSysDictData) SelectDictDataByCode(dictCode string) model.SysDictData {
|
||||
if dictCode == "" {
|
||||
return model.SysDictData{}
|
||||
}
|
||||
dictCodes := r.sysDictDataRepository.SelectDictDataByCodes([]string{dictCode})
|
||||
if len(dictCodes) > 0 {
|
||||
return dictCodes[0]
|
||||
}
|
||||
return model.SysDictData{}
|
||||
}
|
||||
|
||||
// SelectDictDataByType 根据字典类型查询信息
|
||||
func (r *ServiceSysDictData) SelectDictDataByType(dictType string) []model.SysDictData {
|
||||
return r.sysDictTypeService.DictDataCache(dictType)
|
||||
}
|
||||
|
||||
// CheckUniqueDictLabel 校验字典标签是否唯一
|
||||
func (r *ServiceSysDictData) CheckUniqueDictLabel(dictType, dictLabel, dictCode string) bool {
|
||||
uniqueId := r.sysDictDataRepository.CheckUniqueDictData(model.SysDictData{
|
||||
DictType: dictType,
|
||||
DictLabel: dictLabel,
|
||||
})
|
||||
if uniqueId == dictCode {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// CheckUniqueDictValue 校验字典键值是否唯一
|
||||
func (r *ServiceSysDictData) CheckUniqueDictValue(dictType, dictValue, dictCode string) bool {
|
||||
uniqueId := r.sysDictDataRepository.CheckUniqueDictData(model.SysDictData{
|
||||
DictType: dictType,
|
||||
DictValue: dictValue,
|
||||
})
|
||||
if uniqueId == dictCode {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// DeleteDictDataByCodes 批量删除字典数据信息
|
||||
func (r *ServiceSysDictData) DeleteDictDataByCodes(dictCodes []string) (int64, error) {
|
||||
// 检查是否存在
|
||||
dictDatas := r.sysDictDataRepository.SelectDictDataByCodes(dictCodes)
|
||||
if len(dictDatas) <= 0 {
|
||||
return 0, errors.New("does not have permission to access dictionary-encoded data")
|
||||
}
|
||||
if len(dictDatas) == len(dictCodes) {
|
||||
for _, v := range dictDatas {
|
||||
// 刷新缓存
|
||||
r.sysDictTypeService.ClearDictCache(v.DictType)
|
||||
r.sysDictTypeService.LoadingDictCache(v.DictType)
|
||||
}
|
||||
rows := r.sysDictDataRepository.DeleteDictDataByCodes(dictCodes)
|
||||
return rows, nil
|
||||
}
|
||||
return 0, errors.New("failed to delete dictionary data information")
|
||||
}
|
||||
|
||||
// InsertDictData 新增字典数据信息
|
||||
func (r *ServiceSysDictData) InsertDictData(sysDictData model.SysDictData) string {
|
||||
insertId := r.sysDictDataRepository.InsertDictData(sysDictData)
|
||||
if insertId != "" {
|
||||
r.sysDictTypeService.LoadingDictCache(sysDictData.DictType)
|
||||
}
|
||||
return insertId
|
||||
}
|
||||
|
||||
// UpdateDictData 修改字典数据信息
|
||||
func (r *ServiceSysDictData) UpdateDictData(sysDictData model.SysDictData) int64 {
|
||||
rows := r.sysDictDataRepository.UpdateDictData(sysDictData)
|
||||
if rows > 0 {
|
||||
r.sysDictTypeService.LoadingDictCache(sysDictData.DictType)
|
||||
}
|
||||
return rows
|
||||
}
|
||||
@@ -1,253 +0,0 @@
|
||||
package sysdicttype
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"be.ems/features/sys_dict_type/model"
|
||||
sysDictTypeService "be.ems/features/sys_dict_type/service"
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/core/vo/result"
|
||||
"be.ems/lib/midware"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
)
|
||||
|
||||
// 字典类型信息接口添加到路由
|
||||
func Routers() []services.RouterItem {
|
||||
// 实例化控制层 SysDictTypeApi 结构体
|
||||
var apis = &SysDictTypeApi{
|
||||
sysDictTypeService: *sysDictTypeService.NewServiceSysDictType,
|
||||
}
|
||||
|
||||
rs := [...]services.RouterItem{
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/dictTypes",
|
||||
Handler: apis.List,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/dictType/{dictId}",
|
||||
Handler: apis.Info,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "POST",
|
||||
Pattern: "/dictType",
|
||||
Handler: apis.Add,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/dictType",
|
||||
Handler: apis.Edit,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "DELETE",
|
||||
Pattern: "/dictType/{dictIds}",
|
||||
Handler: apis.Remove,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/dictType/refreshCache",
|
||||
Handler: apis.RefreshCache,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/dictTypes/optionselect",
|
||||
Handler: apis.DictOptionselect,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
// 添加更多的 Router 对象...
|
||||
}
|
||||
|
||||
// 生成两组前缀路由
|
||||
rsPrefix := []services.RouterItem{}
|
||||
for _, v := range rs {
|
||||
path := "/dictTypegManage/{apiVersion}" + v.Pattern
|
||||
// 固定前缀
|
||||
v.Pattern = config.DefaultUriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
// 可配置
|
||||
v.Pattern = config.UriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
}
|
||||
return rsPrefix
|
||||
}
|
||||
|
||||
// 字典类型信息
|
||||
//
|
||||
// PATH /dictTypegManage
|
||||
type SysDictTypeApi struct {
|
||||
// 字典类型服务
|
||||
sysDictTypeService sysDictTypeService.ServiceSysDictType
|
||||
}
|
||||
|
||||
// 字典类型列表
|
||||
//
|
||||
// GET /list
|
||||
func (s *SysDictTypeApi) List(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
data := s.sysDictTypeService.SelectDictTypePage(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
// 字典类型信息
|
||||
//
|
||||
// GET /:dictId
|
||||
func (s *SysDictTypeApi) Info(w http.ResponseWriter, r *http.Request) {
|
||||
dictId := ctx.Param(r, "dictId")
|
||||
if dictId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
data := s.sysDictTypeService.SelectDictTypeByID(dictId)
|
||||
if data.DictID == dictId {
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 字典类型新增
|
||||
//
|
||||
// POST /
|
||||
func (s *SysDictTypeApi) Add(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysDictType
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.DictID != "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典名称唯一
|
||||
uniqueDictName := s.sysDictTypeService.CheckUniqueDictName(body.DictName, "")
|
||||
if !uniqueDictName {
|
||||
msg := fmt.Sprintf("Failed to add dictionary '%s', dictionary name already exists", body.DictName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典类型唯一
|
||||
uniqueDictType := s.sysDictTypeService.CheckUniqueDictType(body.DictType, "")
|
||||
if !uniqueDictType {
|
||||
msg := fmt.Sprintf("Failed to add dictionary '%s', dictionary type already exists", body.DictType)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
body.CreateBy = ctx.LoginUserToUserName(r)
|
||||
insertId := s.sysDictTypeService.InsertDictType(body)
|
||||
if insertId != "" {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 字典类型修改
|
||||
//
|
||||
// PUT /
|
||||
func (s *SysDictTypeApi) Edit(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysDictType
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.DictID == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查数据是否存在
|
||||
dictInfo := s.sysDictTypeService.SelectDictTypeByID(body.DictID)
|
||||
if dictInfo.DictID != body.DictID {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access dictionary type data!"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典名称唯一
|
||||
uniqueDictName := s.sysDictTypeService.CheckUniqueDictName(body.DictName, body.DictID)
|
||||
if !uniqueDictName {
|
||||
msg := fmt.Sprintf("Dictionary modification failed for [%s], dictionary name already exists", body.DictName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查字典类型唯一
|
||||
uniqueDictType := s.sysDictTypeService.CheckUniqueDictType(body.DictType, body.DictID)
|
||||
if !uniqueDictType {
|
||||
msg := fmt.Sprintf("Dictionary modification failed for [%s], dictionary type already exists", body.DictType)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
body.UpdateBy = ctx.LoginUserToUserName(r)
|
||||
rows := s.sysDictTypeService.UpdateDictType(body)
|
||||
if rows > 0 {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 字典类型删除
|
||||
//
|
||||
// DELETE /:dictIds
|
||||
func (s *SysDictTypeApi) Remove(w http.ResponseWriter, r *http.Request) {
|
||||
dictIds := ctx.Param(r, "dictIds")
|
||||
if dictIds == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
// 处理字符转id数组后去重
|
||||
ids := strings.Split(dictIds, ",")
|
||||
uniqueIDs := parse.RemoveDuplicates(ids)
|
||||
if len(uniqueIDs) <= 0 {
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
return
|
||||
}
|
||||
rows, err := s.sysDictTypeService.DeleteDictTypeByIDs(uniqueIDs)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
msg := fmt.Sprintf("Successfully deleted: %d", rows)
|
||||
ctx.JSON(w, 200, result.OkMsg(msg))
|
||||
}
|
||||
|
||||
// 字典类型刷新缓存
|
||||
//
|
||||
// PUT /refreshCache
|
||||
func (s *SysDictTypeApi) RefreshCache(w http.ResponseWriter, r *http.Request) {
|
||||
s.sysDictTypeService.ResetDictCache()
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
}
|
||||
|
||||
// 字典类型选择框列表
|
||||
//
|
||||
// GET /getDictOptionselect
|
||||
func (s *SysDictTypeApi) DictOptionselect(w http.ResponseWriter, r *http.Request) {
|
||||
data := s.sysDictTypeService.SelectDictTypeList(model.SysDictType{
|
||||
Status: "1",
|
||||
})
|
||||
|
||||
type labelValue struct {
|
||||
Label string `json:"label"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
// 数据组
|
||||
arr := []labelValue{}
|
||||
for _, v := range data {
|
||||
arr = append(arr, labelValue{
|
||||
Label: v.DictName,
|
||||
Value: v.DictType,
|
||||
})
|
||||
}
|
||||
ctx.JSON(w, 200, result.OkData(arr))
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package model
|
||||
|
||||
// SysDictType 字典类型对象 sys_dict_type
|
||||
type SysDictType struct {
|
||||
// 字典主键
|
||||
DictID string `json:"dictId"`
|
||||
// 字典名称
|
||||
DictName string `json:"dictName" binding:"required"`
|
||||
// 字典类型
|
||||
DictType string `json:"dictType" binding:"required"`
|
||||
// 状态(0停用 1正常)
|
||||
Status string `json:"status"`
|
||||
// 创建者
|
||||
CreateBy string `json:"createBy"`
|
||||
// 创建时间
|
||||
CreateTime int64 `json:"createTime"`
|
||||
// 更新者
|
||||
UpdateBy string `json:"updateBy"`
|
||||
// 更新时间
|
||||
UpdateTime int64 `json:"updateTime"`
|
||||
// 备注
|
||||
Remark string `json:"remark"`
|
||||
}
|
||||
@@ -1,330 +0,0 @@
|
||||
package repo
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/features/sys_dict_type/model"
|
||||
"be.ems/lib/core/datasource"
|
||||
"be.ems/lib/core/utils/date"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/log"
|
||||
)
|
||||
|
||||
// 实例化数据层 RepoSysDictType 结构体
|
||||
var NewRepoSysDictType = &RepoSysDictType{
|
||||
selectSql: `select
|
||||
dict_id, dict_name, dict_type, status, create_by, create_time, remark
|
||||
from sys_dict_type`,
|
||||
|
||||
resultMap: map[string]string{
|
||||
"dict_id": "DictID",
|
||||
"dict_name": "DictName",
|
||||
"dict_type": "DictType",
|
||||
"remark": "Remark",
|
||||
"status": "Status",
|
||||
"create_by": "CreateBy",
|
||||
"create_time": "CreateTime",
|
||||
"update_by": "UpdateBy",
|
||||
"update_time": "UpdateTime",
|
||||
},
|
||||
}
|
||||
|
||||
// RepoSysDictType 字典类型表 数据层处理
|
||||
type RepoSysDictType struct {
|
||||
// 查询视图对象SQL
|
||||
selectSql string
|
||||
// 结果字段与实体映射
|
||||
resultMap map[string]string
|
||||
}
|
||||
|
||||
// convertResultRows 将结果记录转实体结果组
|
||||
func (r *RepoSysDictType) convertResultRows(rows []map[string]any) []model.SysDictType {
|
||||
arr := make([]model.SysDictType, 0)
|
||||
for _, row := range rows {
|
||||
sysDictType := model.SysDictType{}
|
||||
for key, value := range row {
|
||||
if keyMapper, ok := r.resultMap[key]; ok {
|
||||
datasource.SetFieldValue(&sysDictType, keyMapper, value)
|
||||
}
|
||||
}
|
||||
arr = append(arr, sysDictType)
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
// SelectDictTypePage 根据条件分页查询字典类型
|
||||
func (r *RepoSysDictType) SelectDictTypePage(query map[string]any) map[string]any {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if v, ok := query["dictName"]; ok && v != "" {
|
||||
conditions = append(conditions, "dict_name like concat(?, '%')")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["dictType"]; ok && v != "" {
|
||||
conditions = append(conditions, "dict_type like concat(?, '%')")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["status"]; ok && v != "" {
|
||||
conditions = append(conditions, "status = ?")
|
||||
params = append(params, v)
|
||||
}
|
||||
beginTime, ok := query["beginTime"]
|
||||
if !ok {
|
||||
beginTime, ok = query["params[beginTime]"]
|
||||
}
|
||||
if ok && beginTime != "" {
|
||||
conditions = append(conditions, "create_time >= ?")
|
||||
beginDate := date.ParseStrToDate(beginTime.(string), date.YYYY_MM_DD)
|
||||
params = append(params, beginDate.UnixMilli())
|
||||
}
|
||||
endTime, ok := query["endTime"]
|
||||
if !ok {
|
||||
endTime, ok = query["params[endTime]"]
|
||||
}
|
||||
if ok && endTime != "" {
|
||||
conditions = append(conditions, "create_time <= ?")
|
||||
endDate := date.ParseStrToDate(endTime.(string), date.YYYY_MM_DD)
|
||||
params = append(params, endDate.UnixMilli())
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数量 长度为0直接返回
|
||||
totalSql := "select count(1) as 'total' from sys_dict_type"
|
||||
totalRows, err := datasource.RawDB("", totalSql+whereSql, params)
|
||||
if err != nil {
|
||||
log.Errorf("total err => %v", err)
|
||||
}
|
||||
total := parse.Number(totalRows[0]["total"])
|
||||
if total == 0 {
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": []model.SysDictType{},
|
||||
}
|
||||
}
|
||||
|
||||
// 分页
|
||||
pageNum, pageSize := datasource.PageNumSize(query["pageNum"], query["pageSize"])
|
||||
pageSql := " limit ?,? "
|
||||
params = append(params, pageNum*pageSize)
|
||||
params = append(params, pageSize)
|
||||
|
||||
// 查询数据
|
||||
querySql := r.selectSql + whereSql + pageSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
rows := r.convertResultRows(results)
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": rows,
|
||||
}
|
||||
}
|
||||
|
||||
// SelectDictTypeList 根据条件查询字典类型
|
||||
func (r *RepoSysDictType) SelectDictTypeList(sysDictType model.SysDictType) []model.SysDictType {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysDictType.DictName != "" {
|
||||
conditions = append(conditions, "dict_name like concat(?, '%')")
|
||||
params = append(params, sysDictType.DictName)
|
||||
}
|
||||
if sysDictType.DictType != "" {
|
||||
conditions = append(conditions, "dict_type like concat(?, '%')")
|
||||
params = append(params, sysDictType.DictType)
|
||||
}
|
||||
if sysDictType.Status != "" {
|
||||
conditions = append(conditions, "status = ?")
|
||||
params = append(params, sysDictType.Status)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := r.selectSql + whereSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysDictType{}
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// SelectDictTypeByIDs 根据字典类型ID查询信息
|
||||
func (r *RepoSysDictType) SelectDictTypeByIDs(dictIDs []string) []model.SysDictType {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(dictIDs))
|
||||
querySql := r.selectSql + " where dict_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(dictIDs)
|
||||
results, err := datasource.RawDB("", querySql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysDictType{}
|
||||
}
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// SelectDictTypeByType 根据字典类型查询信息
|
||||
func (r *RepoSysDictType) SelectDictTypeByType(dictType string) model.SysDictType {
|
||||
querySql := r.selectSql + " where dict_type = ?"
|
||||
results, err := datasource.RawDB("", querySql, []any{dictType})
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return model.SysDictType{}
|
||||
}
|
||||
// 转换实体
|
||||
rows := r.convertResultRows(results)
|
||||
if len(rows) > 0 {
|
||||
return rows[0]
|
||||
}
|
||||
return model.SysDictType{}
|
||||
}
|
||||
|
||||
// CheckUniqueDictType 校验字典是否唯一
|
||||
func (r *RepoSysDictType) CheckUniqueDictType(sysDictType model.SysDictType) string {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysDictType.DictName != "" {
|
||||
conditions = append(conditions, "dict_name = ?")
|
||||
params = append(params, sysDictType.DictName)
|
||||
}
|
||||
if sysDictType.DictType != "" {
|
||||
conditions = append(conditions, "dict_type = ?")
|
||||
params = append(params, sysDictType.DictType)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := "select dict_id as 'str' from sys_dict_type " + whereSql + " limit 1"
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err %v", err)
|
||||
return ""
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return fmt.Sprint(results[0]["str"])
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// InsertDictType 新增字典类型信息
|
||||
func (r *RepoSysDictType) InsertDictType(sysDictType model.SysDictType) string {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysDictType.DictName != "" {
|
||||
params["dict_name"] = sysDictType.DictName
|
||||
}
|
||||
if sysDictType.DictType != "" {
|
||||
params["dict_type"] = sysDictType.DictType
|
||||
}
|
||||
if sysDictType.Status != "" {
|
||||
params["status"] = sysDictType.Status
|
||||
}
|
||||
if sysDictType.Remark != "" {
|
||||
params["remark"] = sysDictType.Remark
|
||||
}
|
||||
if sysDictType.CreateBy != "" {
|
||||
params["create_by"] = sysDictType.CreateBy
|
||||
params["create_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, placeholder, values := datasource.KeyPlaceholderValueByInsert(params)
|
||||
sql := "insert into sys_dict_type (" + strings.Join(keys, ",") + ")values(" + placeholder + ")"
|
||||
|
||||
// 执行插入
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
insertId, err := results.LastInsertId()
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprint(insertId)
|
||||
}
|
||||
|
||||
// UpdateDictType 修改字典类型信息
|
||||
func (r *RepoSysDictType) UpdateDictType(sysDictType model.SysDictType) int64 {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysDictType.DictName != "" {
|
||||
params["dict_name"] = sysDictType.DictName
|
||||
}
|
||||
if sysDictType.DictType != "" {
|
||||
params["dict_type"] = sysDictType.DictType
|
||||
}
|
||||
if sysDictType.Status != "" {
|
||||
params["status"] = sysDictType.Status
|
||||
}
|
||||
if sysDictType.Remark != "" {
|
||||
params["remark"] = sysDictType.Remark
|
||||
}
|
||||
if sysDictType.UpdateBy != "" {
|
||||
params["update_by"] = sysDictType.UpdateBy
|
||||
params["update_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, values := datasource.KeyValueByUpdate(params)
|
||||
sql := "update sys_dict_type set " + strings.Join(keys, ",") + " where dict_id = ?"
|
||||
|
||||
// 执行更新
|
||||
values = append(values, sysDictType.DictID)
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("update row : %v", err.Error())
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("update err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// DeleteDictTypeByIDs 批量删除字典类型信息
|
||||
func (r *RepoSysDictType) DeleteDictTypeByIDs(dictIDs []string) int64 {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(dictIDs))
|
||||
sql := "delete from sys_dict_type where dict_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(dictIDs)
|
||||
results, err := datasource.ExecDB("", sql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
@@ -1,211 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
sysDictDataModel "be.ems/features/sys_dict_data/model"
|
||||
sysDictDataRepo "be.ems/features/sys_dict_data/repo"
|
||||
sysDictTypeModel "be.ems/features/sys_dict_type/model"
|
||||
"be.ems/features/sys_dict_type/repo"
|
||||
"be.ems/lib/core/cache"
|
||||
"be.ems/lib/core/constants/cachekey"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceSysDictType 结构体
|
||||
var NewServiceSysDictType = &ServiceSysDictType{
|
||||
sysDictTypeRepository: *repo.NewRepoSysDictType,
|
||||
sysDictDataRepository: *sysDictDataRepo.NewRepoSysDictData,
|
||||
}
|
||||
|
||||
// ServiceSysDictType 字典类型 服务层处理
|
||||
type ServiceSysDictType struct {
|
||||
// 字典类型服务
|
||||
sysDictTypeRepository repo.RepoSysDictType
|
||||
// 字典数据服务
|
||||
sysDictDataRepository sysDictDataRepo.RepoSysDictData
|
||||
}
|
||||
|
||||
// SelectDictTypePage 根据条件分页查询字典类型
|
||||
func (r *ServiceSysDictType) SelectDictTypePage(query map[string]any) map[string]any {
|
||||
return r.sysDictTypeRepository.SelectDictTypePage(query)
|
||||
}
|
||||
|
||||
// SelectDictTypeList 根据条件查询字典类型
|
||||
func (r *ServiceSysDictType) SelectDictTypeList(sysDictType sysDictTypeModel.SysDictType) []sysDictTypeModel.SysDictType {
|
||||
return r.sysDictTypeRepository.SelectDictTypeList(sysDictType)
|
||||
}
|
||||
|
||||
// SelectDictTypeByID 根据字典类型ID查询信息
|
||||
func (r *ServiceSysDictType) SelectDictTypeByID(dictID string) sysDictTypeModel.SysDictType {
|
||||
if dictID == "" {
|
||||
return sysDictTypeModel.SysDictType{}
|
||||
}
|
||||
dictTypes := r.sysDictTypeRepository.SelectDictTypeByIDs([]string{dictID})
|
||||
if len(dictTypes) > 0 {
|
||||
return dictTypes[0]
|
||||
}
|
||||
return sysDictTypeModel.SysDictType{}
|
||||
}
|
||||
|
||||
// SelectDictTypeByType 根据字典类型查询信息
|
||||
func (r *ServiceSysDictType) SelectDictTypeByType(dictType string) sysDictTypeModel.SysDictType {
|
||||
return r.sysDictTypeRepository.SelectDictTypeByType(dictType)
|
||||
}
|
||||
|
||||
// CheckUniqueDictName 校验字典名称是否唯一
|
||||
func (r *ServiceSysDictType) CheckUniqueDictName(dictName, dictID string) bool {
|
||||
uniqueId := r.sysDictTypeRepository.CheckUniqueDictType(sysDictTypeModel.SysDictType{
|
||||
DictName: dictName,
|
||||
})
|
||||
if uniqueId == dictID {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// CheckUniqueDictType 校验字典类型是否唯一
|
||||
func (r *ServiceSysDictType) CheckUniqueDictType(dictType, dictID string) bool {
|
||||
uniqueId := r.sysDictTypeRepository.CheckUniqueDictType(sysDictTypeModel.SysDictType{
|
||||
DictType: dictType,
|
||||
})
|
||||
if uniqueId == dictID {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// InsertDictType 新增字典类型信息
|
||||
func (r *ServiceSysDictType) InsertDictType(sysDictType sysDictTypeModel.SysDictType) string {
|
||||
insertId := r.sysDictTypeRepository.InsertDictType(sysDictType)
|
||||
if insertId != "" {
|
||||
r.LoadingDictCache(sysDictType.DictType)
|
||||
}
|
||||
return insertId
|
||||
}
|
||||
|
||||
// UpdateDictType 修改字典类型信息
|
||||
func (r *ServiceSysDictType) UpdateDictType(sysDictType sysDictTypeModel.SysDictType) int64 {
|
||||
data := r.sysDictTypeRepository.SelectDictTypeByIDs([]string{sysDictType.DictID})
|
||||
if len(data) == 0 {
|
||||
return 0
|
||||
}
|
||||
// 修改字典类型key时同步更新其字典数据的类型key
|
||||
oldDictType := data[0].DictType
|
||||
rows := r.sysDictTypeRepository.UpdateDictType(sysDictType)
|
||||
if rows > 0 && oldDictType != "" && oldDictType != sysDictType.DictType {
|
||||
r.sysDictDataRepository.UpdateDictDataType(oldDictType, sysDictType.DictType)
|
||||
}
|
||||
// 刷新缓存
|
||||
r.ClearDictCache(oldDictType)
|
||||
r.LoadingDictCache(sysDictType.DictType)
|
||||
return rows
|
||||
}
|
||||
|
||||
// DeleteDictTypeByIDs 批量删除字典类型信息
|
||||
func (r *ServiceSysDictType) DeleteDictTypeByIDs(dictIDs []string) (int64, error) {
|
||||
// 检查是否存在
|
||||
dictTypes := r.sysDictTypeRepository.SelectDictTypeByIDs(dictIDs)
|
||||
if len(dictTypes) <= 0 {
|
||||
return 0, errors.New("no permission to access dictionary type data")
|
||||
}
|
||||
for _, v := range dictTypes {
|
||||
// 字典类型下级含有数据
|
||||
useCount := r.sysDictDataRepository.CountDictDataByType(v.DictType)
|
||||
if useCount > 0 {
|
||||
msg := fmt.Sprintf("[%s] Dictionary data exists and cannot be deleted. ", v.DictName)
|
||||
return 0, errors.New(msg)
|
||||
}
|
||||
// 清除缓存
|
||||
r.ClearDictCache(v.DictType)
|
||||
}
|
||||
if len(dictTypes) == len(dictIDs) {
|
||||
rows := r.sysDictTypeRepository.DeleteDictTypeByIDs(dictIDs)
|
||||
return rows, nil
|
||||
}
|
||||
return 0, errors.New("failed to delete dictionary data information")
|
||||
}
|
||||
|
||||
// ResetDictCache 重置字典缓存数据
|
||||
func (r *ServiceSysDictType) ResetDictCache() {
|
||||
r.ClearDictCache("*")
|
||||
r.LoadingDictCache("")
|
||||
}
|
||||
|
||||
// getCacheKey 组装缓存key
|
||||
func (r *ServiceSysDictType) getDictCache(dictType string) string {
|
||||
return cachekey.SYS_DICT_KEY + dictType
|
||||
}
|
||||
|
||||
// LoadingDictCache 加载字典缓存数据
|
||||
func (r *ServiceSysDictType) LoadingDictCache(dictType string) {
|
||||
sysDictData := sysDictDataModel.SysDictData{
|
||||
Status: "1",
|
||||
}
|
||||
|
||||
// 指定字典类型
|
||||
if dictType != "" {
|
||||
sysDictData.DictType = dictType
|
||||
// 删除缓存
|
||||
key := r.getDictCache(dictType)
|
||||
cache.DeleteLocal(key)
|
||||
}
|
||||
|
||||
sysDictDataList := r.sysDictDataRepository.SelectDictDataList(sysDictData)
|
||||
if len(sysDictDataList) == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
// 将字典数据按类型分组
|
||||
m := make(map[string][]sysDictDataModel.SysDictData, 0)
|
||||
for _, v := range sysDictDataList {
|
||||
key := v.DictType
|
||||
if item, ok := m[key]; ok {
|
||||
m[key] = append(item, v)
|
||||
} else {
|
||||
m[key] = []sysDictDataModel.SysDictData{v}
|
||||
}
|
||||
}
|
||||
|
||||
// 放入缓存
|
||||
for k, v := range m {
|
||||
key := r.getDictCache(k)
|
||||
values, _ := json.Marshal(v)
|
||||
cache.SetLocal(key, string(values))
|
||||
}
|
||||
}
|
||||
|
||||
// ClearDictCache 清空字典缓存数据
|
||||
func (r *ServiceSysDictType) ClearDictCache(dictType string) bool {
|
||||
key := r.getDictCache(dictType)
|
||||
keys := cache.GetLocalKeys(key)
|
||||
for _, v := range keys {
|
||||
cache.DeleteLocal(v)
|
||||
}
|
||||
return len(keys) > 0
|
||||
}
|
||||
|
||||
// DictDataCache 获取字典数据缓存数据
|
||||
func (r *ServiceSysDictType) DictDataCache(dictType string) []sysDictDataModel.SysDictData {
|
||||
data := []sysDictDataModel.SysDictData{}
|
||||
key := r.getDictCache(dictType)
|
||||
jsonAny, ok := cache.GetLocal(key)
|
||||
if jsonAny != nil && ok {
|
||||
err := json.Unmarshal([]byte(jsonAny.(string)), &data)
|
||||
if err != nil {
|
||||
data = []sysDictDataModel.SysDictData{}
|
||||
}
|
||||
} else {
|
||||
data = r.sysDictDataRepository.SelectDictDataList(sysDictDataModel.SysDictData{
|
||||
Status: "1",
|
||||
DictType: dictType,
|
||||
})
|
||||
if len(data) > 0 {
|
||||
cache.DeleteLocal(key)
|
||||
values, _ := json.Marshal(data)
|
||||
cache.SetLocal(key, string(values))
|
||||
}
|
||||
}
|
||||
return data
|
||||
}
|
||||
@@ -1,354 +0,0 @@
|
||||
package sysmenu
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"be.ems/features/sys_menu/consts"
|
||||
"be.ems/features/sys_menu/model"
|
||||
"be.ems/features/sys_menu/service"
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/core/utils/regular"
|
||||
"be.ems/lib/core/vo/result"
|
||||
"be.ems/lib/midware"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
srcConfig "be.ems/src/framework/config"
|
||||
)
|
||||
|
||||
// 菜单接口添加到路由
|
||||
func Routers() []services.RouterItem {
|
||||
// 实例化控制层 SysMenuApi 结构体
|
||||
var apis = &SysMenuApi{
|
||||
sysMenuService: service.NewServiceSysMenu,
|
||||
}
|
||||
|
||||
rs := [...]services.RouterItem{
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/menus",
|
||||
Handler: apis.List,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/menu/{menuId}",
|
||||
Handler: apis.Info,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "POST",
|
||||
Pattern: "/menu",
|
||||
Handler: apis.Add,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/menu",
|
||||
Handler: apis.Edit,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "DELETE",
|
||||
Pattern: "/menu/{menuId}",
|
||||
Handler: apis.Remove,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/menus/treeSelect",
|
||||
Handler: apis.TreeSelect,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/menu/roleMenuTreeSelect/{roleId}",
|
||||
Handler: apis.RoleMenuTreeSelect,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
// 添加更多的 Router 对象...
|
||||
}
|
||||
|
||||
// 生成两组前缀路由
|
||||
rsPrefix := []services.RouterItem{}
|
||||
for _, v := range rs {
|
||||
path := "/menuManage/{apiVersion}" + v.Pattern
|
||||
// 固定前缀
|
||||
v.Pattern = config.DefaultUriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
// 可配置
|
||||
v.Pattern = config.UriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
}
|
||||
return rsPrefix
|
||||
}
|
||||
|
||||
// // 实例化控制层 SysMenuApi 结构体
|
||||
// var NewSysMenu = &SysMenuApi{
|
||||
// sysMenuService: NewServiceSysMenu,
|
||||
// }
|
||||
|
||||
// 菜单信息
|
||||
//
|
||||
// PATH /menuManage
|
||||
type SysMenuApi struct {
|
||||
// 菜单服务
|
||||
sysMenuService *service.ServiceSysMenu
|
||||
}
|
||||
|
||||
// 菜单列表
|
||||
//
|
||||
// GET /list
|
||||
func (s *SysMenuApi) List(w http.ResponseWriter, r *http.Request) {
|
||||
query := model.SysMenu{}
|
||||
if v := ctx.GetQuery(r, "menuName"); v != "" {
|
||||
query.MenuName = v
|
||||
}
|
||||
if v := ctx.GetQuery(r, "status"); v != "" {
|
||||
query.Status = v
|
||||
}
|
||||
|
||||
userId := ctx.LoginUserToUserID(r)
|
||||
if srcConfig.IsAdmin(userId) {
|
||||
userId = "*"
|
||||
}
|
||||
data := s.sysMenuService.SelectMenuList(query, userId)
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
// 菜单信息
|
||||
//
|
||||
// GET /:menuId
|
||||
func (s *SysMenuApi) Info(w http.ResponseWriter, r *http.Request) {
|
||||
menuId := ctx.Param(r, "menuId")
|
||||
if menuId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
data := s.sysMenuService.SelectMenuById(menuId)
|
||||
if data.MenuID == menuId {
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 菜单新增
|
||||
//
|
||||
// POST /
|
||||
func (s *SysMenuApi) Add(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysMenu
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.MenuID != "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 目录和菜单检查地址唯一
|
||||
if consts.TYPE_DIR == body.MenuType || consts.TYPE_MENU == body.MenuType {
|
||||
uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, "")
|
||||
if !uniqueNenuPath {
|
||||
msg := fmt.Sprintf("菜单新增【%s】失败,菜单路由地址已存在", body.MenuName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 检查名称唯一
|
||||
uniqueNenuName := s.sysMenuService.CheckUniqueMenuName(body.MenuName, body.ParentID, "")
|
||||
if !uniqueNenuName {
|
||||
msg := fmt.Sprintf("菜单新增【%s】失败,菜单名称已存在", body.MenuName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 外链菜单需要符合网站http(s)开头
|
||||
if body.IsFrame == "0" && !regular.ValidHttp(body.Path) {
|
||||
msg := fmt.Sprintf("菜单新增【%s】失败,非内部地址必须以http(s)://开头", body.MenuName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
body.CreateBy = ctx.LoginUserToUserName(r)
|
||||
insertId := s.sysMenuService.InsertMenu(body)
|
||||
if insertId != "" {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 菜单修改
|
||||
//
|
||||
// PUT /
|
||||
func (s *SysMenuApi) Edit(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysMenu
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.MenuID == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 上级菜单不能选自己
|
||||
if body.MenuID == body.ParentID {
|
||||
msg := fmt.Sprintf("Menu modification failed for [%s], parent menu cannot select itself", body.MenuName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查数据是否存在
|
||||
menuInfo := s.sysMenuService.SelectMenuById(body.MenuID)
|
||||
if menuInfo.MenuID != body.MenuID {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access menu data"))
|
||||
return
|
||||
}
|
||||
// 父级ID不为0是要检查
|
||||
if body.ParentID != "0" {
|
||||
menuParent := s.sysMenuService.SelectMenuById(body.ParentID)
|
||||
if menuParent.MenuID != body.ParentID {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access menu data"))
|
||||
return
|
||||
}
|
||||
// 禁用菜单时检查父菜单是否使用
|
||||
if body.Status == "1" && menuParent.Status == "0" {
|
||||
ctx.JSON(w, 200, result.ErrMsg("Parent menu not enabled!"))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 目录和菜单检查地址唯一
|
||||
if consts.TYPE_DIR == body.MenuType || consts.TYPE_MENU == body.MenuType {
|
||||
uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, body.MenuID)
|
||||
if !uniqueNenuPath {
|
||||
msg := fmt.Sprintf("菜单修改【%s】失败,菜单路由地址已存在", body.MenuName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 检查名称唯一
|
||||
uniqueNenuName := s.sysMenuService.CheckUniqueMenuName(body.MenuName, body.ParentID, body.MenuID)
|
||||
if !uniqueNenuName {
|
||||
msg := fmt.Sprintf("菜单修改【%s】失败,菜单名称已存在", body.MenuName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 外链菜单需要符合网站http(s)开头
|
||||
if body.IsFrame == "0" && !regular.ValidHttp(body.Path) {
|
||||
msg := fmt.Sprintf("菜单修改【%s】失败,非内部地址必须以http(s)://开头", body.MenuName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 禁用菜单时检查子菜单是否使用
|
||||
if body.Status == "0" {
|
||||
hasStatus := s.sysMenuService.HasChildByMenuIdAndStatus(body.MenuID, "1")
|
||||
if hasStatus > 0 {
|
||||
msg := fmt.Sprintf("不允许禁用,存在使用子菜单数:%d", hasStatus)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
body.UpdateBy = ctx.LoginUserToUserName(r)
|
||||
rows := s.sysMenuService.UpdateMenu(body)
|
||||
if rows > 0 {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 菜单删除
|
||||
//
|
||||
// DELETE /:menuId
|
||||
func (s *SysMenuApi) Remove(w http.ResponseWriter, r *http.Request) {
|
||||
menuId := ctx.Param(r, "menuId")
|
||||
if menuId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查数据是否存在
|
||||
menu := s.sysMenuService.SelectMenuById(menuId)
|
||||
if menu.MenuID != menuId {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access menu data!"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否存在子菜单
|
||||
hasChild := s.sysMenuService.HasChildByMenuIdAndStatus(menuId, "")
|
||||
if hasChild > 0 {
|
||||
msg := fmt.Sprintf("Deletion not allowed, there are sub orders: %d", hasChild)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否分配给角色
|
||||
existRole := s.sysMenuService.CheckMenuExistRole(menuId)
|
||||
if existRole > 0 {
|
||||
msg := fmt.Sprintf("Deletion not allowed, menu already assigned to roles: %d", existRole)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
rows := s.sysMenuService.DeleteMenuById(menuId)
|
||||
if rows > 0 {
|
||||
msg := fmt.Sprintf("Successfully deleted: %d", rows)
|
||||
ctx.JSON(w, 200, result.OkMsg(msg))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 菜单树结构列表
|
||||
//
|
||||
// GET /treeSelect
|
||||
func (s *SysMenuApi) TreeSelect(w http.ResponseWriter, r *http.Request) {
|
||||
query := model.SysMenu{}
|
||||
if v := ctx.GetQuery(r, "menuName"); v != "" {
|
||||
query.MenuName = v
|
||||
}
|
||||
if v := ctx.GetQuery(r, "status"); v != "" {
|
||||
query.Status = v
|
||||
}
|
||||
|
||||
userId := ctx.LoginUserToUserID(r)
|
||||
if srcConfig.IsAdmin(userId) {
|
||||
userId = "*"
|
||||
}
|
||||
data := s.sysMenuService.SelectMenuTreeSelectByUserId(query, userId)
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
|
||||
}
|
||||
|
||||
// 菜单树结构列表(指定角色)
|
||||
//
|
||||
// GET /roleMenuTreeSelect/:roleId
|
||||
func (s *SysMenuApi) RoleMenuTreeSelect(w http.ResponseWriter, r *http.Request) {
|
||||
roleId := ctx.Param(r, "roleId")
|
||||
if roleId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
query := model.SysMenu{}
|
||||
if v := ctx.GetQuery(r, "menuName"); v != "" {
|
||||
query.MenuName = v
|
||||
}
|
||||
if v := ctx.GetQuery(r, "status"); v != "" {
|
||||
query.Status = v
|
||||
}
|
||||
|
||||
userId := ctx.LoginUserToUserID(r)
|
||||
if srcConfig.IsAdmin(userId) {
|
||||
userId = "*"
|
||||
}
|
||||
menuTreeSelect := s.sysMenuService.SelectMenuTreeSelectByUserId(query, userId)
|
||||
checkedKeys := s.sysMenuService.SelectMenuListByRoleId(roleId)
|
||||
ctx.JSON(w, 200, result.OkData(map[string]any{
|
||||
"menus": menuTreeSelect,
|
||||
"checkedKeys": checkedKeys,
|
||||
}))
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package consts
|
||||
|
||||
// 系统菜单常量信息
|
||||
|
||||
const (
|
||||
// 组件布局类型-基础布局组件标识
|
||||
COMPONENT_LAYOUT_BASIC = "BasicLayout"
|
||||
// 组件布局类型-空白布局组件标识
|
||||
COMPONENT_LAYOUT_BLANK = "BlankLayout"
|
||||
// 组件布局类型-内链接布局组件标识
|
||||
COMPONENT_LAYOUT_LINK = "LinkLayout"
|
||||
)
|
||||
|
||||
const (
|
||||
// 菜单类型-目录
|
||||
TYPE_DIR = "D"
|
||||
// 菜单类型-菜单
|
||||
TYPE_MENU = "M"
|
||||
// 菜单类型-按钮
|
||||
TYPE_BUTTON = "B"
|
||||
)
|
||||
|
||||
// 菜单内嵌地址标识-带/前缀
|
||||
const PATH_INLINE = "/inline"
|
||||
@@ -1,46 +0,0 @@
|
||||
package model
|
||||
|
||||
// SysMenu 菜单权限对象 sys_menu
|
||||
type SysMenu struct {
|
||||
// 菜单ID
|
||||
MenuID string `json:"menuId"`
|
||||
// 菜单名称
|
||||
MenuName string `json:"menuName" binding:"required"`
|
||||
// 父菜单ID 默认0
|
||||
ParentID string `json:"parentId" binding:"required"`
|
||||
// 显示顺序
|
||||
MenuSort int `json:"menuSort"`
|
||||
// 路由地址
|
||||
Path string `json:"path"`
|
||||
// 组件路径
|
||||
Component string `json:"component"`
|
||||
// 是否内部跳转(0否 1是)
|
||||
IsFrame string `json:"isFrame"`
|
||||
// 是否缓存(0不缓存 1缓存)
|
||||
IsCache string `json:"isCache"`
|
||||
// 菜单类型(D目录 M菜单 B按钮)
|
||||
MenuType string `json:"menuType" binding:"required"`
|
||||
// 是否显示(0隐藏 1显示)
|
||||
Visible string `json:"visible"`
|
||||
// 菜单状态(0停用 1正常)
|
||||
Status string `json:"status"`
|
||||
// 权限标识
|
||||
Perms string `json:"perms"`
|
||||
// 菜单图标(#无图标)
|
||||
Icon string `json:"icon"`
|
||||
// 创建者
|
||||
CreateBy string `json:"createBy"`
|
||||
// 创建时间
|
||||
CreateTime int64 `json:"createTime"`
|
||||
// 更新者
|
||||
UpdateBy string `json:"updateBy"`
|
||||
// 更新时间
|
||||
UpdateTime int64 `json:"updateTime"`
|
||||
// 备注
|
||||
Remark string `json:"remark"`
|
||||
|
||||
// ====== 非数据库字段属性 ======
|
||||
|
||||
// 子菜单
|
||||
Children []SysMenu `json:"children,omitempty"`
|
||||
}
|
||||
@@ -1,475 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/features/sys_menu/consts"
|
||||
"be.ems/features/sys_menu/model"
|
||||
"be.ems/lib/core/datasource"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/log"
|
||||
)
|
||||
|
||||
// 实例化数据层 RepoSysMenu 结构体
|
||||
var NewRepoSysMenu = &RepoSysMenu{
|
||||
selectSql: `select
|
||||
m.menu_id, m.menu_name, m.parent_id, m.menu_sort, m.path, m.component, m.is_frame, m.is_cache, m.menu_type, m.visible, m.status, ifnull(m.perms,'') as perms, m.icon, m.create_time, m.remark
|
||||
from sys_menu m`,
|
||||
|
||||
selectSqlByUser: `select distinct
|
||||
m.menu_id, m.menu_name, m.parent_id, m.menu_sort, m.path, m.component, m.is_frame, m.is_cache, m.menu_type, m.visible, m.status, ifnull(m.perms,'') as perms, m.icon, m.create_time, m.remark
|
||||
from sys_menu m
|
||||
left join sys_role_menu rm on m.menu_id = rm.menu_id
|
||||
left join sys_user_role ur on rm.role_id = ur.role_id
|
||||
left join sys_role ro on ur.role_id = ro.role_id`,
|
||||
|
||||
resultMap: map[string]string{
|
||||
"menu_id": "MenuID",
|
||||
"menu_name": "MenuName",
|
||||
"parent_name": "ParentName",
|
||||
"parent_id": "ParentID",
|
||||
"path": "Path",
|
||||
"menu_sort": "MenuSort",
|
||||
"component": "Component",
|
||||
"is_frame": "IsFrame",
|
||||
"is_cache": "IsCache",
|
||||
"menu_type": "MenuType",
|
||||
"visible": "Visible",
|
||||
"status": "Status",
|
||||
"perms": "Perms",
|
||||
"icon": "Icon",
|
||||
"create_by": "CreateBy",
|
||||
"create_time": "CreateTime",
|
||||
"update_by": "UpdateBy",
|
||||
"update_time": "UpdateTime",
|
||||
"remark": "Remark",
|
||||
},
|
||||
}
|
||||
|
||||
// RepoSysMenu 菜单表 数据层处理
|
||||
type RepoSysMenu struct {
|
||||
// 查询视图对象SQL
|
||||
selectSql string
|
||||
// 查询视图用户对象SQL
|
||||
selectSqlByUser string
|
||||
// 结果字段与实体映射
|
||||
resultMap map[string]string
|
||||
}
|
||||
|
||||
// convertResultRows 将结果记录转实体结果组
|
||||
func (r *RepoSysMenu) convertResultRows(rows []map[string]any) []model.SysMenu {
|
||||
arr := make([]model.SysMenu, 0)
|
||||
for _, row := range rows {
|
||||
sysMenu := model.SysMenu{}
|
||||
for key, value := range row {
|
||||
if keyMapper, ok := r.resultMap[key]; ok {
|
||||
datasource.SetFieldValue(&sysMenu, keyMapper, value)
|
||||
}
|
||||
}
|
||||
arr = append(arr, sysMenu)
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
// SelectMenuList 查询系统菜单列表
|
||||
func (r *RepoSysMenu) SelectMenuList(sysMenu model.SysMenu, userId string) []model.SysMenu {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysMenu.MenuName != "" {
|
||||
conditions = append(conditions, "m.menu_name like concat('%', concat(?, '%'))")
|
||||
params = append(params, sysMenu.MenuName)
|
||||
}
|
||||
if sysMenu.Visible != "" {
|
||||
conditions = append(conditions, "m.visible = ?")
|
||||
params = append(params, sysMenu.Visible)
|
||||
}
|
||||
if sysMenu.Status != "" {
|
||||
conditions = append(conditions, "m.status = ?")
|
||||
params = append(params, sysMenu.Status)
|
||||
}
|
||||
|
||||
fromSql := r.selectSql
|
||||
|
||||
// 个人菜单
|
||||
if userId != "*" {
|
||||
fromSql = r.selectSqlByUser
|
||||
conditions = append(conditions, "ur.user_id = ?")
|
||||
params = append(params, userId)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
orderSql := " order by m.parent_id, m.menu_sort"
|
||||
querySql := fromSql + whereSql + orderSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysMenu{}
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// SelectMenuPermsByUserId 根据用户ID查询权限
|
||||
func (r *RepoSysMenu) SelectMenuPermsByUserId(userId string) []string {
|
||||
querySql := `select distinct m.perms as 'str' from sys_menu m
|
||||
left join sys_role_menu rm on m.menu_id = rm.menu_id
|
||||
left join sys_user_role ur on rm.role_id = ur.role_id
|
||||
left join sys_role r on r.role_id = ur.role_id
|
||||
where m.status = '1' and m.perms != '' and r.status = '1' and ur.user_id = ? `
|
||||
|
||||
// 查询结果
|
||||
results, err := datasource.RawDB("", querySql, []any{userId})
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []string{}
|
||||
}
|
||||
|
||||
// 读取结果
|
||||
rows := make([]string, 0)
|
||||
for _, m := range results {
|
||||
rows = append(rows, fmt.Sprintf("%v", m["str"]))
|
||||
}
|
||||
return rows
|
||||
}
|
||||
|
||||
// SelectMenuTreeByUserId 根据用户ID查询菜单
|
||||
func (r *RepoSysMenu) SelectMenuTreeByUserId(userId string) []model.SysMenu {
|
||||
var params []any
|
||||
var querySql string
|
||||
|
||||
if userId == "*" {
|
||||
// 管理员全部菜单
|
||||
querySql = r.selectSql + ` where
|
||||
m.menu_type in (?,?) and m.status = '1'
|
||||
order by m.parent_id, m.menu_sort`
|
||||
params = append(params, consts.TYPE_DIR)
|
||||
params = append(params, consts.TYPE_MENU)
|
||||
} else {
|
||||
// 用户ID权限
|
||||
querySql = r.selectSqlByUser + ` where
|
||||
m.menu_type in (?, ?) and m.status = '1'
|
||||
and ur.user_id = ? and ro.status = '1'
|
||||
order by m.parent_id, m.menu_sort`
|
||||
params = append(params, consts.TYPE_DIR)
|
||||
params = append(params, consts.TYPE_MENU)
|
||||
params = append(params, userId)
|
||||
}
|
||||
|
||||
// 查询结果
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysMenu{}
|
||||
}
|
||||
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// SelectMenuListByRoleId 根据角色ID查询菜单树信息
|
||||
func (r *RepoSysMenu) SelectMenuListByRoleId(roleId string, menuCheckStrictly bool) []string {
|
||||
querySql := `select m.menu_id as 'str' from sys_menu m
|
||||
left join sys_role_menu rm on m.menu_id = rm.menu_id
|
||||
where rm.role_id = ? `
|
||||
var params []any
|
||||
params = append(params, roleId)
|
||||
// 展开
|
||||
if menuCheckStrictly {
|
||||
querySql += ` and m.menu_id not in
|
||||
(select m.parent_id from sys_menu m
|
||||
inner join sys_role_menu rm on m.menu_id = rm.menu_id
|
||||
and rm.role_id = ?) `
|
||||
params = append(params, roleId)
|
||||
}
|
||||
|
||||
// 查询结果
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []string{}
|
||||
}
|
||||
|
||||
if len(results) > 0 {
|
||||
ids := make([]string, 0)
|
||||
for _, v := range results {
|
||||
ids = append(ids, fmt.Sprintf("%v", v["str"]))
|
||||
}
|
||||
return ids
|
||||
}
|
||||
return []string{}
|
||||
}
|
||||
|
||||
// SelectMenuByIds 根据菜单ID查询信息
|
||||
func (r *RepoSysMenu) SelectMenuByIds(menuIds []string) []model.SysMenu {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(menuIds))
|
||||
querySql := r.selectSql + " where m.menu_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(menuIds)
|
||||
results, err := datasource.RawDB("", querySql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysMenu{}
|
||||
}
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// HasChildByMenuIdAndStatus 存在菜单子节点数量与状态
|
||||
func (r *RepoSysMenu) HasChildByMenuIdAndStatus(menuId, status string) int64 {
|
||||
querySql := "select count(1) as 'total' from sys_menu where parent_id = ?"
|
||||
params := []any{menuId}
|
||||
|
||||
// 菜单状态
|
||||
if status != "" {
|
||||
querySql += " and status = ?"
|
||||
params = append(params, status)
|
||||
}
|
||||
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return 0
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return parse.Number(results[0]["total"])
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// InsertMenu 新增菜单信息
|
||||
func (r *RepoSysMenu) InsertMenu(sysMenu model.SysMenu) string {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysMenu.MenuID != "" {
|
||||
params["menu_id"] = sysMenu.MenuID
|
||||
}
|
||||
if sysMenu.ParentID != "" {
|
||||
params["parent_id"] = sysMenu.ParentID
|
||||
}
|
||||
if sysMenu.MenuName != "" {
|
||||
params["menu_name"] = sysMenu.MenuName
|
||||
}
|
||||
if sysMenu.MenuSort > 0 {
|
||||
params["menu_sort"] = sysMenu.MenuSort
|
||||
}
|
||||
if sysMenu.Path != "" {
|
||||
params["path"] = sysMenu.Path
|
||||
}
|
||||
if sysMenu.Component != "" {
|
||||
params["component"] = sysMenu.Component
|
||||
}
|
||||
if sysMenu.IsFrame != "" {
|
||||
params["is_frame"] = sysMenu.IsFrame
|
||||
}
|
||||
if sysMenu.IsCache != "" {
|
||||
params["is_cache"] = sysMenu.IsCache
|
||||
}
|
||||
if sysMenu.MenuType != "" {
|
||||
params["menu_type"] = sysMenu.MenuType
|
||||
}
|
||||
if sysMenu.Visible != "" {
|
||||
params["visible"] = sysMenu.Visible
|
||||
}
|
||||
if sysMenu.Status != "" {
|
||||
params["status"] = sysMenu.Status
|
||||
}
|
||||
if sysMenu.Perms != "" {
|
||||
params["perms"] = sysMenu.Perms
|
||||
}
|
||||
if sysMenu.Icon != "" {
|
||||
params["icon"] = sysMenu.Icon
|
||||
} else {
|
||||
params["icon"] = "#"
|
||||
}
|
||||
if sysMenu.Remark != "" {
|
||||
params["remark"] = sysMenu.Remark
|
||||
}
|
||||
if sysMenu.CreateBy != "" {
|
||||
params["create_by"] = sysMenu.CreateBy
|
||||
params["create_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 根据菜单类型重置参数
|
||||
if sysMenu.MenuType == consts.TYPE_BUTTON {
|
||||
params["component"] = ""
|
||||
params["path"] = ""
|
||||
params["icon"] = "#"
|
||||
params["is_cache"] = "1"
|
||||
params["is_frame"] = "1"
|
||||
params["visible"] = "1"
|
||||
params["status"] = "1"
|
||||
}
|
||||
if sysMenu.MenuType == consts.TYPE_DIR {
|
||||
params["component"] = ""
|
||||
params["perms"] = ""
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, placeholder, values := datasource.KeyPlaceholderValueByInsert(params)
|
||||
sql := "insert into sys_menu (" + strings.Join(keys, ",") + ")values(" + placeholder + ")"
|
||||
|
||||
// 执行插入
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
|
||||
insertId, err := results.LastInsertId()
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprint(insertId)
|
||||
}
|
||||
|
||||
// UpdateMenu 修改菜单信息
|
||||
func (r *RepoSysMenu) UpdateMenu(sysMenu model.SysMenu) int64 {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysMenu.MenuID != "" {
|
||||
params["menu_id"] = sysMenu.MenuID
|
||||
}
|
||||
if sysMenu.ParentID != "" {
|
||||
params["parent_id"] = sysMenu.ParentID
|
||||
}
|
||||
if sysMenu.MenuName != "" {
|
||||
params["menu_name"] = sysMenu.MenuName
|
||||
}
|
||||
if sysMenu.MenuSort > 0 {
|
||||
params["menu_sort"] = sysMenu.MenuSort
|
||||
}
|
||||
if sysMenu.Path != "" {
|
||||
params["path"] = sysMenu.Path
|
||||
}
|
||||
if sysMenu.Component != "" {
|
||||
params["component"] = sysMenu.Component
|
||||
}
|
||||
if sysMenu.IsFrame != "" {
|
||||
params["is_frame"] = sysMenu.IsFrame
|
||||
}
|
||||
if sysMenu.IsCache != "" {
|
||||
params["is_cache"] = sysMenu.IsCache
|
||||
}
|
||||
if sysMenu.MenuType != "" {
|
||||
params["menu_type"] = sysMenu.MenuType
|
||||
}
|
||||
if sysMenu.Visible != "" {
|
||||
params["visible"] = sysMenu.Visible
|
||||
}
|
||||
if sysMenu.Status != "" {
|
||||
params["status"] = sysMenu.Status
|
||||
}
|
||||
if sysMenu.Perms != "" {
|
||||
params["perms"] = sysMenu.Perms
|
||||
}
|
||||
if sysMenu.Icon != "" {
|
||||
params["icon"] = sysMenu.Icon
|
||||
} else {
|
||||
params["icon"] = "#"
|
||||
}
|
||||
if sysMenu.Remark != "" {
|
||||
params["remark"] = sysMenu.Remark
|
||||
}
|
||||
if sysMenu.UpdateBy != "" {
|
||||
params["update_by"] = sysMenu.UpdateBy
|
||||
params["update_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 根据菜单类型重置参数
|
||||
if sysMenu.MenuType == consts.TYPE_BUTTON {
|
||||
params["component"] = ""
|
||||
params["path"] = ""
|
||||
params["icon"] = "#"
|
||||
params["is_cache"] = "1"
|
||||
params["is_frame"] = "1"
|
||||
params["visible"] = "1"
|
||||
params["status"] = "1"
|
||||
}
|
||||
if sysMenu.MenuType == consts.TYPE_DIR {
|
||||
params["component"] = ""
|
||||
params["perms"] = ""
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, values := datasource.KeyValueByUpdate(params)
|
||||
sql := "update sys_menu set " + strings.Join(keys, ",") + " where menu_id = ?"
|
||||
|
||||
// 执行更新
|
||||
values = append(values, sysMenu.MenuID)
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("update row : %v", err.Error())
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("update err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// DeleteMenuById 删除菜单管理信息
|
||||
func (r *RepoSysMenu) DeleteMenuById(menuId string) int64 {
|
||||
sql := "delete from sys_menu where menu_id = ?"
|
||||
results, err := datasource.ExecDB("", sql, []any{menuId})
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// CheckUniqueMenu 校验菜单是否唯一
|
||||
func (r *RepoSysMenu) CheckUniqueMenu(sysMenu model.SysMenu) string {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysMenu.MenuName != "" {
|
||||
conditions = append(conditions, "menu_name = ?")
|
||||
params = append(params, sysMenu.MenuName)
|
||||
}
|
||||
if sysMenu.ParentID != "" {
|
||||
conditions = append(conditions, "parent_id = ?")
|
||||
params = append(params, sysMenu.ParentID)
|
||||
}
|
||||
if sysMenu.Path != "" {
|
||||
conditions = append(conditions, "path = ?")
|
||||
params = append(params, sysMenu.Path)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
}
|
||||
if whereSql == "" {
|
||||
return ""
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := "select menu_id as 'str' from sys_menu " + whereSql + " limit 1"
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err %v", err)
|
||||
return ""
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return fmt.Sprint(results[0]["str"])
|
||||
}
|
||||
return ""
|
||||
}
|
||||
@@ -1,408 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"strings"
|
||||
|
||||
"be.ems/features/sys_menu/consts"
|
||||
"be.ems/features/sys_menu/model"
|
||||
sysRoleService "be.ems/features/sys_role/service"
|
||||
sysrolemenu "be.ems/features/sys_role_menu"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/core/utils/regular"
|
||||
"be.ems/lib/core/vo"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceSysMenu 结构体
|
||||
var NewServiceSysMenu = &ServiceSysMenu{
|
||||
sysMenuRepository: NewRepoSysMenu,
|
||||
sysRoleMenuRepository: sysrolemenu.NewRepoSysRoleMenu,
|
||||
sysRoleRepository: sysRoleService.NewRepoSysRole,
|
||||
}
|
||||
|
||||
// ServiceSysMenu 菜单 服务层处理
|
||||
type ServiceSysMenu struct {
|
||||
// 菜单服务
|
||||
sysMenuRepository *RepoSysMenu
|
||||
// 角色与菜单关联服务
|
||||
sysRoleMenuRepository *sysrolemenu.RepoSysRoleMenu
|
||||
// 角色服务
|
||||
sysRoleRepository *sysRoleService.RepoSysRole
|
||||
}
|
||||
|
||||
// SelectMenuList 查询系统菜单列表
|
||||
func (r *ServiceSysMenu) SelectMenuList(sysMenu model.SysMenu, userId string) []model.SysMenu {
|
||||
return r.sysMenuRepository.SelectMenuList(sysMenu, userId)
|
||||
}
|
||||
|
||||
// SelectMenuPermsByUserId 根据用户ID查询权限
|
||||
func (r *ServiceSysMenu) SelectMenuPermsByUserId(userId string) []string {
|
||||
return r.sysMenuRepository.SelectMenuPermsByUserId(userId)
|
||||
}
|
||||
|
||||
// SelectMenuTreeByUserId 根据用户ID查询菜单
|
||||
func (r *ServiceSysMenu) SelectMenuTreeByUserId(userId string) []model.SysMenu {
|
||||
sysMenus := r.sysMenuRepository.SelectMenuTreeByUserId(userId)
|
||||
return r.parseDataToTree(sysMenus)
|
||||
}
|
||||
|
||||
// SelectMenuTreeSelectByUserId 根据用户ID查询菜单树结构信息
|
||||
func (r *ServiceSysMenu) SelectMenuTreeSelectByUserId(sysMenu model.SysMenu, userId string) []vo.TreeSelect {
|
||||
sysMenus := r.sysMenuRepository.SelectMenuList(sysMenu, userId)
|
||||
|
||||
// 过滤旧前端菜单
|
||||
sysMenusF := []model.SysMenu{}
|
||||
for _, v := range sysMenus {
|
||||
if v.Perms != "page" {
|
||||
continue
|
||||
}
|
||||
sysMenusF = append(sysMenusF, v)
|
||||
}
|
||||
|
||||
menus := r.parseDataToTree(sysMenusF)
|
||||
tree := make([]vo.TreeSelect, 0)
|
||||
for _, menu := range menus {
|
||||
tree = append(tree, sysMenuTreeSelect(menu))
|
||||
}
|
||||
return tree
|
||||
}
|
||||
|
||||
// sysMenuTreeSelect 使用给定的 SysMenu 对象解析为 TreeSelect 对象
|
||||
func sysMenuTreeSelect(sysMenu model.SysMenu) vo.TreeSelect {
|
||||
t := vo.TreeSelect{}
|
||||
t.ID = sysMenu.MenuID
|
||||
t.Label = sysMenu.MenuName
|
||||
t.Title = sysMenu.MenuName
|
||||
|
||||
if len(sysMenu.Children) > 0 {
|
||||
for _, menu := range sysMenu.Children {
|
||||
child := sysMenuTreeSelect(menu)
|
||||
t.Children = append(t.Children, child)
|
||||
}
|
||||
} else {
|
||||
t.Children = []vo.TreeSelect{}
|
||||
}
|
||||
|
||||
return t
|
||||
}
|
||||
|
||||
// SelectMenuListByRoleId 根据角色ID查询菜单树信息 TODO
|
||||
func (r *ServiceSysMenu) SelectMenuListByRoleId(roleId string) []string {
|
||||
roles := r.sysRoleRepository.SelectRoleByIds([]string{roleId})
|
||||
if len(roles) > 0 {
|
||||
role := roles[0]
|
||||
if role.RoleID == roleId {
|
||||
return r.sysMenuRepository.SelectMenuListByRoleId(
|
||||
role.RoleID,
|
||||
role.MenuCheckStrictly == "1",
|
||||
)
|
||||
}
|
||||
}
|
||||
return []string{}
|
||||
}
|
||||
|
||||
// SelectMenuById 根据菜单ID查询信息
|
||||
func (r *ServiceSysMenu) SelectMenuById(menuId string) model.SysMenu {
|
||||
if menuId == "" {
|
||||
return model.SysMenu{}
|
||||
}
|
||||
menus := r.sysMenuRepository.SelectMenuByIds([]string{menuId})
|
||||
if len(menus) > 0 {
|
||||
return menus[0]
|
||||
}
|
||||
return model.SysMenu{}
|
||||
}
|
||||
|
||||
// HasChildByMenuIdAndStatus 存在菜单子节点数量与状态
|
||||
func (r *ServiceSysMenu) HasChildByMenuIdAndStatus(menuId, status string) int64 {
|
||||
return r.sysMenuRepository.HasChildByMenuIdAndStatus(menuId, status)
|
||||
}
|
||||
|
||||
// CheckMenuExistRole 查询菜单是否存在角色
|
||||
func (r *ServiceSysMenu) CheckMenuExistRole(menuId string) int64 {
|
||||
return r.sysRoleMenuRepository.CheckMenuExistRole(menuId)
|
||||
}
|
||||
|
||||
// InsertMenu 新增菜单信息
|
||||
func (r *ServiceSysMenu) InsertMenu(sysMenu model.SysMenu) string {
|
||||
return r.sysMenuRepository.InsertMenu(sysMenu)
|
||||
}
|
||||
|
||||
// UpdateMenu 修改菜单信息
|
||||
func (r *ServiceSysMenu) UpdateMenu(sysMenu model.SysMenu) int64 {
|
||||
return r.sysMenuRepository.UpdateMenu(sysMenu)
|
||||
}
|
||||
|
||||
// DeleteMenuById 删除菜单管理信息
|
||||
func (r *ServiceSysMenu) DeleteMenuById(menuId string) int64 {
|
||||
// 删除菜单与角色关联
|
||||
r.sysRoleMenuRepository.DeleteMenuRole([]string{menuId})
|
||||
return r.sysMenuRepository.DeleteMenuById(menuId)
|
||||
}
|
||||
|
||||
// CheckUniqueMenuName 校验菜单名称是否唯一
|
||||
func (r *ServiceSysMenu) CheckUniqueMenuName(menuName, parentId, menuId string) bool {
|
||||
uniqueId := r.sysMenuRepository.CheckUniqueMenu(model.SysMenu{
|
||||
MenuName: menuName,
|
||||
ParentID: parentId,
|
||||
})
|
||||
if uniqueId == menuId {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// CheckUniqueMenuPath 校验路由地址是否唯一(针对目录和菜单)
|
||||
func (r *ServiceSysMenu) CheckUniqueMenuPath(path, menuId string) bool {
|
||||
uniqueId := r.sysMenuRepository.CheckUniqueMenu(model.SysMenu{
|
||||
Path: path,
|
||||
})
|
||||
if uniqueId == menuId {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// BuildRouteMenus 构建前端路由所需要的菜单
|
||||
func (r *ServiceSysMenu) BuildRouteMenus(sysMenus []model.SysMenu, prefix string) []vo.Router {
|
||||
routers := []vo.Router{}
|
||||
for _, item := range sysMenus {
|
||||
router := vo.Router{}
|
||||
router.Name = r.getRouteName(item)
|
||||
router.Path = r.getRouterPath(item)
|
||||
router.Component = r.getComponent(item)
|
||||
router.Meta = r.getRouteMeta(item)
|
||||
|
||||
// 子项菜单 目录类型 非路径链接
|
||||
cMenus := item.Children
|
||||
if len(cMenus) > 0 && item.MenuType == consts.TYPE_DIR && !regular.ValidHttp(item.Path) {
|
||||
// 获取重定向地址
|
||||
redirectPrefix, redirectPath := r.getRouteRedirect(
|
||||
cMenus,
|
||||
router.Path,
|
||||
prefix,
|
||||
)
|
||||
router.Redirect = redirectPath
|
||||
// 子菜单进入递归
|
||||
router.Children = r.BuildRouteMenus(cMenus, redirectPrefix)
|
||||
} else if item.ParentID == "0" && item.IsFrame == "1" && item.MenuType == consts.TYPE_MENU {
|
||||
// 父菜单 内部跳转 菜单类型
|
||||
menuPath := "/" + item.MenuID
|
||||
childPath := menuPath + r.getRouterPath(item)
|
||||
children := vo.Router{
|
||||
Name: r.getRouteName(item),
|
||||
Path: childPath,
|
||||
Component: item.Component,
|
||||
Meta: r.getRouteMeta(item),
|
||||
}
|
||||
router.Meta.HideChildInMenu = true
|
||||
router.Children = append(router.Children, children)
|
||||
router.Name = item.MenuID
|
||||
router.Path = menuPath
|
||||
router.Redirect = childPath
|
||||
router.Component = consts.COMPONENT_LAYOUT_BASIC
|
||||
} else if item.ParentID == "0" && item.IsFrame == "1" && regular.ValidHttp(item.Path) {
|
||||
// 父菜单 内部跳转 路径链接
|
||||
menuPath := "/" + item.MenuID
|
||||
childPath := menuPath + r.getRouterPath(item)
|
||||
children := vo.Router{
|
||||
Name: r.getRouteName(item),
|
||||
Path: childPath,
|
||||
Component: consts.COMPONENT_LAYOUT_LINK,
|
||||
Meta: r.getRouteMeta(item),
|
||||
}
|
||||
router.Meta.HideChildInMenu = true
|
||||
router.Children = append(router.Children, children)
|
||||
router.Name = item.MenuID
|
||||
router.Path = menuPath
|
||||
router.Redirect = childPath
|
||||
router.Component = consts.COMPONENT_LAYOUT_BASIC
|
||||
}
|
||||
|
||||
routers = append(routers, router)
|
||||
}
|
||||
return routers
|
||||
}
|
||||
|
||||
// getRouteName 获取路由名称 路径英文首字母大写
|
||||
func (r *ServiceSysMenu) getRouteName(sysMenu model.SysMenu) string {
|
||||
routerName := parse.FirstUpper(sysMenu.Path)
|
||||
// 路径链接
|
||||
if regular.ValidHttp(sysMenu.Path) {
|
||||
return routerName[:5] + "Link" + sysMenu.MenuID
|
||||
}
|
||||
return routerName
|
||||
}
|
||||
|
||||
// getRouterPath 获取路由地址
|
||||
func (r *ServiceSysMenu) getRouterPath(sysMenu model.SysMenu) string {
|
||||
routerPath := sysMenu.Path
|
||||
|
||||
// 显式路径
|
||||
if routerPath == "" || strings.HasPrefix(routerPath, "/") {
|
||||
return routerPath
|
||||
}
|
||||
|
||||
// 路径链接 内部跳转
|
||||
if regular.ValidHttp(routerPath) && sysMenu.IsFrame == "1" {
|
||||
routerPath = regular.Replace(routerPath, `/^http(s)?:\/\/+/`, "")
|
||||
routerPath = base64.StdEncoding.EncodeToString([]byte(routerPath))
|
||||
}
|
||||
|
||||
// 父菜单 内部跳转
|
||||
if sysMenu.ParentID == "0" && sysMenu.IsFrame == "1" {
|
||||
routerPath = "/" + routerPath
|
||||
}
|
||||
|
||||
return routerPath
|
||||
}
|
||||
|
||||
// getComponent 获取组件信息
|
||||
func (r *ServiceSysMenu) getComponent(sysMenu model.SysMenu) string {
|
||||
// 内部跳转 路径链接
|
||||
if sysMenu.IsFrame == "1" && regular.ValidHttp(sysMenu.Path) {
|
||||
return consts.COMPONENT_LAYOUT_LINK
|
||||
}
|
||||
|
||||
// 非父菜单 目录类型
|
||||
if sysMenu.ParentID != "0" && sysMenu.MenuType == consts.TYPE_DIR {
|
||||
return consts.COMPONENT_LAYOUT_BLANK
|
||||
}
|
||||
|
||||
// 组件路径 内部跳转 菜单类型
|
||||
if sysMenu.Component != "" && sysMenu.IsFrame == "1" && sysMenu.MenuType == consts.TYPE_MENU {
|
||||
// 父菜单套外层布局
|
||||
if sysMenu.ParentID == "0" {
|
||||
return consts.COMPONENT_LAYOUT_BASIC
|
||||
}
|
||||
return sysMenu.Component
|
||||
}
|
||||
|
||||
return consts.COMPONENT_LAYOUT_BASIC
|
||||
}
|
||||
|
||||
// getRouteMeta 获取路由元信息
|
||||
func (r *ServiceSysMenu) getRouteMeta(sysMenu model.SysMenu) vo.RouterMeta {
|
||||
meta := vo.RouterMeta{}
|
||||
if sysMenu.Icon == "#" {
|
||||
meta.Icon = ""
|
||||
} else {
|
||||
meta.Icon = sysMenu.Icon
|
||||
}
|
||||
meta.Title = sysMenu.MenuName
|
||||
meta.HideChildInMenu = false
|
||||
meta.HideInMenu = sysMenu.Visible == "0"
|
||||
meta.Cache = sysMenu.IsCache == "1"
|
||||
meta.Target = ""
|
||||
|
||||
// 路径链接 非内部跳转
|
||||
if regular.ValidHttp(sysMenu.Path) && sysMenu.IsFrame == "0" {
|
||||
meta.Target = "_blank"
|
||||
}
|
||||
|
||||
return meta
|
||||
}
|
||||
|
||||
// getRouteRedirect 获取路由重定向地址(针对目录)
|
||||
//
|
||||
// cMenus 子菜单数组
|
||||
// routerPath 当前菜单路径
|
||||
// prefix 菜单重定向路径前缀
|
||||
func (r *ServiceSysMenu) getRouteRedirect(cMenus []model.SysMenu, routerPath string, prefix string) (string, string) {
|
||||
redirectPath := ""
|
||||
|
||||
// 重定向为首个显示并启用的子菜单
|
||||
var firstChild *model.SysMenu
|
||||
for _, item := range cMenus {
|
||||
if item.IsFrame == "1" && item.Visible == "1" {
|
||||
firstChild = &item
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 检查内嵌隐藏菜单是否可做重定向
|
||||
if firstChild == nil {
|
||||
for _, item := range cMenus {
|
||||
if item.IsFrame == "1" && item.Visible == "1" && strings.Contains(item.Path, consts.PATH_INLINE) {
|
||||
firstChild = &item
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if firstChild != nil {
|
||||
firstChildPath := r.getRouterPath(*firstChild)
|
||||
if strings.HasPrefix(firstChildPath, "/") {
|
||||
redirectPath = firstChildPath
|
||||
} else {
|
||||
// 拼接追加路径
|
||||
if !strings.HasPrefix(routerPath, "/") {
|
||||
prefix += "/"
|
||||
}
|
||||
prefix = prefix + routerPath
|
||||
redirectPath = prefix + "/" + firstChildPath
|
||||
}
|
||||
}
|
||||
|
||||
return prefix, redirectPath
|
||||
}
|
||||
|
||||
// parseDataToTree 将数据解析为树结构,构建前端所需要下拉树结构
|
||||
func (r *ServiceSysMenu) parseDataToTree(sysMenus []model.SysMenu) []model.SysMenu {
|
||||
// 节点分组
|
||||
nodesMap := make(map[string][]model.SysMenu)
|
||||
// 节点id
|
||||
treeIds := []string{}
|
||||
// 树节点
|
||||
tree := []model.SysMenu{}
|
||||
|
||||
for _, item := range sysMenus {
|
||||
parentID := item.ParentID
|
||||
// 分组
|
||||
mapItem, ok := nodesMap[parentID]
|
||||
if !ok {
|
||||
mapItem = []model.SysMenu{}
|
||||
}
|
||||
mapItem = append(mapItem, item)
|
||||
nodesMap[parentID] = mapItem
|
||||
// 记录节点ID
|
||||
treeIds = append(treeIds, item.MenuID)
|
||||
}
|
||||
|
||||
for key, value := range nodesMap {
|
||||
// 选择不是节点ID的作为树节点
|
||||
found := false
|
||||
for _, id := range treeIds {
|
||||
if id == key {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
tree = append(tree, value...)
|
||||
}
|
||||
}
|
||||
|
||||
for i, node := range tree {
|
||||
iN := r.parseDataToTreeComponet(node, &nodesMap)
|
||||
tree[i] = iN
|
||||
}
|
||||
|
||||
return tree
|
||||
}
|
||||
|
||||
// parseDataToTreeComponet 递归函数处理子节点
|
||||
func (r *ServiceSysMenu) parseDataToTreeComponet(node model.SysMenu, nodesMap *map[string][]model.SysMenu) model.SysMenu {
|
||||
id := node.MenuID
|
||||
children, ok := (*nodesMap)[id]
|
||||
if ok {
|
||||
node.Children = children
|
||||
}
|
||||
if len(node.Children) > 0 {
|
||||
for i, child := range node.Children {
|
||||
icN := r.parseDataToTreeComponet(child, nodesMap)
|
||||
node.Children[i] = icN
|
||||
}
|
||||
}
|
||||
return node
|
||||
}
|
||||
@@ -1,368 +0,0 @@
|
||||
package sysrole
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"be.ems/features/sys_role/model"
|
||||
"be.ems/features/sys_role/service"
|
||||
userService "be.ems/features/sys_user/service"
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/core/vo/result"
|
||||
"be.ems/lib/midware"
|
||||
"be.ems/lib/services"
|
||||
"be.ems/restagent/config"
|
||||
)
|
||||
|
||||
// 角色接口添加到路由
|
||||
func Routers() []services.RouterItem {
|
||||
// 实例化控制层 SysRoleApi 结构体
|
||||
var apis = &SysRoleApi{
|
||||
sysRoleService: service.NewServiceSysRole,
|
||||
sysUserService: userService.NewServiceSysUser,
|
||||
}
|
||||
|
||||
rs := [...]services.RouterItem{
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/roles",
|
||||
Handler: apis.List,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/role/{roleId}",
|
||||
Handler: apis.Info,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "POST",
|
||||
Pattern: "/role",
|
||||
Handler: apis.Add,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/role",
|
||||
Handler: apis.Edit,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "DELETE",
|
||||
Pattern: "/role/{roleIds}",
|
||||
Handler: apis.Remove,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/role/changeStatus",
|
||||
Handler: apis.Status,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "GET",
|
||||
Pattern: "/role/authUser/allocatedList",
|
||||
Handler: apis.AuthUserAllocatedList,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/role/authUser/checked",
|
||||
Handler: apis.AuthUserChecked,
|
||||
Middleware: midware.Authorize(nil),
|
||||
},
|
||||
// 添加更多的 Router 对象...
|
||||
}
|
||||
|
||||
// 生成两组前缀路由
|
||||
rsPrefix := []services.RouterItem{}
|
||||
for _, v := range rs {
|
||||
path := "/roleManage/{apiVersion}" + v.Pattern
|
||||
// 固定前缀
|
||||
v.Pattern = config.DefaultUriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
// 可配置
|
||||
v.Pattern = config.UriPrefix + path
|
||||
rsPrefix = append(rsPrefix, v)
|
||||
}
|
||||
return rsPrefix
|
||||
}
|
||||
|
||||
// // 实例化控制层 SysRoleApi 结构体
|
||||
// var NewSysRole = &SysRoleApi{
|
||||
// sysRoleService: sysrole.NewServiceSysRole,
|
||||
// sysUserService: sysuser.NewServiceSysUser,
|
||||
// }
|
||||
|
||||
// 角色信息
|
||||
//
|
||||
// PATH /roleManage
|
||||
type SysRoleApi struct {
|
||||
// 角色服务
|
||||
sysRoleService *service.ServiceSysRole
|
||||
// 用户服务
|
||||
sysUserService *userService.ServiceSysUser
|
||||
}
|
||||
|
||||
// 角色列表
|
||||
//
|
||||
// GET /list
|
||||
func (s *SysRoleApi) List(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
data := s.sysRoleService.SelectRolePage(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
// 角色信息详情
|
||||
//
|
||||
// GET /:roleId
|
||||
func (s *SysRoleApi) Info(w http.ResponseWriter, r *http.Request) {
|
||||
roleId := ctx.Param(r, "roleId")
|
||||
if roleId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
data := s.sysRoleService.SelectRoleById(roleId)
|
||||
if data.RoleID == roleId {
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 角色信息新增
|
||||
//
|
||||
// POST /
|
||||
func (s *SysRoleApi) Add(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysRole
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.RoleID != "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 判断角色名称是否唯一
|
||||
uniqueRoleName := s.sysRoleService.CheckUniqueRoleName(body.RoleName, "")
|
||||
if !uniqueRoleName {
|
||||
msg := fmt.Sprintf("[%s] Role name already exists", body.RoleName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 判断角色键值是否唯一
|
||||
uniqueRoleKey := s.sysRoleService.CheckUniqueRoleKey(body.RoleKey, "")
|
||||
if !uniqueRoleKey {
|
||||
msg := fmt.Sprintf("[%s] The role key value already exists", body.RoleName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
body.CreateBy = ctx.LoginUserToUserName(r)
|
||||
insertId := s.sysRoleService.InsertRole(body)
|
||||
if insertId != "" {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 角色信息修改
|
||||
//
|
||||
// PUT /
|
||||
func (s *SysRoleApi) Edit(w http.ResponseWriter, r *http.Request) {
|
||||
var body model.SysRole
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.RoleID == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否管理员角色
|
||||
if body.RoleID == "1" {
|
||||
ctx.JSON(w, 200, result.ErrMsg("Operation of administrator role is not allowed"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否存在
|
||||
role := s.sysRoleService.SelectRoleById(body.RoleID)
|
||||
if role.RoleID != body.RoleID {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access role data!"))
|
||||
return
|
||||
}
|
||||
|
||||
// 判断角色名称是否唯一
|
||||
uniqueRoleName := s.sysRoleService.CheckUniqueRoleName(body.RoleName, body.RoleID)
|
||||
if !uniqueRoleName {
|
||||
msg := fmt.Sprintf("[%s] Role name already exists", body.RoleName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
// 判断角色键值是否唯一
|
||||
uniqueRoleKey := s.sysRoleService.CheckUniqueRoleKey(body.RoleKey, body.RoleID)
|
||||
if !uniqueRoleKey {
|
||||
msg := fmt.Sprintf("[%s] The role key value already exists", body.RoleName)
|
||||
ctx.JSON(w, 200, result.ErrMsg(msg))
|
||||
return
|
||||
}
|
||||
|
||||
body.UpdateBy = ctx.LoginUserToUserName(r)
|
||||
rows := s.sysRoleService.UpdateRole(body)
|
||||
if rows > 0 {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 角色信息删除
|
||||
//
|
||||
// DELETE /:roleIds
|
||||
func (s *SysRoleApi) Remove(w http.ResponseWriter, r *http.Request) {
|
||||
roleIds := ctx.Param(r, "roleIds")
|
||||
if roleIds == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
// 处理字符转id数组后去重
|
||||
ids := strings.Split(roleIds, ",")
|
||||
uniqueIDs := parse.RemoveDuplicates(ids)
|
||||
if len(uniqueIDs) <= 0 {
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
return
|
||||
}
|
||||
// 检查是否管理员角色
|
||||
for _, id := range uniqueIDs {
|
||||
if id == "1" {
|
||||
ctx.JSON(w, 200, result.ErrMsg("Operation of administrator role is not allowed"))
|
||||
return
|
||||
}
|
||||
}
|
||||
rows, err := s.sysRoleService.DeleteRoleByIds(uniqueIDs)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
msg := fmt.Sprintf("Successfully deleted: %d", rows)
|
||||
ctx.JSON(w, 200, result.OkMsg(msg))
|
||||
}
|
||||
|
||||
// 角色状态变更
|
||||
//
|
||||
// PUT /changeStatus
|
||||
func (s *SysRoleApi) Status(w http.ResponseWriter, r *http.Request) {
|
||||
var body struct {
|
||||
// 角色ID
|
||||
RoleID string `json:"roleId" binding:"required"`
|
||||
// 状态
|
||||
Status string `json:"status" binding:"required"`
|
||||
}
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否管理员角色
|
||||
if body.RoleID == "1" {
|
||||
ctx.JSON(w, 200, result.ErrMsg("Operation of administrator role is not allowed"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否存在
|
||||
role := s.sysRoleService.SelectRoleById(body.RoleID)
|
||||
if role.RoleID != body.RoleID {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access role data!"))
|
||||
return
|
||||
}
|
||||
|
||||
// 与旧值相等不变更
|
||||
if role.Status == body.Status {
|
||||
ctx.JSON(w, 200, result.ErrMsg("Change status equals old value!"))
|
||||
return
|
||||
}
|
||||
|
||||
// 更新状态不刷新缓存
|
||||
userName := ctx.LoginUserToUserName(r)
|
||||
SysRoleApi := model.SysRole{
|
||||
RoleID: body.RoleID,
|
||||
Status: body.Status,
|
||||
UpdateBy: userName,
|
||||
}
|
||||
rows := s.sysRoleService.UpdateRole(SysRoleApi)
|
||||
if rows > 0 {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
|
||||
// 角色分配用户列表
|
||||
//
|
||||
// GET /authUser/allocatedList
|
||||
func (s *SysRoleApi) AuthUserAllocatedList(w http.ResponseWriter, r *http.Request) {
|
||||
querys := ctx.QueryMap(r)
|
||||
roleId, ok := querys["roleId"]
|
||||
if !ok || roleId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否存在
|
||||
role := s.sysRoleService.SelectRoleById(roleId.(string))
|
||||
if role.RoleID != roleId {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access role data!"))
|
||||
return
|
||||
}
|
||||
|
||||
data := s.sysUserService.SelectAllocatedPage(querys)
|
||||
ctx.JSON(w, 200, result.Ok(data))
|
||||
}
|
||||
|
||||
// 角色分配选择授权
|
||||
//
|
||||
// PUT /authUser/checked
|
||||
func (s *SysRoleApi) AuthUserChecked(w http.ResponseWriter, r *http.Request) {
|
||||
var body struct {
|
||||
// 角色ID
|
||||
RoleID string `json:"roleId" binding:"required"`
|
||||
// 用户ID组
|
||||
UserIDs string `json:"userIds" binding:"required"`
|
||||
// 选择操作 添加true 取消false
|
||||
Checked bool `json:"checked"`
|
||||
}
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "parameter error"))
|
||||
return
|
||||
}
|
||||
|
||||
// 处理字符转id数组后去重
|
||||
ids := strings.Split(body.UserIDs, ",")
|
||||
uniqueIDs := parse.RemoveDuplicates(ids)
|
||||
if len(uniqueIDs) <= 0 {
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否存在
|
||||
role := s.sysRoleService.SelectRoleById(body.RoleID)
|
||||
if role.RoleID != body.RoleID {
|
||||
ctx.JSON(w, 200, result.ErrMsg("No permission to access role data!"))
|
||||
return
|
||||
}
|
||||
|
||||
var rows int64
|
||||
if body.Checked {
|
||||
rows = s.sysRoleService.InsertAuthUsers(body.RoleID, uniqueIDs)
|
||||
} else {
|
||||
rows = s.sysRoleService.DeleteAuthUsers(body.RoleID, uniqueIDs)
|
||||
}
|
||||
if rows > 0 {
|
||||
ctx.JSON(w, 200, result.Ok(nil))
|
||||
return
|
||||
}
|
||||
ctx.JSON(w, 200, result.Err(nil))
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
package model
|
||||
|
||||
// SysRole 角色对象 sys_role
|
||||
type SysRole struct {
|
||||
// 角色ID
|
||||
RoleID string `json:"roleId"`
|
||||
// 角色名称
|
||||
RoleName string `json:"roleName" binding:"required"`
|
||||
// 角色键值
|
||||
RoleKey string `json:"roleKey" binding:"required"`
|
||||
// 显示顺序
|
||||
RoleSort int `json:"roleSort"`
|
||||
// 菜单树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示)
|
||||
MenuCheckStrictly string `json:"menuCheckStrictly"`
|
||||
// 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示)
|
||||
DeptCheckStrictly string `json:"deptCheckStrictly"`
|
||||
// 角色状态(0停用 1正常)
|
||||
Status string `json:"status"`
|
||||
// 删除标志(0代表存在 1代表删除)
|
||||
DelFlag string `json:"delFlag"`
|
||||
// 创建者
|
||||
CreateBy string `json:"createBy"`
|
||||
// 创建时间
|
||||
CreateTime int64 `json:"createTime"`
|
||||
// 更新者
|
||||
UpdateBy string `json:"updateBy"`
|
||||
// 更新时间
|
||||
UpdateTime int64 `json:"updateTime"`
|
||||
// 备注
|
||||
Remark string `json:"remark"`
|
||||
|
||||
// ====== 非数据库字段属性 ======
|
||||
|
||||
// 菜单组
|
||||
MenuIds []string `json:"menuIds,omitempty"`
|
||||
// 部门组(数据权限)
|
||||
DeptIds []string `json:"deptIds,omitempty"`
|
||||
}
|
||||
@@ -1,362 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/features/sys_role/model"
|
||||
"be.ems/lib/core/datasource"
|
||||
"be.ems/lib/core/utils/date"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/log"
|
||||
)
|
||||
|
||||
// 实例化数据层 RepoSysRole 结构体
|
||||
var NewRepoSysRole = &RepoSysRole{
|
||||
selectSql: `select distinct
|
||||
r.role_id, r.role_name, r.role_key, r.role_sort, r.menu_check_strictly,
|
||||
r.dept_check_strictly, r.status, r.del_flag, r.create_time, r.remark
|
||||
from sys_role r
|
||||
left join sys_user_role ur on ur.role_id = r.role_id
|
||||
left join user u on u.id = ur.user_id`,
|
||||
|
||||
resultMap: map[string]string{
|
||||
"role_id": "RoleID",
|
||||
"role_name": "RoleName",
|
||||
"role_key": "RoleKey",
|
||||
"role_sort": "RoleSort",
|
||||
"menu_check_strictly": "MenuCheckStrictly",
|
||||
"dept_check_strictly": "DeptCheckStrictly",
|
||||
"status": "Status",
|
||||
"del_flag": "DelFlag",
|
||||
"create_by": "CreateBy",
|
||||
"create_time": "CreateTime",
|
||||
"update_by": "UpdateBy",
|
||||
"update_time": "UpdateTime",
|
||||
"remark": "Remark",
|
||||
},
|
||||
}
|
||||
|
||||
// RepoSysRole 角色表 数据层处理
|
||||
type RepoSysRole struct {
|
||||
// 查询视图对象SQL
|
||||
selectSql string
|
||||
// 结果字段与实体映射
|
||||
resultMap map[string]string
|
||||
}
|
||||
|
||||
// convertResultRows 将结果记录转实体结果组
|
||||
func (r *RepoSysRole) convertResultRows(rows []map[string]any) []model.SysRole {
|
||||
arr := make([]model.SysRole, 0)
|
||||
for _, row := range rows {
|
||||
sysRole := model.SysRole{}
|
||||
for key, value := range row {
|
||||
if keyMapper, ok := r.resultMap[key]; ok {
|
||||
datasource.SetFieldValue(&sysRole, keyMapper, value)
|
||||
}
|
||||
}
|
||||
arr = append(arr, sysRole)
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
// SelectRolePage 根据条件分页查询角色数据
|
||||
func (r *RepoSysRole) SelectRolePage(query map[string]any) map[string]any {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if v, ok := query["roleId"]; ok && v != "" {
|
||||
conditions = append(conditions, "r.role_id = ?")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["roleName"]; ok && v != "" {
|
||||
conditions = append(conditions, "r.role_name like concat('%', concat(?, '%'))")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["roleKey"]; ok && v != "" {
|
||||
conditions = append(conditions, "r.role_key like concat('%', concat(?, '%'))")
|
||||
params = append(params, v)
|
||||
}
|
||||
if v, ok := query["status"]; ok && v != "" {
|
||||
conditions = append(conditions, "r.status = ?")
|
||||
params = append(params, v)
|
||||
}
|
||||
beginTime, ok := query["beginTime"]
|
||||
if !ok {
|
||||
beginTime, ok = query["params[beginTime]"]
|
||||
}
|
||||
if ok && beginTime != "" {
|
||||
conditions = append(conditions, "r.create_time >= ?")
|
||||
beginDate := date.ParseStrToDate(beginTime.(string), date.YYYY_MM_DD)
|
||||
params = append(params, beginDate.UnixMilli())
|
||||
}
|
||||
endTime, ok := query["endTime"]
|
||||
if !ok {
|
||||
endTime, ok = query["params[endTime]"]
|
||||
}
|
||||
if ok && endTime != "" {
|
||||
conditions = append(conditions, "r.create_time <= ?")
|
||||
endDate := date.ParseStrToDate(endTime.(string), date.YYYY_MM_DD)
|
||||
params = append(params, endDate.UnixMilli())
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := " where r.del_flag = '0' "
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " and " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数量 长度为0直接返回
|
||||
totalSql := `select count(distinct r.role_id) as 'total' from sys_role r
|
||||
left join sys_user_role ur on ur.role_id = r.role_id
|
||||
left join user u on u.id = ur.user_id`
|
||||
totalRows, err := datasource.RawDB("", totalSql+whereSql, params)
|
||||
if err != nil {
|
||||
log.Errorf("total err => %v", err)
|
||||
}
|
||||
total := parse.Number(totalRows[0]["total"])
|
||||
if total == 0 {
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": []model.SysRole{},
|
||||
}
|
||||
}
|
||||
|
||||
// 分页
|
||||
pageNum, pageSize := datasource.PageNumSize(query["pageNum"], query["pageSize"])
|
||||
pageSql := " order by r.role_sort asc limit ?,? "
|
||||
params = append(params, pageNum*pageSize)
|
||||
params = append(params, pageSize)
|
||||
|
||||
// 查询数据
|
||||
querySql := r.selectSql + whereSql + pageSql
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
}
|
||||
|
||||
// 转换实体
|
||||
rows := r.convertResultRows(results)
|
||||
return map[string]any{
|
||||
"total": total,
|
||||
"rows": rows,
|
||||
}
|
||||
}
|
||||
|
||||
// SelectRoleList 根据条件查询角色数据
|
||||
func (r *RepoSysRole) SelectRoleList(sysRole model.SysRole) []model.SysRole {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysRole.RoleID != "" {
|
||||
conditions = append(conditions, "r.role_id = ?")
|
||||
params = append(params, sysRole.RoleID)
|
||||
}
|
||||
if sysRole.RoleKey != "" {
|
||||
conditions = append(conditions, "r.role_key like concat('%', concat(?, '%'))")
|
||||
params = append(params, sysRole.RoleKey)
|
||||
}
|
||||
if sysRole.RoleName != "" {
|
||||
conditions = append(conditions, "r.role_name like concat('%', concat(?, '%'))")
|
||||
params = append(params, sysRole.RoleName)
|
||||
}
|
||||
if sysRole.Status != "" {
|
||||
conditions = append(conditions, "r.status = ?")
|
||||
params = append(params, sysRole.Status)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := " where r.del_flag = '0' "
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " and " + strings.Join(conditions, " and ")
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
orderSql := " order by r.role_sort"
|
||||
querySql := r.selectSql + whereSql + orderSql
|
||||
rows, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysRole{}
|
||||
}
|
||||
return r.convertResultRows(rows)
|
||||
}
|
||||
|
||||
// SelectRoleListByUserId 根据用户ID获取角色选择框列表
|
||||
func (r *RepoSysRole) SelectRoleListByUserId(userId string) []model.SysRole {
|
||||
querySql := r.selectSql + " where r.del_flag = '0' and ur.user_id = ?"
|
||||
results, err := datasource.RawDB("", querySql, []any{userId})
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysRole{}
|
||||
}
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// SelectRoleByIds 通过角色ID查询角色
|
||||
func (r *RepoSysRole) SelectRoleByIds(roleIds []string) []model.SysRole {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(roleIds))
|
||||
querySql := r.selectSql + " where r.role_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(roleIds)
|
||||
results, err := datasource.RawDB("", querySql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return []model.SysRole{}
|
||||
}
|
||||
// 转换实体
|
||||
return r.convertResultRows(results)
|
||||
}
|
||||
|
||||
// UpdateRole 修改角色信息
|
||||
func (r *RepoSysRole) UpdateRole(sysRole model.SysRole) int64 {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysRole.RoleName != "" {
|
||||
params["role_name"] = sysRole.RoleName
|
||||
}
|
||||
if sysRole.RoleKey != "" {
|
||||
params["role_key"] = sysRole.RoleKey
|
||||
}
|
||||
if sysRole.RoleSort > 0 {
|
||||
params["role_sort"] = sysRole.RoleSort
|
||||
}
|
||||
if sysRole.MenuCheckStrictly != "" {
|
||||
params["menu_check_strictly"] = sysRole.MenuCheckStrictly
|
||||
}
|
||||
if sysRole.DeptCheckStrictly != "" {
|
||||
params["dept_check_strictly"] = sysRole.DeptCheckStrictly
|
||||
}
|
||||
if sysRole.Status != "" {
|
||||
params["status"] = sysRole.Status
|
||||
}
|
||||
if sysRole.Remark != "" {
|
||||
params["remark"] = sysRole.Remark
|
||||
}
|
||||
if sysRole.UpdateBy != "" {
|
||||
params["update_by"] = sysRole.UpdateBy
|
||||
params["update_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, values := datasource.KeyValueByUpdate(params)
|
||||
sql := "update sys_role set " + strings.Join(keys, ",") + " where role_id = ?"
|
||||
|
||||
// 执行更新
|
||||
values = append(values, sysRole.RoleID)
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("update row : %v", err.Error())
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("update err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// InsertRole 新增角色信息
|
||||
func (r *RepoSysRole) InsertRole(sysRole model.SysRole) string {
|
||||
// 参数拼接
|
||||
params := make(map[string]any)
|
||||
if sysRole.RoleID != "" {
|
||||
params["role_id"] = sysRole.RoleID
|
||||
}
|
||||
if sysRole.RoleName != "" {
|
||||
params["role_name"] = sysRole.RoleName
|
||||
}
|
||||
if sysRole.RoleKey != "" {
|
||||
params["role_key"] = sysRole.RoleKey
|
||||
}
|
||||
if sysRole.RoleSort > 0 {
|
||||
params["role_sort"] = sysRole.RoleSort
|
||||
}
|
||||
if sysRole.MenuCheckStrictly != "" {
|
||||
params["menu_check_strictly"] = sysRole.MenuCheckStrictly
|
||||
}
|
||||
if sysRole.DeptCheckStrictly != "" {
|
||||
params["dept_check_strictly"] = sysRole.DeptCheckStrictly
|
||||
}
|
||||
if sysRole.Status != "" {
|
||||
params["status"] = sysRole.Status
|
||||
}
|
||||
if sysRole.Remark != "" {
|
||||
params["remark"] = sysRole.Remark
|
||||
}
|
||||
if sysRole.CreateBy != "" {
|
||||
params["create_by"] = sysRole.CreateBy
|
||||
params["create_time"] = time.Now().UnixMilli()
|
||||
}
|
||||
|
||||
// 构建执行语句
|
||||
keys, placeholder, values := datasource.KeyPlaceholderValueByInsert(params)
|
||||
sql := "insert into sys_role (" + strings.Join(keys, ",") + ")values(" + placeholder + ")"
|
||||
|
||||
// 执行插入
|
||||
results, err := datasource.ExecDB("", sql, values)
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
insertId, err := results.LastInsertId()
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprint(insertId)
|
||||
}
|
||||
|
||||
// DeleteRoleByIds 批量删除角色信息
|
||||
func (r *RepoSysRole) DeleteRoleByIds(roleIds []string) int64 {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(roleIds))
|
||||
sql := "update sys_role set del_flag = '1' where role_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(roleIds)
|
||||
results, err := datasource.ExecDB("", sql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// CheckUniqueRole 校验角色是否唯一
|
||||
func (r *RepoSysRole) CheckUniqueRole(sysRole model.SysRole) string {
|
||||
// 查询条件拼接
|
||||
var conditions []string
|
||||
var params []any
|
||||
if sysRole.RoleName != "" {
|
||||
conditions = append(conditions, "r.role_name = ?")
|
||||
params = append(params, sysRole.RoleName)
|
||||
}
|
||||
if sysRole.RoleKey != "" {
|
||||
conditions = append(conditions, "r.role_key = ?")
|
||||
params = append(params, sysRole.RoleKey)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
whereSql += " where " + strings.Join(conditions, " and ")
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
querySql := "select role_id as 'str' from sys_role r " + whereSql + " and r.del_flag = '0' limit 1"
|
||||
results, err := datasource.RawDB("", querySql, params)
|
||||
if err != nil {
|
||||
log.Errorf("query err %v", err)
|
||||
return ""
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return fmt.Sprint(results[0]["str"])
|
||||
}
|
||||
return ""
|
||||
}
|
||||
@@ -1,165 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"be.ems/features/sys_role/model"
|
||||
sysrolemenu "be.ems/features/sys_role_menu"
|
||||
sysuserrole "be.ems/features/sys_user_role"
|
||||
)
|
||||
|
||||
// 实例化服务层 ServiceSysRole 结构体
|
||||
var NewServiceSysRole = &ServiceSysRole{
|
||||
sysRoleRepository: NewRepoSysRole,
|
||||
sysUserRoleRepository: sysuserrole.NewRepoSysUserRole,
|
||||
sysRoleMenuRepository: sysrolemenu.NewRepoSysRoleMenu,
|
||||
}
|
||||
|
||||
// ServiceSysRole 角色 服务层处理
|
||||
type ServiceSysRole struct {
|
||||
// 角色服务
|
||||
sysRoleRepository *RepoSysRole
|
||||
// 用户与角色关联服务
|
||||
sysUserRoleRepository *sysuserrole.RepoSysUserRole
|
||||
// 角色与菜单关联服务
|
||||
sysRoleMenuRepository *sysrolemenu.RepoSysRoleMenu
|
||||
}
|
||||
|
||||
// SelectRolePage 根据条件分页查询角色数据
|
||||
func (r *ServiceSysRole) SelectRolePage(query map[string]any) map[string]any {
|
||||
return r.sysRoleRepository.SelectRolePage(query)
|
||||
}
|
||||
|
||||
// SelectRoleList 根据条件查询角色数据
|
||||
func (r *ServiceSysRole) SelectRoleList(sysRole model.SysRole) []model.SysRole {
|
||||
return r.sysRoleRepository.SelectRoleList(sysRole)
|
||||
}
|
||||
|
||||
// SelectRoleListByUserId 根据用户ID获取角色选择框列表
|
||||
func (r *ServiceSysRole) SelectRoleListByUserId(userId string) []model.SysRole {
|
||||
return r.sysRoleRepository.SelectRoleListByUserId(userId)
|
||||
}
|
||||
|
||||
// SelectRoleById 通过角色ID查询角色
|
||||
func (r *ServiceSysRole) SelectRoleById(roleId string) model.SysRole {
|
||||
if roleId == "" {
|
||||
return model.SysRole{}
|
||||
}
|
||||
posts := r.sysRoleRepository.SelectRoleByIds([]string{roleId})
|
||||
if len(posts) > 0 {
|
||||
return posts[0]
|
||||
}
|
||||
return model.SysRole{}
|
||||
}
|
||||
|
||||
// UpdateRole 修改角色信息
|
||||
func (r *ServiceSysRole) UpdateRole(sysRole model.SysRole) int64 {
|
||||
rows := r.sysRoleRepository.UpdateRole(sysRole)
|
||||
if rows > 0 {
|
||||
// 删除角色与菜单关联
|
||||
r.sysRoleMenuRepository.DeleteRoleMenu([]string{sysRole.RoleID})
|
||||
if len(sysRole.MenuIds) > 0 {
|
||||
r.insertRoleMenu(sysRole.RoleID, sysRole.MenuIds)
|
||||
}
|
||||
}
|
||||
return rows
|
||||
}
|
||||
|
||||
// InsertRole 新增角色信息
|
||||
func (r *ServiceSysRole) InsertRole(sysRole model.SysRole) string {
|
||||
insertId := r.sysRoleRepository.InsertRole(sysRole)
|
||||
if insertId != "" && len(sysRole.MenuIds) > 0 {
|
||||
r.insertRoleMenu(insertId, sysRole.MenuIds)
|
||||
}
|
||||
return insertId
|
||||
}
|
||||
|
||||
// insertRoleMenu 新增角色菜单信息
|
||||
func (r *ServiceSysRole) insertRoleMenu(roleId string, menuIds []string) int64 {
|
||||
if roleId == "" || len(menuIds) <= 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
sysRoleMenus := []sysrolemenu.SysRoleMenu{}
|
||||
for _, menuId := range menuIds {
|
||||
if menuId == "" {
|
||||
continue
|
||||
}
|
||||
sysRoleMenus = append(sysRoleMenus, sysrolemenu.NewSysRoleMenu(roleId, menuId))
|
||||
}
|
||||
|
||||
return r.sysRoleMenuRepository.BatchRoleMenu(sysRoleMenus)
|
||||
}
|
||||
|
||||
// DeleteRoleByIds 批量删除角色信息
|
||||
func (r *ServiceSysRole) DeleteRoleByIds(roleIds []string) (int64, error) {
|
||||
// 检查是否存在
|
||||
roles := r.sysRoleRepository.SelectRoleByIds(roleIds)
|
||||
if len(roles) <= 0 {
|
||||
return 0, errors.New("no permission to access role data")
|
||||
}
|
||||
for _, role := range roles {
|
||||
// 检查是否为已删除
|
||||
if role.DelFlag == "1" {
|
||||
return 0, errors.New(role.RoleID + " The character information has been deleted")
|
||||
}
|
||||
// 检查分配用户
|
||||
userCount := r.sysUserRoleRepository.CountUserRoleByRoleId(role.RoleID)
|
||||
if userCount > 0 {
|
||||
msg := fmt.Sprintf("[%s] has been assigned to a user and cannot be deleted", role.RoleName)
|
||||
return 0, errors.New(msg)
|
||||
}
|
||||
}
|
||||
if len(roles) == len(roleIds) {
|
||||
// 删除角色与菜单关联
|
||||
r.sysRoleMenuRepository.DeleteRoleMenu(roleIds)
|
||||
rows := r.sysRoleRepository.DeleteRoleByIds(roleIds)
|
||||
return rows, nil
|
||||
}
|
||||
return 0, errors.New("failed to delete role information")
|
||||
}
|
||||
|
||||
// CheckUniqueRoleName 校验角色名称是否唯一
|
||||
func (r *ServiceSysRole) CheckUniqueRoleName(roleName, roleId string) bool {
|
||||
uniqueId := r.sysRoleRepository.CheckUniqueRole(model.SysRole{
|
||||
RoleName: roleName,
|
||||
})
|
||||
if uniqueId == roleId {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// CheckUniqueRoleKey 校验角色权限是否唯一
|
||||
func (r *ServiceSysRole) CheckUniqueRoleKey(roleKey, roleId string) bool {
|
||||
uniqueId := r.sysRoleRepository.CheckUniqueRole(model.SysRole{
|
||||
RoleKey: roleKey,
|
||||
})
|
||||
if uniqueId == roleId {
|
||||
return true
|
||||
}
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// DeleteAuthUsers 批量取消授权用户角色
|
||||
func (r *ServiceSysRole) DeleteAuthUsers(roleId string, userIds []string) int64 {
|
||||
return r.sysUserRoleRepository.DeleteUserRoleByRoleId(roleId, userIds)
|
||||
}
|
||||
|
||||
// InsertAuthUsers 批量新增授权用户角色
|
||||
func (r *ServiceSysRole) InsertAuthUsers(roleId string, userIds []string) int64 {
|
||||
if roleId == "" || len(userIds) <= 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
sysUserRoles := []sysuserrole.SysUserRole{}
|
||||
for _, userId := range userIds {
|
||||
if userId == "" {
|
||||
continue
|
||||
}
|
||||
sysUserRoles = append(sysUserRoles, sysuserrole.NewSysUserRole(userId, roleId))
|
||||
}
|
||||
|
||||
return r.sysUserRoleRepository.BatchUserRole(sysUserRoles)
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
package sysrolemenu
|
||||
|
||||
// SysRoleMenu 角色和菜单关联对象 sys_role_menu
|
||||
type SysRoleMenu struct {
|
||||
RoleID string `json:"roleId"` // 角色ID
|
||||
MenuID string `json:"menuId"` // 菜单ID
|
||||
}
|
||||
|
||||
// NewSysRoleMenu 创建角色和菜单关联对象的构造函数
|
||||
func NewSysRoleMenu(roleID string, menuID string) SysRoleMenu {
|
||||
return SysRoleMenu{
|
||||
RoleID: roleID,
|
||||
MenuID: menuID,
|
||||
}
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
package sysrolemenu
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"be.ems/lib/core/datasource"
|
||||
"be.ems/lib/core/utils/parse"
|
||||
"be.ems/lib/log"
|
||||
)
|
||||
|
||||
// 实例化数据层 RepoSysRoleMenu 结构体
|
||||
var NewRepoSysRoleMenu = &RepoSysRoleMenu{}
|
||||
|
||||
// RepoSysRoleMenu 角色与菜单关联表 数据层处理
|
||||
type RepoSysRoleMenu struct{}
|
||||
|
||||
// CheckMenuExistRole 查询菜单分配给角色使用数量
|
||||
func (r *RepoSysRoleMenu) CheckMenuExistRole(menuId string) int64 {
|
||||
querySql := "select count(1) as 'total' from sys_role_menu where menu_id = ?"
|
||||
results, err := datasource.RawDB("", querySql, []any{menuId})
|
||||
if err != nil {
|
||||
log.Errorf("query err => %v", err)
|
||||
return 0
|
||||
}
|
||||
if len(results) > 0 {
|
||||
return parse.Number(results[0]["total"])
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// DeleteRoleMenu 批量删除角色和菜单关联
|
||||
func (r *RepoSysRoleMenu) DeleteRoleMenu(roleIds []string) int64 {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(roleIds))
|
||||
sql := "delete from sys_role_menu where role_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(roleIds)
|
||||
results, err := datasource.ExecDB("", sql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// DeleteMenuRole 批量删除菜单和角色关联
|
||||
func (r *RepoSysRoleMenu) DeleteMenuRole(menuIds []string) int64 {
|
||||
placeholder := datasource.KeyPlaceholderByQuery(len(menuIds))
|
||||
sql := "delete from sys_role_menu where menu_id in (" + placeholder + ")"
|
||||
parameters := datasource.ConvertIdsSlice(menuIds)
|
||||
results, err := datasource.ExecDB("", sql, parameters)
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
affected, err := results.RowsAffected()
|
||||
if err != nil {
|
||||
log.Errorf("delete err => %v", err)
|
||||
return 0
|
||||
}
|
||||
return affected
|
||||
}
|
||||
|
||||
// BatchRoleMenu 批量新增角色菜单信息
|
||||
func (r *RepoSysRoleMenu) BatchRoleMenu(sysRoleMenus []SysRoleMenu) int64 {
|
||||
keyValues := make([]string, 0)
|
||||
for _, item := range sysRoleMenus {
|
||||
keyValues = append(keyValues, fmt.Sprintf("(%s,%s)", item.RoleID, item.MenuID))
|
||||
}
|
||||
sql := "insert into sys_role_menu(role_id, menu_id) values " + strings.Join(keyValues, ",")
|
||||
results, err := datasource.ExecDB("", sql, nil)
|
||||
if err != nil {
|
||||
log.Errorf("insert err => %v", err)
|
||||
return 0
|
||||
}
|
||||
insertId, err := results.LastInsertId()
|
||||
if err != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
return 0
|
||||
}
|
||||
return insertId
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user