Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

engineerper 1 éve
szülő
commit
7ac1b5b4f1
7 módosított fájl, 915 hozzáadás és 3 törlés
  1. 6 0
      .gitignore
  2. 3 0
      config.yaml
  3. 7 0
      config/config.go
  4. 855 0
      doc/lc-base-frame/fangdaosha.sql
  5. 3 0
      go.mod
  6. 17 0
      go.sum
  7. 24 3
      main.go

+ 6 - 0
.gitignore

@@ -0,0 +1,6 @@
+/build/
+log
+.idea
+go.sum
+main_demo.go
+/example/

+ 3 - 0
config.yaml

@@ -21,6 +21,9 @@ captcha:
   open-captcha: 0 #开启验证码 1关闭,0开启
   open-captcha-timeout: 3600  #有效期
 logrus:
+  stdout: true  #是否打印到控制台
+  max-age: 168 #保存时间168小时(7天) 单位小时
+  rotation-time: 24  #切割间隔 单位小时
 mysql:
   path: 127.0.0.1
   port: "3306"

+ 7 - 0
config/config.go

@@ -33,6 +33,7 @@ type config struct {
 	Cors    CORS    `mapstructure:"cors" json:"cors" yaml:"cors"`
 	Mysql   Mysql   `mapstructure:"mysql" json:"mysql" yaml:"mysql"`
 	Redis   Redis   `mapstructure:"redis" json:"redis" yaml:"redis"`
+	Logrus  Logrus  `mapstructure:"logrus" json:"logrus" yaml:"logrus"`
 }
 
 type System struct {
@@ -107,3 +108,9 @@ type Redis struct {
 	Addr     string `mapstructure:"addr" json:"addr" yaml:"addr"`             // 服务器地址:端口
 	Password string `mapstructure:"password" json:"password" yaml:"password"` // 密码
 }
+
+type Logrus struct {
+	StdOut       bool  `ymal:"stdout"`
+	MaxAge       int64 `yaml:"max-age"`
+	RotationTime int   `yaml:"rotation-time"`
+}

+ 855 - 0
doc/lc-base-frame/fangdaosha.sql

@@ -0,0 +1,855 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 本地链接
+ Source Server Type    : MySQL
+ Source Server Version : 80033
+ Source Host           : localhost:3306
+ Source Schema         : fangdaosha
+
+ Target Server Type    : MySQL
+ Target Server Version : 80033
+ File Encoding         : 65001
+
+ Date: 17/10/2023 10:59:55
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for casbin_rule
+-- ----------------------------
+DROP TABLE IF EXISTS `casbin_rule`;
+CREATE TABLE `casbin_rule`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `ptype` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `v0` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `v1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `v2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `v3` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `v4` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `v5` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE,
+  UNIQUE INDEX `idx_casbin_rule`(`ptype` ASC, `v0` ASC, `v1` ASC, `v2` ASC, `v3` ASC, `v4` ASC, `v5` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2824 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '拦截器' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of casbin_rule
+-- ----------------------------
+INSERT INTO `casbin_rule` VALUES (2045, 'p', '2', '/jwt/jsonInBlacklist', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2051, 'p', '2', '/menu/getMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2044, 'p', '2', '/test', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2046, 'p', '2', '/user/admin_register', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2049, 'p', '2', '/user/changePassword', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2048, 'p', '2', '/user/getUserInfo', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2050, 'p', '2', '/user/setUserAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2047, 'p', '2', '/user/setUserInfo', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2701, 'p', '888', '/api/createApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2702, 'p', '888', '/api/deleteApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2707, 'p', '888', '/api/deleteApisByIds', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2705, 'p', '888', '/api/getAllApis', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2706, 'p', '888', '/api/getApiById', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2704, 'p', '888', '/api/getApiList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2703, 'p', '888', '/api/updateApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2708, 'p', '888', '/authority/copyAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2709, 'p', '888', '/authority/createAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2710, 'p', '888', '/authority/deleteAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2712, 'p', '888', '/authority/getAuthorityList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2713, 'p', '888', '/authority/setDataAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2711, 'p', '888', '/authority/updateAuthority', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2777, 'p', '888', '/authorityBtn/canRemoveAuthorityBtn', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2776, 'p', '888', '/authorityBtn/getAuthorityBtn', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2775, 'p', '888', '/authorityBtn/setAuthorityBtn', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2749, 'p', '888', '/autoCode/createPackage', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2746, 'p', '888', '/autoCode/createPlug', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2743, 'p', '888', '/autoCode/createTemp', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2751, 'p', '888', '/autoCode/delPackage', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2755, 'p', '888', '/autoCode/delSysHistory', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2745, 'p', '888', '/autoCode/getColumn', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2741, 'p', '888', '/autoCode/getDB', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2752, 'p', '888', '/autoCode/getMeta', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2750, 'p', '888', '/autoCode/getPackage', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2754, 'p', '888', '/autoCode/getSysHistory', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2742, 'p', '888', '/autoCode/getTables', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2747, 'p', '888', '/autoCode/installPlugin', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2744, 'p', '888', '/autoCode/preview', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2748, 'p', '888', '/autoCode/pubPlug', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2753, 'p', '888', '/autoCode/rollback', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2782, 'p', '888', '/camera/createCamera', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2783, 'p', '888', '/camera/deleteCamera', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2784, 'p', '888', '/camera/deleteCameraByIds', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2786, 'p', '888', '/camera/findCamera', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2787, 'p', '888', '/camera/getCameraList', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2810, 'p', '888', '/camera/rewind', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2788, 'p', '888', '/camera/rewind', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2785, 'p', '888', '/camera/updateCamera', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2715, 'p', '888', '/casbin/getPolicyPathByAuthorityId', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2714, 'p', '888', '/casbin/updateCasbin', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2779, 'p', '888', '/chatGpt/createSK', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2781, 'p', '888', '/chatGpt/deleteSK', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2780, 'p', '888', '/chatGpt/getSK', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2778, 'p', '888', '/chatGpt/getTable', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2738, 'p', '888', '/customer/customer', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2739, 'p', '888', '/customer/customer', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2737, 'p', '888', '/customer/customer', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2736, 'p', '888', '/customer/customer', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2740, 'p', '888', '/customer/customerList', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2774, 'p', '888', '/email/emailTest', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2815, 'p', '888', '/event/dictionary', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2813, 'p', '888', '/event/list', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2726, 'p', '888', '/fileUploadAndDownload/breakpointContinue', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2727, 'p', '888', '/fileUploadAndDownload/breakpointContinueFinish', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2730, 'p', '888', '/fileUploadAndDownload/deleteFile', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2731, 'p', '888', '/fileUploadAndDownload/editFileName', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2725, 'p', '888', '/fileUploadAndDownload/findFile', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2732, 'p', '888', '/fileUploadAndDownload/getFileList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2728, 'p', '888', '/fileUploadAndDownload/removeChunk', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2729, 'p', '888', '/fileUploadAndDownload/upload', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2808, 'p', '888', '/gateways/adminSet', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2807, 'p', '888', '/gateways/all', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2811, 'p', '888', '/gateways/delete', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2812, 'p', '888', '/gateways/unbind', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2809, 'p', '888', '/gateways/userSet', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2823, 'p', '888', '/ipcast/ping', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2819, 'p', '888', '/ipcast/play', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2822, 'p', '888', '/ipcast/status', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2820, 'p', '888', '/ipcast/stop', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2821, 'p', '888', '/ipcast/volume', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2793, 'p', '888', '/ISAPI/Smart/channels/1/calibrations/FieldDetection', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2794, 'p', '888', '/ISAPI/Smart/channels/1/calibrations/FieldDetection', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2798, 'p', '888', '/ISAPI/Smart/channels/1/calibrations/linedetection', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2799, 'p', '888', '/ISAPI/Smart/channels/1/calibrations/linedetection', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2803, 'p', '888', '/ISAPI/Smart/channels/1/calibrations/regionEntrance', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2804, 'p', '888', '/ISAPI/Smart/channels/1/calibrations/regionEntrance', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2795, 'p', '888', '/ISAPI/Smart/FieldDetection/1', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2796, 'p', '888', '/ISAPI/Smart/FieldDetection/1', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2792, 'p', '888', '/ISAPI/Smart/FieldDetection/1/capabilities', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2800, 'p', '888', '/ISAPI/Smart/LineDetection/1', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2801, 'p', '888', '/ISAPI/Smart/LineDetection/1', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2797, 'p', '888', '/ISAPI/Smart/LineDetection/1/capabilities', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2805, 'p', '888', '/ISAPI/Smart/regionEntrance/1', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2806, 'p', '888', '/ISAPI/Smart/regionEntrance/1', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2802, 'p', '888', '/ISAPI/Smart/regionEntrance/1/capabilities', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2790, 'p', '888', '/ISAPI/System/capabilities', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2789, 'p', '888', '/ISAPI/System/deviceInfo', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2791, 'p', '888', '/ISAPI/System/Network/mailing/1', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2689, 'p', '888', '/jwt/jsonInBlacklist', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2716, 'p', '888', '/menu/addBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2724, 'p', '888', '/menu/addMenuAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2718, 'p', '888', '/menu/deleteBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2720, 'p', '888', '/menu/getBaseMenuById', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2722, 'p', '888', '/menu/getBaseMenuTree', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2717, 'p', '888', '/menu/getMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2723, 'p', '888', '/menu/getMenuAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2721, 'p', '888', '/menu/getMenuList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2719, 'p', '888', '/menu/updateBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2814, 'p', '888', '/picture/get', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2772, 'p', '888', '/simpleUploader/checkFileMd5', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2773, 'p', '888', '/simpleUploader/mergeFileMd5', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2771, 'p', '888', '/simpleUploader/upload', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2761, 'p', '888', '/sysDictionary/createSysDictionary', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2762, 'p', '888', '/sysDictionary/deleteSysDictionary', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2764, 'p', '888', '/sysDictionary/findSysDictionary', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2765, 'p', '888', '/sysDictionary/getSysDictionaryList', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2763, 'p', '888', '/sysDictionary/updateSysDictionary', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2757, 'p', '888', '/sysDictionaryDetail/createSysDictionaryDetail', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2758, 'p', '888', '/sysDictionaryDetail/deleteSysDictionaryDetail', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2759, 'p', '888', '/sysDictionaryDetail/findSysDictionaryDetail', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2760, 'p', '888', '/sysDictionaryDetail/getSysDictionaryDetailList', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2756, 'p', '888', '/sysDictionaryDetail/updateSysDictionaryDetail', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2766, 'p', '888', '/sysOperationRecord/createSysOperationRecord', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2769, 'p', '888', '/sysOperationRecord/deleteSysOperationRecord', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2770, 'p', '888', '/sysOperationRecord/deleteSysOperationRecordByIds', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2767, 'p', '888', '/sysOperationRecord/findSysOperationRecord', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2768, 'p', '888', '/sysOperationRecord/getSysOperationRecordList', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2733, 'p', '888', '/system/getServerInfo', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2734, 'p', '888', '/system/getSystemConfig', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2735, 'p', '888', '/system/setSystemConfig', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2816, 'p', '888', '/user/addEmails', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2691, 'p', '888', '/user/admin_register', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2697, 'p', '888', '/user/changePassword', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2817, 'p', '888', '/user/confirm', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2690, 'p', '888', '/user/deleteUser', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2695, 'p', '888', '/user/getUserInfo', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2692, 'p', '888', '/user/getUserList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2700, 'p', '888', '/user/ids', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2699, 'p', '888', '/user/resetPassword', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2694, 'p', '888', '/user/setSelfInfo', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2696, 'p', '888', '/user/setUserAuthorities', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2698, 'p', '888', '/user/setUserAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2693, 'p', '888', '/user/setUserInfo', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (2818, 'p', '888', '/user/unbindEmail', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (95, 'p', '8881', '/api/createApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (98, 'p', '8881', '/api/deleteApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (100, 'p', '8881', '/api/getAllApis', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (97, 'p', '8881', '/api/getApiById', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (96, 'p', '8881', '/api/getApiList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (99, 'p', '8881', '/api/updateApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (101, 'p', '8881', '/authority/createAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (102, 'p', '8881', '/authority/deleteAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (103, 'p', '8881', '/authority/getAuthorityList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (104, 'p', '8881', '/authority/setDataAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (122, 'p', '8881', '/casbin/getPolicyPathByAuthorityId', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (121, 'p', '8881', '/casbin/updateCasbin', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (128, 'p', '8881', '/customer/customer', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (129, 'p', '8881', '/customer/customer', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (126, 'p', '8881', '/customer/customer', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (127, 'p', '8881', '/customer/customer', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (130, 'p', '8881', '/customer/customerList', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (119, 'p', '8881', '/fileUploadAndDownload/deleteFile', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (120, 'p', '8881', '/fileUploadAndDownload/editFileName', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (118, 'p', '8881', '/fileUploadAndDownload/getFileList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (117, 'p', '8881', '/fileUploadAndDownload/upload', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (123, 'p', '8881', '/jwt/jsonInBlacklist', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (107, 'p', '8881', '/menu/addBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (109, 'p', '8881', '/menu/addMenuAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (111, 'p', '8881', '/menu/deleteBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (113, 'p', '8881', '/menu/getBaseMenuById', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (108, 'p', '8881', '/menu/getBaseMenuTree', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (105, 'p', '8881', '/menu/getMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (110, 'p', '8881', '/menu/getMenuAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (106, 'p', '8881', '/menu/getMenuList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (112, 'p', '8881', '/menu/updateBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (124, 'p', '8881', '/system/getSystemConfig', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (125, 'p', '8881', '/system/setSystemConfig', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (94, 'p', '8881', '/user/admin_register', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (114, 'p', '8881', '/user/changePassword', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (131, 'p', '8881', '/user/getUserInfo', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (115, 'p', '8881', '/user/getUserList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (116, 'p', '8881', '/user/setUserAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1716, 'p', '9528', '/api/createApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1717, 'p', '9528', '/api/deleteApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1720, 'p', '9528', '/api/getAllApis', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1721, 'p', '9528', '/api/getApiById', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1719, 'p', '9528', '/api/getApiList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1718, 'p', '9528', '/api/updateApi', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1722, 'p', '9528', '/authority/createAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1723, 'p', '9528', '/authority/deleteAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1724, 'p', '9528', '/authority/getAuthorityList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1725, 'p', '9528', '/authority/setDataAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1748, 'p', '9528', '/autoCode/createTemp', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1752, 'p', '9528', '/camera/rewind', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1727, 'p', '9528', '/casbin/getPolicyPathByAuthorityId', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1726, 'p', '9528', '/casbin/updateCasbin', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1745, 'p', '9528', '/customer/customer', 'DELETE', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1746, 'p', '9528', '/customer/customer', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1744, 'p', '9528', '/customer/customer', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1743, 'p', '9528', '/customer/customer', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1747, 'p', '9528', '/customer/customerList', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1738, 'p', '9528', '/fileUploadAndDownload/deleteFile', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1739, 'p', '9528', '/fileUploadAndDownload/editFileName', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1740, 'p', '9528', '/fileUploadAndDownload/getFileList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1737, 'p', '9528', '/fileUploadAndDownload/upload', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1750, 'p', '9528', '/gateways/all', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1751, 'p', '9528', '/gateways/userSet', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1757, 'p', '9528', '/ISAPI/Smart/channels/1/calibrations/FieldDetection', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1758, 'p', '9528', '/ISAPI/Smart/channels/1/calibrations/FieldDetection', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1762, 'p', '9528', '/ISAPI/Smart/channels/1/calibrations/linedetection', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1763, 'p', '9528', '/ISAPI/Smart/channels/1/calibrations/linedetection', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1767, 'p', '9528', '/ISAPI/Smart/channels/1/calibrations/regionEntrance', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1768, 'p', '9528', '/ISAPI/Smart/channels/1/calibrations/regionEntrance', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1759, 'p', '9528', '/ISAPI/Smart/FieldDetection/1', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1760, 'p', '9528', '/ISAPI/Smart/FieldDetection/1', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1756, 'p', '9528', '/ISAPI/Smart/FieldDetection/1/capabilities', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1764, 'p', '9528', '/ISAPI/Smart/LineDetection/1', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1765, 'p', '9528', '/ISAPI/Smart/LineDetection/1', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1761, 'p', '9528', '/ISAPI/Smart/LineDetection/1/capabilities', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1769, 'p', '9528', '/ISAPI/Smart/regionEntrance/1', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1770, 'p', '9528', '/ISAPI/Smart/regionEntrance/1', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1766, 'p', '9528', '/ISAPI/Smart/regionEntrance/1/capabilities', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1754, 'p', '9528', '/ISAPI/System/capabilities', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1753, 'p', '9528', '/ISAPI/System/deviceInfo', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1755, 'p', '9528', '/ISAPI/System/Network/mailing/1', 'PUT', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1709, 'p', '9528', '/jwt/jsonInBlacklist', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1728, 'p', '9528', '/menu/addBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1736, 'p', '9528', '/menu/addMenuAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1730, 'p', '9528', '/menu/deleteBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1732, 'p', '9528', '/menu/getBaseMenuById', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1734, 'p', '9528', '/menu/getBaseMenuTree', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1729, 'p', '9528', '/menu/getMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1735, 'p', '9528', '/menu/getMenuAuthority', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1733, 'p', '9528', '/menu/getMenuList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1731, 'p', '9528', '/menu/updateBaseMenu', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1741, 'p', '9528', '/system/getSystemConfig', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1742, 'p', '9528', '/system/setSystemConfig', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1710, 'p', '9528', '/user/admin_register', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1713, 'p', '9528', '/user/changePassword', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1712, 'p', '9528', '/user/getUserInfo', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1711, 'p', '9528', '/user/getUserList', 'POST', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1715, 'p', '9528', '/user/ids', 'GET', '', '', '');
+INSERT INTO `casbin_rule` VALUES (1714, 'p', '9528', '/user/setUserAuthority', 'POST', '', '', '');
+
+-- ----------------------------
+-- Table structure for jwt_blacklists
+-- ----------------------------
+DROP TABLE IF EXISTS `jwt_blacklists`;
+CREATE TABLE `jwt_blacklists`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `jwt` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'jwt',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_jwt_blacklists_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of jwt_blacklists
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_apis
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_apis`;
+CREATE TABLE `sys_apis`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `path` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'api路径',
+  `description` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'api中文描述',
+  `api_group` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'api组',
+  `method` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'POST' COMMENT '方法',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_apis_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 161 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_apis
+-- ----------------------------
+INSERT INTO `sys_apis` VALUES (1, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/jwt/jsonInBlacklist', 'jwt加入黑名单(退出,必选)', 'jwt', 'POST');
+INSERT INTO `sys_apis` VALUES (2, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/deleteUser', '删除用户', '系统用户', 'DELETE');
+INSERT INTO `sys_apis` VALUES (3, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/admin_register', '用户注册', '系统用户', 'POST');
+INSERT INTO `sys_apis` VALUES (4, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/getUserList', '获取用户列表', '系统用户', 'POST');
+INSERT INTO `sys_apis` VALUES (5, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/setUserInfo', '设置用户信息', '系统用户', 'PUT');
+INSERT INTO `sys_apis` VALUES (6, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/setSelfInfo', '设置自身信息(必选)', '系统用户', 'PUT');
+INSERT INTO `sys_apis` VALUES (7, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/getUserInfo', '获取自身信息(必选)', '系统用户', 'GET');
+INSERT INTO `sys_apis` VALUES (8, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/setUserAuthorities', '设置权限组', '系统用户', 'POST');
+INSERT INTO `sys_apis` VALUES (9, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/changePassword', '修改密码(建议选择)', '系统用户', 'POST');
+INSERT INTO `sys_apis` VALUES (10, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/setUserAuthority', '修改用户角色(必选)', '系统用户', 'POST');
+INSERT INTO `sys_apis` VALUES (11, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/user/resetPassword', '重置用户密码', '系统用户', 'POST');
+INSERT INTO `sys_apis` VALUES (12, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/api/createApi', '创建api', 'api', 'POST');
+INSERT INTO `sys_apis` VALUES (13, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/api/deleteApi', '删除Api', 'api', 'POST');
+INSERT INTO `sys_apis` VALUES (14, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/api/updateApi', '更新Api', 'api', 'POST');
+INSERT INTO `sys_apis` VALUES (15, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/api/getApiList', '获取api列表', 'api', 'POST');
+INSERT INTO `sys_apis` VALUES (16, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/api/getAllApis', '获取所有api', 'api', 'POST');
+INSERT INTO `sys_apis` VALUES (17, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/api/getApiById', '获取api详细信息', 'api', 'POST');
+INSERT INTO `sys_apis` VALUES (18, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/api/deleteApisByIds', '批量删除api', 'api', 'DELETE');
+INSERT INTO `sys_apis` VALUES (19, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authority/copyAuthority', '拷贝角色', '角色', 'POST');
+INSERT INTO `sys_apis` VALUES (20, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authority/createAuthority', '创建角色', '角色', 'POST');
+INSERT INTO `sys_apis` VALUES (21, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authority/deleteAuthority', '删除角色', '角色', 'POST');
+INSERT INTO `sys_apis` VALUES (22, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authority/updateAuthority', '更新角色信息', '角色', 'PUT');
+INSERT INTO `sys_apis` VALUES (23, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authority/getAuthorityList', '获取角色列表', '角色', 'POST');
+INSERT INTO `sys_apis` VALUES (24, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authority/setDataAuthority', '设置角色资源权限', '角色', 'POST');
+INSERT INTO `sys_apis` VALUES (25, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/casbin/updateCasbin', '更改角色api权限', 'casbin', 'POST');
+INSERT INTO `sys_apis` VALUES (26, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/casbin/getPolicyPathByAuthorityId', '获取权限列表', 'casbin', 'POST');
+INSERT INTO `sys_apis` VALUES (27, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/addBaseMenu', '新增菜单', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (28, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/getMenu', '获取菜单树(必选)', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (29, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/deleteBaseMenu', '删除菜单', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (30, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/updateBaseMenu', '更新菜单', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (31, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/getBaseMenuById', '根据id获取菜单', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (32, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/getMenuList', '分页获取基础menu列表', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (33, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/getBaseMenuTree', '获取用户动态路由', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (34, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/getMenuAuthority', '获取指定角色menu', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (35, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/menu/addMenuAuthority', '增加menu和角色关联关系', '菜单', 'POST');
+INSERT INTO `sys_apis` VALUES (36, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/fileUploadAndDownload/findFile', '寻找目标文件(秒传)', '分片上传', 'GET');
+INSERT INTO `sys_apis` VALUES (37, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/fileUploadAndDownload/breakpointContinue', '断点续传', '分片上传', 'POST');
+INSERT INTO `sys_apis` VALUES (38, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/fileUploadAndDownload/breakpointContinueFinish', '断点续传完成', '分片上传', 'POST');
+INSERT INTO `sys_apis` VALUES (39, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/fileUploadAndDownload/removeChunk', '上传完成移除文件', '分片上传', 'POST');
+INSERT INTO `sys_apis` VALUES (40, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/fileUploadAndDownload/upload', '文件上传示例', '文件上传与下载', 'POST');
+INSERT INTO `sys_apis` VALUES (41, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/fileUploadAndDownload/deleteFile', '删除文件', '文件上传与下载', 'POST');
+INSERT INTO `sys_apis` VALUES (42, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/fileUploadAndDownload/editFileName', '文件名或者备注编辑', '文件上传与下载', 'POST');
+INSERT INTO `sys_apis` VALUES (43, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/fileUploadAndDownload/getFileList', '获取上传文件列表', '文件上传与下载', 'POST');
+INSERT INTO `sys_apis` VALUES (44, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/system/getServerInfo', '获取服务器信息', '系统服务', 'POST');
+INSERT INTO `sys_apis` VALUES (45, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/system/getSystemConfig', '获取配置文件内容', '系统服务', 'POST');
+INSERT INTO `sys_apis` VALUES (46, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/system/setSystemConfig', '设置配置文件内容', '系统服务', 'POST');
+INSERT INTO `sys_apis` VALUES (47, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/customer/customer', '更新客户', '客户', 'PUT');
+INSERT INTO `sys_apis` VALUES (48, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/customer/customer', '创建客户', '客户', 'POST');
+INSERT INTO `sys_apis` VALUES (49, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/customer/customer', '删除客户', '客户', 'DELETE');
+INSERT INTO `sys_apis` VALUES (50, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/customer/customer', '获取单一客户', '客户', 'GET');
+INSERT INTO `sys_apis` VALUES (51, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/customer/customerList', '获取客户列表', '客户', 'GET');
+INSERT INTO `sys_apis` VALUES (52, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/getDB', '获取所有数据库', '代码生成器', 'GET');
+INSERT INTO `sys_apis` VALUES (53, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/getTables', '获取数据库表', '代码生成器', 'GET');
+INSERT INTO `sys_apis` VALUES (54, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/createTemp', '自动化代码', '代码生成器', 'POST');
+INSERT INTO `sys_apis` VALUES (55, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/preview', '预览自动化代码', '代码生成器', 'POST');
+INSERT INTO `sys_apis` VALUES (56, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/getColumn', '获取所选table的所有字段', '代码生成器', 'GET');
+INSERT INTO `sys_apis` VALUES (57, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/createPlug', '自动创建插件包', '代码生成器', 'POST');
+INSERT INTO `sys_apis` VALUES (58, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/installPlugin', '安装插件', '代码生成器', 'POST');
+INSERT INTO `sys_apis` VALUES (59, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/pubPlug', '打包插件', '代码生成器', 'POST');
+INSERT INTO `sys_apis` VALUES (60, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/createPackage', '生成包(package)', '包(pkg)生成器', 'POST');
+INSERT INTO `sys_apis` VALUES (61, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/getPackage', '获取所有包(package)', '包(pkg)生成器', 'POST');
+INSERT INTO `sys_apis` VALUES (62, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/delPackage', '删除包(package)', '包(pkg)生成器', 'POST');
+INSERT INTO `sys_apis` VALUES (63, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/getMeta', '获取meta信息', '代码生成器历史', 'POST');
+INSERT INTO `sys_apis` VALUES (64, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/rollback', '回滚自动生成代码', '代码生成器历史', 'POST');
+INSERT INTO `sys_apis` VALUES (65, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/getSysHistory', '查询回滚记录', '代码生成器历史', 'POST');
+INSERT INTO `sys_apis` VALUES (66, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/autoCode/delSysHistory', '删除回滚记录', '代码生成器历史', 'POST');
+INSERT INTO `sys_apis` VALUES (67, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionaryDetail/updateSysDictionaryDetail', '更新字典内容', '系统字典详情', 'PUT');
+INSERT INTO `sys_apis` VALUES (68, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionaryDetail/createSysDictionaryDetail', '新增字典内容', '系统字典详情', 'POST');
+INSERT INTO `sys_apis` VALUES (69, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionaryDetail/deleteSysDictionaryDetail', '删除字典内容', '系统字典详情', 'DELETE');
+INSERT INTO `sys_apis` VALUES (70, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionaryDetail/findSysDictionaryDetail', '根据ID获取字典内容', '系统字典详情', 'GET');
+INSERT INTO `sys_apis` VALUES (71, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionaryDetail/getSysDictionaryDetailList', '获取字典内容列表', '系统字典详情', 'GET');
+INSERT INTO `sys_apis` VALUES (72, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionary/createSysDictionary', '新增字典', '系统字典', 'POST');
+INSERT INTO `sys_apis` VALUES (73, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionary/deleteSysDictionary', '删除字典', '系统字典', 'DELETE');
+INSERT INTO `sys_apis` VALUES (74, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionary/updateSysDictionary', '更新字典', '系统字典', 'PUT');
+INSERT INTO `sys_apis` VALUES (75, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionary/findSysDictionary', '根据ID获取字典', '系统字典', 'GET');
+INSERT INTO `sys_apis` VALUES (76, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysDictionary/getSysDictionaryList', '获取字典列表', '系统字典', 'GET');
+INSERT INTO `sys_apis` VALUES (77, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysOperationRecord/createSysOperationRecord', '新增操作记录', '操作记录', 'POST');
+INSERT INTO `sys_apis` VALUES (78, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysOperationRecord/findSysOperationRecord', '根据ID获取操作记录', '操作记录', 'GET');
+INSERT INTO `sys_apis` VALUES (79, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysOperationRecord/getSysOperationRecordList', '获取操作记录列表', '操作记录', 'GET');
+INSERT INTO `sys_apis` VALUES (80, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysOperationRecord/deleteSysOperationRecord', '删除操作记录', '操作记录', 'DELETE');
+INSERT INTO `sys_apis` VALUES (81, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/sysOperationRecord/deleteSysOperationRecordByIds', '批量删除操作历史', '操作记录', 'DELETE');
+INSERT INTO `sys_apis` VALUES (82, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/simpleUploader/upload', '插件版分片上传', '断点续传(插件版)', 'POST');
+INSERT INTO `sys_apis` VALUES (83, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/simpleUploader/checkFileMd5', '文件完整度验证', '断点续传(插件版)', 'GET');
+INSERT INTO `sys_apis` VALUES (84, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/simpleUploader/mergeFileMd5', '上传完成合并文件', '断点续传(插件版)', 'GET');
+INSERT INTO `sys_apis` VALUES (85, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/email/emailTest', '发送测试邮件', 'email', 'POST');
+INSERT INTO `sys_apis` VALUES (86, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/email/emailSend', '发送邮件示例', 'email', 'POST');
+INSERT INTO `sys_apis` VALUES (87, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authorityBtn/setAuthorityBtn', '设置按钮权限', '按钮权限', 'POST');
+INSERT INTO `sys_apis` VALUES (88, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authorityBtn/getAuthorityBtn', '获取已有按钮权限', '按钮权限', 'POST');
+INSERT INTO `sys_apis` VALUES (89, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/authorityBtn/canRemoveAuthorityBtn', '删除按钮', '按钮权限', 'POST');
+INSERT INTO `sys_apis` VALUES (90, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/chatGpt/getTable', '通过gpt获取内容', '万用表格', 'POST');
+INSERT INTO `sys_apis` VALUES (91, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/chatGpt/createSK', '录入sk', '万用表格', 'POST');
+INSERT INTO `sys_apis` VALUES (92, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/chatGpt/getSK', '获取sk', '万用表格', 'GET');
+INSERT INTO `sys_apis` VALUES (93, '2023-08-14 16:16:30.769', '2023-08-14 16:16:30.769', NULL, '/chatGpt/deleteSK', '删除sk', '万用表格', 'DELETE');
+
+-- ----------------------------
+-- Table structure for sys_authorities
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_authorities`;
+CREATE TABLE `sys_authorities`  (
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `authority_id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '角色ID',
+  `authority_name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名',
+  `parent_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '父角色ID',
+  `default_router` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'dashboard' COMMENT '默认菜单',
+  PRIMARY KEY (`authority_id`) USING BTREE,
+  UNIQUE INDEX `authority_id`(`authority_id` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 9529 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_authorities
+-- ----------------------------
+INSERT INTO `sys_authorities` VALUES ('2023-10-12 16:47:57.841', '2023-10-12 17:13:33.677', NULL, 2, '普通管理员1', 0, 'dashboard');
+INSERT INTO `sys_authorities` VALUES ('2023-08-14 16:16:30.979', '2023-09-02 09:57:35.499', NULL, 888, '超级管理员', 0, 'dashboard');
+INSERT INTO `sys_authorities` VALUES ('2023-08-14 16:16:30.979', '2023-08-14 16:16:31.582', NULL, 8881, '普通用户子角色', 888, 'dashboard');
+INSERT INTO `sys_authorities` VALUES ('2023-08-14 16:16:30.979', '2023-08-14 16:16:31.532', NULL, 9528, '测试角色', 0, 'dashboard');
+
+-- ----------------------------
+-- Table structure for sys_authority_btns
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_authority_btns`;
+CREATE TABLE `sys_authority_btns`  (
+  `authority_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '角色ID',
+  `sys_menu_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '菜单ID',
+  `sys_base_menu_btn_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '菜单按钮ID'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_authority_btns
+-- ----------------------------
+INSERT INTO `sys_authority_btns` VALUES (888, 32, 1);
+
+-- ----------------------------
+-- Table structure for sys_authority_menus
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_authority_menus`;
+CREATE TABLE `sys_authority_menus`  (
+  `sys_base_menu_id` bigint UNSIGNED NOT NULL,
+  `sys_authority_authority_id` bigint UNSIGNED NOT NULL COMMENT '角色ID',
+  PRIMARY KEY (`sys_base_menu_id`, `sys_authority_authority_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单id-角色id 关联表' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_authority_menus
+-- ----------------------------
+INSERT INTO `sys_authority_menus` VALUES (1, 2);
+INSERT INTO `sys_authority_menus` VALUES (1, 888);
+INSERT INTO `sys_authority_menus` VALUES (1, 8881);
+INSERT INTO `sys_authority_menus` VALUES (1, 9528);
+INSERT INTO `sys_authority_menus` VALUES (2, 888);
+INSERT INTO `sys_authority_menus` VALUES (2, 8881);
+INSERT INTO `sys_authority_menus` VALUES (2, 9528);
+INSERT INTO `sys_authority_menus` VALUES (3, 888);
+INSERT INTO `sys_authority_menus` VALUES (4, 888);
+INSERT INTO `sys_authority_menus` VALUES (4, 8881);
+INSERT INTO `sys_authority_menus` VALUES (5, 888);
+INSERT INTO `sys_authority_menus` VALUES (5, 8881);
+INSERT INTO `sys_authority_menus` VALUES (6, 888);
+INSERT INTO `sys_authority_menus` VALUES (6, 8881);
+INSERT INTO `sys_authority_menus` VALUES (7, 888);
+INSERT INTO `sys_authority_menus` VALUES (7, 8881);
+INSERT INTO `sys_authority_menus` VALUES (8, 888);
+INSERT INTO `sys_authority_menus` VALUES (8, 8881);
+INSERT INTO `sys_authority_menus` VALUES (8, 9528);
+INSERT INTO `sys_authority_menus` VALUES (9, 888);
+INSERT INTO `sys_authority_menus` VALUES (9, 8881);
+INSERT INTO `sys_authority_menus` VALUES (10, 888);
+INSERT INTO `sys_authority_menus` VALUES (10, 8881);
+INSERT INTO `sys_authority_menus` VALUES (11, 888);
+INSERT INTO `sys_authority_menus` VALUES (11, 8881);
+INSERT INTO `sys_authority_menus` VALUES (12, 888);
+INSERT INTO `sys_authority_menus` VALUES (13, 888);
+INSERT INTO `sys_authority_menus` VALUES (13, 8881);
+INSERT INTO `sys_authority_menus` VALUES (14, 888);
+INSERT INTO `sys_authority_menus` VALUES (14, 8881);
+INSERT INTO `sys_authority_menus` VALUES (15, 888);
+INSERT INTO `sys_authority_menus` VALUES (15, 8881);
+INSERT INTO `sys_authority_menus` VALUES (16, 888);
+INSERT INTO `sys_authority_menus` VALUES (16, 8881);
+INSERT INTO `sys_authority_menus` VALUES (17, 888);
+INSERT INTO `sys_authority_menus` VALUES (17, 8881);
+INSERT INTO `sys_authority_menus` VALUES (18, 888);
+INSERT INTO `sys_authority_menus` VALUES (19, 888);
+INSERT INTO `sys_authority_menus` VALUES (20, 888);
+INSERT INTO `sys_authority_menus` VALUES (21, 888);
+INSERT INTO `sys_authority_menus` VALUES (22, 888);
+INSERT INTO `sys_authority_menus` VALUES (23, 2);
+INSERT INTO `sys_authority_menus` VALUES (23, 888);
+INSERT INTO `sys_authority_menus` VALUES (24, 888);
+INSERT INTO `sys_authority_menus` VALUES (25, 888);
+INSERT INTO `sys_authority_menus` VALUES (26, 888);
+INSERT INTO `sys_authority_menus` VALUES (27, 888);
+INSERT INTO `sys_authority_menus` VALUES (28, 888);
+INSERT INTO `sys_authority_menus` VALUES (29, 888);
+INSERT INTO `sys_authority_menus` VALUES (30, 888);
+INSERT INTO `sys_authority_menus` VALUES (31, 888);
+INSERT INTO `sys_authority_menus` VALUES (32, 888);
+INSERT INTO `sys_authority_menus` VALUES (33, 888);
+INSERT INTO `sys_authority_menus` VALUES (34, 888);
+
+-- ----------------------------
+-- Table structure for sys_auto_code_histories
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_auto_code_histories`;
+CREATE TABLE `sys_auto_code_histories`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `package` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `business_db` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `table_name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `request_meta` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
+  `auto_code_path` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
+  `injection_meta` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
+  `struct_name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `struct_cn_name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `api_ids` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `flag` bigint NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_auto_code_histories_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_auto_code_histories
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_auto_codes
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_auto_codes`;
+CREATE TABLE `sys_auto_codes`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `package_name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '包名',
+  `label` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '展示名',
+  `desc` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_auto_codes_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_auto_codes
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_base_menu_btns
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_base_menu_btns`;
+CREATE TABLE `sys_base_menu_btns`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮关键key',
+  `desc` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `sys_base_menu_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '菜单ID',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_base_menu_btns_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_base_menu_btns
+-- ----------------------------
+INSERT INTO `sys_base_menu_btns` VALUES (1, '2023-08-30 11:41:03.787', '2023-08-30 11:41:03.787', NULL, '', '', 32);
+INSERT INTO `sys_base_menu_btns` VALUES (2, '2023-08-30 14:41:13.050', '2023-08-30 14:41:13.050', NULL, '', '', 33);
+
+-- ----------------------------
+-- Table structure for sys_base_menu_parameters
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_base_menu_parameters`;
+CREATE TABLE `sys_base_menu_parameters`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `sys_base_menu_id` bigint UNSIGNED NULL DEFAULT NULL,
+  `type` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址栏携带参数为params还是query',
+  `key` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址栏携带参数的key',
+  `value` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址栏携带参数的值',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_base_menu_parameters_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_base_menu_parameters
+-- ----------------------------
+INSERT INTO `sys_base_menu_parameters` VALUES (1, '2023-08-30 14:11:32.999', '2023-08-30 14:11:32.999', NULL, 32, 'query', '', '');
+INSERT INTO `sys_base_menu_parameters` VALUES (2, '2023-08-30 14:41:13.050', '2023-08-30 14:41:13.050', NULL, 33, 'query', '', '');
+
+-- ----------------------------
+-- Table structure for sys_base_menus
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_base_menus`;
+CREATE TABLE `sys_base_menus`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `menu_level` bigint UNSIGNED NULL DEFAULT NULL,
+  `parent_id` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父菜单ID',
+  `path` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由path',
+  `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由name',
+  `hidden` tinyint(1) NULL DEFAULT NULL COMMENT '是否在列表隐藏',
+  `component` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对应前端文件路径',
+  `sort` bigint NULL DEFAULT NULL COMMENT '排序标记',
+  `active_name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加属性',
+  `keep_alive` tinyint(1) NULL DEFAULT NULL COMMENT '附加属性',
+  `default_menu` tinyint(1) NULL DEFAULT NULL COMMENT '附加属性',
+  `title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加属性',
+  `icon` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加属性',
+  `close_tab` tinyint(1) NULL DEFAULT NULL COMMENT '附加属性',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_base_menus_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '基础菜单详情' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_base_menus
+-- ----------------------------
+INSERT INTO `sys_base_menus` VALUES (1, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'dashboard', 'dashboard', 0, 'view/dashboard/index.vue', 1, '', 0, 0, '仪表盘', 'odometer', 0);
+INSERT INTO `sys_base_menus` VALUES (2, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'about', 'about', 0, 'view/about/index.vue', 9, '', 0, 0, '关于我们', 'info-filled', 0);
+INSERT INTO `sys_base_menus` VALUES (3, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'admin', 'superAdmin', 0, 'view/superAdmin/index.vue', 3, '', 0, 0, '超级管理员', 'user', 0);
+INSERT INTO `sys_base_menus` VALUES (4, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '3', 'authority', 'authority', 0, 'view/superAdmin/authority/authority.vue', 1, '', 0, 0, '角色管理', 'avatar', 0);
+INSERT INTO `sys_base_menus` VALUES (5, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '3', 'menu', 'menu', 0, 'view/superAdmin/menu/menu.vue', 2, '', 1, 0, '菜单管理', 'tickets', 0);
+INSERT INTO `sys_base_menus` VALUES (6, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '3', 'api', 'api', 0, 'view/superAdmin/api/api.vue', 3, '', 1, 0, 'api管理', 'platform', 0);
+INSERT INTO `sys_base_menus` VALUES (7, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '3', 'user', 'user', 0, 'view/superAdmin/user/user.vue', 4, '', 0, 0, '用户管理', 'coordinate', 0);
+INSERT INTO `sys_base_menus` VALUES (8, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '3', 'dictionary', 'dictionary', 0, 'view/superAdmin/dictionary/sysDictionary.vue', 5, '', 0, 0, '字典管理', 'notebook', 0);
+INSERT INTO `sys_base_menus` VALUES (9, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '3', 'dictionaryDetail/:id', 'dictionaryDetail', 1, 'view/superAdmin/dictionary/sysDictionaryDetail.vue', 1, 'dictionary', 0, 0, '字典详情-${id}', 'list', 0);
+INSERT INTO `sys_base_menus` VALUES (10, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '3', 'operation', 'operation', 0, 'view/superAdmin/operation/sysOperationRecord.vue', 6, '', 0, 0, '操作历史', 'pie-chart', 0);
+INSERT INTO `sys_base_menus` VALUES (11, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'person', 'person', 1, 'view/person/person.vue', 4, '', 0, 0, '个人信息', 'message', 0);
+INSERT INTO `sys_base_menus` VALUES (12, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'example', 'example', 0, 'view/example/index.vue', 7, '', 0, 0, '示例文件', 'management', 0);
+INSERT INTO `sys_base_menus` VALUES (13, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '12', 'upload', 'upload', 0, 'view/example/upload/upload.vue', 5, '', 0, 0, '媒体库(上传下载)', 'upload', 0);
+INSERT INTO `sys_base_menus` VALUES (14, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '12', 'breakpoint', 'breakpoint', 0, 'view/example/breakpoint/breakpoint.vue', 6, '', 0, 0, '断点续传', 'upload-filled', 0);
+INSERT INTO `sys_base_menus` VALUES (15, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '12', 'customer', 'customer', 0, 'view/example/customer/customer.vue', 7, '', 0, 0, '客户列表(资源示例)', 'avatar', 0);
+INSERT INTO `sys_base_menus` VALUES (16, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'systemTools', 'systemTools', 0, 'view/systemTools/index.vue', 5, '', 0, 0, '系统工具', 'tools', 0);
+INSERT INTO `sys_base_menus` VALUES (17, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '16', 'autoCode', 'autoCode', 0, 'view/systemTools/autoCode/index.vue', 1, '', 1, 0, '代码生成器', 'cpu', 0);
+INSERT INTO `sys_base_menus` VALUES (18, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '16', 'formCreate', 'formCreate', 0, 'view/systemTools/formCreate/index.vue', 2, '', 1, 0, '表单生成器', 'magic-stick', 0);
+INSERT INTO `sys_base_menus` VALUES (19, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '16', 'system', 'system', 0, 'view/systemTools/system/system.vue', 3, '', 0, 0, '系统配置', 'operation', 0);
+INSERT INTO `sys_base_menus` VALUES (20, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '16', 'autoCodeAdmin', 'autoCodeAdmin', 0, 'view/systemTools/autoCodeAdmin/index.vue', 1, '', 0, 0, '自动化代码管理', 'magic-stick', 0);
+INSERT INTO `sys_base_menus` VALUES (21, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '16', 'autoCodeEdit/:id', 'autoCodeEdit', 1, 'view/systemTools/autoCode/index.vue', 0, '', 0, 0, '自动化代码-${id}', 'magic-stick', 0);
+INSERT INTO `sys_base_menus` VALUES (22, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '16', 'autoPkg', 'autoPkg', 0, 'view/systemTools/autoPkg/autoPkg.vue', 0, '', 0, 0, '自动化package', 'folder', 0);
+INSERT INTO `sys_base_menus` VALUES (23, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'https://www.gin-vue-admin.com', 'https://www.gin-vue-admin.com', 0, '/', 0, '', 0, 0, '官方网站', 'home-filled', 0);
+INSERT INTO `sys_base_menus` VALUES (24, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'state', 'state', 0, 'view/system/state.vue', 8, '', 0, 0, '服务器状态', 'cloudy', 0);
+INSERT INTO `sys_base_menus` VALUES (25, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '0', 'plugin', 'plugin', 0, 'view/routerHolder.vue', 6, '', 0, 0, '插件系统', 'cherry', 0);
+INSERT INTO `sys_base_menus` VALUES (26, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '25', 'https://plugin.gin-vue-admin.com/', 'https://plugin.gin-vue-admin.com/', 0, 'https://plugin.gin-vue-admin.com/', 0, '', 0, 0, '插件市场', 'shop', 0);
+INSERT INTO `sys_base_menus` VALUES (27, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '25', 'installPlugin', 'installPlugin', 0, 'view/systemTools/installPlugin/index.vue', 1, '', 0, 0, '插件安装', 'box', 0);
+INSERT INTO `sys_base_menus` VALUES (28, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '25', 'autoPlug', 'autoPlug', 0, 'view/systemTools/autoPlug/autoPlug.vue', 2, '', 0, 0, '插件模板', 'folder', 0);
+INSERT INTO `sys_base_menus` VALUES (29, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '25', 'pubPlug', 'pubPlug', 0, 'view/systemTools/pubPlug/pubPlug.vue', 3, '', 0, 0, '打包插件', 'files', 0);
+INSERT INTO `sys_base_menus` VALUES (30, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '25', 'plugin-email', 'plugin-email', 0, 'plugin/email/view/index.vue', 4, '', 0, 0, '邮件插件', 'message', 0);
+INSERT INTO `sys_base_menus` VALUES (31, '2023-08-14 16:16:31.250', '2023-08-14 16:16:31.250', NULL, 0, '16', 'chatTable', 'chatTable', 0, 'view/chatgpt/chatTable.vue', 6, '', 0, 0, '万用表格', 'chat-dot-square', 0);
+INSERT INTO `sys_base_menus` VALUES (32, '2023-08-16 08:51:08.400', '2023-08-30 14:21:05.322', NULL, 0, '0', 'camera', 'camera', 0, 'view/camera/camera.vue', 0, '', 0, 0, '监控管理', 'camera', 0);
+INSERT INTO `sys_base_menus` VALUES (33, '2023-08-30 14:41:13.050', '2023-08-30 14:45:25.389', NULL, 0, '0', 'edge', 'edge', 0, 'view/edge/edge.vue', 0, '', 0, 0, '项目', 'aim', 0);
+INSERT INTO `sys_base_menus` VALUES (34, '2023-09-02 09:56:43.237', '2023-09-02 09:56:43.237', NULL, 0, '0', 'monitor', 'monitor', 0, 'view/monitor/monitor.vue', 9, '', 0, 0, '视频监测', 'camera', 0);
+
+-- ----------------------------
+-- Table structure for sys_data_authority_id
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_data_authority_id`;
+CREATE TABLE `sys_data_authority_id`  (
+  `sys_authority_authority_id` bigint UNSIGNED NOT NULL COMMENT '角色ID',
+  `data_authority_id_authority_id` bigint UNSIGNED NOT NULL COMMENT '角色ID',
+  PRIMARY KEY (`sys_authority_authority_id`, `data_authority_id_authority_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_data_authority_id
+-- ----------------------------
+INSERT INTO `sys_data_authority_id` VALUES (888, 888);
+INSERT INTO `sys_data_authority_id` VALUES (888, 8881);
+INSERT INTO `sys_data_authority_id` VALUES (888, 9528);
+INSERT INTO `sys_data_authority_id` VALUES (9528, 8881);
+INSERT INTO `sys_data_authority_id` VALUES (9528, 9528);
+
+-- ----------------------------
+-- Table structure for sys_dictionaries
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dictionaries`;
+CREATE TABLE `sys_dictionaries`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名(中)',
+  `type` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名(英)',
+  `status` tinyint(1) NULL DEFAULT NULL COMMENT '状态',
+  `desc` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_dictionaries_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_dictionaries
+-- ----------------------------
+INSERT INTO `sys_dictionaries` VALUES (1, '2023-08-14 16:16:31.066', '2023-08-14 16:16:31.091', NULL, '性别', 'gender', 1, '性别字典');
+INSERT INTO `sys_dictionaries` VALUES (2, '2023-08-14 16:16:31.066', '2023-08-14 16:16:31.130', NULL, '数据库int类型', 'int', 1, 'int类型对应的数据库类型');
+INSERT INTO `sys_dictionaries` VALUES (3, '2023-08-14 16:16:31.066', '2023-08-14 16:16:31.148', NULL, '数据库时间日期类型', 'time.Time', 1, '数据库时间日期类型');
+INSERT INTO `sys_dictionaries` VALUES (4, '2023-08-14 16:16:31.066', '2023-08-14 16:16:31.174', NULL, '数据库浮点型', 'float64', 1, '数据库浮点型');
+INSERT INTO `sys_dictionaries` VALUES (5, '2023-08-14 16:16:31.066', '2023-08-14 16:16:31.199', NULL, '数据库字符串', 'string', 1, '数据库字符串');
+INSERT INTO `sys_dictionaries` VALUES (6, '2023-08-14 16:16:31.066', '2023-08-14 16:16:31.224', NULL, '数据库bool类型', 'bool', 1, '数据库bool类型');
+INSERT INTO `sys_dictionaries` VALUES (7, '2023-10-13 14:06:17.312', '2023-10-13 14:06:17.312', NULL, '事件类型', 'eventType', 1, '报警事件类型');
+
+-- ----------------------------
+-- Table structure for sys_dictionary_details
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dictionary_details`;
+CREATE TABLE `sys_dictionary_details`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `label` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '展示值',
+  `value` bigint NULL DEFAULT NULL COMMENT '字典值',
+  `status` tinyint(1) NULL DEFAULT NULL COMMENT '启用状态',
+  `sort` bigint NULL DEFAULT NULL COMMENT '排序标记',
+  `sys_dictionary_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '关联标记',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_dictionary_details_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_dictionary_details
+-- ----------------------------
+INSERT INTO `sys_dictionary_details` VALUES (1, '2023-08-14 16:16:31.092', '2023-08-14 16:16:31.092', NULL, '男', 1, 1, 1, 1);
+INSERT INTO `sys_dictionary_details` VALUES (2, '2023-08-14 16:16:31.092', '2023-08-14 16:16:31.092', NULL, '女', 2, 1, 2, 1);
+INSERT INTO `sys_dictionary_details` VALUES (3, '2023-08-14 16:16:31.130', '2023-08-14 16:16:31.130', NULL, 'smallint', 1, 1, 1, 2);
+INSERT INTO `sys_dictionary_details` VALUES (4, '2023-08-14 16:16:31.130', '2023-08-14 16:16:31.130', NULL, 'mediumint', 2, 1, 2, 2);
+INSERT INTO `sys_dictionary_details` VALUES (5, '2023-08-14 16:16:31.130', '2023-08-14 16:16:31.130', NULL, 'int', 3, 1, 3, 2);
+INSERT INTO `sys_dictionary_details` VALUES (6, '2023-08-14 16:16:31.130', '2023-08-14 16:16:31.130', NULL, 'bigint', 4, 1, 4, 2);
+INSERT INTO `sys_dictionary_details` VALUES (7, '2023-08-14 16:16:31.149', '2023-08-14 16:16:31.149', NULL, 'date', 0, 1, 0, 3);
+INSERT INTO `sys_dictionary_details` VALUES (8, '2023-08-14 16:16:31.149', '2023-08-14 16:16:31.149', NULL, 'time', 1, 1, 1, 3);
+INSERT INTO `sys_dictionary_details` VALUES (9, '2023-08-14 16:16:31.149', '2023-08-14 16:16:31.149', NULL, 'year', 2, 1, 2, 3);
+INSERT INTO `sys_dictionary_details` VALUES (10, '2023-08-14 16:16:31.149', '2023-08-14 16:16:31.149', NULL, 'datetime', 3, 1, 3, 3);
+INSERT INTO `sys_dictionary_details` VALUES (11, '2023-08-14 16:16:31.149', '2023-08-14 16:16:31.149', NULL, 'timestamp', 5, 1, 5, 3);
+INSERT INTO `sys_dictionary_details` VALUES (12, '2023-08-14 16:16:31.175', '2023-08-14 16:16:31.175', NULL, 'float', 0, 1, 0, 4);
+INSERT INTO `sys_dictionary_details` VALUES (13, '2023-08-14 16:16:31.175', '2023-08-14 16:16:31.175', NULL, 'double', 1, 1, 1, 4);
+INSERT INTO `sys_dictionary_details` VALUES (14, '2023-08-14 16:16:31.175', '2023-08-14 16:16:31.175', NULL, 'decimal', 2, 1, 2, 4);
+INSERT INTO `sys_dictionary_details` VALUES (15, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'char', 0, 1, 0, 5);
+INSERT INTO `sys_dictionary_details` VALUES (16, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'varchar', 1, 1, 1, 5);
+INSERT INTO `sys_dictionary_details` VALUES (17, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'tinyblob', 2, 1, 2, 5);
+INSERT INTO `sys_dictionary_details` VALUES (18, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'tinytext', 3, 1, 3, 5);
+INSERT INTO `sys_dictionary_details` VALUES (19, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'text', 4, 1, 4, 5);
+INSERT INTO `sys_dictionary_details` VALUES (20, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'blob', 5, 1, 5, 5);
+INSERT INTO `sys_dictionary_details` VALUES (21, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'mediumblob', 6, 1, 6, 5);
+INSERT INTO `sys_dictionary_details` VALUES (22, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'mediumtext', 7, 1, 7, 5);
+INSERT INTO `sys_dictionary_details` VALUES (23, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'longblob', 8, 1, 8, 5);
+INSERT INTO `sys_dictionary_details` VALUES (24, '2023-08-14 16:16:31.199', '2023-08-14 16:16:31.199', NULL, 'longtext', 9, 1, 9, 5);
+INSERT INTO `sys_dictionary_details` VALUES (25, '2023-08-14 16:16:31.225', '2023-08-14 16:16:31.225', NULL, 'tinyint', 0, 1, 0, 6);
+INSERT INTO `sys_dictionary_details` VALUES (26, '2023-10-13 14:08:06.925', '2023-10-13 14:08:06.925', NULL, '遮盖报警', 1, 1, 1, 7);
+INSERT INTO `sys_dictionary_details` VALUES (27, '2023-10-13 14:08:24.151', '2023-10-13 14:08:24.151', NULL, '进入区域', 2, 1, 2, 7);
+INSERT INTO `sys_dictionary_details` VALUES (28, '2023-10-13 14:08:40.068', '2023-10-13 14:08:40.068', NULL, '区域入侵', 3, 1, 3, 7);
+INSERT INTO `sys_dictionary_details` VALUES (29, '2023-10-13 14:08:55.249', '2023-10-13 14:08:55.249', NULL, '越界侦测', 4, 1, 4, 7);
+
+-- ----------------------------
+-- Table structure for sys_operation_records
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_operation_records`;
+CREATE TABLE `sys_operation_records`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `ip` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求ip',
+  `method` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方法',
+  `path` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求路径',
+  `status` bigint NULL DEFAULT NULL COMMENT '请求状态',
+  `latency` bigint NULL DEFAULT NULL COMMENT '延迟',
+  `agent` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代理',
+  `error_message` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '错误信息',
+  `body` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求Body',
+  `resp` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '响应Body',
+  `user_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '用户id',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_operation_records_deleted_at`(`deleted_at` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1127 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_operation_records
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_user_authority
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_authority`;
+CREATE TABLE `sys_user_authority`  (
+  `sys_user_id` bigint UNSIGNED NOT NULL,
+  `sys_authority_authority_id` bigint UNSIGNED NOT NULL COMMENT '角色ID',
+  PRIMARY KEY (`sys_user_id`, `sys_authority_authority_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户id-角色id 关联表' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_user_authority
+-- ----------------------------
+INSERT INTO `sys_user_authority` VALUES (1, 888);
+INSERT INTO `sys_user_authority` VALUES (1, 8881);
+INSERT INTO `sys_user_authority` VALUES (1, 9528);
+INSERT INTO `sys_user_authority` VALUES (2, 888);
+
+-- ----------------------------
+-- Table structure for sys_users
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_users`;
+CREATE TABLE `sys_users`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
+  `created_at` datetime(3) NULL DEFAULT NULL,
+  `updated_at` datetime(3) NULL DEFAULT NULL,
+  `deleted_at` datetime(3) NULL DEFAULT NULL,
+  `uuid` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户UUID',
+  `username` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户登录名',
+  `password` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户登录密码',
+  `nick_name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '系统用户' COMMENT '用户昵称',
+  `side_mode` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'dark' COMMENT '用户侧边主题',
+  `header_img` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'https://qmplusimg.henrongyi.top/gva_header.jpg' COMMENT '用户头像',
+  `base_color` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#fff' COMMENT '基础颜色',
+  `active_color` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#1890ff' COMMENT '活跃颜色',
+  `authority_id` bigint UNSIGNED NULL DEFAULT 888 COMMENT '用户角色ID',
+  `phone` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户手机号',
+  `email` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户邮箱',
+  `alarm_emails` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '报警通知邮箱',
+  `enable` bigint NULL DEFAULT 1 COMMENT '用户是否被冻结 1正常 2冻结',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_sys_users_deleted_at`(`deleted_at` ASC) USING BTREE,
+  INDEX `idx_sys_users_uuid`(`uuid` ASC) USING BTREE,
+  INDEX `idx_sys_users_username`(`username` ASC) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of sys_users
+-- ----------------------------
+INSERT INTO `sys_users` VALUES (1, '2023-08-14 16:16:31.443', '2023-10-14 11:17:46.642', NULL, 'c6ba6fba-d52d-43bc-aa72-38ef3efcd812', 'admin', '$2a$10$4RzeAGrcs4WcsFUyOWNHruFAGnoCcH75PzCvjeovA36ct.Z5eNRNm', '超级账号', 'dark', 'https://qmplusimg.henrongyi.top/gva_header.jpg', '#fff', '#1890ff', 888, '17611111111', '1104038181@qq.com', '1104038181@qq.com', 1);
+INSERT INTO `sys_users` VALUES (2, '2023-08-14 16:16:31.443', '2023-08-14 16:16:31.482', NULL, 'b59aec37-853f-417c-8683-8ea6f86a8a61', 'a303176530', '$2a$10$dFiTlmdgYhm7aHe9uhs51uxft8IyWrlJhLeZfGqmQknUNwqjfppVW', '用户1', 'dark', 'https:///qmplusimg.henrongyi.top/1572075907logo.png', '#fff', '#1890ff', 9528, '17611111111', '333333333@qq.com', NULL, 1);
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 3 - 0
go.mod

@@ -57,6 +57,8 @@ require (
 	github.com/klauspost/compress v1.13.6 // indirect
 	github.com/klauspost/cpuid/v2 v2.2.4 // indirect
 	github.com/leodido/go-urn v1.2.4 // indirect
+	github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f // indirect
+	github.com/lestrrat/go-strftime v0.0.0-20180220042222-ba3bf9c1d042 // indirect
 	github.com/magiconair/properties v1.8.7 // indirect
 	github.com/mattn/go-isatty v0.0.19 // indirect
 	github.com/microsoft/go-mssqldb v1.1.0 // indirect
@@ -65,6 +67,7 @@ require (
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/montanaflynn/stats v0.7.0 // indirect
 	github.com/pelletier/go-toml/v2 v2.0.8 // indirect
+	github.com/pkg/errors v0.9.1 // indirect
 	github.com/qiniu/qmgo v1.1.8 // indirect
 	github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
 	github.com/robfig/cron/v3 v3.0.1 // indirect

+ 17 - 0
go.sum

@@ -117,6 +117,7 @@ github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LB
 github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
 github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
 github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
+github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg=
 github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
 github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
@@ -206,10 +207,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk=
+github.com/jackc/pgconn v1.13.0/go.mod h1:AnowpAqO4CMIIJNZl2VJp+KrkAZciAkhEl0W0JIobpI=
+github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8=
 github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
 github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
+github.com/jackc/pgproto3/v2 v2.3.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA=
 github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk=
 github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
+github.com/jackc/pgtype v1.12.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4=
+github.com/jackc/pgx/v4 v4.17.2/go.mod h1:lcxIZN44yMIrWI78a5CpucdD14hX0SBDbNRvjDBItsw=
 github.com/jackc/pgx/v5 v5.3.1 h1:Fcr8QJ1ZeLi5zsPZqQeUZhNhxfkkKBOgJuYkJHoBOtU=
 github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8=
 github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
@@ -239,11 +246,17 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
 github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
 github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
 github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
+github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f h1:sgUSP4zdTUZYZgAGGtN5Lxk92rK+JUFOwf+FT99EEI4=
+github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f/go.mod h1:UGmTpUd3rjbtfIpwAPrcfmGf/Z1HS95TATB+m57TPB8=
+github.com/lestrrat/go-strftime v0.0.0-20180220042222-ba3bf9c1d042 h1:Bvq8AziQ5jFF4BHGAEDSqwPW1NJS3XshxbRCxtjFAZc=
+github.com/lestrrat/go-strftime v0.0.0-20180220042222-ba3bf9c1d042/go.mod h1:TPpsiPUEh0zFL1Snz4crhMlBe60PYxRHr5oFF3rRYg0=
 github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
+github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
 github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
 github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
@@ -264,11 +277,13 @@ github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJ
 github.com/montanaflynn/stats v0.7.0 h1:r3y12KyNxj/Sb/iOE46ws+3mS1+MZca1wlHQFPsY/JU=
 github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
 github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
+github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
 github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
 github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
 github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
 github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
 github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -695,12 +710,14 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
 gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
 gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
 gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU=
 gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

+ 24 - 3
main.go

@@ -3,7 +3,10 @@ package main
 import (
 	"fmt"
 	"github.com/gin-gonic/gin"
+	rotatelogs "github.com/lestrrat/go-file-rotatelogs"
 	"github.com/sirupsen/logrus"
+	"io"
+	"path"
 
 	"lc-base-frame/global"
 	"lc-base-frame/initialize"
@@ -14,9 +17,7 @@ import (
 )
 
 func main() {
-	logrus.SetLevel(logrus.DebugLevel)
-	logrus.SetOutput(os.Stdout)
-	logrus.SetReportCaller(true)
+	initLogrus()
 	initialize.OtherInit() //初始化缓存
 	//initialize.Redis()
 	global.Db = initialize.Gorm() //初始化数据库orm
@@ -53,3 +54,23 @@ func initServer(address string, router *gin.Engine) server {
 		MaxHeaderBytes: 1 << 20,
 	}
 }
+
+func initLogrus() {
+	err := os.MkdirAll("./log", os.ModeDir)
+	if err != nil {
+		panic(err)
+	}
+	fileName := path.Join("./log", "info")
+	writer, _ := rotatelogs.New(
+		fileName+".%Y%m%d.log",
+		rotatelogs.WithMaxAge(time.Duration(global.Config.Logrus.MaxAge)*time.Hour),             // 文件最大保存时间
+		rotatelogs.WithRotationTime(time.Duration(global.Config.Logrus.RotationTime)*time.Hour), // 日志切割时间间隔
+	)
+	logrus.SetLevel(logrus.DebugLevel)
+	if global.Config.Logrus.StdOut {
+		logrus.SetOutput(io.MultiWriter(os.Stdout, writer))
+	} else {
+		logrus.SetOutput(writer)
+	}
+	logrus.SetReportCaller(true)
+}