mirror of
https://github.com/yzcheng90/X-SpringBoot
synced 2025-11-08 16:49:36 +08:00
提交
This commit is contained in:
@@ -1,40 +1,19 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
Navicat MySQL Data Transfer
|
||||
|
||||
Source Server : localhost
|
||||
Source Server Type : MySQL
|
||||
Source Server Version : 80015
|
||||
Source Host : localhost:3306
|
||||
Source Schema : x_springboot
|
||||
Source Server : localhost
|
||||
Source Server Version : 80016
|
||||
Source Host : localhost:3306
|
||||
Source Database : x_springboot
|
||||
|
||||
Target Server Type : MySQL
|
||||
Target Server Version : 80015
|
||||
File Encoding : 65001
|
||||
Target Server Type : MYSQL
|
||||
Target Server Version : 80016
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 22/01/2023 17:48:41
|
||||
Date: 2023-01-29 14:33:25
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_config
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `sys_config`;
|
||||
CREATE TABLE `sys_config` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`config_key` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'key',
|
||||
`config_value` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'value',
|
||||
`config_status` tinyint(4) DEFAULT 1 COMMENT '状态 0:隐藏 1:显示',
|
||||
`remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `key`(`config_key`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统配置信息表' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_config
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_config` VALUES (1, 'CLOUD_STORAGE_CONFIG_KEY', '{\"type\":1,\"qiniuDomain\":\"\",\"qiniuPrefix\":\"upload\",\"qiniuAccessKey\":\"\",\"qiniuSecretKey\":\"\",\"qiniuBucketName\":\"sukeintel\",\"aliyunDomain\":\"\",\"aliyunPrefix\":\"\",\"aliyunEndPoint\":\"\",\"aliyunAccessKeyId\":\"\",\"aliyunAccessKeySecret\":\"\",\"aliyunBucketName\":\"\",\"qcloudDomain\":\"\",\"qcloudPrefix\":\"\",\"qcloudSecretId\":\"\",\"qcloudSecretKey\":\"\",\"qcloudBucketName\":\"\"}', 0, '云存储配置信息');
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_log
|
||||
@@ -48,9 +27,147 @@ CREATE TABLE `sys_log` (
|
||||
`params` varchar(5000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '请求参数',
|
||||
`time` bigint(20) NOT NULL COMMENT '执行时长(毫秒)',
|
||||
`ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'IP地址',
|
||||
`create_date` datetime(0) DEFAULT NULL COMMENT '创建时间',
|
||||
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 45 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统日志' ROW_FORMAT = Dynamic;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=135 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='系统日志';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_log
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_log` VALUES ('1', 'admin', '修改定时任务', 'com.suke.czx.modules.job.controller.ScheduleJobController.update()', '{\"jobId\":1,\"beanName\":\"testTask\",\"methodName\":\"test\",\"params\":\"test\",\"cronExpression\":\"0 0/30 * * * ?\",\"status\":0,\"remark\":\"有参数测试\",\"createTime\":\"Dec 1, 2016 11:16:46 PM\"}', '78', '0:0:0:0:0:0:0:1', '2018-01-08 17:22:23');
|
||||
INSERT INTO `sys_log` VALUES ('2', 'sk', '用户登录', 'com.suke.czx.modules.sys.controller.SysLoginController.login()', '\"sk\"', '1713', '0:0:0:0:0:0:0:1', '2019-04-18 13:59:11');
|
||||
INSERT INTO `sys_log` VALUES ('3', 'sk', '用户登录', 'com.suke.czx.modules.sys.controller.SysLoginController.login()', '\"sk\"', '11', '0:0:0:0:0:0:0:1', '2019-04-18 13:59:43');
|
||||
INSERT INTO `sys_log` VALUES ('4', 'admin', '保存配置', 'com.suke.czx.modules.sys.controller.SysConfigController.save()', '{\"id\":2,\"configKey\":\"test\",\"configValue\":\"test\",\"remark\":\"测试\"}', '65', '0:0:0:0:0:0:0:1', '2019-04-18 15:07:25');
|
||||
INSERT INTO `sys_log` VALUES ('5', 'admin', '保存菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.save()', '{\"menuId\":31,\"parentId\":0,\"parentName\":\"一级菜单\",\"name\":\"测试\",\"type\":0,\"orderNum\":0}', '8', '0:0:0:0:0:0:0:1', '2019-04-18 15:23:03');
|
||||
INSERT INTO `sys_log` VALUES ('6', 'admin', '删除菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.delete()', '31', '7', '0:0:0:0:0:0:0:1', '2019-04-18 15:24:26');
|
||||
INSERT INTO `sys_log` VALUES ('7', 'admin', '删除角色', 'com.suke.czx.modules.sys.controller.SysRoleController.delete()', '[5]', '9', '0:0:0:0:0:0:0:1', '2019-04-18 16:00:11');
|
||||
INSERT INTO `sys_log` VALUES ('8', 'admin', '保存角色', 'com.suke.czx.modules.sys.controller.SysRoleController.save()', '{\"roleId\":6,\"roleName\":\"测试2\",\"remark\":\"测试2\",\"createUserId\":1,\"menuIdList\":[1,3,19,20,21,22],\"createTime\":\"Apr 18, 2019 4:02:00 PM\"}', '76', '0:0:0:0:0:0:0:1', '2019-04-18 16:02:01');
|
||||
INSERT INTO `sys_log` VALUES ('9', 'admin', '删除角色', 'com.suke.czx.modules.sys.controller.SysRoleController.delete()', '[6]', '5', '0:0:0:0:0:0:0:1', '2019-04-18 16:02:09');
|
||||
INSERT INTO `sys_log` VALUES ('10', 'admin', '删除用户', 'com.suke.czx.modules.sys.controller.SysUserController.delete()', '[7]', '8', '0:0:0:0:0:0:0:1', '2019-04-18 16:04:59');
|
||||
INSERT INTO `sys_log` VALUES ('11', 'admin', '保存用户', 'com.suke.czx.modules.sys.controller.SysUserController.save()', '{\"userId\":8,\"username\":\"sk\",\"password\":\"f84d76f5e13503d2ef9580eb8472615c395ea2010ac582035d86a4bd7d9ac73c\",\"salt\":\"v4rnaIJ4zl29yGhXdjOO\",\"email\":\"sk@sk.com\",\"mobile\":\"12345678963\",\"status\":1,\"createUserId\":1,\"createTime\":\"Apr 18, 2019 4:08:20 PM\",\"roleIdList\":[]}', '66', '0:0:0:0:0:0:0:1', '2019-04-18 16:08:21');
|
||||
INSERT INTO `sys_log` VALUES ('12', 'admin', '删除用户', 'com.suke.czx.modules.sys.controller.SysUserController.delete()', '[8]', '9', '0:0:0:0:0:0:0:1', '2019-04-18 16:08:25');
|
||||
INSERT INTO `sys_log` VALUES ('13', 'admin', '保存角色', 'com.suke.czx.modules.sys.controller.SysRoleController.save()', '{\"roleId\":7,\"roleName\":\"1\",\"remark\":\"1\",\"createUserId\":1,\"menuIdList\":[1,2,15,16,17,18],\"createTime\":\"Apr 18, 2019 4:09:08 PM\"}', '23', '0:0:0:0:0:0:0:1', '2019-04-18 16:09:08');
|
||||
INSERT INTO `sys_log` VALUES ('14', 'admin', '保存角色', 'com.suke.czx.modules.sys.controller.SysRoleController.save()', '{\"roleId\":8,\"roleName\":\"2\",\"remark\":\"2\",\"createUserId\":1,\"menuIdList\":[1,2,15,16,17,18],\"createTime\":\"Apr 18, 2019 4:09:15 PM\"}', '9', '0:0:0:0:0:0:0:1', '2019-04-18 16:09:15');
|
||||
INSERT INTO `sys_log` VALUES ('15', 'admin', '保存角色', 'com.suke.czx.modules.sys.controller.SysRoleController.save()', '{\"roleId\":9,\"roleName\":\"3\",\"remark\":\"3\",\"createUserId\":1,\"menuIdList\":[1,6,7,8,9,10,11,12,13,14],\"createTime\":\"Apr 18, 2019 4:09:22 PM\"}', '8', '0:0:0:0:0:0:0:1', '2019-04-18 16:09:23');
|
||||
INSERT INTO `sys_log` VALUES ('16', 'admin', '删除角色', 'com.suke.czx.modules.sys.controller.SysRoleController.delete()', '[7,8,9]', '5', '0:0:0:0:0:0:0:1', '2019-04-18 16:09:29');
|
||||
INSERT INTO `sys_log` VALUES ('17', 'admin', '保存用户', 'com.suke.czx.modules.sys.controller.SysUserController.save()', '{\"userId\":2,\"username\":\"sk\",\"password\":\"cc523ea48e608b07a8ddc08aa774e07a0dc176bebe86bf528bb79775ea73a26b\",\"salt\":\"rKn3NKzdWEyuIqGaoyiZ\",\"email\":\"sk@sk.com\",\"mobile\":\"18365412365\",\"status\":1,\"createUserId\":1,\"createTime\":\"Apr 22, 2019 11:32:18 AM\",\"roleIdList\":[]}', '76', '0:0:0:0:0:0:0:1', '2019-04-22 11:32:18');
|
||||
INSERT INTO `sys_log` VALUES ('18', 'admin', '删除用户', 'com.suke.czx.modules.sys.controller.SysUserController.delete()', '[2]', '8', '0:0:0:0:0:0:0:1', '2019-04-22 11:32:23');
|
||||
INSERT INTO `sys_log` VALUES ('19', 'admin', '修改菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.update()', '{\"menuId\":5,\"parentId\":1,\"parentName\":\"系统管理\",\"name\":\"代码生成\",\"url\":\"modules/gen/generator.html\",\"type\":0,\"icon\":\"fa fa-th-list\",\"orderNum\":4}', '10', '127.0.0.1', '2019-04-28 15:31:25');
|
||||
INSERT INTO `sys_log` VALUES ('20', 'admin', '修改菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.update()', '{\"menuId\":5,\"parentId\":1,\"parentName\":\"系统管理\",\"name\":\"代码生成\",\"url\":\"modules/gen/generator.html\",\"type\":0,\"icon\":\"fa fa-th-list\",\"orderNum\":2}', '6', '127.0.0.1', '2019-04-28 15:32:08');
|
||||
INSERT INTO `sys_log` VALUES ('21', 'admin', '修改APK版本管理数据', 'com.suke.czx.modules.apkversion.controller.ApkVersionController.update()', '{\"id\":1,\"appName\":\"1\",\"updateContent\":\"2\",\"versionCode\":1,\"versionName\":\"2\",\"downloadUrl\":\"2\",\"md5Value\":\"1\",\"fileSize\":\"1\",\"createTime\":\"Apr 28, 2019 4:06:12 PM\",\"updateTime\":\"Apr 28, 2019 4:06:16 PM\",\"userId\":1,\"isForce\":0,\"isIgnorable\":0,\"isSilent\":0}', '12', '127.0.0.1', '2019-05-02 18:28:15');
|
||||
INSERT INTO `sys_log` VALUES ('22', 'admin', '新增APK版本管理数据', 'com.suke.czx.modules.apkversion.controller.ApkVersionController.save()', '{\"id\":2,\"appName\":\"瑞智云\",\"updateContent\":\"拉拉拉\",\"versionCode\":77,\"versionName\":\"1.7.7\",\"packageName\":\"com.ski.mobile.app.psm.sk_psm\",\"fileName\":\"app_version_1.7.7_e90074e4c96f4b8bb3381163e3525a74.apk\",\"md5Value\":\"f76a41c8f9527dfdd53f26ce4e4cfa78\",\"fileSize\":\"20178083\"}', '17', '127.0.0.1', '2019-05-02 18:48:44');
|
||||
INSERT INTO `sys_log` VALUES ('23', 'admin', '修改APK版本管理数据', 'com.suke.czx.modules.apkversion.controller.ApkVersionController.update()', '{\"id\":2,\"appName\":\"瑞智云\",\"updateContent\":\"拉拉拉\",\"versionCode\":77,\"versionName\":\"1.7.7\",\"packageName\":\"com.ski.mobile.app.psm.sk_psm\",\"fileName\":\"app_version_1.7.7_e90074e4c96f4b8bb3381163e3525a74.apk\",\"md5Value\":\"f76a41c8f9527dfdd53f26ce4e4cfa78\",\"fileSize\":\"20178083\",\"isForce\":0,\"isIgnorable\":1,\"isSilent\":1}', '17', '127.0.0.1', '2019-05-02 18:49:57');
|
||||
INSERT INTO `sys_log` VALUES ('24', 'admin', '修改APK版本管理数据', 'com.suke.czx.modules.apkversion.controller.ApkVersionController.update()', '{\"id\":1,\"appName\":\"1\",\"updateContent\":\"2\",\"versionCode\":1,\"versionName\":\"2\",\"downloadUrl\":\"11111\",\"md5Value\":\"1\",\"fileSize\":\"1\",\"createTime\":\"Apr 28, 2019 4:06:12 PM\",\"updateTime\":\"Apr 28, 2019 4:06:16 PM\",\"userId\":1,\"isForce\":0,\"isIgnorable\":1,\"isSilent\":1}', '16', '127.0.0.1', '2019-05-02 18:51:48');
|
||||
INSERT INTO `sys_log` VALUES ('25', 'admin', '删除APK版本管理数据', 'com.suke.czx.modules.apkversion.controller.ApkVersionController.delete()', '[2]', '12', '127.0.0.1', '2019-05-02 19:07:03');
|
||||
INSERT INTO `sys_log` VALUES ('26', 'admin', '保存角色', 'com.suke.czx.modules.sys.controller.SysRoleController.save()', '{\"roleId\":8,\"roleName\":\"测试\",\"remark\":\"测试\",\"createUserId\":1,\"menuIdList\":[40,35,36,37,38,39],\"createTime\":\"Dec 26, 2019 4:57:39 PM\"}', '162', '192.168.0.133', '2019-12-26 16:57:39');
|
||||
INSERT INTO `sys_log` VALUES ('27', 'admin', '删除角色', 'com.suke.czx.modules.sys.controller.SysRoleController.delete()', '[8,7,6]', '8', '192.168.0.133', '2019-12-26 16:57:51');
|
||||
INSERT INTO `sys_log` VALUES ('28', 'admin', '删除配置', 'com.suke.czx.modules.sys.controller.SysConfigController.delete()', '[2]', '41', '192.168.0.133', '2021-04-08 09:58:07');
|
||||
INSERT INTO `sys_log` VALUES ('29', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 24, 2021 2:57:36 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"111111111\",\"linkId\":\"1624517856648\",\"linkMax\":0,\"linkName\":\"测试\",\"linkStatus\":\"开\",\"linkType\":\"链\"}', '59', '192.168.0.133', '2021-06-24 14:57:37');
|
||||
INSERT INTO `sys_log` VALUES ('30', 'admin', '删除连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.delete()', '[\"1624517856648\"]', '47', '127.0.0.1', '2021-06-30 16:04:21');
|
||||
INSERT INTO `sys_log` VALUES ('31', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 30, 2021 4:07:14 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111\",\"linkId\":\"1625040434697\",\"linkMax\":0,\"linkName\":\"测试 \",\"linkStatus\":\"开\",\"linkType\":\"链\"}', '26', '127.0.0.1', '2021-06-30 16:07:15');
|
||||
INSERT INTO `sys_log` VALUES ('32', 'admin', '删除连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.delete()', '[\"1625040434697\"]', '21', '127.0.0.1', '2021-06-30 16:08:45');
|
||||
INSERT INTO `sys_log` VALUES ('33', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 30, 2021 4:08:54 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"11111\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试\",\"linkStatus\":\"开\",\"linkType\":\"链\"}', '9', '127.0.0.1', '2021-06-30 16:08:54');
|
||||
INSERT INTO `sys_log` VALUES ('34', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试\",\"linkStatus\":\"false\",\"linkType\":\"链\"}', '20', '127.0.0.1', '2021-06-30 16:12:40');
|
||||
INSERT INTO `sys_log` VALUES ('35', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试\",\"linkStatus\":\"true\",\"linkType\":\"链\"}', '22', '127.0.0.1', '2021-06-30 16:12:54');
|
||||
INSERT INTO `sys_log` VALUES ('36', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试\",\"linkStatus\":\"true\",\"linkType\":\"链\"}', '3', '127.0.0.1', '2021-06-30 16:13:07');
|
||||
INSERT INTO `sys_log` VALUES ('37', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 30, 2021 4:15:56 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"11111\",\"linkId\":\"1625040956791\",\"linkMax\":0,\"linkName\":\"测试2222\",\"linkStatus\":\"开\",\"linkType\":\"二维码\"}', '21', '127.0.0.1', '2021-06-30 16:15:57');
|
||||
INSERT INTO `sys_log` VALUES ('38', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 30, 2021 4:16:06 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111\",\"linkId\":\"1625040966056\",\"linkMax\":0,\"linkName\":\"测试33333\",\"linkStatus\":\"开\",\"linkType\":\"邀请码\"}', '21', '127.0.0.1', '2021-06-30 16:16:06');
|
||||
INSERT INTO `sys_log` VALUES ('39', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"11111\",\"linkId\":\"1625040956791\",\"linkMax\":0,\"linkName\":\"测试2222\",\"linkStatus\":\"true\",\"linkType\":\"二维码\"}', '21', '127.0.0.1', '2021-06-30 16:21:33');
|
||||
INSERT INTO `sys_log` VALUES ('40', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"11111\",\"linkId\":\"1625040956791\",\"linkMax\":0,\"linkName\":\"测试2222\",\"linkStatus\":\"true\",\"linkType\":\"二维码\"}', '2', '127.0.0.1', '2021-06-30 16:21:39');
|
||||
INSERT INTO `sys_log` VALUES ('41', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childComment\":\"2222\",\"childId\":\"1625043737573\",\"childInviteCode\":\"23333\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 5:02:17 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '40', '127.0.0.1', '2021-06-30 17:02:18');
|
||||
INSERT INTO `sys_log` VALUES ('42', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childComment\":\"ddddd\",\"childId\":\"1625044021055\",\"childInviteCode\":\"dddd\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 5:07:01 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '22', '127.0.0.1', '2021-06-30 17:07:01');
|
||||
INSERT INTO `sys_log` VALUES ('43', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childComment\":\"sss\",\"childId\":\"1625044026495\",\"childInviteCode\":\"e232323\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 5:07:06 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '21', '127.0.0.1', '2021-06-30 17:07:07');
|
||||
INSERT INTO `sys_log` VALUES ('44', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.update()', '{\"childClickCount\":0,\"childComment\":\"sss\",\"childId\":\"1625044026495\",\"childInviteCode\":\"e232323\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '14', '127.0.0.1', '2021-06-30 17:07:16');
|
||||
INSERT INTO `sys_log` VALUES ('45', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.update()', '{\"childClickCount\":0,\"childComment\":\"sss\",\"childId\":\"1625044026495\",\"childInviteCode\":\"e232323\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '4', '127.0.0.1', '2021-06-30 17:07:19');
|
||||
INSERT INTO `sys_log` VALUES ('46', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.update()', '{\"childClickCount\":0,\"childComment\":\"sss\",\"childId\":\"1625044026495\",\"childInviteCode\":\"e232323\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '4', '127.0.0.1', '2021-06-30 17:08:40');
|
||||
INSERT INTO `sys_log` VALUES ('47', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.update()', '{\"childClickCount\":0,\"childComment\":\"sss\",\"childId\":\"1625044026495\",\"childInviteCode\":\"e232323\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '4', '127.0.0.1', '2021-06-30 17:08:57');
|
||||
INSERT INTO `sys_log` VALUES ('48', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.update()', '{\"childClickCount\":0,\"childComment\":\"sss\",\"childId\":\"1625044026495\",\"childInviteCode\":\"e232323\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '3', '127.0.0.1', '2021-06-30 17:10:11');
|
||||
INSERT INTO `sys_log` VALUES ('49', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625044026495\"]', '30', '127.0.0.1', '2021-06-30 17:10:17');
|
||||
INSERT INTO `sys_log` VALUES ('50', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.update()', '{\"childClickCount\":333,\"childComment\":\"ddddd\",\"childId\":\"1625044021055\",\"childInviteCode\":\"dddd\",\"childMax\":3333,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '20', '127.0.0.1', '2021-06-30 17:11:26');
|
||||
INSERT INTO `sys_log` VALUES ('51', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 30, 2021 5:22:48 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"232323\",\"linkId\":\"1625044968627\",\"linkMax\":0,\"linkName\":\"32323\",\"linkStatus\":\"\",\"linkType\":\"邀请码\"}', '24', '127.0.0.1', '2021-06-30 17:22:49');
|
||||
INSERT INTO `sys_log` VALUES ('52', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 30, 2021 5:22:53 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"22222222222222222\",\"linkId\":\"1625044973916\",\"linkMax\":0,\"linkName\":\"23232\",\"linkStatus\":\"\",\"linkType\":\"邀请码\"}', '22', '127.0.0.1', '2021-06-30 17:22:54');
|
||||
INSERT INTO `sys_log` VALUES ('53', 'admin', '删除连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.delete()', '[\"1625044973916\"]', '19', '127.0.0.1', '2021-06-30 17:22:55');
|
||||
INSERT INTO `sys_log` VALUES ('54', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 30, 2021 5:23:20 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"222222222222222\",\"linkId\":\"1625045000085\",\"linkMax\":0,\"linkName\":\"333\",\"linkStatus\":\"\",\"linkType\":\"邀请码\"}', '21', '127.0.0.1', '2021-06-30 17:23:20');
|
||||
INSERT INTO `sys_log` VALUES ('55', 'admin', '删除连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.delete()', '[\"1625045000085\"]', '22', '127.0.0.1', '2021-06-30 17:23:22');
|
||||
INSERT INTO `sys_log` VALUES ('56', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"Jun 30, 2021 5:24:16 PM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"3333\",\"linkId\":\"1625045056236\",\"linkMax\":0,\"linkName\":\"3333\",\"linkStatus\":\"\",\"linkType\":\"邀请码\"}', '7', '127.0.0.1', '2021-06-30 17:24:16');
|
||||
INSERT INTO `sys_log` VALUES ('57', 'admin', '删除连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.delete()', '[\"1625045056236\"]', '20', '127.0.0.1', '2021-06-30 17:24:18');
|
||||
INSERT INTO `sys_log` VALUES ('58', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"Jun 30, 2021 12:00:00 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试\",\"linkStatus\":\"true\",\"linkType\":\"链\"}', '30', '127.0.0.1', '2021-07-01 09:57:36');
|
||||
INSERT INTO `sys_log` VALUES ('59', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childComment\":\"111111\",\"childId\":\"1625104995845\",\"childInviteCode\":\"111\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"二维码\",\"createTime\":\"Jul 1, 2021 10:03:15 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040956791\"}', '26', '127.0.0.1', '2021-07-01 10:03:16');
|
||||
INSERT INTO `sys_log` VALUES ('60', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childComment\":\"221212\",\"childId\":\"1625105008101\",\"childInviteCode\":\"2121\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"链\",\"createTime\":\"Jul 1, 2021 10:03:28 AM\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040534327\"}', '24', '127.0.0.1', '2021-07-01 10:03:28');
|
||||
INSERT INTO `sys_log` VALUES ('61', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625112413090\"]', '39', '127.0.0.1', '2021-07-01 15:47:11');
|
||||
INSERT INTO `sys_log` VALUES ('62', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', null, '64', '0:0:0:0:0:0:0:1', '2021-07-01 16:31:08');
|
||||
INSERT INTO `sys_log` VALUES ('63', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', null, '65', '127.0.0.1', '2021-07-01 16:32:58');
|
||||
INSERT INTO `sys_log` VALUES ('64', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625104995845\"]', '34', '127.0.0.1', '2021-07-01 16:38:52');
|
||||
INSERT INTO `sys_log` VALUES ('65', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625127372217\"]', '38', '127.0.0.1', '2021-07-01 16:43:48');
|
||||
INSERT INTO `sys_log` VALUES ('66', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625127304589\"]', '7', '127.0.0.1', '2021-07-01 16:43:49');
|
||||
INSERT INTO `sys_log` VALUES ('67', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625127494471\"]', '22', '127.0.0.1', '2021-07-01 16:43:51');
|
||||
INSERT INTO `sys_log` VALUES ('68', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625127574018\"]', '21', '127.0.0.1', '2021-07-01 16:43:52');
|
||||
INSERT INTO `sys_log` VALUES ('69', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625128267765\"]', '9', '127.0.0.1', '2021-07-01 16:43:53');
|
||||
INSERT INTO `sys_log` VALUES ('70', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.updateQRcode()', null, '41', '127.0.0.1', '2021-07-01 16:48:35');
|
||||
INSERT INTO `sys_log` VALUES ('71', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.updateQRcode()', null, '10', '127.0.0.1', '2021-07-01 16:48:54');
|
||||
INSERT INTO `sys_log` VALUES ('72', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.updateQRcode()', null, '48', '127.0.0.1', '2021-07-01 16:50:37');
|
||||
INSERT INTO `sys_log` VALUES ('73', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.updateQRcode()', null, '7', '127.0.0.1', '2021-07-01 16:51:19');
|
||||
INSERT INTO `sys_log` VALUES ('74', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.updateQRcode()', null, '14148', '127.0.0.1', '2021-07-01 16:52:01');
|
||||
INSERT INTO `sys_log` VALUES ('75', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.updateQRcode()', null, '23', '127.0.0.1', '2021-07-01 16:53:27');
|
||||
INSERT INTO `sys_log` VALUES ('76', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.updateQRcode()', null, '1901', '127.0.0.1', '2021-07-01 16:55:35');
|
||||
INSERT INTO `sys_log` VALUES ('77', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625105008101\"]', '12', '127.0.0.1', '2021-07-01 16:59:38');
|
||||
INSERT INTO `sys_log` VALUES ('78', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childClickQrcode\":null,\"childClickUrl\":\"https://blog.csdn.net/qq_42962779/article/details/115486951\",\"childComment\":\"1212212\",\"childId\":\"1625129989362\",\"childInviteCode\":\"\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"链\",\"createTime\":\"2021-07-01 16:59:49\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040534327\"}', '26', '127.0.0.1', '2021-07-01 16:59:49');
|
||||
INSERT INTO `sys_log` VALUES ('79', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childClickQrcode\":null,\"childClickUrl\":\"https://blog.csdn.net/hongyuancao/article/details/90024527\",\"childComment\":\"344444\",\"childId\":\"1625130000574\",\"childInviteCode\":\"\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"链\",\"createTime\":\"2021-07-01 17:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040534327\"}', '22', '127.0.0.1', '2021-07-01 17:00:01');
|
||||
INSERT INTO `sys_log` VALUES ('80', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625130000574\"]', '8', '127.0.0.1', '2021-07-01 17:00:28');
|
||||
INSERT INTO `sys_log` VALUES ('81', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625129989362\"]', '20', '127.0.0.1', '2021-07-01 17:00:29');
|
||||
INSERT INTO `sys_log` VALUES ('82', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试链\",\"linkStatus\":\"false\",\"linkType\":\"链\",\"inviteCodeUrl\":null}', '24', '127.0.0.1', '2021-07-01 17:02:56');
|
||||
INSERT INTO `sys_log` VALUES ('83', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"11111\",\"linkId\":\"1625040956791\",\"linkMax\":0,\"linkName\":\"测试二维码\",\"linkStatus\":\"false\",\"linkType\":\"二维码\",\"inviteCodeUrl\":null}', '19', '127.0.0.1', '2021-07-01 17:03:08');
|
||||
INSERT INTO `sys_log` VALUES ('84', 'admin', '删除连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.delete()', '[\"1625044968627\"]', '21', '127.0.0.1', '2021-07-01 17:03:13');
|
||||
INSERT INTO `sys_log` VALUES ('85', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111\",\"linkId\":\"1625040966056\",\"linkMax\":0,\"linkName\":\"测试邀请码\",\"linkStatus\":\"false\",\"linkType\":\"邀请码\",\"inviteCodeUrl\":null}', '19', '127.0.0.1', '2021-07-01 17:03:20');
|
||||
INSERT INTO `sys_log` VALUES ('86', 'admin', '修改连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.update()', '{\"childClickCount\":333,\"childClickQrcode\":\"http://localhost:8099/upfile/null\",\"childClickUrl\":null,\"childComment\":\"ddddd\",\"childId\":\"1625044021055\",\"childInviteCode\":\"dddd4444444\",\"childMax\":3333,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040966056\"}', '20', '127.0.0.1', '2021-07-01 17:03:36');
|
||||
INSERT INTO `sys_log` VALUES ('87', 'admin', '删除连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.delete()', '[\"1625040966056\"]', '49', '127.0.0.1', '2021-07-01 17:09:39');
|
||||
INSERT INTO `sys_log` VALUES ('88', 'admin', '新增连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.save()', '{\"createTime\":\"2021-07-01 17:09:53\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"111111\",\"linkId\":\"1625130593555\",\"linkMax\":0,\"linkName\":\"测试 邀请码\",\"linkStatus\":\"\",\"linkType\":\"邀请码\",\"inviteCodeUrl\":\"https://blog.csdn.net/hongyuancao/article/details/90024527\"}', '25', '127.0.0.1', '2021-07-01 17:09:54');
|
||||
INSERT INTO `sys_log` VALUES ('89', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childClickQrcode\":null,\"childClickUrl\":\"https://bscscan.com/token/0xc748673057861a797275cd8a068abb95a902e8de\",\"childComment\":\"测试\",\"childId\":\"1625132557625\",\"childInviteCode\":\"\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"链\",\"createTime\":\"2021-07-01 17:42:37\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040534327\"}', '41', '127.0.0.1', '2021-07-01 17:42:38');
|
||||
INSERT INTO `sys_log` VALUES ('90', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childClickQrcode\":null,\"childClickUrl\":null,\"childComment\":\"11111\",\"childId\":\"1625133622270\",\"childInviteCode\":\"lalalalalala\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"邀请码\",\"createTime\":\"2021-07-01 18:00:22\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625130593555\"}', '42', '127.0.0.1', '2021-07-01 18:00:22');
|
||||
INSERT INTO `sys_log` VALUES ('91', 'admin', '新增表单数据', 'com.suke.czx.modules.from.controller.TbFromController.save()', null, '9', '127.0.0.1', '2021-07-08 10:47:36');
|
||||
INSERT INTO `sys_log` VALUES ('92', 'admin', '新增表单子表数据', 'com.suke.czx.modules.from.controller.TbFromChildController.save()', null, '40', '127.0.0.1', '2021-07-08 11:21:43');
|
||||
INSERT INTO `sys_log` VALUES ('93', 'admin', '新增表单数据', 'com.suke.czx.modules.from.controller.TbFromController.save()', null, '41', '127.0.0.1', '2021-07-08 11:24:28');
|
||||
INSERT INTO `sys_log` VALUES ('94', 'admin', '新增表单子表数据', 'com.suke.czx.modules.from.controller.TbFromChildController.save()', null, '23', '127.0.0.1', '2021-07-08 11:24:43');
|
||||
INSERT INTO `sys_log` VALUES ('95', 'admin', '删除表单子表数据', 'com.suke.czx.modules.from.controller.TbFromChildController.delete()', '[\"1625714682889\"]', '36', '127.0.0.1', '2021-07-08 11:31:06');
|
||||
INSERT INTO `sys_log` VALUES ('96', 'admin', '删除表单子表数据', 'com.suke.czx.modules.from.controller.TbFromChildController.delete()', '[\"1625714502953\"]', '9', '127.0.0.1', '2021-07-08 11:31:12');
|
||||
INSERT INTO `sys_log` VALUES ('97', 'admin', '新增表单子表数据', 'com.suke.czx.modules.from.controller.TbFromChildController.save()', null, '24', '127.0.0.1', '2021-07-08 11:31:28');
|
||||
INSERT INTO `sys_log` VALUES ('98', 'admin', '修改表单子表数据', 'com.suke.czx.modules.from.controller.TbFromChildController.update()', null, '40', '127.0.0.1', '2021-07-08 11:33:23');
|
||||
INSERT INTO `sys_log` VALUES ('99', 'admin', '修改表单子表数据', 'com.suke.czx.modules.from.controller.TbFromChildController.update()', null, '40', '127.0.0.1', '2021-07-08 11:34:25');
|
||||
INSERT INTO `sys_log` VALUES ('100', 'admin', '修改表单数据', 'com.suke.czx.modules.from.controller.TbFromController.update()', null, '26', '127.0.0.1', '2021-07-08 11:34:35');
|
||||
INSERT INTO `sys_log` VALUES ('101', 'admin', '修改用户', 'com.suke.czx.modules.sys.controller.SysUserController.update()', '{\"userId\":1,\"username\":\"admin\",\"password\":\"$2a$10$XZc3ZznwtuHYD8d5RimS4OucmM/UzKohgHpw8yw05DHb73UX.4DTC\",\"email\":\"yzcheng90@qq.com\",\"mobile\":\"13612345678\",\"status\":1,\"createUserId\":1,\"createTime\":\"2016-11-11 11:11:11\",\"roleIdList\":null}', '165', '127.0.0.1', '2021-07-08 14:40:40');
|
||||
INSERT INTO `sys_log` VALUES ('102', 'admin', '修改用户', 'com.suke.czx.modules.sys.controller.SysUserController.update()', '{\"userId\":1,\"username\":\"admin\",\"password\":\"$2a$10$RG5KOoicH3f3IH948VW3AOzhJKepSteupeuQ8JAB28ElsYH3KlU4a\",\"email\":\"yzcheng90@qq.com\",\"mobile\":\"13612345678\",\"status\":1,\"createUserId\":1,\"createTime\":\"2016-11-11 11:11:11\",\"roleIdList\":null}', '95', '127.0.0.1', '2021-07-08 14:40:52');
|
||||
INSERT INTO `sys_log` VALUES ('103', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试链\",\"linkStatus\":\"true\",\"linkType\":\"链\",\"inviteCodeUrl\":null,\"gotoPageUrl\":\"http://localhost:8099/link?id=1625040534327\"}', '24', '127.0.0.1', '2021-07-08 14:46:03');
|
||||
INSERT INTO `sys_log` VALUES ('104', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试链\",\"linkStatus\":\"true\",\"linkType\":\"链\",\"inviteCodeUrl\":null,\"gotoPageUrl\":\"http://localhost:8099/link?id=1625040534327\"}', '5', '127.0.0.1', '2021-07-08 14:49:50');
|
||||
INSERT INTO `sys_log` VALUES ('105', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试链\",\"linkStatus\":\"true\",\"linkType\":\"链\",\"inviteCodeUrl\":null,\"gotoPageUrl\":\"http://localhost:8099/link?id=1625040534327\"}', '3', '127.0.0.1', '2021-07-08 14:50:22');
|
||||
INSERT INTO `sys_log` VALUES ('106', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"11111\",\"linkId\":\"1625040956791\",\"linkMax\":0,\"linkName\":\"测试二维码\",\"linkStatus\":\"true\",\"linkType\":\"二维码\",\"inviteCodeUrl\":null,\"gotoPageUrl\":\"http://localhost:8099/qrcode?id=1625040956791\"}', '21', '127.0.0.1', '2021-07-08 14:50:35');
|
||||
INSERT INTO `sys_log` VALUES ('107', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-07-01 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"111111\",\"linkId\":\"1625130593555\",\"linkMax\":0,\"linkName\":\"测试 邀请码\",\"linkStatus\":\"true\",\"linkType\":\"邀请码\",\"inviteCodeUrl\":\"https://blog.csdn.net/hongyuancao/article/details/90024527\",\"gotoPageUrl\":\"http://localhost:8099/invitecode?id=1625130593555\"}', '21', '127.0.0.1', '2021-07-08 14:50:41');
|
||||
INSERT INTO `sys_log` VALUES ('108', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试链\",\"linkStatus\":\"false\",\"linkType\":\"链\",\"inviteCodeUrl\":null,\"gotoPageUrl\":\"http://localhost:8099/link?id=1625040534327\"}', '21', '127.0.0.1', '2021-07-08 15:01:14');
|
||||
INSERT INTO `sys_log` VALUES ('109', 'admin', '修改连接表数据', 'com.suke.czx.modules.link.controller.TbLinkController.update()', '{\"createTime\":\"2021-06-30 00:00:00\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkClickCount\":0,\"linkComment\":\"1111123222\",\"linkId\":\"1625040534327\",\"linkMax\":0,\"linkName\":\"测试链\",\"linkStatus\":\"true\",\"linkType\":\"链\",\"inviteCodeUrl\":null,\"gotoPageUrl\":\"http://localhost:8099/link?id=1625040534327\"}', '21', '127.0.0.1', '2021-07-08 15:01:18');
|
||||
INSERT INTO `sys_log` VALUES ('110', 'admin', '修改用户', 'com.suke.czx.modules.sys.controller.SysUserController.update()', '{\"userId\":1,\"username\":\"admin\",\"password\":null,\"email\":\"yzcheng90@qq.com\",\"mobile\":\"13612345678\",\"status\":0,\"createUserId\":1,\"createTime\":\"2016-11-11 11:11:11\",\"roleIdList\":null}', '32', '127.0.0.1', '2021-07-08 15:03:34');
|
||||
INSERT INTO `sys_log` VALUES ('111', 'admin', '修改用户', 'com.suke.czx.modules.sys.controller.SysUserController.update()', '{\"userId\":1,\"username\":\"admin\",\"password\":null,\"email\":\"yzcheng90@qq.com\",\"mobile\":\"13612345678\",\"status\":1,\"createUserId\":1,\"createTime\":\"2016-11-11 11:11:11\",\"roleIdList\":null}', '27', '127.0.0.1', '2021-07-08 15:03:37');
|
||||
INSERT INTO `sys_log` VALUES ('112', 'admin', '修改用户', 'com.suke.czx.modules.sys.controller.SysUserController.update()', '{\"userId\":1,\"username\":\"admin\",\"password\":null,\"email\":\"yzcheng90@qq.com\",\"mobile\":\"13612345678\",\"status\":0,\"createUserId\":1,\"createTime\":\"2016-11-11 11:11:11\",\"roleIdList\":null}', '24', '127.0.0.1', '2021-07-08 15:05:24');
|
||||
INSERT INTO `sys_log` VALUES ('113', 'admin', '修改用户', 'com.suke.czx.modules.sys.controller.SysUserController.update()', '{\"userId\":1,\"username\":\"admin\",\"password\":null,\"email\":\"yzcheng90@qq.com\",\"mobile\":\"13612345678\",\"status\":1,\"createUserId\":1,\"createTime\":\"2016-11-11 11:11:11\",\"roleIdList\":null}', '9', '127.0.0.1', '2021-07-08 15:05:26');
|
||||
INSERT INTO `sys_log` VALUES ('114', 'admin', '保存用户', 'com.suke.czx.modules.sys.controller.SysUserController.save()', '{\"userId\":2,\"username\":\"cs\",\"password\":\"$2a$10$UvVljfYuIk5MaBB/329XuuXCTdXhBvMgjOzw//9/ud7eyc69ZXT42\",\"email\":\"\",\"mobile\":\"15263654789\",\"status\":1,\"createUserId\":1,\"createTime\":\"2021-07-08 15:08:27\",\"roleIdList\":null}', '95', '127.0.0.1', '2021-07-08 15:08:28');
|
||||
INSERT INTO `sys_log` VALUES ('115', 'admin', '删除用户', 'com.suke.czx.modules.sys.controller.SysUserController.delete()', '[3]', '25', '127.0.0.1', '2021-07-13 17:43:35');
|
||||
INSERT INTO `sys_log` VALUES ('116', 'admin', '删除用户', 'com.suke.czx.modules.sys.controller.SysUserController.delete()', '[2]', '20', '127.0.0.1', '2021-07-13 17:43:37');
|
||||
INSERT INTO `sys_log` VALUES ('117', 'admin', '新增连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.save()', '{\"childClickCount\":0,\"childClickQrcode\":null,\"childClickUrl\":\"https://www.baidu.com/\",\"childComment\":\"baidu\",\"childId\":\"1626318929582\",\"childInviteCode\":\"\",\"childMax\":0,\"childStatus\":\"true\",\"childType\":\"链\",\"createTime\":\"2021-07-15 11:15:29\",\"createUserId\":\"1\",\"createUsername\":\"admin\",\"linkId\":\"1625040534327\"}', '42', '127.0.0.1', '2021-07-15 11:15:30');
|
||||
INSERT INTO `sys_log` VALUES ('118', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625126319094\"]', '42', '127.0.0.1', '2021-07-15 11:19:35');
|
||||
INSERT INTO `sys_log` VALUES ('119', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625126364908\"]', '21', '127.0.0.1', '2021-07-15 11:19:36');
|
||||
INSERT INTO `sys_log` VALUES ('120', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625126420943\"]', '20', '127.0.0.1', '2021-07-15 11:19:37');
|
||||
INSERT INTO `sys_log` VALUES ('121', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625126837888\"]', '20', '127.0.0.1', '2021-07-15 11:19:38');
|
||||
INSERT INTO `sys_log` VALUES ('122', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625126973952\"]', '22', '127.0.0.1', '2021-07-15 11:19:39');
|
||||
INSERT INTO `sys_log` VALUES ('123', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625128377698\"]', '18', '127.0.0.1', '2021-07-15 11:19:40');
|
||||
INSERT INTO `sys_log` VALUES ('124', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625129314834\"]', '20', '127.0.0.1', '2021-07-15 11:19:41');
|
||||
INSERT INTO `sys_log` VALUES ('125', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625129333881\"]', '20', '127.0.0.1', '2021-07-15 11:19:43');
|
||||
INSERT INTO `sys_log` VALUES ('126', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625129436913\"]', '19', '127.0.0.1', '2021-07-15 11:19:44');
|
||||
INSERT INTO `sys_log` VALUES ('127', 'admin', '删除连接子表数据', 'com.suke.czx.modules.link.controller.TbLinkChildController.delete()', '[\"1625129479353\"]', '20', '127.0.0.1', '2021-07-15 11:19:46');
|
||||
INSERT INTO `sys_log` VALUES ('128', 'admin', '删除菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.delete()', '{\"menuId\":35,\"isHide\":false,\"isKeepAlive\":false,\"isAffix\":false,\"isIframe\":false,\"orderSort\":0,\"disabled\":false}', '29', '127.0.0.1', '2023-01-29 14:16:16');
|
||||
INSERT INTO `sys_log` VALUES ('129', 'admin', '删除菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.delete()', '{\"menuId\":33,\"isHide\":false,\"isKeepAlive\":false,\"isAffix\":false,\"isIframe\":false,\"orderSort\":0,\"disabled\":false}', '11', '127.0.0.1', '2023-01-29 14:16:20');
|
||||
INSERT INTO `sys_log` VALUES ('130', 'admin', '删除菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.delete()', '{\"menuId\":37,\"isHide\":false,\"isKeepAlive\":false,\"isAffix\":false,\"isIframe\":false,\"orderSort\":0,\"disabled\":false}', '22', '127.0.0.1', '2023-01-29 14:16:28');
|
||||
INSERT INTO `sys_log` VALUES ('131', 'admin', '删除菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.delete()', '{\"menuId\":36,\"isHide\":false,\"isKeepAlive\":false,\"isAffix\":false,\"isIframe\":false,\"orderSort\":0,\"disabled\":false}', '8', '127.0.0.1', '2023-01-29 14:16:30');
|
||||
INSERT INTO `sys_log` VALUES ('132', 'admin', '删除菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.delete()', '{\"menuId\":34,\"isHide\":false,\"isKeepAlive\":false,\"isAffix\":false,\"isIframe\":false,\"orderSort\":0,\"disabled\":false}', '9', '127.0.0.1', '2023-01-29 14:16:34');
|
||||
INSERT INTO `sys_log` VALUES ('133', 'admin', '删除菜单', 'com.suke.czx.modules.sys.controller.SysMenuController.delete()', '{\"menuId\":39,\"isHide\":false,\"isKeepAlive\":false,\"isAffix\":false,\"isIframe\":false,\"orderSort\":0,\"disabled\":false}', '21', '127.0.0.1', '2023-01-29 14:16:38');
|
||||
INSERT INTO `sys_log` VALUES ('134', 'admin', '保存用户', 'com.suke.czx.modules.sys.controller.SysUserController.save()', '{\"userId\":\"53e3215ed12b227b59b6b3b9e9efb984\",\"username\":\"test\",\"password\":\"$2a$10$OWnrThY1UGfGiu/UoEeT5e4uisibIhkhAHaENe/2hbjqYAt6XujDG\",\"email\":\"yzcheng90@qq.com\",\"mobile\":\"13888888888\",\"status\":1,\"createUserId\":\"0\",\"createTime\":\"Jan 29, 2023 2:31:15 PM\",\"roleIdList\":[5]}', '85', '127.0.0.1', '2023-01-29 14:31:16');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_menu_new
|
||||
@@ -59,37 +176,38 @@ DROP TABLE IF EXISTS `sys_menu_new`;
|
||||
CREATE TABLE `sys_menu_new` (
|
||||
`menu_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
|
||||
`parent_id` int(10) DEFAULT NULL COMMENT '菜单父ID',
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '路由名称',
|
||||
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '路由路径',
|
||||
`redirect` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '路由重定向,有子集 children 时',
|
||||
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '组件路径',
|
||||
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '菜单名称',
|
||||
`is_link` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '外链/内嵌时链接地址(http:xxx.com),开启外链条件,`1、isLink: 链接地址不为空`',
|
||||
`name` varchar(255) DEFAULT NULL COMMENT '路由名称',
|
||||
`path` varchar(255) DEFAULT NULL COMMENT '路由路径',
|
||||
`redirect` varchar(255) DEFAULT NULL COMMENT '路由重定向,有子集 children 时',
|
||||
`component` varchar(255) DEFAULT NULL COMMENT '组件路径',
|
||||
`title` varchar(255) DEFAULT NULL COMMENT '菜单名称',
|
||||
`is_link` varchar(255) DEFAULT NULL COMMENT '外链/内嵌时链接地址(http:xxx.com),开启外链条件,`1、isLink: 链接地址不为空`',
|
||||
`is_hide` int(1) DEFAULT NULL COMMENT '是否隐藏',
|
||||
`is_keep_alive` int(1) DEFAULT NULL COMMENT '是否缓存',
|
||||
`is_affix` int(1) DEFAULT NULL COMMENT '是否固定',
|
||||
`is_iframe` int(1) DEFAULT NULL COMMENT '是否内嵌,开启条件,`1、isIframe:true 2、isLink:链接地址不为空`',
|
||||
`icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '菜单图标',
|
||||
`roles` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '权限标识',
|
||||
`icon` varchar(255) DEFAULT NULL COMMENT '菜单图标',
|
||||
`roles` varchar(255) DEFAULT NULL COMMENT '权限标识',
|
||||
`order_sort` int(5) DEFAULT NULL COMMENT '排序',
|
||||
`disabled` int(1) DEFAULT NULL COMMENT '是否显示:1显示,0不显示',
|
||||
PRIMARY KEY (`menu_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '菜单管理' ROW_FORMAT = Dynamic;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='菜单管理';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_menu_new
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_menu_new` VALUES (1, 0, 'home', '/home', NULL, 'home/index', 'message.router.home', NULL, 0, 1, 1, 0, 'iconfont icon-shouye', 'admin,common', 1, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (2, 0, 'system', '/system', '/system/menu', 'layout/routerView/parent', 'message.router.system', NULL, 0, 1, 0, 0, 'iconfont icon-xitongshezhi', 'admin', 2, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (3, 0, 'logs', '/logs', NULL, 'layout/routerView/parent', 'message.router.systemLogs', NULL, 0, 1, 0, 0, 'iconfont icon-caidan', 'admin', 3, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (4, 0, 'codeGen', '/codeGen', NULL, 'code/index', 'message.router.codeGen', NULL, 0, 1, 0, 0, 'iconfont icon-caidan', 'admin', 4, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (5, 0, 'swagger', '/swagger', NULL, 'layout/routerView/parent', 'message.router.swagger', 'http://localhost:8080/swagger-ui/index.html', 0, 1, 0, 1, 'iconfont icon-caidan', 'admin', 1, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (20, 2, 'systemUser', '/systemUser', NULL, 'user/index', 'message.router.systemUser', NULL, 0, 1, 0, 0, 'iconfont icon-caidan', 'admin', 1, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (21, 2, 'systemRole', '/systemRole', NULL, 'role/index', 'message.router.systemRole', NULL, 0, 1, 0, 0, 'iconfont icon-caidan', 'admin', 2, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (22, 2, 'systemMenu', '/systemMenu', NULL, 'menu/index', 'message.router.systemMenu', NULL, 0, 1, 0, 0, 'iconfont icon-caidan', 'admin', 3, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (23, 2, 'personal', '/personal', NULL, 'personal/index', 'message.router.personal', NULL, 0, 1, 0, 0, 'iconfont icon-gerenzhongxin', 'admin,common', 4, 0);
|
||||
INSERT INTO `sys_menu_new` VALUES (31, 3, 'optionLog', '/optionLog', NULL, 'optionLog/index', 'message.router.optionLog', NULL, 0, 1, 0, 0, 'iconfont icon-caidan', 'admin', 1, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES (32, 3, 'loginLog', '/loginLog', NULL, 'loginLog/index', 'message.router.loginLog', NULL, 0, 1, 0, 0, 'iconfont icon-caidan', 'admin', 2, 1);
|
||||
INSERT INTO `sys_menu_new` VALUES ('1', '0', 'home', '/home', null, 'home/index', '首页', null, '0', '1', '1', '0', 'iconfont icon-shouye', 'admin,common', '1', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('2', '0', 'system', '/system', '/system/menu', 'layout/routerView/parent', '系统管理', null, '0', '1', '0', '0', 'iconfont icon-xitongshezhi', 'admin', '2', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('3', '0', 'logs', '/logs', null, 'layout/routerView/parent', '日志管理', null, '0', '1', '0', '0', 'el-icon-office-building', 'admin', '3', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('4', '0', 'codeGen', '/codeGen', null, 'code/index', '代码生成', null, '0', '1', '0', '0', 'el-icon-set-up', 'admin', '98', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('5', '0', 'swagger', '/swagger', null, 'layout/routerView/parent', '接口文档', 'http://localhost:8080/swagger-ui/index.html', '0', '1', '0', '1', 'el-icon-news', 'admin', '99', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('20', '2', 'systemUser', '/systemUser', null, 'user/index', '用户管理', null, '0', '1', '0', '0', 'el-icon-user', 'admin', '1', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('21', '2', 'systemRole', '/systemRole', null, 'role/index', '角色管理', null, '0', '1', '0', '0', 'el-icon-lock', 'admin', '2', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('22', '2', 'systemMenu', '/systemMenu', null, 'menu/index', '菜单管理', null, '0', '1', '0', '0', 'el-icon-box', 'admin', '3', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('23', '2', 'personal', '/personal', null, 'personal/index', '个人中心', null, '0', '1', '0', '0', 'iconfont icon-gerenzhongxin', 'admin,common', '4', '0');
|
||||
INSERT INTO `sys_menu_new` VALUES ('31', '3', 'optionLog', '/optionLog', null, 'optionLog/index', '操作日志', null, '0', '1', '0', '0', 'el-icon-tickets', 'admin', '1', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('32', '3', 'loginLog', '/loginLog', null, 'loginLog/index', '登录日志', null, '0', '1', '0', '0', 'el-icon-tickets', 'admin', '2', '1');
|
||||
INSERT INTO `sys_menu_new` VALUES ('38', '2', 'apkVersion', '/apkVersion', null, 'apk/index', 'APK版本管理', null, '0', '1', '0', '0', 'iconfont icon-caidan', 'admin', '99', '1');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_oss
|
||||
@@ -98,9 +216,13 @@ DROP TABLE IF EXISTS `sys_oss`;
|
||||
CREATE TABLE `sys_oss` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'URL地址',
|
||||
`create_date` datetime(0) DEFAULT NULL COMMENT '创建时间',
|
||||
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '文件上传' ROW_FORMAT = Dynamic;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='文件上传';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_oss
|
||||
-- ----------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_role
|
||||
@@ -111,15 +233,15 @@ CREATE TABLE `sys_role` (
|
||||
`role_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色名称',
|
||||
`remark` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建者ID',
|
||||
`create_time` datetime(0) DEFAULT NULL COMMENT '创建时间',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`role_id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色' ROW_FORMAT = Dynamic;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='角色';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_role
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_role` VALUES (4, '管理员', '管理员', 1, '2019-04-18 10:12:05');
|
||||
INSERT INTO `sys_role` VALUES (5, 'test', 'test', 1, '2019-07-03 22:00:59');
|
||||
INSERT INTO `sys_role` VALUES ('4', '管理员', '管理员', '1', '2019-04-18 10:12:05');
|
||||
INSERT INTO `sys_role` VALUES ('5', '测试', '测试', '1', '2019-12-26 16:51:37');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_role_menu
|
||||
@@ -130,38 +252,36 @@ CREATE TABLE `sys_role_menu` (
|
||||
`role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
|
||||
`menu_id` bigint(20) DEFAULT NULL COMMENT '菜单ID',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 74 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色与菜单对应关系' ROW_FORMAT = Dynamic;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='角色与菜单对应关系';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_role_menu
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_role_menu` VALUES (70, 5, 21);
|
||||
INSERT INTO `sys_role_menu` VALUES (71, 5, 22);
|
||||
INSERT INTO `sys_role_menu` VALUES (72, 4, 1);
|
||||
INSERT INTO `sys_role_menu` VALUES (73, 4, 23);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_user
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `sys_user`;
|
||||
CREATE TABLE `sys_user` (
|
||||
`user_id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` varchar(50) NOT NULL,
|
||||
`username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
|
||||
`password` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '密码',
|
||||
`email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '邮箱',
|
||||
`mobile` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号',
|
||||
`status` tinyint(4) DEFAULT NULL COMMENT '状态 0:禁用 1:正常',
|
||||
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建者ID',
|
||||
`create_time` datetime(0) DEFAULT NULL COMMENT '创建时间',
|
||||
`create_user_id` varchar(50) DEFAULT NULL COMMENT '创建者ID',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`photo` varchar(500) DEFAULT NULL COMMENT '头像',
|
||||
`name` varchar(255) DEFAULT NULL COMMENT '姓名',
|
||||
PRIMARY KEY (`user_id`) USING BTREE,
|
||||
UNIQUE INDEX `username`(`username`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '系统用户' ROW_FORMAT = Dynamic;
|
||||
UNIQUE KEY `username` (`username`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='系统用户';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_user
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$2fqKaiQls45Gmm.zefOtG.RPD5d.v1ZmNi4dtblFN7sSLNhlwlk9G', 'yzcheng90@qq.com', '13612345678', 1, 1, '2016-11-11 11:11:11');
|
||||
INSERT INTO `sys_user` VALUES (2, 'yzcheng90', '$2a$10$qgNGn7J8G5/FY27yro2NU.qV0edfgJ5UbDvjKWZtU/P9umE.QCjRW', 'yzcheng90@qq.com', '13888888888', 1, 1, '2019-07-03 22:00:19');
|
||||
INSERT INTO `sys_user` VALUES ('0', 'admin', '$2a$10$RG5KOoicH3f3IH948VW3AOzhJKepSteupeuQ8JAB28ElsYH3KlU4a', 'yzcheng90@qq.com', '13612345678', '1', '1', '2016-11-11 11:11:11', null, null);
|
||||
INSERT INTO `sys_user` VALUES ('53e3215ed12b227b59b6b3b9e9efb984', 'test', '$2a$10$OWnrThY1UGfGiu/UoEeT5e4uisibIhkhAHaENe/2hbjqYAt6XujDG', 'yzcheng90@qq.com', '13888888888', '1', '0', '2023-01-29 14:31:16', null, null);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_user_role
|
||||
@@ -169,59 +289,44 @@ INSERT INTO `sys_user` VALUES (2, 'yzcheng90', '$2a$10$qgNGn7J8G5/FY27yro2NU.qV0
|
||||
DROP TABLE IF EXISTS `sys_user_role`;
|
||||
CREATE TABLE `sys_user_role` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` bigint(20) DEFAULT NULL COMMENT '用户ID',
|
||||
`user_id` varchar(50) DEFAULT NULL COMMENT '用户ID',
|
||||
`role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户与角色对应关系' ROW_FORMAT = Dynamic;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户与角色对应关系';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_user_role
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_user_role` VALUES (3, 3, 4);
|
||||
INSERT INTO `sys_user_role` VALUES (7, 2, 4);
|
||||
INSERT INTO `sys_user_role` VALUES ('2', '53e3215ed12b227b59b6b3b9e9efb984', '5');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_apk_version
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_apk_version`;
|
||||
CREATE TABLE `tb_apk_version` (
|
||||
`id` bigint(20) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
|
||||
`update_content` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新内容',
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`update_content` varchar(2000) DEFAULT NULL COMMENT '更新内容',
|
||||
`version_code` int(11) DEFAULT NULL COMMENT '版本码',
|
||||
`version_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '版本号',
|
||||
`package_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '包名',
|
||||
`download_url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '下载地址',
|
||||
`app_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'APP名',
|
||||
`md5_value` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'MD5值',
|
||||
`file_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名',
|
||||
`file_size` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件大小',
|
||||
`create_time` datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',
|
||||
`update_time` datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
|
||||
`user_id` int(11) DEFAULT NULL COMMENT '上传人',
|
||||
`version_name` varchar(20) DEFAULT NULL COMMENT '版本号',
|
||||
`package_name` varchar(255) DEFAULT NULL COMMENT '包名',
|
||||
`download_url` varchar(255) DEFAULT NULL COMMENT '下载地址',
|
||||
`app_name` varchar(255) DEFAULT NULL COMMENT 'APP名',
|
||||
`md5_value` varchar(255) DEFAULT NULL COMMENT 'MD5值',
|
||||
`file_name` varchar(255) DEFAULT NULL COMMENT '文件名',
|
||||
`file_size` varchar(255) DEFAULT NULL COMMENT '文件大小',
|
||||
`create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
`user_id` varchar(50) DEFAULT NULL COMMENT '上传人',
|
||||
`is_force` tinyint(4) DEFAULT NULL COMMENT '是否强制安装',
|
||||
`is_ignorable` tinyint(4) DEFAULT NULL COMMENT '是否可忽略该版本',
|
||||
`is_silent` tinyint(4) DEFAULT NULL COMMENT '是否静默下载',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'APK版本管理' ROW_FORMAT = Dynamic;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='APK版本管理';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_app_update
|
||||
-- Records of tb_apk_version
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `tb_app_update`;
|
||||
CREATE TABLE `tb_app_update` (
|
||||
`appid` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'APPID ',
|
||||
`update_content` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新内容',
|
||||
`version_code` int(20) DEFAULT NULL COMMENT '版本码',
|
||||
`version_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '版本号',
|
||||
`url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'URL地址',
|
||||
`app_file_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名',
|
||||
`md5` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'MD5值',
|
||||
`size` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件大小',
|
||||
`is_force` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否强制安装',
|
||||
`is_ignorable` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否可忽略该版本',
|
||||
`is_silent` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否静默下载:有新版本时不提示直接下载',
|
||||
`upload_time` datetime(0) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '上传时间'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'APP版本管理' ROW_FORMAT = Dynamic;
|
||||
INSERT INTO `tb_apk_version` VALUES ('3', '新增v1.0.0版本', '445', '4.4.5', 'com.sup.android.superb', 'https://cdn.wowud1.cc/task/2023-01-27/ef79def81fca4249a2e3c065c9d8c93f.apk', '皮皮虾', 'aef5b96315f0eee773f8838738605a32', 'aef5b96315f0eee773f8838738605a32.apk', '51870114', '2023-01-27 17:00:35', '2023-01-27 17:00:35', '0', '0', '1', '0');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tb_login_log
|
||||
@@ -231,10 +336,46 @@ CREATE TABLE `tb_login_log` (
|
||||
`log_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登录日志ID',
|
||||
`username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户名',
|
||||
`option_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '操作',
|
||||
`option_time` datetime(0) DEFAULT NULL COMMENT '操作时间',
|
||||
`option_time` datetime DEFAULT NULL COMMENT '操作时间',
|
||||
`option_ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '操作IP',
|
||||
`option_terminal` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '操作终端',
|
||||
PRIMARY KEY (`log_id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '登录日志管理' ROW_FORMAT = Dynamic;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='登录日志管理';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
-- ----------------------------
|
||||
-- Records of tb_login_log
|
||||
-- ----------------------------
|
||||
INSERT INTO `tb_login_log` VALUES ('02a8518ac0cb5241ab2a543d536059a9', 'admin', '用户退出成功', '2023-01-23 15:44:07', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('0635b2dfc870c682724a287ad63594d8', 'admin', '用户登录成功', '2023-01-28 13:31:45', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('0c98d023c1232a3050504a2697bd586a', 'admin', '用户登录成功', '2023-01-23 15:55:40', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('0fd6ba2a6f4981586a2209e891b1660a', 'admin', '用户退出成功', '2023-01-23 21:13:06', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('116be420907d6d43626c2c51c3ebe284', 'admin', '用户登录成功', '2023-01-28 17:57:58', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('12ceefc8da0e4b4fba94a23cdb71a873', 'admin', '用户登录成功', '2023-01-23 15:41:15', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('227c9e89518229e5f6b0e5f2fcd1113e', 'admin', '用户登录成功[手机号]', '2023-01-28 18:25:06', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('25e44604b4ce1a4349f41b5ba572a978', 'admin', '用户退出成功', '2023-01-24 20:07:13', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('3024e30b5bcee1e87e240f5823ba695e', 'admin', '用户登录成功', '2023-01-23 15:36:59', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('40b8e297e7d4364db7dd96dd7a80de4c', 'test', '用户登录成功', '2023-01-23 21:13:18', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('43874d58505abd7e67e74ebad14dfc9c', 'admin', '用户登录成功', '2023-01-25 14:30:14', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('441ba63f0ca357a520d7f1e61a4e6ee4', 'admin', '用户登录成功', '2023-01-28 18:24:04', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('46fbcf8c017e87fe8407bfdb195742f7', 'admin', '用户登录成功', '2023-01-23 15:46:45', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('514adb2762a6d9e3725298131cc84645', 'test', '用户退出成功', '2023-01-23 21:13:27', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('5e234a3dca8f514c3892992fe302f1b3', 'admin', '用户登录成功', '2023-01-28 13:36:58', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('6302b74c9bed8674bfe9ef0985576dc1', 'test', '用户退出成功', '2023-01-24 20:07:47', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('6589640f61250c2a107b788dd7e774ca', 'admin', '用户登录成功', '2023-01-29 14:04:37', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('67082e76251ea6fd96444d9e8490ed8f', 'admin', '用户登录成功', '2023-01-23 15:39:44', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('7328fecb140f7d18d3710d28e73be9d1', 'admin', '用户登录成功', '2023-01-24 20:07:54', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('78248a471e0f8785d15aa4de6ce58e49', 'admin', '用户登录成功[手机号]', '2023-01-28 17:40:57', '0:0:0:0:0:0:0:1', 'PostmanRuntime/7.1.5');
|
||||
INSERT INTO `tb_login_log` VALUES ('7fbb3fb4677daf6c0c2406afe325e9ff', 'admin', '用户退出成功', '2023-01-23 15:39:37', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('882fe48862bf8e8d10ec15e0195ca8fc', 'admin', '用户登录成功', '2023-01-23 21:13:36', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('888349d329d08fe812fe9e51b80fbe95', 'admin', '用户登录成功', '2023-01-26 16:11:41', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('8892540509afa3265f7699600a2f8bb4', 'admin', '用户退出成功', '2023-01-23 15:55:33', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('924f382efc5a7eaf8814b8ff2d966862', 'admin', '用户退出成功', '2023-01-23 15:41:08', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('9ddba3bf93926e1b2c6ce4ac77c5cab3', 'admin', '用户登录成功', '2023-01-29 14:01:34', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('a3e70585a385990ed42af5be51006865', 'admin', '用户登录成功', '2023-01-27 16:16:23', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('a54fd63759f55e29e7aa9639255e97e7', 'admin', '用户登录成功[手机号]', '2023-01-28 17:59:07', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('a59c1498299567bfdb86c8a9634bc737', 'admin', '用户退出成功', '2023-01-27 22:48:02', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('a9cca1773f9b79483df0ace2fdd92403', 'admin', '用户登录成功', '2023-01-24 15:02:40', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('d01440fa28be7d0dfa0dff32b7b638d7', 'admin', '用户登录成功', '2023-01-28 13:56:20', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('d804774b0e2249542c4a29b950853362', 'test', '用户登录成功', '2023-01-24 20:07:33', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('d859fb30f7488e826f1052185c876808', 'admin', '用户登录成功', '2023-01-29 13:53:26', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36');
|
||||
INSERT INTO `tb_login_log` VALUES ('db34a158120f91a3fef7f91fec0d2472', 'admin', '用户登录成功', '2023-01-27 22:48:16', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36');
|
||||
|
||||
35
pom.xml
35
pom.xml
@@ -23,12 +23,9 @@
|
||||
<hutool.version>5.8.11</hutool.version>
|
||||
<swagger.version>3.0.0</swagger.version>
|
||||
|
||||
<minio.version>6.0.2</minio.version>
|
||||
<velocity.version>1.7</velocity.version>
|
||||
<kaptcha.version>0.0.9</kaptcha.version>
|
||||
<qiniu.version>[7.2.0, 7.2.99]</qiniu.version>
|
||||
<aliyun.oss.version>2.5.0</aliyun.oss.version>
|
||||
<qcloud.cos.version>4.4</qcloud.cos.version>
|
||||
<qiniu.version>7.12.1</qiniu.version>
|
||||
<gson.version>2.8.9</gson.version>
|
||||
|
||||
<commons.fileupload.version>1.3.3</commons.fileupload.version>
|
||||
@@ -73,7 +70,7 @@
|
||||
<dependency>
|
||||
<groupId>com.github.yzcheng90</groupId>
|
||||
<artifactId>autofull-spring-boot-starter</artifactId>
|
||||
<version>1.3.5</version>
|
||||
<version>1.3.7</version>
|
||||
</dependency>
|
||||
|
||||
<!--apk 解析-->
|
||||
@@ -126,18 +123,6 @@
|
||||
<version>${commons.configuration.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 监控端点-->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
<!--minio文件系统-->
|
||||
<dependency>
|
||||
<groupId>io.minio</groupId>
|
||||
<artifactId>minio</artifactId>
|
||||
<version>${minio.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--hutool-->
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
@@ -157,22 +142,6 @@
|
||||
<artifactId>qiniu-java-sdk</artifactId>
|
||||
<version>${qiniu.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun.oss</groupId>
|
||||
<artifactId>aliyun-sdk-oss</artifactId>
|
||||
<version>${aliyun.oss.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.qcloud</groupId>
|
||||
<artifactId>cos_api</artifactId>
|
||||
<version>${qcloud.cos.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!--Lombok-->
|
||||
<dependency>
|
||||
|
||||
@@ -39,7 +39,7 @@ public class CustomUserDetailsService implements UserDetailsService {
|
||||
return getDetail(sysUser);
|
||||
}
|
||||
|
||||
public UserDetails loadUserByUserId(Long userId) throws UsernameNotFoundException {
|
||||
public UserDetails loadUserByUserId(String userId) throws UsernameNotFoundException {
|
||||
SysUser sysUser = sysUserService.getById(userId);
|
||||
if (ObjectUtil.isNull(sysUser)) {
|
||||
throw new UsernameNotFoundException("用户不存在");
|
||||
|
||||
@@ -17,9 +17,9 @@ import java.util.Collection;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class CustomUserDetailsUser extends User implements Serializable {
|
||||
|
||||
private Long userId;
|
||||
private String userId;
|
||||
|
||||
public CustomUserDetailsUser(Long userId,String username, String password, Collection<? extends GrantedAuthority> authorities) {
|
||||
public CustomUserDetailsUser(String userId,String username, String password, Collection<? extends GrantedAuthority> authorities) {
|
||||
super(username, password, authorities);
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@ import cn.hutool.core.util.CharsetUtil;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.suke.czx.common.event.LoginLogEvent;
|
||||
import com.suke.czx.common.utils.IPUtils;
|
||||
import com.suke.czx.common.utils.R;
|
||||
import com.suke.czx.common.utils.SpringContextUtils;
|
||||
import com.suke.czx.modules.sys.entity.SysLoginLog;
|
||||
import com.suke.zhjg.common.autofull.util.R;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.MediaType;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class CustomAuthenticationSuccessHandler implements AuthenticationSuccess
|
||||
@Override
|
||||
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
|
||||
String token;
|
||||
Long userId = 0l;
|
||||
String userId = "";
|
||||
String userName = "";
|
||||
if (authentication.getPrincipal() instanceof CustomUserDetailsUser) {
|
||||
CustomUserDetailsUser userDetailsUser = (CustomUserDetailsUser) authentication.getPrincipal();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.suke.czx.authentication.handler;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.suke.czx.common.utils.R;
|
||||
import com.suke.zhjg.common.autofull.util.R;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.security.core.AuthenticationException;
|
||||
|
||||
15
src/main/java/com/suke/czx/common/annotation/XssIgnore.java
Normal file
15
src/main/java/com/suke/czx/common/annotation/XssIgnore.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package com.suke.czx.common.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* 忽略XSS过滤
|
||||
* @author czx
|
||||
* @email yzcheng90@qq.com
|
||||
*/
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface XssIgnore {
|
||||
|
||||
}
|
||||
@@ -29,7 +29,7 @@ public abstract class AbstractController {
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
protected Long getUserId() {
|
||||
protected String getUserId() {
|
||||
return UserUtil.getUserId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.suke.czx.common.exception;
|
||||
|
||||
import com.suke.czx.common.utils.R;
|
||||
import com.suke.zhjg.common.autofull.util.R;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.http.HttpStatus;
|
||||
|
||||
@@ -19,7 +19,7 @@ public class Constant {
|
||||
public static final int TOKEN_EXPIRE = 60 * 60 * 24 * 7;
|
||||
|
||||
/** 超级管理员ID */
|
||||
public static final int SUPER_ADMIN = 1;
|
||||
public static final String SUPER_ADMIN = "0";
|
||||
|
||||
public static final int CODE_SIZE = 4;
|
||||
|
||||
|
||||
@@ -190,12 +190,12 @@ public class GenUtils {
|
||||
}
|
||||
|
||||
// js
|
||||
if (makerConfig.isFileEntity() && template.contains("index.js.vm")) {
|
||||
if (makerConfig.isGenUi() && template.contains("index.js.vm")) {
|
||||
return File.separator + "src" + File.separator + "api" + File.separator + moduleName + File.separator + "index.js";
|
||||
}
|
||||
|
||||
// vue
|
||||
if (makerConfig.isFileEntity() && template.contains("index.vue.vm")) {
|
||||
if (makerConfig.isGenUi() && template.contains("index.vue.vm")) {
|
||||
return File.separator + "src" + File.separator + "views" + File.separator + moduleName + File.separator + "index.vue";
|
||||
}
|
||||
|
||||
|
||||
@@ -1,128 +0,0 @@
|
||||
package com.suke.czx.common.utils;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.suke.zhjg.common.autofull.handler.AutoFullHandler;
|
||||
import com.suke.zhjg.common.autofull.sequence.AutoSequence;
|
||||
import org.apache.http.HttpStatus;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 返回数据
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2016年10月27日 下午9:59:27
|
||||
*/
|
||||
public class R extends HashMap<String, Object> {
|
||||
|
||||
private static final int defaultLevel = 1;
|
||||
|
||||
public R() {
|
||||
put("code", 200);
|
||||
put("msg", "success");
|
||||
}
|
||||
|
||||
public static R error() {
|
||||
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请联系管理员");
|
||||
}
|
||||
|
||||
public static R error(String msg) {
|
||||
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
|
||||
}
|
||||
|
||||
public static R error(int code, String msg) {
|
||||
R r = new R();
|
||||
r.put("code", code);
|
||||
r.put("msg", msg);
|
||||
return r;
|
||||
}
|
||||
|
||||
public static R ok(String msg) {
|
||||
R r = new R();
|
||||
r.put("msg", msg);
|
||||
return r;
|
||||
}
|
||||
|
||||
public static R ok(String msg,String data) {
|
||||
R r = new R();
|
||||
r.put("msg", msg);
|
||||
r.put("data", data);
|
||||
return r;
|
||||
}
|
||||
|
||||
public static R ok(Map<String, Object> map) {
|
||||
R r = new R();
|
||||
r.putAll(map);
|
||||
return r;
|
||||
}
|
||||
|
||||
public static R ok() {
|
||||
return new R();
|
||||
}
|
||||
|
||||
public R setPage(Object value) {
|
||||
super.put("page", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public R setData(Object value) {
|
||||
super.put("data", value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <T> R autoFullData(IPage<T> iPage){
|
||||
String sequence = AutoSequence.init().put(defaultLevel);
|
||||
AutoFullHandler.full(iPage,sequence);
|
||||
AutoSequence.init().remove(sequence);
|
||||
super.put("data", iPage);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <T> R autoFullData(List<T> list){
|
||||
String sequence = AutoSequence.init().put(defaultLevel);
|
||||
AutoFullHandler.full(list,sequence);
|
||||
AutoSequence.init().remove(sequence);
|
||||
super.put("data", list);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <T> R autoFullData(T entity){
|
||||
String sequence = AutoSequence.init().put(defaultLevel);
|
||||
AutoFullHandler.full(entity,sequence);
|
||||
AutoSequence.init().remove(sequence);
|
||||
super.put("data", entity);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <T> R autoFullData(IPage<T> iPage,int maxLevel){
|
||||
String sequence = AutoSequence.init().put(maxLevel);
|
||||
AutoFullHandler.full(iPage,sequence,defaultLevel);
|
||||
AutoSequence.init().remove(sequence);
|
||||
super.put("data", iPage);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <T> R autoFullData(List<T> list,int maxLevel){
|
||||
String sequence = AutoSequence.init().put(maxLevel);
|
||||
AutoFullHandler.full(list,sequence,defaultLevel);
|
||||
AutoSequence.init().remove(sequence);
|
||||
super.put("data", list);
|
||||
return this;
|
||||
}
|
||||
|
||||
public <T> R autoFullData(T entity,int maxLevel){
|
||||
String sequence = AutoSequence.init().put(maxLevel);
|
||||
AutoFullHandler.full(entity,sequence,defaultLevel);
|
||||
AutoSequence.init().remove(sequence);
|
||||
super.put("data", entity);
|
||||
return this;
|
||||
}
|
||||
|
||||
public R put(String key, Object value) {
|
||||
super.put(key, value);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ public class UserUtil {
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public Long getUserId() {
|
||||
public String getUserId() {
|
||||
return getUser() == null ? null :getUser().getUserId();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.suke.czx.common.xss;
|
||||
|
||||
import com.suke.czx.common.utils.SpringContextUtils;
|
||||
import com.suke.czx.config.XssIgnoreConfig;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
@@ -45,8 +47,13 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
|
||||
return super.getInputStream();
|
||||
}
|
||||
|
||||
|
||||
//xss过滤
|
||||
final XssIgnoreConfig xssIgnoreConfig = SpringContextUtils.getBean(XssIgnoreConfig.class);
|
||||
final String requestURI = orgRequest.getRequestURI();
|
||||
if (xssIgnoreConfig == null || !xssIgnoreConfig.isContains(requestURI)) {
|
||||
json = xssEncode(json);
|
||||
}
|
||||
final ByteArrayInputStream bis = new ByteArrayInputStream(json.getBytes("utf-8"));
|
||||
return new ServletInputStream() {
|
||||
@Override
|
||||
|
||||
62
src/main/java/com/suke/czx/config/XssIgnoreConfig.java
Normal file
62
src/main/java/com/suke/czx/config/XssIgnoreConfig.java
Normal file
@@ -0,0 +1,62 @@
|
||||
package com.suke.czx.config;
|
||||
|
||||
import cn.hutool.core.util.ReUtil;
|
||||
import com.suke.czx.common.annotation.XssIgnore;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.annotation.AnnotationUtils;
|
||||
import org.springframework.web.context.WebApplicationContext;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @author czx
|
||||
* @title: AuthIgnoreConfig
|
||||
* @projectName x-springboot
|
||||
* @description: TODO
|
||||
* @date 2019/12/2415:56
|
||||
*/
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class XssIgnoreConfig implements InitializingBean {
|
||||
|
||||
@Autowired
|
||||
private WebApplicationContext applicationContext;
|
||||
|
||||
private static final Pattern PATTERN = Pattern.compile("\\{(.*?)\\}");
|
||||
private static final String ASTERISK = "*";
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private List<String> ignoreUrls = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet(){
|
||||
RequestMappingHandlerMapping mapping = applicationContext.getBean("requestMappingHandlerMapping",RequestMappingHandlerMapping.class);
|
||||
Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();
|
||||
map.keySet().forEach(mappingInfo -> {
|
||||
HandlerMethod handlerMethod = map.get(mappingInfo);
|
||||
XssIgnore method = AnnotationUtils.findAnnotation(handlerMethod.getMethod(), XssIgnore.class);
|
||||
if(method != null){
|
||||
mappingInfo.getPathPatternsCondition().getPatternValues().stream().forEach(url ->{
|
||||
ignoreUrls.add(ReUtil.replaceAll(url, PATTERN, ASTERISK));
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public boolean isContains(String url){
|
||||
final String u = ReUtil.replaceAll(url, PATTERN, ASTERISK);
|
||||
return ignoreUrls.contains(u);
|
||||
}
|
||||
}
|
||||
@@ -5,9 +5,9 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.suke.czx.authentication.detail.CustomUserDetailsService;
|
||||
import com.suke.czx.common.utils.Constant;
|
||||
import com.suke.czx.common.utils.R;
|
||||
import com.suke.czx.common.utils.SpringContextUtils;
|
||||
import com.suke.czx.config.AuthIgnoreConfig;
|
||||
import com.suke.zhjg.common.autofull.util.R;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
@@ -63,7 +63,7 @@ public class AuthenticationTokenFilter extends BasicAuthenticationFilter {
|
||||
return;
|
||||
}
|
||||
|
||||
Long userId = Long.valueOf(user[0]);
|
||||
String userId = user[0];
|
||||
CustomUserDetailsService customUserDetailsService = SpringContextUtils.getBean(CustomUserDetailsService.class);
|
||||
UserDetails userDetails = customUserDetailsService.loadUserByUserId(userId);
|
||||
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.suke.czx.modules.apk.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.suke.czx.common.annotation.SysLog;
|
||||
import com.suke.czx.common.base.AbstractController;
|
||||
import com.suke.czx.modules.apk.entity.TbApkVersion;
|
||||
import com.suke.czx.modules.apk.service.TbApkVersionService;
|
||||
import com.suke.zhjg.common.autofull.util.R;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* APK版本管理
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2023-01-26 20:32:33
|
||||
*/
|
||||
@RestController
|
||||
@AllArgsConstructor
|
||||
@RequestMapping("/apk/version")
|
||||
@Api(value = "TbApkVersionController", tags = "APK版本管理")
|
||||
public class TbApkVersionController extends AbstractController {
|
||||
private final TbApkVersionService tbApkVersionService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@ApiOperation(value = "APK版本管理列表")
|
||||
@GetMapping("/list")
|
||||
public R list(@RequestParam Map<String, Object> params) {
|
||||
//查询列表数据
|
||||
QueryWrapper<TbApkVersion> queryWrapper = new QueryWrapper<>();
|
||||
final String keyword = mpPageConvert.getKeyword(params);
|
||||
if (StrUtil.isNotEmpty(keyword)) {
|
||||
queryWrapper.lambda().and(func -> func.like(TbApkVersion::getUpdateContent,keyword));
|
||||
}
|
||||
queryWrapper.lambda().orderByDesc(TbApkVersion::getCreateTime);
|
||||
IPage<TbApkVersion> listPage = tbApkVersionService.page(mpPageConvert.<TbApkVersion>pageParamConvert(params), queryWrapper);
|
||||
return R.ok().setData(listPage);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增APK版本管理
|
||||
*/
|
||||
@ApiOperation(value = "新增APK版本管理数据")
|
||||
@SysLog("新增APK版本管理数据")
|
||||
@PostMapping("/save")
|
||||
public R save(@RequestBody TbApkVersion param) {
|
||||
param.setCreateTime(new Date());
|
||||
param.setUserId(getUserId());
|
||||
tbApkVersionService.save(param);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@ApiOperation(value = "删除APK版本管理数据")
|
||||
@SysLog("删除APK版本管理数据")
|
||||
@PostMapping("/delete")
|
||||
public R delete(@RequestBody TbApkVersion param) {
|
||||
if(param.getId() == null){
|
||||
return R.error("ID为空");
|
||||
}
|
||||
tbApkVersionService.removeById(param.getId());
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.suke.czx.modules.apk.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* APK版本管理
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2023-01-26 20:32:33
|
||||
*/
|
||||
@Data
|
||||
@TableName("tb_apk_version")
|
||||
public class TbApkVersion implements Serializable {
|
||||
public static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty(value = "id")
|
||||
public Long id;
|
||||
|
||||
@ApiModelProperty(value = "更新内容")
|
||||
@JsonProperty(value = "updateContent")
|
||||
public String updateContent;
|
||||
|
||||
@ApiModelProperty(value = "版本码")
|
||||
@JsonProperty(value = "versionCode")
|
||||
public Integer versionCode;
|
||||
|
||||
@ApiModelProperty(value = "版本号")
|
||||
@JsonProperty(value = "versionName")
|
||||
public String versionName;
|
||||
|
||||
@ApiModelProperty(value = "包名")
|
||||
@JsonProperty(value = "packageName")
|
||||
public String packageName;
|
||||
|
||||
@ApiModelProperty(value = "下载地址")
|
||||
@JsonProperty(value = "downloadUrl")
|
||||
public String downloadUrl;
|
||||
|
||||
@ApiModelProperty(value = "APP名")
|
||||
@JsonProperty(value = "appName")
|
||||
public String appName;
|
||||
|
||||
@ApiModelProperty(value = "MD5值")
|
||||
@JsonProperty(value = "md5Value")
|
||||
public String md5Value;
|
||||
|
||||
@ApiModelProperty(value = "文件名")
|
||||
@JsonProperty(value = "fileName")
|
||||
public String fileName;
|
||||
|
||||
@ApiModelProperty(value = "文件大小")
|
||||
@JsonProperty(value = "fileSize")
|
||||
public String fileSize;
|
||||
|
||||
@ApiModelProperty(value = "是否强制安装")
|
||||
@JsonProperty(value = "isForce")
|
||||
public Integer isForce;
|
||||
|
||||
@ApiModelProperty(value = "是否可忽略该版本")
|
||||
@JsonProperty(value = "isIgnorable")
|
||||
public Integer isIgnorable;
|
||||
|
||||
@ApiModelProperty(value = "是否静默下载")
|
||||
@JsonProperty(value = "isSilent")
|
||||
public Integer isSilent;
|
||||
|
||||
@ApiModelProperty(value = "上传人")
|
||||
@JsonProperty(value = "userId")
|
||||
public String userId;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@JsonProperty(value = "createTime")
|
||||
public Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@JsonProperty(value = "updateTime")
|
||||
public Date updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.suke.czx.modules.apk.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.suke.czx.modules.apk.entity.TbApkVersion;
|
||||
|
||||
/**
|
||||
* APK版本管理
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2023-01-26 20:32:33
|
||||
*/
|
||||
public interface TbApkVersionMapper extends BaseMapper<TbApkVersion> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.suke.czx.modules.apk.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.suke.czx.modules.apk.entity.TbApkVersion;
|
||||
|
||||
/**
|
||||
* APK版本管理
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2023-01-26 20:32:33
|
||||
*/
|
||||
public interface TbApkVersionService extends IService<TbApkVersion> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.suke.czx.modules.apk.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.suke.czx.modules.apk.entity.TbApkVersion;
|
||||
import com.suke.czx.modules.apk.mapper.TbApkVersionMapper;
|
||||
import com.suke.czx.modules.apk.service.TbApkVersionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
/**
|
||||
* APK版本管理
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2023-01-26 20:32:33
|
||||
*/
|
||||
@Service
|
||||
public class TbApkVersionServiceImpl extends ServiceImpl<TbApkVersionMapper, TbApkVersion> implements TbApkVersionService {
|
||||
|
||||
}
|
||||
@@ -29,5 +29,6 @@ public class MakerConfigEntity {
|
||||
private boolean fileMapper;
|
||||
private boolean fileMapperXml;
|
||||
private boolean fileEntity;
|
||||
private boolean genUi;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import com.aliyun.oss.OSSClient;
|
||||
import com.suke.czx.common.exception.RRException;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* 阿里云存储
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2017-03-26 16:22
|
||||
*/
|
||||
public class AliyunCloudStorageService extends CloudStorageService {
|
||||
private OSSClient client;
|
||||
|
||||
public AliyunCloudStorageService(CloudStorageConfig config){
|
||||
this.config = config;
|
||||
|
||||
//初始化
|
||||
init();
|
||||
}
|
||||
|
||||
private void init(){
|
||||
client = new OSSClient(config.getAliyunEndPoint(), config.getAliyunAccessKeyId(),
|
||||
config.getAliyunAccessKeySecret());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String upload(byte[] data, String path) {
|
||||
return upload(new ByteArrayInputStream(data), path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String upload(InputStream inputStream, String path) {
|
||||
try {
|
||||
client.putObject(config.getAliyunBucketName(), path, inputStream);
|
||||
} catch (Exception e){
|
||||
throw new RRException("上传文件失败,请检查配置信息", e);
|
||||
}
|
||||
|
||||
return config.getAliyunDomain() + "/" + path;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadSuffix(byte[] data, String suffix) {
|
||||
return upload(data, getPath(config.getAliyunPrefix(), suffix));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadSuffix(InputStream inputStream, String suffix) {
|
||||
return upload(inputStream, getPath(config.getAliyunPrefix(), suffix));
|
||||
}
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.URL;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 云存储配置信息
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2017-03-25 16:12
|
||||
*/
|
||||
@Data
|
||||
public class CloudStorageConfig implements Serializable {
|
||||
|
||||
//类型 1:七牛 2:阿里云 3:腾讯云 4:minio
|
||||
public Integer type;
|
||||
|
||||
//七牛绑定的域名
|
||||
@NotBlank(message="七牛绑定的域名不能为空")
|
||||
public String qiniuDomain;
|
||||
//七牛路径前缀
|
||||
public String qiniuPrefix;
|
||||
//七牛ACCESS_KEY
|
||||
@NotBlank(message="七牛AccessKey不能为空")
|
||||
public String qiniuAccessKey;
|
||||
//七牛SECRET_KEY
|
||||
@NotBlank(message="七牛SecretKey不能为空")
|
||||
public String qiniuSecretKey;
|
||||
//七牛存储空间名
|
||||
@NotBlank(message="七牛空间名不能为空")
|
||||
public String qiniuBucketName;
|
||||
|
||||
//阿里云绑定的域名
|
||||
@NotBlank(message="阿里云绑定的域名不能为空")
|
||||
@URL(message = "阿里云绑定的域名格式不正确")
|
||||
public String aliyunDomain;
|
||||
//阿里云路径前缀
|
||||
public String aliyunPrefix;
|
||||
//阿里云EndPoint
|
||||
@NotBlank(message="阿里云EndPoint不能为空")
|
||||
public String aliyunEndPoint;
|
||||
//阿里云AccessKeyId
|
||||
@NotBlank(message="阿里云AccessKeyId不能为空")
|
||||
public String aliyunAccessKeyId;
|
||||
//阿里云AccessKeySecret
|
||||
@NotBlank(message="阿里云AccessKeySecret不能为空")
|
||||
public String aliyunAccessKeySecret;
|
||||
//阿里云BucketName
|
||||
@NotBlank(message="阿里云BucketName不能为空")
|
||||
public String aliyunBucketName;
|
||||
|
||||
//腾讯云绑定的域名
|
||||
@NotBlank(message="腾讯云绑定的域名不能为空")
|
||||
@URL(message = "腾讯云绑定的域名格式不正确")
|
||||
public String qcloudDomain;
|
||||
//腾讯云路径前缀
|
||||
public String qcloudPrefix;
|
||||
//腾讯云AppId
|
||||
@NotNull(message="腾讯云AppId不能为空")
|
||||
public Integer qcloudAppId;
|
||||
//腾讯云SecretId
|
||||
@NotBlank(message="腾讯云SecretId不能为空")
|
||||
public String qcloudSecretId;
|
||||
//腾讯云SecretKey
|
||||
@NotBlank(message="腾讯云SecretKey不能为空")
|
||||
public String qcloudSecretKey;
|
||||
//腾讯云BucketName
|
||||
@NotBlank(message="腾讯云BucketName不能为空")
|
||||
public String qcloudBucketName;
|
||||
//腾讯云COS所属地区
|
||||
@NotBlank(message="所属地区不能为空")
|
||||
public String qcloudRegion;
|
||||
|
||||
|
||||
//minio
|
||||
@NotBlank(message="minio服务器地址")
|
||||
@URL(message = "minio服务器地址格式不正确")
|
||||
public String minioUrl;
|
||||
//access-key (用户名)
|
||||
@NotNull(message="minio-accessKey不能为空")
|
||||
public String minioAccessKey;
|
||||
//secret-key (密码)
|
||||
@NotNull(message="minio-secretKey不能为空")
|
||||
public String minioSecretKey;
|
||||
//bucketName (桶)
|
||||
@NotNull(message="minio-bucketName不能为空")
|
||||
public String minioBucketName;
|
||||
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import java.io.InputStream;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* 云存储(支持七牛、阿里云、腾讯云、又拍云)
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2017-03-25 14:58
|
||||
*/
|
||||
public abstract class CloudStorageService {
|
||||
/** 云存储配置信息 */
|
||||
CloudStorageConfig config;
|
||||
|
||||
public String newFileName(){
|
||||
return UUID.randomUUID().toString().replaceAll("-", "");
|
||||
}
|
||||
public String newFileName(String suffix){
|
||||
return UUID.randomUUID().toString().replaceAll("-", "") + "." + suffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件路径
|
||||
* @param prefix 前缀
|
||||
* @param suffix 后缀
|
||||
* @return 返回上传路径
|
||||
*/
|
||||
public String getPath(String prefix, String suffix) {
|
||||
|
||||
//文件路径
|
||||
String path = DateUtil.today() + "/" + newFileName();
|
||||
|
||||
if(StringUtils.isNotBlank(prefix)){
|
||||
path = prefix + "/" + path;
|
||||
}
|
||||
|
||||
return path + suffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
* @param data 文件字节数组
|
||||
* @param path 文件路径,包含文件名
|
||||
* @return 返回http地址
|
||||
*/
|
||||
public abstract String upload(byte[] data, String path);
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
* @param data 文件字节数组
|
||||
* @param suffix 后缀
|
||||
* @return 返回http地址
|
||||
*/
|
||||
public abstract String uploadSuffix(byte[] data, String suffix);
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
* @param inputStream 字节流
|
||||
* @param path 文件路径,包含文件名
|
||||
* @return 返回http地址
|
||||
*/
|
||||
public abstract String upload(InputStream inputStream, String path);
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
* @param inputStream 字节流
|
||||
* @param suffix 后缀
|
||||
* @return 返回http地址
|
||||
*/
|
||||
public abstract String uploadSuffix(InputStream inputStream, String suffix);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.UUID;
|
||||
|
||||
public interface ICloudStorage {
|
||||
|
||||
default String newFileName(){
|
||||
return UUID.randomUUID().toString().replaceAll("-", "");
|
||||
}
|
||||
default String newFileName(String suffix){
|
||||
return UUID.randomUUID().toString().replaceAll("-", "") + "." + suffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件路径
|
||||
* @param prefix 前缀
|
||||
* @param suffix 后缀
|
||||
* @return 返回上传路径
|
||||
*/
|
||||
default String getPath(String prefix, String suffix) {
|
||||
|
||||
//文件路径
|
||||
String path = DateUtil.today() + "/" + newFileName();
|
||||
|
||||
if(StrUtil.isNotBlank(prefix)){
|
||||
path = prefix + "/" + path;
|
||||
}
|
||||
|
||||
return path + suffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
* @param data 文件字节数组
|
||||
* @param path 文件路径,包含文件名
|
||||
* @return 返回http地址
|
||||
*/
|
||||
String upload(byte[] data, String path);
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
* @param data 文件字节数组
|
||||
* @param suffix 后缀
|
||||
* @return 返回http地址
|
||||
*/
|
||||
String uploadSuffix(byte[] data, String suffix);
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
* @param inputStream 字节流
|
||||
* @param path 文件路径,包含文件名
|
||||
* @return 返回http地址
|
||||
*/
|
||||
String upload(InputStream inputStream, String path);
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
* @param inputStream 字节流
|
||||
* @param suffix 后缀
|
||||
* @return 返回http地址
|
||||
*/
|
||||
String uploadSuffix(InputStream inputStream, String suffix);
|
||||
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import com.suke.czx.common.exception.RRException;
|
||||
import io.minio.MinioClient;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* @Author czx
|
||||
* @Description //TODO minio 文件存储 具体其他操作看官网 https://docs.min.io/
|
||||
**/
|
||||
public class MinioCloudStorageService extends CloudStorageService{
|
||||
|
||||
private MinioClient client;
|
||||
|
||||
/**
|
||||
* 外链过期时间,有两种方法
|
||||
* 1、可以通过命令设置共享域(桶)为 public 就可以永久外链了
|
||||
* 2、可以通过代码层返回文件流
|
||||
*/
|
||||
private Integer expires = 7 * 3600;
|
||||
|
||||
public MinioCloudStorageService(CloudStorageConfig config){
|
||||
this.config = config;
|
||||
//初始化
|
||||
init();
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
private void init(){
|
||||
client = new MinioClient(config.getMinioUrl(), config.getMinioAccessKey(), config.getMinioSecretKey());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String upload(byte[] data, String path) {
|
||||
return upload(new ByteArrayInputStream(data),path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadSuffix(byte[] data, String suffix) {
|
||||
return upload(data,newFileName(suffix));
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public String upload(InputStream inputStream, String path) {
|
||||
try {
|
||||
client.putObject(config.getMinioBucketName(), path, inputStream, inputStream.available(), "application/octet-stream");
|
||||
} catch (Exception e) {
|
||||
throw new RRException("上传文件失败", e);
|
||||
}
|
||||
return client.presignedGetObject(config.getMinioBucketName(), path, expires);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadSuffix(InputStream inputStream, String suffix) {
|
||||
return upload(inputStream,newFileName(suffix));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import com.suke.czx.common.utils.ConfigConstant;
|
||||
import com.suke.czx.common.utils.Constant;
|
||||
import com.suke.czx.modules.sys.service.SysConfigService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 文件上传Factory
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2017-03-26 10:18
|
||||
*/
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class OSSFactory {
|
||||
private SysConfigService sysConfigService;
|
||||
|
||||
public CloudStorageService build(){
|
||||
//获取云存储配置信息
|
||||
CloudStorageConfig config = sysConfigService.getConfigObject(ConfigConstant.CLOUD_STORAGE_CONFIG_KEY, CloudStorageConfig.class);
|
||||
|
||||
if(config.getType() == Constant.CloudService.QINIU.getValue()){
|
||||
return new QiniuCloudStorageService(config);
|
||||
}else if(config.getType() == Constant.CloudService.ALIYUN.getValue()){
|
||||
return new AliyunCloudStorageService(config);
|
||||
}else if(config.getType() == Constant.CloudService.QCLOUD.getValue()){
|
||||
return new QcloudCloudStorageService(config);
|
||||
}else if(config.getType() == Constant.CloudService.MINIO.getValue()){
|
||||
return new MinioCloudStorageService(config);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
|
||||
import com.qcloud.cos.COSClient;
|
||||
import com.qcloud.cos.ClientConfig;
|
||||
import com.qcloud.cos.request.UploadFileRequest;
|
||||
import com.qcloud.cos.sign.Credentials;
|
||||
import com.suke.czx.common.exception.RRException;
|
||||
import net.sf.json.JSONObject;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* 腾讯云存储
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2017-03-26 20:51
|
||||
*/
|
||||
public class QcloudCloudStorageService extends CloudStorageService {
|
||||
private COSClient client;
|
||||
|
||||
public QcloudCloudStorageService(CloudStorageConfig config){
|
||||
this.config = config;
|
||||
|
||||
//初始化
|
||||
init();
|
||||
}
|
||||
|
||||
private void init(){
|
||||
Credentials credentials = new Credentials(config.getQcloudAppId(), config.getQcloudSecretId(),
|
||||
config.getQcloudSecretKey());
|
||||
|
||||
//初始化客户端配置
|
||||
ClientConfig clientConfig = new ClientConfig();
|
||||
//设置bucket所在的区域,华南:gz 华北:tj 华东:sh
|
||||
clientConfig.setRegion(config.getQcloudRegion());
|
||||
|
||||
client = new COSClient(clientConfig, credentials);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String upload(byte[] data, String path) {
|
||||
//腾讯云必需要以"/"开头
|
||||
if(!path.startsWith("/")) {
|
||||
path = "/" + path;
|
||||
}
|
||||
|
||||
//上传到腾讯云
|
||||
UploadFileRequest request = new UploadFileRequest(config.getQcloudBucketName(), path, data);
|
||||
String response = client.uploadFile(request);
|
||||
|
||||
JSONObject jsonObject = JSONObject.fromObject(response);
|
||||
if(jsonObject.getInt("code") != 0) {
|
||||
throw new RRException("文件上传失败," + jsonObject.getString("message"));
|
||||
}
|
||||
|
||||
return config.getQcloudDomain() + path;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String upload(InputStream inputStream, String path) {
|
||||
try {
|
||||
byte[] data = IOUtils.toByteArray(inputStream);
|
||||
return this.upload(data, path);
|
||||
} catch (IOException e) {
|
||||
throw new RRException("上传文件失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadSuffix(byte[] data, String suffix) {
|
||||
return upload(data, getPath(config.getQcloudPrefix(), suffix));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadSuffix(InputStream inputStream, String suffix) {
|
||||
return upload(inputStream, getPath(config.getQcloudPrefix(), suffix));
|
||||
}
|
||||
}
|
||||
@@ -1,51 +1,44 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import com.qiniu.common.Zone;
|
||||
import com.qiniu.http.Response;
|
||||
import com.qiniu.storage.Configuration;
|
||||
import com.qiniu.storage.UploadManager;
|
||||
import com.qiniu.util.Auth;
|
||||
import com.suke.czx.common.exception.RRException;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* 七牛云存储
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2017-03-25 15:41
|
||||
*/
|
||||
public class QiniuCloudStorageService extends CloudStorageService {
|
||||
private UploadManager uploadManager;
|
||||
private String token;
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class QiniuCloudStorageService implements ICloudStorage {
|
||||
|
||||
public QiniuCloudStorageService(CloudStorageConfig config){
|
||||
this.config = config;
|
||||
|
||||
//初始化
|
||||
init();
|
||||
}
|
||||
|
||||
private void init(){
|
||||
uploadManager = new UploadManager(new Configuration(Zone.autoZone()));
|
||||
token = Auth.create(config.getQiniuAccessKey(), config.getQiniuSecretKey()).
|
||||
uploadToken(config.getQiniuBucketName());
|
||||
}
|
||||
private final Auth auth;
|
||||
private final UploadManager uploadManager;
|
||||
private final QiniuProperties qiniuProperties;
|
||||
|
||||
@Override
|
||||
public String upload(byte[] data, String path) {
|
||||
try {
|
||||
String token = auth.uploadToken(qiniuProperties.getBucketName());
|
||||
Response res = uploadManager.put(data, path, token);
|
||||
if (!res.isOK()) {
|
||||
throw new RuntimeException("上传七牛出错:" + res.toString());
|
||||
throw new RRException("上传七牛出错:" + res.getInfo());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RRException("上传文件失败,请核对七牛配置信息", e);
|
||||
}
|
||||
|
||||
return config.getQiniuDomain() + "/" + path;
|
||||
return qiniuProperties.getDomain() + "/" + path;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,11 +53,11 @@ public class QiniuCloudStorageService extends CloudStorageService {
|
||||
|
||||
@Override
|
||||
public String uploadSuffix(byte[] data, String suffix) {
|
||||
return upload(data, getPath(config.getQiniuPrefix(), suffix));
|
||||
return upload(data, getPath(qiniuProperties.getPrefix(), suffix));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadSuffix(InputStream inputStream, String suffix) {
|
||||
return upload(inputStream, getPath(config.getQiniuPrefix(), suffix));
|
||||
return upload(inputStream, getPath(qiniuProperties.getPrefix(), suffix));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import com.qiniu.storage.UploadManager;
|
||||
import com.qiniu.util.Auth;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @Description //TODO $
|
||||
* @Date 16:41
|
||||
* @Author yzcheng90@qq.com
|
||||
**/
|
||||
@Configuration
|
||||
@AllArgsConstructor
|
||||
public class QiniuConfig {
|
||||
|
||||
private final QiniuProperties qiniuProperties;
|
||||
|
||||
@Bean
|
||||
public Auth getAuth() {
|
||||
Auth auth = Auth.create(qiniuProperties.getAccessKey(), qiniuProperties.getSecretKey());
|
||||
return auth;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public UploadManager getUploadManager() {
|
||||
return new UploadManager(new com.qiniu.storage.Configuration());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.suke.czx.modules.oss.cloud;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @Description //TODO $
|
||||
* @Date 16:38
|
||||
* @Author yzcheng90@qq.com
|
||||
**/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(value = "qiniu")
|
||||
public class QiniuProperties {
|
||||
|
||||
private String accessKey;
|
||||
private String secretKey;
|
||||
private String bucketName;
|
||||
private String domain;
|
||||
private String prefix;
|
||||
|
||||
}
|
||||
@@ -1,24 +1,22 @@
|
||||
package com.suke.czx.modules.oss.controller;
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.crypto.digest.DigestUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.google.gson.Gson;
|
||||
import com.suke.czx.common.annotation.AuthIgnore;
|
||||
import com.suke.czx.common.base.AbstractController;
|
||||
import com.suke.czx.common.exception.RRException;
|
||||
import com.suke.czx.common.utils.ConfigConstant;
|
||||
import com.suke.czx.common.utils.R;
|
||||
import com.suke.czx.modules.oss.cloud.CloudStorageConfig;
|
||||
import com.suke.czx.modules.oss.cloud.OSSFactory;
|
||||
import com.suke.czx.modules.apk.entity.TbApkVersion;
|
||||
import com.suke.czx.modules.oss.cloud.ICloudStorage;
|
||||
import com.suke.czx.modules.oss.entity.SysOss;
|
||||
import com.suke.czx.modules.oss.service.SysOssService;
|
||||
import com.suke.czx.modules.sys.service.SysConfigService;
|
||||
import com.suke.zhjg.common.autofull.util.R;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.dongliu.apk.parser.ApkFile;
|
||||
import net.dongliu.apk.parser.bean.ApkMeta;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@@ -26,7 +24,6 @@ import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
@@ -43,57 +40,23 @@ import java.util.UUID;
|
||||
public class SysOssController extends AbstractController {
|
||||
|
||||
private final SysOssService sysOssService;
|
||||
private final SysConfigService sysConfigService;
|
||||
private final OSSFactory ossFactory;
|
||||
|
||||
private final static String KEY = ConfigConstant.CLOUD_STORAGE_CONFIG_KEY;
|
||||
private final ICloudStorage iCloudStorage;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
||||
@PreAuthorize("hasRole('sys:oss:all')")
|
||||
@GetMapping(value = "/list")
|
||||
public R list(@RequestParam Map<String, Object> params) {
|
||||
//查询列表数据
|
||||
QueryWrapper<SysOss> queryWrapper = new QueryWrapper<>();
|
||||
if (MapUtil.getStr(params, "key") != null) {
|
||||
queryWrapper
|
||||
.like("remark", MapUtil.getStr(params, "key"));
|
||||
IPage<SysOss> pageList = sysOssService.page(mpPageConvert.<SysOss>pageParamConvert(params), queryWrapper);
|
||||
return R.ok().setData(pageList);
|
||||
}
|
||||
IPage<SysOss> sysConfigList = sysOssService.page(mpPageConvert.<SysOss>pageParamConvert(params), queryWrapper);
|
||||
|
||||
return R.ok().put("page", mpPageConvert.pageValueConvert(sysConfigList));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 云存储配置信息
|
||||
*/
|
||||
@RequestMapping(value = "/config", method = RequestMethod.GET)
|
||||
@PreAuthorize("hasRole('sys:oss:all')")
|
||||
public R config() {
|
||||
CloudStorageConfig config = sysConfigService.getConfigObject(KEY, CloudStorageConfig.class);
|
||||
return R.ok().put("config", config);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存云存储配置信息
|
||||
*/
|
||||
@RequestMapping(value = "/saveConfig", method = RequestMethod.POST)
|
||||
@PreAuthorize("hasRole('sys:oss:all')")
|
||||
public R saveConfig(@RequestBody CloudStorageConfig config) {
|
||||
sysConfigService.updateValueByKey(KEY, new Gson().toJson(config));
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*/
|
||||
@RequestMapping(value = "/upload", method = RequestMethod.POST)
|
||||
@PreAuthorize("hasRole('sys:oss:all')")
|
||||
@PostMapping(value = "/upload")
|
||||
public R upload(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
if (file.isEmpty()) {
|
||||
throw new RRException("上传文件不能为空");
|
||||
@@ -101,7 +64,7 @@ public class SysOssController extends AbstractController {
|
||||
|
||||
//上传文件
|
||||
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
|
||||
String url = ossFactory.build().uploadSuffix(file.getBytes(), suffix);
|
||||
String url = "";
|
||||
|
||||
//保存文件信息
|
||||
SysOss ossEntity = new SysOss();
|
||||
@@ -115,57 +78,60 @@ public class SysOssController extends AbstractController {
|
||||
/**
|
||||
* 上传文件
|
||||
*/
|
||||
@RequestMapping(value = "/upload/apk", method = RequestMethod.POST)
|
||||
@PreAuthorize("hasRole('sys:oss:all')")
|
||||
public R uploadApk(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
@AuthIgnore
|
||||
@PostMapping(value = "/upload/apk")
|
||||
public R uploadApk(@RequestParam("file") MultipartFile file) {
|
||||
if (file.isEmpty()) {
|
||||
throw new RRException("上传文件不能为空");
|
||||
return R.error("上传文件不能为空");
|
||||
}
|
||||
String property = System.getProperty("user.dir");
|
||||
String tempPath = property + "/" + UUID.randomUUID() + ".apk";
|
||||
File tempFile = new File(tempPath);
|
||||
if (tempFile.exists()) {
|
||||
tempFile.mkdirs();
|
||||
// 获取文件名
|
||||
String fileName = file.getOriginalFilename();
|
||||
// 获取文件后缀
|
||||
String prefix = fileName.substring(fileName.lastIndexOf("."));
|
||||
if (prefix == null || !prefix.equals(".apk")) {
|
||||
return R.error("只能上传APK文件");
|
||||
}
|
||||
boolean isCreateSuccess = tempFile.createNewFile(); // 是否创建文件成功
|
||||
if (!isCreateSuccess) {
|
||||
throw new RRException("文件创建失败!");
|
||||
}
|
||||
file.transferTo(tempFile);
|
||||
|
||||
TbApkVersion apkVersion = null;
|
||||
File tempFile = new File(fileName);
|
||||
try {
|
||||
FileUtils.copyInputStreamToFile(file.getInputStream(), tempFile);
|
||||
ApkFile apkFile = new ApkFile(tempFile);
|
||||
ApkMeta apkMeta = apkFile.getApkMeta();
|
||||
// ApkVersion apkVersion = ApkVersion
|
||||
// .builder()
|
||||
// .versionCode(Math.toIntExact(apkMeta.getVersionCode()))
|
||||
// .versionName(apkMeta.getVersionName())
|
||||
// .appName(apkMeta.getLabel())
|
||||
// .packageName(apkMeta.getPackageName())
|
||||
// .fileName(file.getOriginalFilename())
|
||||
// .md5Value(DigestUtil.md5Hex(tempFile))
|
||||
// .fileSize(String.valueOf(tempFile.length()))
|
||||
// .build();
|
||||
apkVersion = new TbApkVersion();
|
||||
apkVersion.setVersionCode(Math.toIntExact(apkMeta.getVersionCode()));
|
||||
apkVersion.setVersionName(apkMeta.getVersionName());
|
||||
apkVersion.setAppName(apkMeta.getLabel());
|
||||
apkVersion.setPackageName(apkMeta.getPackageName());
|
||||
apkVersion.setFileName(file.getOriginalFilename());
|
||||
apkVersion.setMd5Value(DigestUtil.md5Hex(tempFile));
|
||||
apkVersion.setFileSize(String.valueOf(tempFile.length()));
|
||||
|
||||
//上传文件
|
||||
// String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
|
||||
// String url = ossFactory.build().uploadSuffix(file.getBytes(), suffix);
|
||||
//
|
||||
// //保存文件信息
|
||||
// SysOss ossEntity = new SysOss();
|
||||
// ossEntity.setUrl(url);
|
||||
// ossEntity.setCreateDate(new Date());
|
||||
// sysOssService.save(ossEntity);
|
||||
// apkVersion.setDownloadUrl(url);
|
||||
log.info("文件地址:{}", tempPath);
|
||||
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
|
||||
String url = iCloudStorage.uploadSuffix(file.getBytes(), suffix);
|
||||
|
||||
//保存文件信息
|
||||
SysOss ossEntity = new SysOss();
|
||||
ossEntity.setUrl(url);
|
||||
ossEntity.setCreateDate(new Date());
|
||||
sysOssService.save(ossEntity);
|
||||
apkVersion.setDownloadUrl(url);
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("文件上传失败:{}", e.getMessage());
|
||||
return R.error("文件上传失败");
|
||||
}
|
||||
tempFile.delete();
|
||||
return R.ok();
|
||||
return R.ok().setData(apkVersion);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@RequestMapping(value = "/delete", method = RequestMethod.POST)
|
||||
@PreAuthorize("hasRole('sys:oss:all')")
|
||||
@PostMapping(value = "/delete")
|
||||
public R delete(@RequestBody Long[] ids) {
|
||||
sysOssService.removeByIds(Arrays.asList(ids));
|
||||
return R.ok();
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
package com.suke.czx.modules.sys.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.suke.czx.common.annotation.SysLog;
|
||||
import com.suke.czx.common.base.AbstractController;
|
||||
import com.suke.czx.common.utils.R;
|
||||
import com.suke.czx.modules.sys.entity.SysConfig;
|
||||
import com.suke.czx.modules.sys.service.SysConfigService;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统参数信息
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/sys/config")
|
||||
@AllArgsConstructor
|
||||
@Api(value = "SysConfigController", tags = "系统参数信息")
|
||||
public class SysConfigController extends AbstractController {
|
||||
private final SysConfigService sysConfigService;
|
||||
|
||||
/**
|
||||
* 所有配置列表
|
||||
*/
|
||||
@GetMapping(value = "/list")
|
||||
public R list(@RequestParam Map<String, Object> params) {
|
||||
//查询列表数据
|
||||
QueryWrapper<SysConfig> queryWrapper = new QueryWrapper<>();
|
||||
final String keyword = mpPageConvert.getKeyword(params);
|
||||
if (StrUtil.isNotEmpty(keyword)) {
|
||||
queryWrapper
|
||||
.lambda()
|
||||
.like(SysConfig::getRemark, keyword);
|
||||
}
|
||||
IPage<SysConfig> listPage = sysConfigService.page(mpPageConvert.<SysConfig>pageParamConvert(params), queryWrapper);
|
||||
return R.ok().setPage(listPage);
|
||||
}
|
||||
|
||||
@SysLog("保存配置")
|
||||
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
||||
public R save(@RequestBody SysConfig config) {
|
||||
sysConfigService.save(config);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@SysLog("修改配置")
|
||||
@RequestMapping(value = "/update", method = RequestMethod.POST)
|
||||
public R update(@RequestBody SysConfig config) {
|
||||
sysConfigService.updateById(config);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@SysLog("删除配置")
|
||||
@RequestMapping(value = "/delete", method = RequestMethod.POST)
|
||||
public R delete(@RequestBody Long[] ids) {
|
||||
sysConfigService.removeByIds(Arrays.asList(ids));
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.suke.czx.modules.sys.controller;
|
||||
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import com.google.code.kaptcha.Producer;
|
||||
import com.suke.czx.common.annotation.AuthIgnore;
|
||||
import com.suke.czx.common.base.AbstractController;
|
||||
import com.suke.czx.common.utils.Constant;
|
||||
import com.suke.czx.common.utils.R;
|
||||
import com.suke.zhjg.common.autofull.util.R;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@@ -60,7 +60,7 @@ public class SysLoginController extends AbstractController {
|
||||
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
ImageIO.write(image, "jpg", out);
|
||||
IOUtils.closeQuietly(out);
|
||||
IoUtil.close(out);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,7 +64,14 @@ public class SysMenuController extends AbstractController {
|
||||
*/
|
||||
@SysLog("删除菜单")
|
||||
@PostMapping(value = "/delete")
|
||||
public R delete(long menuId) {
|
||||
public R delete(@RequestBody SysMenuNew menu) {
|
||||
if(menu == null){
|
||||
return R.error("参数错误");
|
||||
}
|
||||
Long menuId = menu.getMenuId();
|
||||
if(menuId == null){
|
||||
return R.error("ID为空");
|
||||
}
|
||||
//判断是否有子菜单或按钮
|
||||
QueryWrapper<SysMenuNew> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(SysMenuNew::getParentId, menuId);
|
||||
|
||||
@@ -42,7 +42,7 @@ public class SysRoleController extends AbstractController {
|
||||
public R list(@RequestParam Map<String, Object> params) {
|
||||
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
|
||||
//如果不是超级管理员,则只查询自己创建的角色列表
|
||||
if (getUserId() != Constant.SUPER_ADMIN) {
|
||||
if (!getUserId().equals(Constant.SUPER_ADMIN)) {
|
||||
queryWrapper.lambda().eq(SysRole::getCreateUserId, getUserId());
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.suke.czx.authentication.detail.CustomUserDetailsUser;
|
||||
import com.suke.czx.common.annotation.SysLog;
|
||||
import com.suke.czx.common.base.AbstractController;
|
||||
import com.suke.czx.common.utils.Constant;
|
||||
import com.suke.czx.common.utils.HttpContextUtils;
|
||||
import com.suke.czx.common.utils.IPUtils;
|
||||
import com.suke.czx.modules.sys.entity.SysUser;
|
||||
import com.suke.czx.modules.sys.entity.SysUserRole;
|
||||
import com.suke.czx.modules.sys.service.SysMenuNewService;
|
||||
@@ -54,7 +56,7 @@ public class SysUserController extends AbstractController {
|
||||
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
|
||||
|
||||
//只有超级管理员,才能查看所有管理员列表
|
||||
if (getUserId() != Constant.SUPER_ADMIN) {
|
||||
if (!getUserId().equals(Constant.SUPER_ADMIN)) {
|
||||
queryWrapper.lambda().eq(SysUser::getCreateUserId, getUserId());
|
||||
}
|
||||
|
||||
@@ -91,12 +93,16 @@ public class SysUserController extends AbstractController {
|
||||
routerInfo.setMenus(userMenu);
|
||||
|
||||
// 用户信息
|
||||
final CustomUserDetailsUser user = getUser();
|
||||
final SysUser sysUser = sysUserService.getById(getUserId());
|
||||
|
||||
UserInfoVO userInfo = new UserInfoVO();
|
||||
userInfo.setUserId(user.getUserId());
|
||||
userInfo.setUserName(user.getUsername());
|
||||
userInfo.setPhoto("https://img0.baidu.com/it/u=1833472230,3849481738&fm=253&fmt=auto?w=200&h=200");
|
||||
userInfo.setRoles(new String[]{"admin"});
|
||||
userInfo.setUserId(sysUser.getUserId());
|
||||
userInfo.setUserName(sysUser.getUsername());
|
||||
userInfo.setName(sysUser.getName());
|
||||
userInfo.setLoginIp(IPUtils.getIpAddr(HttpContextUtils.getHttpServletRequest()));
|
||||
final String photo = sysUser.getPhoto();
|
||||
userInfo.setPhoto(photo == null ? "https://img0.baidu.com/it/u=1833472230,3849481738&fm=253&fmt=auto?w=200&h=200" : photo);
|
||||
userInfo.setRoles(new String[]{sysUser.getUserId().equals(Constant.SUPER_ADMIN) ? "admin" : "common"});
|
||||
userInfo.setTime(DateUtil.now());
|
||||
userInfo.setAuthBtnList(new String[]{"btn.add", "btn.del", "btn.edit", "btn.link"});
|
||||
routerInfo.setUserInfo(userInfo);
|
||||
@@ -152,15 +158,15 @@ public class SysUserController extends AbstractController {
|
||||
@SysLog("删除用户")
|
||||
@PostMapping(value = "/delete")
|
||||
public R delete(@RequestBody SysUser user) {
|
||||
if(user == null || user.getUserId() == null){
|
||||
if (user == null || user.getUserId() == null) {
|
||||
return R.error("参数错误");
|
||||
}
|
||||
|
||||
if (user.getUserId() == 1L) {
|
||||
if (user.getUserId().equals(Constant.SUPER_ADMIN)) {
|
||||
return R.error("系统管理员不能删除");
|
||||
}
|
||||
|
||||
if (user.getUserId() == getUserId()) {
|
||||
if (user.getUserId().equals(getUserId())) {
|
||||
return R.error("当前用户不能删除");
|
||||
}
|
||||
sysUserService.removeById(user.getUserId());
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.suke.czx.modules.sys.entity;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.*;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 系统配置信息
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@ApiModel(value = "系统配置信息")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysConfig extends Model<SysConfig> {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
public Long id;
|
||||
|
||||
@ApiModelProperty(value = "key")
|
||||
@NotBlank(message="参数名不能为空")
|
||||
public String configKey;
|
||||
|
||||
@ApiModelProperty(value = "value")
|
||||
@NotBlank(message="参数值不能为空")
|
||||
public String configValue;
|
||||
|
||||
@ApiModelProperty(value = "状态 0:隐藏 1:显示")
|
||||
public Integer configStatus;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
public String remark;
|
||||
|
||||
}
|
||||
@@ -39,7 +39,7 @@ public class SysRole implements Serializable {
|
||||
public String remark;
|
||||
|
||||
@ApiModelProperty(value = "创建者ID")
|
||||
public Long createUserId;
|
||||
public String createUserId;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
public Date createTime;
|
||||
|
||||
@@ -26,13 +26,16 @@ public class SysUser implements Serializable {
|
||||
|
||||
public static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "user_id", type = IdType.AUTO)
|
||||
public Long userId;
|
||||
@TableId(value = "user_id", type = IdType.ASSIGN_UUID)
|
||||
public String userId;
|
||||
|
||||
@ApiModelProperty(value = "用户名")
|
||||
@NotBlank(message = "用户名不能为空")
|
||||
public String username;
|
||||
|
||||
@ApiModelProperty(value = "姓名")
|
||||
public String name;
|
||||
|
||||
@ApiModelProperty(value = "密码")
|
||||
public String password;
|
||||
|
||||
@@ -43,15 +46,14 @@ public class SysUser implements Serializable {
|
||||
@ApiModelProperty(value = "手机号")
|
||||
public String mobile;
|
||||
|
||||
@ApiModelProperty(value = "头像")
|
||||
public String photo;
|
||||
|
||||
@ApiModelProperty(value = "状态 0:禁用 1:正常")
|
||||
public Integer status;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "状态 0:禁用 1:正常")
|
||||
public Boolean userStatus;
|
||||
|
||||
@ApiModelProperty(value = "创建者ID")
|
||||
public Long createUserId;
|
||||
public String createUserId;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
public Date createTime;
|
||||
|
||||
@@ -2,11 +2,9 @@ package com.suke.czx.modules.sys.entity;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@@ -18,14 +16,13 @@ import java.io.Serializable;
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "用户与角色对应关系")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysUserRole extends Model<SysUserRole> implements Serializable {
|
||||
public class SysUserRole implements Serializable {
|
||||
|
||||
@TableId
|
||||
public Long id;
|
||||
|
||||
@ApiModelProperty(value = "用户ID")
|
||||
public Long userId;
|
||||
public String userId;
|
||||
|
||||
@ApiModelProperty(value = "角色ID")
|
||||
public Long roleId;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.suke.czx.modules.sys.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.suke.czx.modules.sys.entity.SysConfig;
|
||||
|
||||
/**
|
||||
* 系统配置信息
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2016年12月4日 下午6:46:16
|
||||
*/
|
||||
public interface SysConfigMapper extends BaseMapper<SysConfig> {
|
||||
|
||||
}
|
||||
@@ -22,6 +22,6 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
|
||||
/**
|
||||
* 查询用户的所有菜单ID
|
||||
*/
|
||||
List<Long> queryAllMenuId(Long userId);
|
||||
List<Long> queryAllMenuId(String userId);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
package com.suke.czx.modules.sys.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.suke.czx.modules.sys.entity.SysConfig;
|
||||
|
||||
/**
|
||||
* 系统配置信息
|
||||
*
|
||||
* @author czx
|
||||
* @email object_czx@163.com
|
||||
* @date 2016年12月4日 下午6:49:01
|
||||
*/
|
||||
public interface SysConfigService extends IService<SysConfig> {
|
||||
|
||||
/**
|
||||
* 根据key,更新value
|
||||
*/
|
||||
void updateValueByKey(String key, String value);
|
||||
|
||||
/**
|
||||
* 根据key,获取配置的value值
|
||||
*
|
||||
* @param key key
|
||||
*/
|
||||
String getValue(String key);
|
||||
|
||||
/**
|
||||
* 根据key,获取value的Object对象
|
||||
*
|
||||
* @param key key
|
||||
* @param clazz Object对象
|
||||
*/
|
||||
<T> T getConfigObject(String key, Class<T> clazz);
|
||||
|
||||
}
|
||||
@@ -20,7 +20,7 @@ public interface SysUserService extends IService<SysUser> {
|
||||
* @param password 原密码
|
||||
* @param newPassword 新密码
|
||||
*/
|
||||
int updatePassword(Long userId, String password, String newPassword);
|
||||
int updatePassword(String userId, String password, String newPassword);
|
||||
|
||||
void saveUserRole(SysUser user);
|
||||
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
package com.suke.czx.modules.sys.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.gson.Gson;
|
||||
import com.suke.czx.common.exception.RRException;
|
||||
import com.suke.czx.modules.sys.entity.SysConfig;
|
||||
import com.suke.czx.modules.sys.mapper.SysConfigMapper;
|
||||
import com.suke.czx.modules.sys.service.SysConfigService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig> implements SysConfigService {
|
||||
|
||||
private final SysConfigMapper sysConfigMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean save(SysConfig config) {
|
||||
sysConfigMapper.insert(config);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void update(SysConfig config) {
|
||||
sysConfigMapper.updateById(config);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateValueByKey(String key, String value) {
|
||||
UpdateWrapper<SysConfig> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("config_key", key);
|
||||
baseMapper.update(SysConfig.builder().configKey(key).configValue(value).build(), wrapper);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void deleteBatch(Long[] ids) {
|
||||
for (Long id : ids) {
|
||||
SysConfig config = baseMapper.selectById(id);
|
||||
}
|
||||
sysConfigMapper.deleteById(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(String key) {
|
||||
SysConfig config = baseMapper.selectOne(Wrappers.<SysConfig>query().lambda().eq(SysConfig::getConfigKey, key));
|
||||
return config == null ? null : config.getConfigValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getConfigObject(String key, Class<T> clazz) {
|
||||
String value = getValue(key);
|
||||
if (StringUtils.isNotBlank(value)) {
|
||||
return new Gson().fromJson(value, clazz);
|
||||
}
|
||||
|
||||
try {
|
||||
return clazz.newInstance();
|
||||
} catch (Exception e) {
|
||||
throw new RRException("获取参数失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.suke.czx.modules.sys.service.impl;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.suke.czx.common.utils.Constant;
|
||||
import com.suke.czx.common.utils.UserUtil;
|
||||
import com.suke.czx.modules.sys.entity.SysMenuNew;
|
||||
import com.suke.czx.modules.sys.mapper.SysMenuNewMapper;
|
||||
@@ -32,13 +33,13 @@ public class SysMenuNewServiceImpl extends ServiceImpl<SysMenuNewMapper, SysMenu
|
||||
public List<SysMenuNewVO> getRouterChildList(Long menuId) {
|
||||
List<SysMenuNewVO> routerEntities = new ArrayList<>();
|
||||
QueryWrapper<SysMenuNew> queryWrapper = new QueryWrapper();
|
||||
final Long userId = UserUtil.getUserId();
|
||||
if(userId != 1L){
|
||||
final String userId = UserUtil.getUserId();
|
||||
if (!userId.equals(Constant.SUPER_ADMIN)) {
|
||||
// 用户配置的菜单
|
||||
final List<Long> menuIds = sysRoleMapper.queryAllMenuId(userId);
|
||||
if(CollUtil.isNotEmpty(menuIds)){
|
||||
queryWrapper.lambda().in(SysMenuNew::getMenuId,menuIds);
|
||||
}else {
|
||||
if (CollUtil.isNotEmpty(menuIds)) {
|
||||
queryWrapper.lambda().in(SysMenuNew::getMenuId, menuIds);
|
||||
} else {
|
||||
return routerEntities;
|
||||
}
|
||||
}
|
||||
@@ -46,7 +47,7 @@ public class SysMenuNewServiceImpl extends ServiceImpl<SysMenuNewMapper, SysMenu
|
||||
if (menuId != null) {
|
||||
queryWrapper.lambda().eq(SysMenuNew::getParentId, menuId);
|
||||
}
|
||||
queryWrapper.lambda().eq(SysMenuNew::isDisabled,true);
|
||||
queryWrapper.lambda().eq(SysMenuNew::isDisabled, true);
|
||||
List<SysMenuNew> sysMenus = sysMenuNewMapper.selectList(queryWrapper);
|
||||
if (CollUtil.isNotEmpty(sysMenus)) {
|
||||
sysMenus.forEach(sysMenu -> {
|
||||
|
||||
@@ -59,7 +59,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
|
||||
|
||||
@Override
|
||||
public int updatePassword(Long userId, String password, String newPassword) {
|
||||
public int updatePassword(String userId, String password, String newPassword) {
|
||||
SysUser sysUser = new SysUser();
|
||||
sysUser.setUserId(userId);
|
||||
sysUser.setPassword(newPassword);
|
||||
|
||||
@@ -10,11 +10,14 @@ import lombok.Data;
|
||||
@Data
|
||||
public class UserInfoVO {
|
||||
|
||||
public Long userId;
|
||||
public String userId;
|
||||
public String userName;
|
||||
public String name;
|
||||
public String loginIp;
|
||||
public String photo;
|
||||
public String time;
|
||||
public String[] roles;
|
||||
public String[] authBtnList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -28,10 +28,21 @@ swagger:
|
||||
url: https://github.com/yzcheng90/X-SpringBoot
|
||||
email: object_czx@163.com
|
||||
|
||||
#填充框架配置
|
||||
# autofull 配置
|
||||
autofull:
|
||||
show-log: true
|
||||
max-level: 1
|
||||
showLog: false
|
||||
maxLevel: 1
|
||||
currLevel: 0
|
||||
encryptFlag: "@autofull@"
|
||||
encryptKeys: "abcdefg123456789"
|
||||
|
||||
#七牛 AK 和 SK可以去密钥管理中查询
|
||||
qiniu:
|
||||
accessKey: 2222
|
||||
secretKey: 33333
|
||||
bucketName: qh-file
|
||||
domain: https://www.qiniu.com
|
||||
prefix: task
|
||||
|
||||
# mybaits-plus配置
|
||||
mybatis-plus:
|
||||
|
||||
Reference in New Issue
Block a user