first commit

This commit is contained in:
小黄狗横扫士力架 2022-12-28 09:45:16 +08:00
commit bfc6a73c2f
720 changed files with 91638 additions and 0 deletions

25
.gitignore vendored Normal file
View File

@ -0,0 +1,25 @@
# Compiled class file
*.class
target
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar
*.iml
.idea
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

2
db/20190121_weiyan.sql Normal file
View File

@ -0,0 +1,2 @@
ALTER TABLE `sys_user`
ADD COLUMN `realname` varchar(50) NULL DEFAULT NULL COMMENT '真实姓名' AFTER `user_id`;

2
db/20190218_troy.sql Normal file
View File

@ -0,0 +1,2 @@
ALTER TABLE `live_report`
ADD COLUMN `report_date` datetime NULL COMMENT '报道时间';

57
db/20190220_tong.sql Normal file
View File

@ -0,0 +1,57 @@
DROP TABLE IF EXISTS `live_scene_live_info_record`;
CREATE TABLE `live_scene_live_info_record` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`info_id` int(11) DEFAULT NULL COMMENT '流id',
`info_name` varchar(128) DEFAULT NULL COMMENT '冗余字段,流名',
`domain` varchar(64) DEFAULT NULL COMMENT '域名',
`app_name` varchar(64) DEFAULT NULL,
`stream_name` varchar(255) DEFAULT NULL,
`uri` varchar(128) DEFAULT NULL COMMENT '视频时长',
`duration` double DEFAULT NULL COMMENT '视频时长',
`start_time` int(11) DEFAULT NULL COMMENT '开始unix时间',
`stop_time` int(11) DEFAULT NULL COMMENT '结束unix时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='流录制记录';
DROP TABLE IF EXISTS `live_scene_record`;
CREATE TABLE `live_scene_record` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`scene_id` int(11) DEFAULT NULL COMMENT '现场id',
`record_name` varchar(128) DEFAULT NULL COMMENT '回顾名称',
`uri` varchar(128) DEFAULT NULL COMMENT '视频时长',
`duration` double DEFAULT NULL COMMENT '视频时长',
`start_time` int(11) DEFAULT NULL COMMENT '开始unix时间',
`stop_time` int(11) DEFAULT NULL COMMENT '结束unix时间',
`creator_id` int(11) DEFAULT NULL,
`create_date` datetime DEFAULT NULL,
`last_updator_id` int(11) DEFAULT NULL,
`last_update_date` datetime DEFAULT NULL,
`record_status` int(11) DEFAULT NULL COMMENT '0:未审核1审核显示',
`is_delete` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='现场回顾';
DROP TABLE IF EXISTS `live_stream_black`;
CREATE TABLE `live_stream_black` (
`domain` varchar(64) DEFAULT NULL COMMENT '域名',
`app_name` varchar(64) DEFAULT NULL,
`stream_name` varchar(64) DEFAULT NULL,
`time` int(11) DEFAULT NULL COMMENT 'unix 时间戳'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='黑名单流';
DROP TABLE IF EXISTS `live_stream_status`;
CREATE TABLE `live_stream_status` (
`time` int(11) DEFAULT NULL COMMENT 'unix 时间戳',
`action` varchar(15) DEFAULT NULL COMMENT 'publish 表示推流publish_done 表示断流',
`app` varchar(64) DEFAULT NULL COMMENT '默认为自定义的推流域名,如果未绑定推流域名即为播放域名',
`app_name` varchar(64) DEFAULT NULL COMMENT '应用名称',
`stream_name` varchar(64) DEFAULT NULL COMMENT '流名称',
`node` varchar(64) DEFAULT NULL COMMENT 'CDN 接受流的节点或者机器名',
`IP` varchar(20) DEFAULT NULL COMMENT '推流的客户端 IP',
`usrargs` text COMMENT '用户推流的参数'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流状态变更';

5
db/20190220_zj.sql Normal file
View File

@ -0,0 +1,5 @@
ALTER TABLE `live_scene`
ADD COLUMN `live_end` datetime NULL COMMENT '直播结束时间' AFTER `caster_id`;
ALTER TABLE `live_scene_live_info`
ADD COLUMN `title_image` varchar(255) NULL COMMENT '标题图' AFTER `stream_name`;

3
db/20190221_tong.sql Normal file
View File

@ -0,0 +1,3 @@
ALTER TABLE `live_scene_record`
ADD COLUMN `title_image` varchar(255) NULL COMMENT '标题图' AFTER `record_name`;

8
db/20190222_troy.sql Normal file
View File

@ -0,0 +1,8 @@
-- 第三方平台用户评论
ALTER TABLE `live_comment`
ADD COLUMN `head_img` varchar(255) NULL COMMENT '用户头像路径' AFTER `last_update_date`,
ADD COLUMN `user_name` varchar(64) NULL COMMENT '用户姓名' AFTER `head_img`;

3
db/20190225_zj.sql Normal file
View File

@ -0,0 +1,3 @@
ALTER TABLE `live_scene`
ADD COLUMN `actual_live_start` datetime NULL COMMENT '实际开始时间' AFTER `live_end`,
ADD COLUMN `actual_live_end` datetime NULL COMMENT '实际结束时间' AFTER `actual_live_start`;

7
db/20190226_troy.sql Normal file
View File

@ -0,0 +1,7 @@
-- 现场报道增加报道人姓名
ALTER TABLE `live_report`
ADD COLUMN `reporter_name` varchar(64) NULL COMMENT '报道人姓名';

3
db/20190226_zj.sql Normal file
View File

@ -0,0 +1,3 @@
ALTER TABLE `live_scene_live_info`
ADD COLUMN `is_default` smallint(6) NULL DEFAULT 0 COMMENT '是否是默认10不是' AFTER `title_image`;

26
db/20190227_troy.sql Normal file
View File

@ -0,0 +1,26 @@
-- 第三方平台
-- ----------------------------
-- Table structure for `tb_user_token` 用户token
-- ----------------------------
DROP TABLE IF EXISTS `tb_user_token`;
CREATE TABLE `tb_user_token` (
`user_id` bigint(20) NOT NULL,
`token` varchar(100) NOT NULL COMMENT 'token',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`user_id`),
UNIQUE KEY `token` (`token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='对外用户Token';
ALTER TABLE `tb_user`
ADD COLUMN `salt` varchar(20) NULL COMMENT '校验值';
-- 爱济南客户端账号
INSERT INTO `tb_user` VALUES ('4', 'cPrFQdgkKSorIUcE', 'cPrFQdgkKSorIUcE', '6d676f8c231adfd00db65da2eed4d302b325db62cf17def955cf4a630117ecc2', '2019-02-28 09:19:59', 'NvXW8Haya4eHlcb');

2
db/20190227_zj.sql Normal file
View File

@ -0,0 +1,2 @@
ALTER TABLE `live_scene_live_info`
ADD COLUMN `is_show` smallint(6) NULL DEFAULT 0 COMMENT '是否显示0不显示1显示' AFTER `is_default`;

6
db/20190307_troy.sql Normal file
View File

@ -0,0 +1,6 @@
-- ----------------------------
-- Table structure for `live_scene` 现场允许评论设置
-- ----------------------------
ALTER TABLE `live_scene`
ADD COLUMN `allow_comment` smallint NULL DEFAULT 1 COMMENT '允许评论';

View File

@ -0,0 +1,43 @@
/*
Navicat MySQL Data Transfer
Source Server : DB
Source Server Version : 80011
Source Host : localhost:3306
Source Database : aijinan
Target Server Type : MYSQL
Target Server Version : 80011
File Encoding : 65001
Date: 2019-03-11 17:48:09
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for sensitive_stop_word
-- ----------------------------
DROP TABLE IF EXISTS `sensitive_stop_word`;
CREATE TABLE `sensitive_stop_word` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '停顿符id',
`stop_word` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '停顿符',
`create_by` bigint(20) NOT NULL COMMENT '创建者id',
`create_time` timestamp NOT NULL COMMENT '创建时间',
`is_delete` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除默认为0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='敏感停顿符';
-- ----------------------------
-- Table structure for sensitive_word
-- ----------------------------
DROP TABLE IF EXISTS `sensitive_word`;
CREATE TABLE `sensitive_word` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sensitive_word` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '敏感词',
`replace_word` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '替换词',
`create_by` bigint(20) NOT NULL COMMENT '创建者id',
`create_time` timestamp NOT NULL COMMENT '创建时间',
`is_delete` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除默认为0不删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='敏感词';

15
db/20190313_tong.sql Normal file
View File

@ -0,0 +1,15 @@
DROP TABLE IF EXISTS `live_caster`;
CREATE TABLE `live_caster` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`caster_id` varchar(64) DEFAULT NULL COMMENT '导播台Id',
`caster_name` varchar(255) DEFAULT NULL COMMENT '导播台名称',
`norm_type` smallint(6) DEFAULT NULL COMMENT '导播台规格类型',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`start_time` datetime DEFAULT NULL COMMENT '导播台启动时间',
`data_state` smallint(6) DEFAULT NULL COMMENT '数据状态',
`app_name` varchar(64) DEFAULT NULL COMMENT 'app名称',
`stream_name` varchar(64) DEFAULT NULL COMMENT '原画流名称',
`scene_id` int(11) DEFAULT NULL COMMENT '现场ID',
`is_delete` smallint(1) DEFAULT NULL COMMENT '导播台状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='导播台信息表';

17
db/20190315_tong.sql Normal file
View File

@ -0,0 +1,17 @@
ALTER TABLE `live_scene_record`
ADD COLUMN `media_id` int NULL COMMENT '素材id' AFTER `priority`;
DROP TABLE IF EXISTS `live_stream_record_task`;
CREATE TABLE `live_stream_record_task` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`video_id` varchar(32) DEFAULT NULL COMMENT '视频id',
`domain_name` varchar(64) DEFAULT NULL COMMENT '域名',
`app_name` varchar(32) DEFAULT NULL COMMENT 'app名称',
`stream_name` varchar(32) DEFAULT NULL COMMENT '流名称',
`record_start_time` datetime DEFAULT NULL COMMENT '录制开始时间',
`record_end_time` datetime DEFAULT NULL COMMENT '录制结束时间',
`start_time` datetime DEFAULT NULL COMMENT '转码开始时间',
`end_time` datetime DEFAULT NULL COMMENT '转码结束时间',
`is_ok` smallint(1) DEFAULT NULL COMMENT '是否转码成功',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

5
db/20190318_tong.sql Normal file
View File

@ -0,0 +1,5 @@
ALTER TABLE `live_scene_record`
MODIFY COLUMN `uri` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '视频时长' AFTER `title_image`;
ALTER TABLE `live_caster`
ADD COLUMN `template_ids` varchar(64) NULL COMMENT '转码设置' AFTER `is_delete`;

4
db/20190411_tong.sql Normal file
View File

@ -0,0 +1,4 @@
ALTER TABLE `live_scene`
MODIFY COLUMN `live_desc` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '现场简介' AFTER `title_image`,
MODIFY COLUMN `scene_mark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '现场备注' AFTER `live_state`;

376
db/20190412_troy.sql Normal file
View File

@ -0,0 +1,376 @@
/*
*/
ALTER TABLE `sys_role_menu`
ADD INDEX `SYS_ROLE_MENU_ROLE_ID` (`role_id`, `menu_id`) ;
/*
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `sys_menu`
-- ----------------------------
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`menu_id` bigint(20) NOT NULL AUTO_INCREMENT,
`parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单ID一级菜单为0',
`name` varchar(50) DEFAULT NULL COMMENT '菜单名称',
`url` varchar(200) DEFAULT NULL COMMENT '菜单URL',
`perms` varchar(1000) DEFAULT NULL COMMENT '授权(多个用逗号分隔user:list,user:create)',
`type` int(11) DEFAULT NULL COMMENT '类型 0目录 1菜单 2按钮',
`icon` varchar(50) DEFAULT NULL COMMENT '菜单图标',
`order_num` int(11) DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=159 DEFAULT CHARSET=utf8 COMMENT='菜单管理';
-- ----------------------------
-- Records of sys_menu
-- ----------------------------
INSERT INTO `sys_menu` VALUES ('1', '0', '系统管理', null, null, '0', 'setting', '6');
INSERT INTO `sys_menu` VALUES ('2', '1', '管理员列表', '/n/user', null, '1', 'fa fa-user', '1');
INSERT INTO `sys_menu` VALUES ('3', '1', '角色管理', '/n/role', null, '1', 'fa fa-user-secret', '2');
INSERT INTO `sys_menu` VALUES ('4', '1', '菜单管理', '/n/menu', null, '1', 'fa fa-th-list', '3');
INSERT INTO `sys_menu` VALUES ('15', '2', '查看', null, 'sys:user:list,sys:user:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('16', '2', '新增', null, 'sys:user:save,sys:role:select', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('17', '2', '修改', null, 'sys:user:update,sys:role:select', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('18', '2', '删除', null, 'sys:user:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('19', '3', '查看', null, 'sys:role:list,sys:role:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('20', '3', '新增', null, 'sys:role:save,sys:menu:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('21', '3', '修改', null, 'sys:role:update,sys:menu:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('22', '3', '删除', null, 'sys:role:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('23', '4', '查看', null, 'sys:menu:list,sys:menu:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('24', '4', '新增', null, 'sys:menu:save,sys:menu:select', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('25', '4', '修改', null, 'sys:menu:update,sys:menu:select', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('26', '4', '删除', null, 'sys:menu:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('29', '1', '系统日志', '/n/log', 'sys:log:list', '1', 'fa fa-file-text-o', '4');
INSERT INTO `sys_menu` VALUES ('77', '0', '现场管理', null, null, '0', 'video_resource', '1');
INSERT INTO `sys_menu` VALUES ('78', '77', '我的现场', '/v/myscene', 'live:livescene:page,live:livescene:info,live:livescene:save,live:livescene:update,live:livescene:submit,live:livescene:delete,live:livescene:index:rebuild', '1', null, '1');
INSERT INTO `sys_menu` VALUES ('79', '77', '现场审核', '/v/reviewscene', 'live:livescene:page', '1', null, '2');
INSERT INTO `sys_menu` VALUES ('80', '77', '成品现场', '/v/finishscene', 'modules/scene/finishScene.html\', \'live:livescene:page,live:livescene:info,live:livescene:caster,live:livescene:direct,live:livescene:stream:list,live:livescene:update,live:livescene:delete,live:livescene:stream:createOrUpdate,live:livescene:stream:delete,live:livescene:stream:create,live:livescene:stream:update,live:livescene:stream:info,live:livescene:stream:reporters,live:livescenerecord:page,live:livescenerecord:info,live:livescenerecord:update,live:livescenerecord:delete,live:livescene:startLive,live:livescene:stopLive,live:livescene:stream:streamDefault,live:livescene:streamPlay,live:livescenerecord:save,live:livescene:streamShow,live:livescene:index:rebuild,live:caster:all', '1', null, '3');
INSERT INTO `sys_menu` VALUES ('81', '0', '素材库', '/r/library', null, '1', 'video_release', '2');
INSERT INTO `sys_menu` VALUES ('82', '0', '在线剪辑', '/c/qkvideo', null, '1', 'spread', '3');
INSERT INTO `sys_menu` VALUES ('89', '1', '敏感词管理', '/n/word', 'sensitive:word:list,sensitive:word:save,sensitive:word:info,sensitive:word:update,sensitive:word:delete,sensitive:word:replace,sensitive:stopword:list,sensitive:stopword:info,sensitive:stopword:save,sensitive:stopword:update,sensitive:stopword:delete', '1', null, '5');
INSERT INTO `sys_menu` VALUES ('91', '79', 'app现场审核', null, 'app:live:scene:page,app:live:scene:check', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('93', '0', '考核管理', '/n/Assess', null, '1', 'left_assess', '4');
INSERT INTO `sys_menu` VALUES ('94', '0', '接口管理', '/n/InterfaceTimedTask', null, '1', 'left_interface', '5');
INSERT INTO `sys_menu` VALUES ('95', '77', '现场回收站', '/v/cyclescene', null, '1', null, '4');
INSERT INTO `sys_menu` VALUES ('96', '1', '栏目管理', '/n/channel', null, '1', null, '6');
INSERT INTO `sys_menu` VALUES ('97', '78', '新建现场', null, 'live:livescene:save,live:livescene:channels', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('98', '78', '现场查询', null, 'live:livescene:page', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('99', '78', '现场修改', null, 'live:livescene:update,live:livescene:channels', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('100', '78', '现场详情', null, 'live:livescene:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('101', '78', '现场送审', null, 'live:livescene:submit', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('102', '79', '现场查询', null, 'live:livescene:page', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('103', '79', '现场修改', null, 'live:livescene:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('104', '79', '现场详情', null, 'live:livescene:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('105', '79', '现场审核', null, 'live:livescene:check', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('106', '79', '现场删除', null, 'live:livescene:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('107', '78', '现场删除', null, 'live:livescene:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('108', '80', '现场删除', null, 'live:livescene:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('109', '80', '现场详情', null, 'live:livescene:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('110', '80', '现场修改', null, 'live:livescene:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('111', '80', '流管理-列表', null, 'live:livescene:stream:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('112', '80', '流管理-创建', null, 'live:livescene:stream:create', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('113', '80', '流管理-更新', null, 'live:livescene:stream:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('114', '80', '流管理-详情', null, 'live:livescene:stream:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('115', '80', '流管理-删除', null, 'live:livescene:stream:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('116', '80', '流管理-记者列表', null, 'live:livescene:stream:reporters', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('117', '80', '流管理-显示/不显示', null, 'live:livescene:streamShow', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('118', '80', '回顾-列表', null, 'live:livescenerecord:page', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('119', '80', '回顾-详情', null, 'live:livescenerecord:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('120', '80', '回顾-创建', null, 'live:livescenerecord:save', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('121', '80', '回顾-修改', null, 'live:livescenerecord:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('122', '80', '回顾-删除', null, 'live:livescenerecord:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('123', '80', '回顾-排序', null, 'live:livescenerecord:priority', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('124', '80', '报道-列表', null, 'live:report:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('125', '80', '报道-详情', null, 'live:report:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('126', '80', '报道-创建', null, 'live:report:save', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('127', '80', '报道-修改', null, 'live:report:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('128', '80', '报道-删除', null, 'live:report:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('129', '80', '报道-发布', null, 'live:report:release', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('130', '80', '报道-取消发布', null, 'live:report:cancelRelease', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('131', '80', '报道-置顶', null, 'live:report:top', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('132', '80', '报道-取消置顶', null, 'live:report:cancelTop', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('133', '80', '报道-排序', null, 'live:report:priority', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('134', '80', '评论-列表', null, 'live:comment:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('135', '80', '评论-详情', null, 'live:comment:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('136', '80', '评论-创建', null, 'live:comment:save', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('137', '80', '评论-修改', null, 'live:comment:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('138', '80', '评论-删除', null, 'live:comment:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('139', '80', '评论-发布', null, 'live:comment:release', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('140', '80', '评论-取消发布', null, 'live:comment:cancelRelease', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('141', '80', '评论-app审核', null, 'app:live:scene:comment:check', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('142', '95', '列表', null, 'live:livescene:page', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('143', '95', '详情', null, 'live:livescene:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('144', '95', '还原', null, 'live:livescene:cycle:recycle', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('145', '95', '删除', null, 'live:livescene:cycle:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('146', '81', '列表', null, 'live:multimedia:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('147', '81', '详情', null, 'live:multimedia:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('148', '81', '上传', null, 'live:multimedia:save', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('149', '81', '修改', null, 'live:multimedia:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('150', '81', '删除', null, 'live:multimedia:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('151', '0', '首页', '/home', null, '1', 'home', '0');
INSERT INTO `sys_menu` VALUES ('152', '96', '查看', null, 'live:channel:list,live:channel:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('153', '96', '新增', null, 'live:channel:save', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('154', '96', '修改', null, 'live:channel:update,live:channel:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('155', '96', '删除', null, 'live:channel:list,live:channel:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('156', '96', '批量显示', null, 'live:channel:list,live:channel:display', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('157', '96', '取消显示', null, 'live:channel:list,live:channel:cancelDisplay', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('158', '96', '排序', null, 'live:channel:list,live:channel:priority', '2', null, '0');
-- ----------------------------
-- Table structure for `sys_role_menu`
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_menu`;
CREATE TABLE `sys_role_menu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
`menu_id` bigint(20) DEFAULT NULL COMMENT '菜单ID',
PRIMARY KEY (`id`),
KEY `SYS_ROLE_MENU_ROLE_ID` (`role_id`,`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1204 DEFAULT CHARSET=utf8 COMMENT='角色与菜单对应关系';
-- ----------------------------
-- Records of sys_role_menu
-- ----------------------------
INSERT INTO `sys_role_menu` VALUES ('822', '1', '1');
INSERT INTO `sys_role_menu` VALUES ('823', '1', '2');
INSERT INTO `sys_role_menu` VALUES ('828', '1', '3');
INSERT INTO `sys_role_menu` VALUES ('833', '1', '4');
INSERT INTO `sys_role_menu` VALUES ('824', '1', '15');
INSERT INTO `sys_role_menu` VALUES ('825', '1', '16');
INSERT INTO `sys_role_menu` VALUES ('826', '1', '17');
INSERT INTO `sys_role_menu` VALUES ('827', '1', '18');
INSERT INTO `sys_role_menu` VALUES ('829', '1', '19');
INSERT INTO `sys_role_menu` VALUES ('830', '1', '20');
INSERT INTO `sys_role_menu` VALUES ('831', '1', '21');
INSERT INTO `sys_role_menu` VALUES ('832', '1', '22');
INSERT INTO `sys_role_menu` VALUES ('834', '1', '23');
INSERT INTO `sys_role_menu` VALUES ('835', '1', '24');
INSERT INTO `sys_role_menu` VALUES ('836', '1', '25');
INSERT INTO `sys_role_menu` VALUES ('837', '1', '26');
INSERT INTO `sys_role_menu` VALUES ('838', '1', '29');
INSERT INTO `sys_role_menu` VALUES ('760', '1', '77');
INSERT INTO `sys_role_menu` VALUES ('761', '1', '78');
INSERT INTO `sys_role_menu` VALUES ('768', '1', '79');
INSERT INTO `sys_role_menu` VALUES ('775', '1', '80');
INSERT INTO `sys_role_menu` VALUES ('815', '1', '81');
INSERT INTO `sys_role_menu` VALUES ('821', '1', '82');
INSERT INTO `sys_role_menu` VALUES ('839', '1', '89');
INSERT INTO `sys_role_menu` VALUES ('769', '1', '91');
INSERT INTO `sys_role_menu` VALUES ('810', '1', '95');
INSERT INTO `sys_role_menu` VALUES ('840', '1', '96');
INSERT INTO `sys_role_menu` VALUES ('762', '1', '97');
INSERT INTO `sys_role_menu` VALUES ('763', '1', '98');
INSERT INTO `sys_role_menu` VALUES ('764', '1', '99');
INSERT INTO `sys_role_menu` VALUES ('765', '1', '100');
INSERT INTO `sys_role_menu` VALUES ('766', '1', '101');
INSERT INTO `sys_role_menu` VALUES ('770', '1', '102');
INSERT INTO `sys_role_menu` VALUES ('771', '1', '103');
INSERT INTO `sys_role_menu` VALUES ('772', '1', '104');
INSERT INTO `sys_role_menu` VALUES ('773', '1', '105');
INSERT INTO `sys_role_menu` VALUES ('774', '1', '106');
INSERT INTO `sys_role_menu` VALUES ('767', '1', '107');
INSERT INTO `sys_role_menu` VALUES ('776', '1', '108');
INSERT INTO `sys_role_menu` VALUES ('777', '1', '109');
INSERT INTO `sys_role_menu` VALUES ('778', '1', '110');
INSERT INTO `sys_role_menu` VALUES ('779', '1', '111');
INSERT INTO `sys_role_menu` VALUES ('780', '1', '112');
INSERT INTO `sys_role_menu` VALUES ('781', '1', '113');
INSERT INTO `sys_role_menu` VALUES ('782', '1', '114');
INSERT INTO `sys_role_menu` VALUES ('783', '1', '115');
INSERT INTO `sys_role_menu` VALUES ('784', '1', '116');
INSERT INTO `sys_role_menu` VALUES ('785', '1', '117');
INSERT INTO `sys_role_menu` VALUES ('786', '1', '118');
INSERT INTO `sys_role_menu` VALUES ('787', '1', '119');
INSERT INTO `sys_role_menu` VALUES ('788', '1', '120');
INSERT INTO `sys_role_menu` VALUES ('789', '1', '121');
INSERT INTO `sys_role_menu` VALUES ('790', '1', '122');
INSERT INTO `sys_role_menu` VALUES ('791', '1', '123');
INSERT INTO `sys_role_menu` VALUES ('792', '1', '124');
INSERT INTO `sys_role_menu` VALUES ('793', '1', '125');
INSERT INTO `sys_role_menu` VALUES ('794', '1', '126');
INSERT INTO `sys_role_menu` VALUES ('795', '1', '127');
INSERT INTO `sys_role_menu` VALUES ('796', '1', '128');
INSERT INTO `sys_role_menu` VALUES ('797', '1', '129');
INSERT INTO `sys_role_menu` VALUES ('798', '1', '130');
INSERT INTO `sys_role_menu` VALUES ('799', '1', '131');
INSERT INTO `sys_role_menu` VALUES ('800', '1', '132');
INSERT INTO `sys_role_menu` VALUES ('801', '1', '133');
INSERT INTO `sys_role_menu` VALUES ('802', '1', '134');
INSERT INTO `sys_role_menu` VALUES ('803', '1', '135');
INSERT INTO `sys_role_menu` VALUES ('804', '1', '136');
INSERT INTO `sys_role_menu` VALUES ('805', '1', '137');
INSERT INTO `sys_role_menu` VALUES ('806', '1', '138');
INSERT INTO `sys_role_menu` VALUES ('807', '1', '139');
INSERT INTO `sys_role_menu` VALUES ('808', '1', '140');
INSERT INTO `sys_role_menu` VALUES ('809', '1', '141');
INSERT INTO `sys_role_menu` VALUES ('811', '1', '142');
INSERT INTO `sys_role_menu` VALUES ('812', '1', '143');
INSERT INTO `sys_role_menu` VALUES ('813', '1', '144');
INSERT INTO `sys_role_menu` VALUES ('814', '1', '145');
INSERT INTO `sys_role_menu` VALUES ('816', '1', '146');
INSERT INTO `sys_role_menu` VALUES ('817', '1', '147');
INSERT INTO `sys_role_menu` VALUES ('818', '1', '148');
INSERT INTO `sys_role_menu` VALUES ('819', '1', '149');
INSERT INTO `sys_role_menu` VALUES ('820', '1', '150');
INSERT INTO `sys_role_menu` VALUES ('759', '1', '151');
INSERT INTO `sys_role_menu` VALUES ('841', '1', '152');
INSERT INTO `sys_role_menu` VALUES ('842', '1', '153');
INSERT INTO `sys_role_menu` VALUES ('843', '1', '154');
INSERT INTO `sys_role_menu` VALUES ('844', '1', '155');
INSERT INTO `sys_role_menu` VALUES ('845', '1', '156');
INSERT INTO `sys_role_menu` VALUES ('846', '1', '157');
INSERT INTO `sys_role_menu` VALUES ('847', '1', '158');
INSERT INTO `sys_role_menu` VALUES ('1138', '2', '78');
INSERT INTO `sys_role_menu` VALUES ('1146', '2', '80');
INSERT INTO `sys_role_menu` VALUES ('1186', '2', '81');
INSERT INTO `sys_role_menu` VALUES ('1192', '2', '82');
INSERT INTO `sys_role_menu` VALUES ('1195', '2', '89');
INSERT INTO `sys_role_menu` VALUES ('1193', '2', '93');
INSERT INTO `sys_role_menu` VALUES ('1194', '2', '94');
INSERT INTO `sys_role_menu` VALUES ('1181', '2', '95');
INSERT INTO `sys_role_menu` VALUES ('1196', '2', '96');
INSERT INTO `sys_role_menu` VALUES ('1139', '2', '97');
INSERT INTO `sys_role_menu` VALUES ('1140', '2', '98');
INSERT INTO `sys_role_menu` VALUES ('1141', '2', '99');
INSERT INTO `sys_role_menu` VALUES ('1142', '2', '100');
INSERT INTO `sys_role_menu` VALUES ('1143', '2', '101');
INSERT INTO `sys_role_menu` VALUES ('1145', '2', '102');
INSERT INTO `sys_role_menu` VALUES ('1144', '2', '107');
INSERT INTO `sys_role_menu` VALUES ('1147', '2', '108');
INSERT INTO `sys_role_menu` VALUES ('1148', '2', '109');
INSERT INTO `sys_role_menu` VALUES ('1149', '2', '110');
INSERT INTO `sys_role_menu` VALUES ('1150', '2', '111');
INSERT INTO `sys_role_menu` VALUES ('1151', '2', '112');
INSERT INTO `sys_role_menu` VALUES ('1152', '2', '113');
INSERT INTO `sys_role_menu` VALUES ('1153', '2', '114');
INSERT INTO `sys_role_menu` VALUES ('1154', '2', '115');
INSERT INTO `sys_role_menu` VALUES ('1155', '2', '116');
INSERT INTO `sys_role_menu` VALUES ('1156', '2', '117');
INSERT INTO `sys_role_menu` VALUES ('1157', '2', '118');
INSERT INTO `sys_role_menu` VALUES ('1158', '2', '119');
INSERT INTO `sys_role_menu` VALUES ('1159', '2', '120');
INSERT INTO `sys_role_menu` VALUES ('1160', '2', '121');
INSERT INTO `sys_role_menu` VALUES ('1161', '2', '122');
INSERT INTO `sys_role_menu` VALUES ('1162', '2', '123');
INSERT INTO `sys_role_menu` VALUES ('1163', '2', '124');
INSERT INTO `sys_role_menu` VALUES ('1164', '2', '125');
INSERT INTO `sys_role_menu` VALUES ('1165', '2', '126');
INSERT INTO `sys_role_menu` VALUES ('1166', '2', '127');
INSERT INTO `sys_role_menu` VALUES ('1167', '2', '128');
INSERT INTO `sys_role_menu` VALUES ('1168', '2', '129');
INSERT INTO `sys_role_menu` VALUES ('1169', '2', '130');
INSERT INTO `sys_role_menu` VALUES ('1170', '2', '131');
INSERT INTO `sys_role_menu` VALUES ('1171', '2', '132');
INSERT INTO `sys_role_menu` VALUES ('1172', '2', '133');
INSERT INTO `sys_role_menu` VALUES ('1173', '2', '134');
INSERT INTO `sys_role_menu` VALUES ('1174', '2', '135');
INSERT INTO `sys_role_menu` VALUES ('1175', '2', '136');
INSERT INTO `sys_role_menu` VALUES ('1176', '2', '137');
INSERT INTO `sys_role_menu` VALUES ('1177', '2', '138');
INSERT INTO `sys_role_menu` VALUES ('1178', '2', '139');
INSERT INTO `sys_role_menu` VALUES ('1179', '2', '140');
INSERT INTO `sys_role_menu` VALUES ('1180', '2', '141');
INSERT INTO `sys_role_menu` VALUES ('1182', '2', '142');
INSERT INTO `sys_role_menu` VALUES ('1183', '2', '143');
INSERT INTO `sys_role_menu` VALUES ('1184', '2', '144');
INSERT INTO `sys_role_menu` VALUES ('1185', '2', '145');
INSERT INTO `sys_role_menu` VALUES ('1187', '2', '146');
INSERT INTO `sys_role_menu` VALUES ('1188', '2', '147');
INSERT INTO `sys_role_menu` VALUES ('1189', '2', '148');
INSERT INTO `sys_role_menu` VALUES ('1190', '2', '149');
INSERT INTO `sys_role_menu` VALUES ('1191', '2', '150');
INSERT INTO `sys_role_menu` VALUES ('1137', '2', '151');
INSERT INTO `sys_role_menu` VALUES ('1197', '2', '152');
INSERT INTO `sys_role_menu` VALUES ('1198', '2', '153');
INSERT INTO `sys_role_menu` VALUES ('1199', '2', '154');
INSERT INTO `sys_role_menu` VALUES ('1200', '2', '155');
INSERT INTO `sys_role_menu` VALUES ('1201', '2', '156');
INSERT INTO `sys_role_menu` VALUES ('1202', '2', '157');
INSERT INTO `sys_role_menu` VALUES ('1203', '2', '158');
INSERT INTO `sys_role_menu` VALUES ('849', '3', '77');
INSERT INTO `sys_role_menu` VALUES ('850', '3', '78');
INSERT INTO `sys_role_menu` VALUES ('857', '3', '79');
INSERT INTO `sys_role_menu` VALUES ('864', '3', '80');
INSERT INTO `sys_role_menu` VALUES ('904', '3', '81');
INSERT INTO `sys_role_menu` VALUES ('910', '3', '82');
INSERT INTO `sys_role_menu` VALUES ('913', '3', '89');
INSERT INTO `sys_role_menu` VALUES ('858', '3', '91');
INSERT INTO `sys_role_menu` VALUES ('911', '3', '93');
INSERT INTO `sys_role_menu` VALUES ('912', '3', '94');
INSERT INTO `sys_role_menu` VALUES ('899', '3', '95');
INSERT INTO `sys_role_menu` VALUES ('914', '3', '96');
INSERT INTO `sys_role_menu` VALUES ('851', '3', '97');
INSERT INTO `sys_role_menu` VALUES ('852', '3', '98');
INSERT INTO `sys_role_menu` VALUES ('853', '3', '99');
INSERT INTO `sys_role_menu` VALUES ('854', '3', '100');
INSERT INTO `sys_role_menu` VALUES ('855', '3', '101');
INSERT INTO `sys_role_menu` VALUES ('859', '3', '102');
INSERT INTO `sys_role_menu` VALUES ('860', '3', '103');
INSERT INTO `sys_role_menu` VALUES ('861', '3', '104');
INSERT INTO `sys_role_menu` VALUES ('862', '3', '105');
INSERT INTO `sys_role_menu` VALUES ('863', '3', '106');
INSERT INTO `sys_role_menu` VALUES ('856', '3', '107');
INSERT INTO `sys_role_menu` VALUES ('865', '3', '108');
INSERT INTO `sys_role_menu` VALUES ('866', '3', '109');
INSERT INTO `sys_role_menu` VALUES ('867', '3', '110');
INSERT INTO `sys_role_menu` VALUES ('868', '3', '111');
INSERT INTO `sys_role_menu` VALUES ('869', '3', '112');
INSERT INTO `sys_role_menu` VALUES ('870', '3', '113');
INSERT INTO `sys_role_menu` VALUES ('871', '3', '114');
INSERT INTO `sys_role_menu` VALUES ('872', '3', '115');
INSERT INTO `sys_role_menu` VALUES ('873', '3', '116');
INSERT INTO `sys_role_menu` VALUES ('874', '3', '117');
INSERT INTO `sys_role_menu` VALUES ('875', '3', '118');
INSERT INTO `sys_role_menu` VALUES ('876', '3', '119');
INSERT INTO `sys_role_menu` VALUES ('877', '3', '120');
INSERT INTO `sys_role_menu` VALUES ('878', '3', '121');
INSERT INTO `sys_role_menu` VALUES ('879', '3', '122');
INSERT INTO `sys_role_menu` VALUES ('880', '3', '123');
INSERT INTO `sys_role_menu` VALUES ('881', '3', '124');
INSERT INTO `sys_role_menu` VALUES ('882', '3', '125');
INSERT INTO `sys_role_menu` VALUES ('883', '3', '126');
INSERT INTO `sys_role_menu` VALUES ('884', '3', '127');
INSERT INTO `sys_role_menu` VALUES ('885', '3', '128');
INSERT INTO `sys_role_menu` VALUES ('886', '3', '129');
INSERT INTO `sys_role_menu` VALUES ('887', '3', '130');
INSERT INTO `sys_role_menu` VALUES ('888', '3', '131');
INSERT INTO `sys_role_menu` VALUES ('889', '3', '132');
INSERT INTO `sys_role_menu` VALUES ('890', '3', '133');
INSERT INTO `sys_role_menu` VALUES ('891', '3', '134');
INSERT INTO `sys_role_menu` VALUES ('892', '3', '135');
INSERT INTO `sys_role_menu` VALUES ('893', '3', '136');
INSERT INTO `sys_role_menu` VALUES ('894', '3', '137');
INSERT INTO `sys_role_menu` VALUES ('895', '3', '138');
INSERT INTO `sys_role_menu` VALUES ('896', '3', '139');
INSERT INTO `sys_role_menu` VALUES ('897', '3', '140');
INSERT INTO `sys_role_menu` VALUES ('898', '3', '141');
INSERT INTO `sys_role_menu` VALUES ('900', '3', '142');
INSERT INTO `sys_role_menu` VALUES ('901', '3', '143');
INSERT INTO `sys_role_menu` VALUES ('902', '3', '144');
INSERT INTO `sys_role_menu` VALUES ('903', '3', '145');
INSERT INTO `sys_role_menu` VALUES ('905', '3', '146');
INSERT INTO `sys_role_menu` VALUES ('906', '3', '147');
INSERT INTO `sys_role_menu` VALUES ('907', '3', '148');
INSERT INTO `sys_role_menu` VALUES ('908', '3', '149');
INSERT INTO `sys_role_menu` VALUES ('909', '3', '150');
INSERT INTO `sys_role_menu` VALUES ('848', '3', '151');
INSERT INTO `sys_role_menu` VALUES ('915', '3', '152');
INSERT INTO `sys_role_menu` VALUES ('916', '3', '153');
INSERT INTO `sys_role_menu` VALUES ('917', '3', '154');
INSERT INTO `sys_role_menu` VALUES ('918', '3', '155');
INSERT INTO `sys_role_menu` VALUES ('919', '3', '156');
INSERT INTO `sys_role_menu` VALUES ('920', '3', '157');
INSERT INTO `sys_role_menu` VALUES ('921', '3', '158');
INSERT INTO `sys_role_menu` VALUES ('924', '4', '81');
INSERT INTO `sys_role_menu` VALUES ('922', '4', '91');
INSERT INTO `sys_role_menu` VALUES ('923', '4', '141');
INSERT INTO `sys_role_menu` VALUES ('925', '4', '146');
INSERT INTO `sys_role_menu` VALUES ('926', '4', '147');
INSERT INTO `sys_role_menu` VALUES ('927', '4', '148');
INSERT INTO `sys_role_menu` VALUES ('928', '4', '149');
INSERT INTO `sys_role_menu` VALUES ('929', '4', '150');

2
db/20190423_tong.sql Normal file
View File

@ -0,0 +1,2 @@
ALTER TABLE `live_scene`
ADD COLUMN `video_url` varchar(255) NULL COMMENT '视频url' AFTER `title_image`;

6
db/20190529_troy.sql Normal file
View File

@ -0,0 +1,6 @@
/*
*/
ALTER TABLE `live_multimedia`
ADD COLUMN `ori_file_identifier` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '源文件唯一标识' AFTER `media_snapshots`;

7
db/20190531_troy.sql Normal file
View File

@ -0,0 +1,7 @@
/* 现场简介详情链接 */
ALTER TABLE `live_scene`
ADD COLUMN `live_desc_href` varchar(255) NULL COMMENT '现场简介链接';
/* 报道详情链接 */
ALTER TABLE `live_report`
ADD COLUMN `content_href` varchar(255) NULL COMMENT '报道详情链接';

3
db/20190610_tong.sql Normal file
View File

@ -0,0 +1,3 @@
/* 素材资源大小 */
ALTER TABLE `live_multimedia`
MODIFY COLUMN `media_size` bigint NULL DEFAULT 0 COMMENT '素材资源大小,单位:字节。' AFTER `cate_id`;

50
db/20190723_ktan.sql Normal file
View File

@ -0,0 +1,50 @@
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `edit_project_material`;
CREATE TABLE `edit_project_material` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`project_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '项目id',
`material_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '素材id',
`create_date` date NULL DEFAULT NULL COMMENT '创建日期',
`create_user` int(4) NULL DEFAULT NULL COMMENT '创建人',
`is_delete` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除',
`material_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '素材类型用于区分',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `edit_project_watermark`;
CREATE TABLE `edit_project_watermark` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`project_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '项目id',
`material_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '素材id',
`create_date` date NULL DEFAULT NULL COMMENT '创建日期',
`create_user` int(4) NULL DEFAULT NULL COMMENT '创建人',
`is_delete` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除',
`material_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '素材类型用于区分',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `edit_project`;
CREATE TABLE `edit_project` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`project_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '项目id',
`create_date` date NULL DEFAULT NULL COMMENT '创建日期',
`create_user` int(4) NULL DEFAULT NULL COMMENT '创建人',
`is_delete` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除',
`modified_time` date NULL DEFAULT NULL COMMENT '修改时间',
`project_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '素材类型用于区分',
`cover_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片链接',
`timeline` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`title` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
`division` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`material_id` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '完成后对应的素材ID',
`status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 188 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

15
db/20191111_tong.sql Normal file
View File

@ -0,0 +1,15 @@
CREATE TABLE `sys_tenant` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`parent_id` bigint(20) DEFAULT NULL COMMENT '父id',
`tenant_name` varchar(50) DEFAULT NULL COMMENT '机构名',
`category` tinyint(2) DEFAULT '1' COMMENT '1机构2个人',
`license` varchar(100) DEFAULT NULL COMMENT '营业执照',
`license_url` varchar(1000) DEFAULT NULL COMMENT '营业执照url',
`status` tinyint(4) DEFAULT NULL COMMENT '状态 0禁用 1正常',
`sort` int(11) DEFAULT '0' COMMENT '排序',
`remark` varchar(10000) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT NULL,
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建者ID',
`delete_flag` tinyint(1) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

35
db/20191113_mxy.sql Normal file
View File

@ -0,0 +1,35 @@
ALTER TABLE `sys_user`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `last_login_ip`;
ALTER TABLE `edit_project`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `status`;
ALTER TABLE `live_multimedia`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `is_delete`;
ALTER TABLE `live_report`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `content_href`;
ALTER TABLE `live_scene`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `live_desc_href`;
ALTER TABLE `live_scene_check`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `check_date`;
ALTER TABLE `live_scene_count`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `last_update_time`;
ALTER TABLE `live_scene_live_info`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `priority`;
ALTER TABLE `live_scene_record`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `media_id`;
ALTER TABLE `live_caster`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `template_ids`;
ALTER TABLE `live_scene_live_info_ext`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `play_url_flv`;
ALTER TABLE `live_scene_live_info_record`
ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户id' AFTER `stop_time`;

2
db/20191114_mxy.sql Normal file
View File

@ -0,0 +1,2 @@
ALTER TABLE `sys_user`
ADD COLUMN `id_card` varchar(20) NULL DEFAULT NULL COMMENT '身份证号' AFTER `realname`;

30
db/20191116_mxy.sql Normal file
View File

@ -0,0 +1,30 @@
ALTER TABLE `sys_tenant`
CHANGE COLUMN `id` `tenant_id` bigint(20) NOT NULL AUTO_INCREMENT FIRST ;
INSERT INTO `sys_tenant` VALUES ('1', null, '济南报业', '1', null, null, '1', '0', null, '2019-11-16 15:35:12', '1', '0');
UPDATE sys_user SET tenant_id=1 WHERE user_id!=1;
UPDATE edit_project SET tenant_id=1;
UPDATE live_multimedia SET tenant_id=1;
UPDATE live_report SET tenant_id=1;
UPDATE live_scene SET tenant_id=1;
UPDATE live_scene_check SET tenant_id=1;
UPDATE live_scene_count SET tenant_id=1;
UPDATE live_scene_live_info SET tenant_id=1;
UPDATE live_scene_record SET tenant_id=1;
UPDATE live_caster SET tenant_id=1;
UPDATE live_scene_live_info_ext SET tenant_id=1;
UPDATE live_scene_live_info_record SET tenant_id=1;

4
db/20200106_tong.sql Normal file
View File

@ -0,0 +1,4 @@
ALTER TABLE `live_multimedia`
MODIFY COLUMN `state` smallint(1) NULL DEFAULT 0 COMMENT '状态 0 上传中 1正常 2 上传失败 10 转码中 11 转码失败 ' AFTER `description`;
ALTER TABLE `live_multimedia`
ADD COLUMN `ori_media_url` varchar(200) NULL COMMENT '源媒体地址,音视频转码此字段不为空' AFTER `media_url`;

98
db/20200107_mxy.sql Normal file
View File

@ -0,0 +1,98 @@
/*
Navicat MySQL Data Transfer
Source Server : Mxy-Work
Source Server Version : 80017
Source Host : localhost:3306
Source Database : jinan-live
Target Server Type : MYSQL
Target Server Version : 80017
File Encoding : 65001
Date: 2020-01-07 10:44:07
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for live_transcode_info
-- ----------------------------
DROP TABLE IF EXISTS `live_transcode_info`;
CREATE TABLE `live_transcode_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`transcode_task_id` varchar(255) DEFAULT NULL COMMENT '转码任务id',
`video_id` varchar(255) DEFAULT NULL COMMENT '视频id',
`transcode_template_group_id` varchar(255) DEFAULT NULL COMMENT '转码任务模板组id',
`task_status` varchar(32) DEFAULT NULL COMMENT '任务状态Processing处理中Partial部分转码完成CompleteAllSucc全部转码成功CompleteAllFail全部转码失败CompletePartialSucc全部转码完成但仅部分成功',
`creation_time` varchar(32) DEFAULT NULL COMMENT '开始时间',
`complete_time` varchar(32) DEFAULT NULL COMMENT '完成时间',
`trigger` varchar(11) DEFAULT NULL COMMENT '触发类型Auto自动触发Manual ,接口触发',
PRIMARY KEY (`id`)
);
-- ----------------------------
-- Table structure for live_transcode_job
-- ----------------------------
DROP TABLE IF EXISTS `live_transcode_job`;
CREATE TABLE `live_transcode_job` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`transcode_job_id` varchar(255) NOT NULL COMMENT '转码作业id',
`transcode_task_id` varchar(255) DEFAULT NULL COMMENT '转码任务id',
`transcode_template_group_id` varchar(255) DEFAULT NULL COMMENT '转码模板id',
`transcode_job_status` varchar(32) DEFAULT NULL COMMENT '转码作业状态Transcoding转码中TranscodeSuccess转码成功TranscodeFail转码失败',
`creation_time` varchar(32) DEFAULT NULL COMMENT '创建时间',
`complete_time` varchar(32) DEFAULT NULL COMMENT '完成时间',
`transcode_progress` int(11) DEFAULT NULL COMMENT '转码作业处理进度',
`input_file_url` varchar(255) DEFAULT NULL COMMENT '转码源文件的OSS地址',
`priority` varchar(11) DEFAULT NULL COMMENT '优先级',
`error_code` varchar(11) DEFAULT NULL COMMENT '异常码',
`error_message` varchar(32) DEFAULT NULL COMMENT '异常信息',
`definition` varchar(11) DEFAULT NULL COMMENT '清晰度',
`output_file_url` varchar(255) DEFAULT NULL COMMENT '转码输出文件的OSS地址',
`format` varchar(11) DEFAULT NULL COMMENT '转码输出文件的封装格式',
`width` varchar(11) DEFAULT NULL COMMENT '转码输出文件视频画面宽单位px',
`height` varchar(11) DEFAULT NULL COMMENT '转码输出文件视频画面高单位px',
`duration` varchar(11) DEFAULT NULL COMMENT '转码输出文件时长,单位:秒',
`bitrate` varchar(11) DEFAULT NULL COMMENT '转码输出文件平均码率单位kbps',
`fps` varchar(11) DEFAULT NULL COMMENT '转码输出文件的帧率单位N帧/秒',
`filesize` int(11) DEFAULT NULL COMMENT '转码输出文件大小单位Byte',
`encryption` varchar(255) DEFAULT NULL COMMENT '转码输出文件使用的加密类型',
PRIMARY KEY (`id`)
);
ALTER TABLE `live_transcode_info`
ADD COLUMN `service_id` int(11) NULL COMMENT '转码业务id' AFTER `transcode_task_id`,
ADD COLUMN `service_type` tinyint(1) NULL COMMENT '转码业务类型0上传1录制2合成' AFTER `service_id`;
ALTER TABLE `live_transcode_job`
ADD COLUMN `service_id` int(11) NULL COMMENT '转码业务id' AFTER `transcode_job_id`,
ADD COLUMN `service_type` tinyint(1) NULL COMMENT '转码业务类型0上传1录制2合成' AFTER `service_id`;
ALTER TABLE `live_transcode_info`
ADD COLUMN `transcode_status` tinyint(1) NULL COMMENT '转码状态0上传中1转码中2转码成功3转码失败' AFTER `transcode_template_group_id`;
ALTER TABLE `live_transcode_job`
ADD COLUMN `transcode_status` tinyint(1) NULL COMMENT '转码状态0上传中1转码中2转码成功3转码失败' AFTER `transcode_template_group_id`;
ALTER TABLE `live_transcode_info`
DROP COLUMN `transcode_template_group_id`,
DROP COLUMN `task_status`,
DROP COLUMN `trigger`;
ALTER TABLE `live_transcode_job`
DROP COLUMN `transcode_template_group_id`,
DROP COLUMN `transcode_job_status`;
ALTER TABLE `live_transcode_info`
ADD COLUMN `transcode_template_group_id` varchar(255) NULL DEFAULT NULL COMMENT '转码模板组id' AFTER `service_type`;
ALTER TABLE `live_transcode_job`
ADD COLUMN `transcode_template_group_id` varchar(255) NULL DEFAULT NULL COMMENT '转码模板组id' AFTER `service_type`;
ALTER TABLE `live_transcode_info`
MODIFY COLUMN `service_type` tinyint(1) NULL DEFAULT NULL COMMENT '转码业务类型1录制2上传3合成' AFTER `service_id`;
ALTER TABLE `live_transcode_job`
MODIFY COLUMN `service_type` tinyint(1) NULL DEFAULT NULL COMMENT '转码业务类型1录制2上传3合成' AFTER `service_id`;

7
db/20200113_tong.sql Normal file
View File

@ -0,0 +1,7 @@
ALTER TABLE `live_stream_status`
ADD COLUMN `id` bigint NOT NULL AUTO_INCREMENT FIRST ,
ADD PRIMARY KEY (`id`);
ALTER TABLE `live_stream_status`
ADD INDEX `idx_stream_app` (`stream_name`, `app_name`) ;

13
db/20200224_mxy.sql Normal file
View File

@ -0,0 +1,13 @@
ALTER TABLE `live_scene_record`
ADD COLUMN `record_type` tinyint(1) NULL DEFAULT 0 COMMENT '回顾类型0直播时移1m3u82mp43.快速剪辑' AFTER `tenant_id`;
UPDATE live_scene_record
SET record_type = CASE
WHEN uri LIKE '%.m3u8' THEN
1
WHEN uri LIKE '%.mp3' THEN
2
WHEN uri LIKE '%.mp4' THEN
2
else 0
END

4
db/20200320_mxy.sql Normal file
View File

@ -0,0 +1,4 @@
ALTER TABLE `live_scene_record`
MODIFY COLUMN `record_type` tinyint(1) NULL DEFAULT 0 COMMENT '回顾类型0直播时移1m3u82mp43快速剪辑4mp3' AFTER `tenant_id`;
UPDATE live_scene_record SET record_type = 4 WHERE uri LIKE '%.mp3'

10
db/20200326_mxy.sql Normal file
View File

@ -0,0 +1,10 @@
ALTER TABLE `live_scene_channel`
ADD COLUMN `drag_sort` int(11) NULL COMMENT '拖动排序标识' AFTER `channel_id`;
UPDATE live_scene_channel SET drag_sort = unix_timestamp(now());
ALTER TABLE `live_task_allocation`
MODIFY COLUMN `reporter_id` varchar(500) NULL DEFAULT NULL COMMENT '记者ID' AFTER `duration_time`;
ALTER TABLE `live_report`
ADD COLUMN `related_report` varchar(512) NULL DEFAULT NULL COMMENT '相关报道' AFTER `tenant_id`;

4
db/20210225_Matt.sql Normal file
View File

@ -0,0 +1,4 @@
ALTER TABLE `live_scene_live_info`
ADD COLUMN `text` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '转写语音文字内容' AFTER `pull_end`,
ADD COLUMN `task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '语音转写文字任务id' AFTER `text`,
ADD COLUMN `voice_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '视频转为mp3后的地址' AFTER `task_id`;

15
db/20210301_Matt.sql Normal file
View File

@ -0,0 +1,15 @@
ALTER TABLE `live_scene_record`
ADD COLUMN `text` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '转写语音文字内容' AFTER `record_type`,
ADD COLUMN `task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '语音转写文字任务id' AFTER `text`,
ADD COLUMN `voice_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '视频转为mp3后的地址' AFTER `task_id`,
ADD COLUMN `is_txt` smallint(6) NULL DEFAULT 0 COMMENT '是否转写语音文字' AFTER `voice_url`,
ADD COLUMN `to_txt_status` smallint(6) NULL DEFAULT 0 COMMENT '语音转写文字状态0未转1转码成功2转码中' AFTER `is_txt`;
ALTER TABLE `live_scene_live_info`
DROP COLUMN `text`,
DROP COLUMN `task_id`,
DROP COLUMN `voice_url`;
ALTER TABLE `live_scene_live_info`
ADD COLUMN `is_txt` smallint NULL DEFAULT 0 COMMENT '是否转写语音文字' AFTER `is_show`;

2
db/20210419_Matt.sql Normal file
View File

@ -0,0 +1,2 @@
ALTER TABLE `live_scene`
ADD COLUMN `is_auto_live` tinyint(1) NULL DEFAULT 0 COMMENT '是否自动开关播0关闭1开启' AFTER `tenant_id`;

811
db/diversified.sql Normal file
View File

@ -0,0 +1,811 @@
/*
Navicat MySQL Data Transfer
Source Server : 39.106.19.53
Source Server Version : 50722
Source Host : 39.106.19.53:3306
Source Database : diversified
Target Server Type : MYSQL
Target Server Version : 50722
File Encoding : 65001
Date: 2019-01-18 15:51:42
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for plm_material
-- ----------------------------
DROP TABLE IF EXISTS `plm_material`;
CREATE TABLE `plm_material` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`material_title` varchar(255) DEFAULT NULL COMMENT '标题',
`material_description` varchar(1000) DEFAULT NULL COMMENT '描述',
`material_type` tinyint(1) DEFAULT NULL COMMENT '资源类型,视频等 1视频 2语音 3图片',
`material_cover_url` varchar(255) DEFAULT NULL COMMENT '封面图',
`material_cover_ori_url` varchar(255) DEFAULT NULL COMMENT '原资源封面图',
`material_url` varchar(1000) DEFAULT NULL COMMENT '资源URl',
`material_ori_url` varchar(1000) DEFAULT NULL COMMENT '原资源URl',
`material_size` varchar(50) DEFAULT NULL COMMENT '资源大小',
`file_size` int(11) DEFAULT NULL COMMENT '文件大小',
`material_duration` varchar(50) DEFAULT NULL COMMENT '资源时长S视频、语音',
`play_time` int(11) DEFAULT NULL COMMENT '文件时长',
`material_sources` tinyint(1) DEFAULT NULL COMMENT '资源来源 1 本地上传2快手下载3现场下载4现场报道下载',
`material_src_id` varchar(50) DEFAULT NULL,
`material_status` tinyint(1) unsigned zerofill DEFAULT '0' COMMENT '素材状态 0 处理中 1 处理完成 ',
`create_date` datetime DEFAULT NULL COMMENT '创建日期',
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
`update_date` datetime DEFAULT NULL COMMENT '修改日期',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`is_delete` tinyint(1) DEFAULT '0' COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='资源信息表';
-- ----------------------------
-- Records of plm_material
-- ----------------------------
-- ----------------------------
-- Table structure for plm_video
-- ----------------------------
DROP TABLE IF EXISTS `plm_video`;
CREATE TABLE `plm_video` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title_img` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '标题图',
`title` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '标题',
`file_size` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文件大小',
`duration_time` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '时长',
`publish_channel` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发布渠道',
`create_method` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建方式',
`status` tinyint(1) DEFAULT '0' COMMENT '视频的状态(0草稿1审核中2成品)',
`video_type` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '视频的类型',
`date` date DEFAULT NULL COMMENT '时间',
`server_video_path` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '服务器的视频路径',
`digest` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '摘要',
`opinion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核意见',
`create_date` date DEFAULT NULL COMMENT '创建日期',
`create_user` int(4) DEFAULT NULL COMMENT '创建人',
`update_date` date DEFAULT NULL COMMENT '修改日期',
`update_user` tinyint(4) DEFAULT NULL COMMENT '修改人',
`is_delete` tinyint(1) DEFAULT '0' COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ----------------------------
-- Records of plm_video
-- ----------------------------
-- ----------------------------
-- Table structure for plm_video_download_log
-- ----------------------------
DROP TABLE IF EXISTS `plm_video_download_log`;
CREATE TABLE `plm_video_download_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`paramList` varchar(500) DEFAULT NULL COMMENT '请求参数',
`signature` varchar(500) DEFAULT NULL COMMENT '参数签名',
`request_json` text COMMENT '下载json对象从检索结果在获取',
`result_json` text COMMENT '返回结果',
`head_url` varchar(255) DEFAULT NULL,
`media_url` varchar(255) DEFAULT NULL COMMENT '下载资源路径',
`create_date` datetime DEFAULT NULL COMMENT '操作日期',
`create_user` int(11) DEFAULT NULL COMMENT '操作人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='快手下载记录表';
-- ----------------------------
-- Records of plm_video_download_log
-- ----------------------------
-- ----------------------------
-- Table structure for plm_video_news
-- ----------------------------
DROP TABLE IF EXISTS `plm_video_news`;
CREATE TABLE `plm_video_news` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL COMMENT '标题',
`video_url` varchar(255) DEFAULT NULL COMMENT '视频路径',
`title_img` varchar(255) DEFAULT NULL COMMENT '标题图路径',
`cover_url` varchar(255) DEFAULT NULL COMMENT '资源标题图',
`material_url` varchar(255) DEFAULT NULL COMMENT '资源URl',
`material_size` varchar(64) DEFAULT NULL COMMENT '文件大小',
`file_size` int(11) DEFAULT NULL,
`material_duration` varchar(64) DEFAULT NULL COMMENT '时长',
`play_time` int(11) DEFAULT NULL COMMENT '文件时长',
`publish_channel` varchar(64) DEFAULT NULL COMMENT '发布渠道',
`video_sources` tinyint(1) DEFAULT NULL COMMENT '视频来源 1趣看剪辑 2本地上传',
`description` varchar(500) DEFAULT NULL COMMENT '摘要',
`status` tinyint(1) DEFAULT '0' COMMENT '审核状态(-1转码失败 0 转码中 1下载中2 草稿3审核中4成品)',
`message` varchar(255) DEFAULT NULL COMMENT '趣看转码返回信息',
`task_id` bigint(20) DEFAULT NULL COMMENT '趣看任务ID',
`material_id` bigint(20) DEFAULT NULL COMMENT '趣看资源ID',
`start_time` datetime DEFAULT NULL COMMENT '趣看合成开始时间',
`stop_time` datetime DEFAULT NULL COMMENT '趣看合成结束时间',
`audit_opinion` varchar(255) DEFAULT NULL COMMENT '审核意见',
`create_date` datetime DEFAULT NULL COMMENT '创建日期',
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
`update_date` datetime DEFAULT NULL COMMENT '修改日期',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`audit_date` datetime DEFAULT NULL COMMENT '审核日期',
`audit_user` bigint(20) DEFAULT NULL COMMENT '审核人',
`is_delete` tinyint(1) DEFAULT '0' COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='视频发布信息表';
-- ----------------------------
-- Records of plm_video_news
-- ----------------------------
-- ----------------------------
-- Table structure for plm_video_search_log
-- ----------------------------
DROP TABLE IF EXISTS `plm_video_search_log`;
CREATE TABLE `plm_video_search_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`paramList` varchar(500) DEFAULT NULL COMMENT '请求参数',
`signature` varchar(500) DEFAULT NULL COMMENT '参数签名',
`result_json` mediumtext COMMENT '返回结果',
`create_date` datetime DEFAULT NULL COMMENT '操作日期',
`create_user` int(11) DEFAULT NULL COMMENT '操作人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='快手检索记录表';
-- ----------------------------
-- Records of plm_video_search_log
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_blob_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_blob_triggers`;
CREATE TABLE `qrtz_blob_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(200) NOT NULL,
`TRIGGER_GROUP` varchar(200) NOT NULL,
`BLOB_DATA` blob,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
KEY `SCHED_NAME` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_blob_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_calendars
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_calendars`;
CREATE TABLE `qrtz_calendars` (
`SCHED_NAME` varchar(120) NOT NULL,
`CALENDAR_NAME` varchar(200) NOT NULL,
`CALENDAR` blob NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_calendars
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_cron_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_cron_triggers`;
CREATE TABLE `qrtz_cron_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(200) NOT NULL,
`TRIGGER_GROUP` varchar(200) NOT NULL,
`CRON_EXPRESSION` varchar(120) NOT NULL,
`TIME_ZONE_ID` varchar(80) DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_cron_triggers
-- ----------------------------
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_1', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_10', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_2', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_3', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_4', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_5', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_6', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_7', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_8', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
INSERT INTO `qrtz_cron_triggers` VALUES ('RenrenScheduler', 'TASK_9', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
-- ----------------------------
-- Table structure for qrtz_fired_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_fired_triggers`;
CREATE TABLE `qrtz_fired_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`ENTRY_ID` varchar(95) NOT NULL,
`TRIGGER_NAME` varchar(200) NOT NULL,
`TRIGGER_GROUP` varchar(200) NOT NULL,
`INSTANCE_NAME` varchar(200) NOT NULL,
`FIRED_TIME` bigint(13) NOT NULL,
`SCHED_TIME` bigint(13) NOT NULL,
`PRIORITY` int(11) NOT NULL,
`STATE` varchar(16) NOT NULL,
`JOB_NAME` varchar(200) DEFAULT NULL,
`JOB_GROUP` varchar(200) DEFAULT NULL,
`IS_NONCONCURRENT` varchar(1) DEFAULT NULL,
`REQUESTS_RECOVERY` varchar(1) DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`),
KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`),
KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`),
KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_fired_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_job_details
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_job_details`;
CREATE TABLE `qrtz_job_details` (
`SCHED_NAME` varchar(120) NOT NULL,
`JOB_NAME` varchar(200) NOT NULL,
`JOB_GROUP` varchar(200) NOT NULL,
`DESCRIPTION` varchar(250) DEFAULT NULL,
`JOB_CLASS_NAME` varchar(250) NOT NULL,
`IS_DURABLE` varchar(1) NOT NULL,
`IS_NONCONCURRENT` varchar(1) NOT NULL,
`IS_UPDATE_DATA` varchar(1) NOT NULL,
`REQUESTS_RECOVERY` varchar(1) NOT NULL,
`JOB_DATA` blob,
PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`),
KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_job_details
-- ----------------------------
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_1', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000017400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_10', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000A74000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_2', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000274000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_3', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000037400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_4', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000474000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_5', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000057400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_6', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000674000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_7', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000077400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_8', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000874000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_job_details` VALUES ('RenrenScheduler', 'TASK_9', 'DEFAULT', null, 'com.platform.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000097400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
-- ----------------------------
-- Table structure for qrtz_locks
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_locks`;
CREATE TABLE `qrtz_locks` (
`SCHED_NAME` varchar(120) NOT NULL,
`LOCK_NAME` varchar(40) NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_locks
-- ----------------------------
INSERT INTO `qrtz_locks` VALUES ('RenrenScheduler', 'STATE_ACCESS');
INSERT INTO `qrtz_locks` VALUES ('RenrenScheduler', 'TRIGGER_ACCESS');
-- ----------------------------
-- Table structure for qrtz_paused_trigger_grps
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
CREATE TABLE `qrtz_paused_trigger_grps` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_GROUP` varchar(200) NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_paused_trigger_grps
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_scheduler_state
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_scheduler_state`;
CREATE TABLE `qrtz_scheduler_state` (
`SCHED_NAME` varchar(120) NOT NULL,
`INSTANCE_NAME` varchar(200) NOT NULL,
`LAST_CHECKIN_TIME` bigint(13) NOT NULL,
`CHECKIN_INTERVAL` bigint(13) NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_scheduler_state
-- ----------------------------
INSERT INTO `qrtz_scheduler_state` VALUES ('RenrenScheduler', 'iz2zeakzlq9sm4xqwxda7vz1545727870499', '1547798084939', '15000');
-- ----------------------------
-- Table structure for qrtz_simple_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simple_triggers`;
CREATE TABLE `qrtz_simple_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(200) NOT NULL,
`TRIGGER_GROUP` varchar(200) NOT NULL,
`REPEAT_COUNT` bigint(7) NOT NULL,
`REPEAT_INTERVAL` bigint(12) NOT NULL,
`TIMES_TRIGGERED` bigint(10) NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_simple_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_simprop_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
CREATE TABLE `qrtz_simprop_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(200) NOT NULL,
`TRIGGER_GROUP` varchar(200) NOT NULL,
`STR_PROP_1` varchar(512) DEFAULT NULL,
`STR_PROP_2` varchar(512) DEFAULT NULL,
`STR_PROP_3` varchar(512) DEFAULT NULL,
`INT_PROP_1` int(11) DEFAULT NULL,
`INT_PROP_2` int(11) DEFAULT NULL,
`LONG_PROP_1` bigint(20) DEFAULT NULL,
`LONG_PROP_2` bigint(20) DEFAULT NULL,
`DEC_PROP_1` decimal(13,4) DEFAULT NULL,
`DEC_PROP_2` decimal(13,4) DEFAULT NULL,
`BOOL_PROP_1` varchar(1) DEFAULT NULL,
`BOOL_PROP_2` varchar(1) DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_simprop_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_triggers`;
CREATE TABLE `qrtz_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(200) NOT NULL,
`TRIGGER_GROUP` varchar(200) NOT NULL,
`JOB_NAME` varchar(200) NOT NULL,
`JOB_GROUP` varchar(200) NOT NULL,
`DESCRIPTION` varchar(250) DEFAULT NULL,
`NEXT_FIRE_TIME` bigint(13) DEFAULT NULL,
`PREV_FIRE_TIME` bigint(13) DEFAULT NULL,
`PRIORITY` int(11) DEFAULT NULL,
`TRIGGER_STATE` varchar(16) NOT NULL,
`TRIGGER_TYPE` varchar(8) NOT NULL,
`START_TIME` bigint(13) NOT NULL,
`END_TIME` bigint(13) DEFAULT NULL,
`CALENDAR_NAME` varchar(200) DEFAULT NULL,
`MISFIRE_INSTR` smallint(2) DEFAULT NULL,
`JOB_DATA` blob,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`),
KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`),
KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`),
KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`),
KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`),
KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`),
KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`),
KEY `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qrtz_triggers
-- ----------------------------
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_1', 'DEFAULT', 'TASK_1', 'DEFAULT', null, '1547798400000', '1547796600000', '5', 'WAITING', 'CRON', '1532398552000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000017400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_10', 'DEFAULT', 'TASK_10', 'DEFAULT', null, '1532611800000', '-1', '5', 'PAUSED', 'CRON', '1532611074000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000A74000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_2', 'DEFAULT', 'TASK_2', 'DEFAULT', null, '1532399400000', '-1', '5', 'PAUSED', 'CRON', '1532398552000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000274000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_3', 'DEFAULT', 'TASK_3', 'DEFAULT', null, '1547798400000', '1547796600000', '5', 'WAITING', 'CRON', '1532611074000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000037400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_4', 'DEFAULT', 'TASK_4', 'DEFAULT', null, '1532611800000', '-1', '5', 'PAUSED', 'CRON', '1532611074000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000474000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_5', 'DEFAULT', 'TASK_5', 'DEFAULT', null, '1547798400000', '1547796600000', '5', 'WAITING', 'CRON', '1532611074000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000057400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_6', 'DEFAULT', 'TASK_6', 'DEFAULT', null, '1532611800000', '-1', '5', 'PAUSED', 'CRON', '1532611074000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000674000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_7', 'DEFAULT', 'TASK_7', 'DEFAULT', null, '1547798400000', '1547796600000', '5', 'WAITING', 'CRON', '1532611074000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000077400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_8', 'DEFAULT', 'TASK_8', 'DEFAULT', null, '1532611800000', '-1', '5', 'PAUSED', 'CRON', '1532611074000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158C377C4607874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000874000574657374327074000FE697A0E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000017800);
INSERT INTO `qrtz_triggers` VALUES ('RenrenScheduler', 'TASK_9', 'DEFAULT', 'TASK_9', 'DEFAULT', null, '1547798400000', '1547796600000', '5', 'WAITING', 'CRON', '1532611074000', '0', null, '2', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B455973720031636F6D2E706C6174666F726D2E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200084C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C000A6D6574686F644E616D6571007E00094C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000158BAF593307874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000097400047465737474000672656E72656E74000FE69C89E58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
-- ----------------------------
-- Table structure for schedule_job
-- ----------------------------
DROP TABLE IF EXISTS `schedule_job`;
CREATE TABLE `schedule_job` (
`job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务id',
`bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean名称',
`method_name` varchar(100) DEFAULT NULL COMMENT '方法名',
`params` varchar(2000) DEFAULT NULL COMMENT '参数',
`cron_expression` varchar(100) DEFAULT NULL COMMENT 'cron表达式',
`status` tinyint(4) DEFAULT NULL COMMENT '任务状态 0正常 1暂停',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`job_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='定时任务';
-- ----------------------------
-- Records of schedule_job
-- ----------------------------
INSERT INTO `schedule_job` VALUES ('1', 'testTask', 'test', 'renren', '0 0/30 * * * ?', '0', '有参数测试', '2016-12-01 23:16:46');
INSERT INTO `schedule_job` VALUES ('2', 'testTask', 'test2', null, '0 0/30 * * * ?', '1', '无参数测试', '2016-12-03 14:55:56');
INSERT INTO `schedule_job` VALUES ('3', 'testTask', 'test', 'renren', '0 0/30 * * * ?', '0', '有参数测试', '2016-12-01 23:16:46');
INSERT INTO `schedule_job` VALUES ('4', 'testTask', 'test2', null, '0 0/30 * * * ?', '1', '无参数测试', '2016-12-03 14:55:56');
INSERT INTO `schedule_job` VALUES ('5', 'testTask', 'test', 'renren', '0 0/30 * * * ?', '0', '有参数测试', '2016-12-01 23:16:46');
INSERT INTO `schedule_job` VALUES ('6', 'testTask', 'test2', null, '0 0/30 * * * ?', '1', '无参数测试', '2016-12-03 14:55:56');
INSERT INTO `schedule_job` VALUES ('7', 'testTask', 'test', 'renren', '0 0/30 * * * ?', '0', '有参数测试', '2016-12-01 23:16:46');
INSERT INTO `schedule_job` VALUES ('8', 'testTask', 'test2', null, '0 0/30 * * * ?', '1', '无参数测试', '2016-12-03 14:55:56');
INSERT INTO `schedule_job` VALUES ('9', 'testTask', 'test', 'renren', '0 0/30 * * * ?', '0', '有参数测试', '2016-12-01 23:16:46');
INSERT INTO `schedule_job` VALUES ('10', 'testTask', 'test2', null, '0 0/30 * * * ?', '1', '无参数测试', '2016-12-03 14:55:56');
-- ----------------------------
-- Table structure for schedule_job_log
-- ----------------------------
DROP TABLE IF EXISTS `schedule_job_log`;
CREATE TABLE `schedule_job_log` (
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志id',
`job_id` bigint(20) NOT NULL COMMENT '任务id',
`bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean名称',
`method_name` varchar(100) DEFAULT NULL COMMENT '方法名',
`params` varchar(2000) DEFAULT NULL COMMENT '参数',
`status` tinyint(4) NOT NULL COMMENT '任务状态 0成功 1失败',
`error` varchar(2000) DEFAULT NULL COMMENT '失败信息',
`times` int(11) NOT NULL COMMENT '耗时(单位:毫秒)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`log_id`),
KEY `job_id` (`job_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='定时任务日志';
-- ----------------------------
-- Records of schedule_job_log
-- ----------------------------
-- ----------------------------
-- Table structure for sys_captcha
-- ----------------------------
DROP TABLE IF EXISTS `sys_captcha`;
CREATE TABLE `sys_captcha` (
`uuid` char(36) NOT NULL COMMENT 'uuid',
`code` varchar(6) NOT NULL COMMENT '验证码',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
PRIMARY KEY (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统验证码';
-- ----------------------------
-- Records of sys_captcha
-- ----------------------------
-- ----------------------------
-- Table structure for sys_config
-- ----------------------------
DROP TABLE IF EXISTS `sys_config`;
CREATE TABLE `sys_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`key` varchar(50) DEFAULT NULL COMMENT 'key',
`value` varchar(2000) DEFAULT NULL COMMENT 'value',
`status` tinyint(4) DEFAULT '1' COMMENT '状态 0隐藏 1显示',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `key` (`key`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='系统配置信息表';
-- ----------------------------
-- Records of sys_config
-- ----------------------------
INSERT INTO `sys_config` VALUES ('1', 'CLOUD_STORAGE_CONFIG_KEY', '{\"aliyunAccessKeyId\":\"\",\"aliyunAccessKeySecret\":\"\",\"aliyunBucketName\":\"\",\"aliyunDomain\":\"\",\"aliyunEndPoint\":\"\",\"aliyunPrefix\":\"\",\"qcloudBucketName\":\"\",\"qcloudDomain\":\"\",\"qcloudPrefix\":\"\",\"qcloudSecretId\":\"\",\"qcloudSecretKey\":\"\",\"qiniuAccessKey\":\"NrgMfABZxWLo5B-YYSjoE8-AZ1EISdi1Z3ubLOeZ\",\"qiniuBucketName\":\"ios-app\",\"qiniuDomain\":\"http://7xqbwh.dl1.z0.glb.clouddn.com\",\"qiniuPrefix\":\"upload\",\"qiniuSecretKey\":\"uIwJHevMRWU0VLxFvgy0tAcOdGqasdtVlJkdy6vV\",\"type\":1}', '0', '云存储配置信息');
-- ----------------------------
-- Table structure for sys_log
-- ----------------------------
DROP TABLE IF EXISTS `sys_log`;
CREATE TABLE `sys_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL COMMENT '用户名',
`operation` varchar(50) DEFAULT NULL COMMENT '用户操作',
`method` varchar(200) DEFAULT NULL COMMENT '请求方法',
`params` varchar(5000) DEFAULT NULL COMMENT '请求参数',
`time` bigint(20) NOT NULL COMMENT '执行时长(毫秒)',
`ip` varchar(64) DEFAULT NULL COMMENT 'IP地址',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=271 DEFAULT CHARSET=utf8 COMMENT='系统日志';
-- ----------------------------
-- Records of sys_log
-- ----------------------------
-- ----------------------------
-- Table structure for sys_menu
-- ----------------------------
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`menu_id` bigint(20) NOT NULL AUTO_INCREMENT,
`parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单ID一级菜单为0',
`name` varchar(50) DEFAULT NULL COMMENT '菜单名称',
`url` varchar(200) DEFAULT NULL COMMENT '菜单URL',
`perms` varchar(500) DEFAULT NULL COMMENT '授权(多个用逗号分隔user:list,user:create)',
`type` int(11) DEFAULT NULL COMMENT '类型 0目录 1菜单 2按钮',
`icon` varchar(50) DEFAULT NULL COMMENT '菜单图标',
`order_num` int(11) DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8 COMMENT='菜单管理';
-- ----------------------------
-- Records of sys_menu
-- ----------------------------
INSERT INTO `sys_menu` VALUES ('1', '0', '系统管理', null, null, '0', 'fa fa-cog', '5');
INSERT INTO `sys_menu` VALUES ('2', '1', '管理员列表', 'modules/sys/user.html', null, '1', 'fa fa-user', '1');
INSERT INTO `sys_menu` VALUES ('3', '1', '角色管理', 'modules/sys/role.html', null, '1', 'fa fa-user-secret', '2');
INSERT INTO `sys_menu` VALUES ('4', '1', '菜单管理', 'modules/sys/menu.html', null, '1', 'fa fa-th-list', '3');
INSERT INTO `sys_menu` VALUES ('15', '2', '查看', null, 'sys:user:list,sys:user:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('16', '2', '新增', null, 'sys:user:save,sys:role:select', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('17', '2', '修改', null, 'sys:user:update,sys:role:select', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('18', '2', '删除', null, 'sys:user:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('19', '3', '查看', null, 'sys:role:list,sys:role:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('20', '3', '新增', null, 'sys:role:save,sys:menu:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('21', '3', '修改', null, 'sys:role:update,sys:menu:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('22', '3', '删除', null, 'sys:role:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('23', '4', '查看', null, 'sys:menu:list,sys:menu:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('24', '4', '新增', null, 'sys:menu:save,sys:menu:select', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('25', '4', '修改', null, 'sys:menu:update,sys:menu:select', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('26', '4', '删除', null, 'sys:menu:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('29', '1', '系统日志', 'modules/sys/log.html', 'sys:log:list', '1', 'fa fa-file-text-o', '7');
INSERT INTO `sys_menu` VALUES ('31', '0', '媒体资源', null, null, '0', null, '0');
INSERT INTO `sys_menu` VALUES ('32', '31', '现场新闻', 'modules/resource/scene.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('33', '32', '查看', null, 'scene:list,scene:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('34', '32', '下载', null, 'scene:download', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('35', '32', '报道', null, 'scenet:report:list,scene:report:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('36', '32', '报道下载', null, 'scene:report:download', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('37', '31', '本地上传', 'modules/resource/local.html', '', '1', null, '0');
INSERT INTO `sys_menu` VALUES ('38', '37', '查看', '', 'plm:material:upload:list,plm:material:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('39', '37', '新增', null, 'plm:material:upload', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('40', '37', '修改', null, 'plm:material:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('41', '37', '删除', null, 'plm:material:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('42', '31', '下载资源', 'modules/resource/download.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('43', '42', '查看', null, 'plm:material:download:list,plm:material:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('44', '42', '删除', null, 'plm:material:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('45', '31', '回收站', 'modules/resource/recycle.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('46', '45', '查看', null, 'plm:material:cycle:list,plm:material:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('47', '45', '还原', null, 'plm:material:recycle', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('48', '45', '删除', null, 'plm:material:cycle:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('49', '0', '资源搜索', '', null, '0', null, '0');
INSERT INTO `sys_menu` VALUES ('50', '49', '快手搜索', 'modules/search/ksvideo.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('51', '50', '查看', null, 'kuaishou:video:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('52', '50', '下载', null, 'kuaishou:video:download', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('53', '49', '快手下载', 'modules/search/ksdownload.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('54', '53', '查看', null, 'kuaishou:video:download:list', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('55', '0', '视频剪辑', 'modules/clip/qkvideo.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('56', '0', '视频发布', null, null, '0', null, '0');
INSERT INTO `sys_menu` VALUES ('57', '56', '我的视频', 'modules/video/myvideo.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('58', '57', '查看', null, 'plm:videonews:list,plm:videonews:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('59', '57', '编辑', null, 'plm:videonews:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('60', '57', '上传', null, 'plm:videonews:upload', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('61', '57', '删除', null, 'plm:videonews:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('62', '57', '送审', null, 'plm:videonews:audit', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('63', '56', '视频审核', 'modules/video/audiovideo.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('64', '63', '查看', null, 'plm:videonews:audit:list,plm:videonews:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('65', '63', '编辑', null, 'plm:videonews:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('66', '63', '审核通过', null, 'plm:videonews:audit:pass', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('67', '63', '审核驳回', null, 'plm:videonews:audit:reject', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('68', '63', '删除', null, 'plm:videonews:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('69', '56', '成品视频', 'modules/video/finishvideo.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('70', '69', '查看', null, 'plm:videonews:finished:list,plm:videonews:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('71', '69', '编辑', null, 'plm:videonews:update', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('72', '69', '删除', null, 'plm:videonews:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('73', '56', '视频回收站', 'modules/video/recyclevideo.html', null, '1', null, '0');
INSERT INTO `sys_menu` VALUES ('74', '73', '查看', null, 'plm:videonews:cycle:list,plm:videonews:info', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('75', '73', '删除', null, 'plm:videonews:cycle:delete', '2', null, '0');
INSERT INTO `sys_menu` VALUES ('76', '73', '还原', null, 'plm:videonews:recycle', '2', null, '0');
-- ----------------------------
-- Table structure for sys_oss
-- ----------------------------
DROP TABLE IF EXISTS `sys_oss`;
CREATE TABLE `sys_oss` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`url` varchar(200) DEFAULT NULL COMMENT 'URL地址',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文件上传';
-- ----------------------------
-- Records of sys_oss
-- ----------------------------
-- ----------------------------
-- Table structure for sys_role
-- ----------------------------
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
`role_id` bigint(20) NOT NULL AUTO_INCREMENT,
`role_name` varchar(100) DEFAULT NULL COMMENT '角色名称',
`remark` varchar(100) DEFAULT NULL COMMENT '备注',
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建者ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='角色';
-- ----------------------------
-- Records of sys_role
-- ----------------------------
INSERT INTO `sys_role` VALUES ('1', '管理员', null, '1', '2018-12-12 16:22:42');
-- ----------------------------
-- Table structure for sys_role_menu
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_menu`;
CREATE TABLE `sys_role_menu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
`menu_id` bigint(20) DEFAULT NULL COMMENT '菜单ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 COMMENT='角色与菜单对应关系';
-- ----------------------------
-- Records of sys_role_menu
-- ----------------------------
INSERT INTO `sys_role_menu` VALUES ('1', '1', '1');
INSERT INTO `sys_role_menu` VALUES ('2', '1', '2');
INSERT INTO `sys_role_menu` VALUES ('3', '1', '15');
INSERT INTO `sys_role_menu` VALUES ('4', '1', '16');
INSERT INTO `sys_role_menu` VALUES ('5', '1', '17');
INSERT INTO `sys_role_menu` VALUES ('6', '1', '18');
INSERT INTO `sys_role_menu` VALUES ('7', '1', '3');
INSERT INTO `sys_role_menu` VALUES ('8', '1', '19');
INSERT INTO `sys_role_menu` VALUES ('9', '1', '20');
INSERT INTO `sys_role_menu` VALUES ('10', '1', '21');
INSERT INTO `sys_role_menu` VALUES ('11', '1', '22');
INSERT INTO `sys_role_menu` VALUES ('12', '1', '4');
INSERT INTO `sys_role_menu` VALUES ('13', '1', '23');
INSERT INTO `sys_role_menu` VALUES ('14', '1', '24');
INSERT INTO `sys_role_menu` VALUES ('15', '1', '25');
INSERT INTO `sys_role_menu` VALUES ('16', '1', '26');
INSERT INTO `sys_role_menu` VALUES ('17', '1', '29');
INSERT INTO `sys_role_menu` VALUES ('18', '1', '31');
INSERT INTO `sys_role_menu` VALUES ('19', '1', '32');
INSERT INTO `sys_role_menu` VALUES ('20', '1', '33');
INSERT INTO `sys_role_menu` VALUES ('21', '1', '34');
INSERT INTO `sys_role_menu` VALUES ('22', '1', '35');
INSERT INTO `sys_role_menu` VALUES ('23', '1', '36');
INSERT INTO `sys_role_menu` VALUES ('24', '1', '37');
INSERT INTO `sys_role_menu` VALUES ('25', '1', '38');
INSERT INTO `sys_role_menu` VALUES ('26', '1', '39');
INSERT INTO `sys_role_menu` VALUES ('27', '1', '40');
INSERT INTO `sys_role_menu` VALUES ('28', '1', '41');
INSERT INTO `sys_role_menu` VALUES ('29', '1', '42');
INSERT INTO `sys_role_menu` VALUES ('30', '1', '43');
INSERT INTO `sys_role_menu` VALUES ('31', '1', '44');
INSERT INTO `sys_role_menu` VALUES ('32', '1', '45');
INSERT INTO `sys_role_menu` VALUES ('33', '1', '46');
INSERT INTO `sys_role_menu` VALUES ('34', '1', '47');
INSERT INTO `sys_role_menu` VALUES ('35', '1', '48');
INSERT INTO `sys_role_menu` VALUES ('36', '1', '49');
INSERT INTO `sys_role_menu` VALUES ('37', '1', '50');
INSERT INTO `sys_role_menu` VALUES ('38', '1', '51');
INSERT INTO `sys_role_menu` VALUES ('39', '1', '52');
INSERT INTO `sys_role_menu` VALUES ('40', '1', '53');
INSERT INTO `sys_role_menu` VALUES ('41', '1', '54');
INSERT INTO `sys_role_menu` VALUES ('42', '1', '55');
INSERT INTO `sys_role_menu` VALUES ('43', '1', '56');
INSERT INTO `sys_role_menu` VALUES ('44', '1', '57');
INSERT INTO `sys_role_menu` VALUES ('45', '1', '58');
INSERT INTO `sys_role_menu` VALUES ('46', '1', '59');
INSERT INTO `sys_role_menu` VALUES ('47', '1', '60');
INSERT INTO `sys_role_menu` VALUES ('48', '1', '61');
INSERT INTO `sys_role_menu` VALUES ('49', '1', '62');
INSERT INTO `sys_role_menu` VALUES ('50', '1', '63');
INSERT INTO `sys_role_menu` VALUES ('51', '1', '64');
INSERT INTO `sys_role_menu` VALUES ('52', '1', '65');
INSERT INTO `sys_role_menu` VALUES ('53', '1', '66');
INSERT INTO `sys_role_menu` VALUES ('54', '1', '67');
INSERT INTO `sys_role_menu` VALUES ('55', '1', '68');
INSERT INTO `sys_role_menu` VALUES ('56', '1', '69');
INSERT INTO `sys_role_menu` VALUES ('57', '1', '70');
INSERT INTO `sys_role_menu` VALUES ('58', '1', '71');
INSERT INTO `sys_role_menu` VALUES ('59', '1', '72');
INSERT INTO `sys_role_menu` VALUES ('60', '1', '73');
INSERT INTO `sys_role_menu` VALUES ('61', '1', '74');
INSERT INTO `sys_role_menu` VALUES ('62', '1', '75');
INSERT INTO `sys_role_menu` VALUES ('63', '1', '76');
-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`user_id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '用户名',
`password` varchar(100) DEFAULT NULL COMMENT '密码',
`salt` varchar(20) DEFAULT NULL COMMENT '',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
`mobile` varchar(100) DEFAULT NULL COMMENT '手机号',
`status` tinyint(4) DEFAULT NULL COMMENT '状态 0禁用 1正常',
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建者ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` varchar(50) DEFAULT '127.0.0.1' COMMENT '最后登录IP',
PRIMARY KEY (`user_id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='系统用户';
-- ----------------------------
-- Records of sys_user
-- ----------------------------
INSERT INTO `sys_user` VALUES ('1', 'admin', '9ec9750e709431dad22365cabc5c625482e574c74adaebba7dd02f1129e4ce1d', 'YzcmCZNvbXocrsz9dm8e', 'root@renren.io', '13612345678', '1', '1', '2016-11-11 11:11:11', '2019-01-18 09:51:53', '106.120.84.238');
INSERT INTO `sys_user` VALUES ('2', 'h3azg5trm9soskpv', '45c3cc2589a61561121784b146f12eb3c40886237a5664a692eb24c0d4969f66', 'nY7tzWiCmWrZnQ1I0ued', '', '', '1', '1', '2018-08-07 16:05:01', '2018-12-19 11:12:20', '127.0.0.1');
INSERT INTO `sys_user` VALUES ('3', 'test', '84ef3a393ad90c149d1a914ae24b96c6b621fb4c8924b9d1e07b1a879f42ad23', 'UULhpzWasPjfNvGnLEaA', 'test@qq.com', '13121212111', '1', '1', '2018-12-12 16:22:18', '2019-01-17 18:41:36', '106.120.84.238');
INSERT INTO `sys_user` VALUES ('4', 'zhangsiyu', 'e9a301f385ffe035062a24c2704dfd465ef407ba6dc54a81a2733e9de54e8636', '3pkhQjbFsIDbuIKuKeqc', 'zhangsiyu@qq.com', '13111111111', '1', '1', '2019-01-17 18:43:51', '2019-01-17 18:45:25', '106.120.84.238');
-- ----------------------------
-- Table structure for sys_user_role
-- ----------------------------
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',
`role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='用户与角色对应关系';
-- ----------------------------
-- Records of sys_user_role
-- ----------------------------
INSERT INTO `sys_user_role` VALUES ('5', '3', '1');
INSERT INTO `sys_user_role` VALUES ('6', '4', '1');
-- ----------------------------
-- Table structure for sys_user_token
-- ----------------------------
DROP TABLE IF EXISTS `sys_user_token`;
CREATE TABLE `sys_user_token` (
`user_id` bigint(20) NOT NULL,
`token` varchar(100) NOT NULL COMMENT 'token',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`user_id`),
UNIQUE KEY `token` (`token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统用户Token';
-- ----------------------------
-- Records of sys_user_token
-- ----------------------------
INSERT INTO `sys_user_token` VALUES ('1', 'b903a731afdb9335d2d690c80be6296e', '2019-01-18 21:51:53', '2019-01-18 09:51:53');
INSERT INTO `sys_user_token` VALUES ('3', '3c067b73d3d402e2d7866480c0fb6697', '2019-01-18 06:41:36', '2019-01-17 18:41:36');
INSERT INTO `sys_user_token` VALUES ('4', '21614c4ed82a5777a7e41c6df2c5803e', '2019-01-18 06:45:25', '2019-01-17 18:45:25');
-- ----------------------------
-- Table structure for tb_user
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
`user_id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '用户名',
`mobile` varchar(20) NOT NULL COMMENT '手机号',
`password` varchar(64) DEFAULT NULL COMMENT '密码',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`user_id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='用户';
-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES ('1', 'mark', '13612345678', '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918', '2017-03-23 22:37:41');

104
db/live_scene_TROY.sql Normal file
View File

@ -0,0 +1,104 @@
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50534
Source Host : localhost:3306
Source Database : aijinan
Target Server Type : MYSQL
Target Server Version : 50534
File Encoding : 65001
Date: 2019-01-19 14:52:16
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for live_scene
-- ----------------------------
DROP TABLE IF EXISTS `live_scene`;
CREATE TABLE `live_scene` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`title` varchar(255) DEFAULT NULL COMMENT '现场标题',
`scene_type` smallint(6) DEFAULT NULL COMMENT '现场类型',
`title_image` varchar(255) DEFAULT NULL COMMENT '标题图',
`live_desc` varchar(255) DEFAULT NULL COMMENT '现场简介',
`live_start` datetime DEFAULT NULL COMMENT '直播时间',
`live_position` varchar(255) DEFAULT NULL COMMENT '直播地点',
`live_state` smallint(6) DEFAULT NULL COMMENT '直播状态',
`scene_mark` varchar(255) DEFAULT NULL COMMENT '现场备注',
`scene_state` smallint(6) DEFAULT NULL COMMENT '现场状态',
`direct_state` smallint(6) DEFAULT NULL COMMENT '导播状态',
`process_id` int(11) DEFAULT NULL COMMENT '流程ID',
`scene_sign` varchar(64) DEFAULT NULL COMMENT '现场唯一标识',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`creator_id` int(11) DEFAULT NULL COMMENT '创建人',
`update_date` datetime DEFAULT NULL COMMENT '修改时间',
`updator_id` int(11) DEFAULT NULL COMMENT '修改人',
`delete_flag` smallint(6) DEFAULT NULL COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='现场表';
-- ----------------------------
-- Table structure for live_scene_check
-- ----------------------------
DROP TABLE IF EXISTS `live_scene_check`;
CREATE TABLE `live_scene_check` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`scene_id` int(11) DEFAULT NULL COMMENT '现场ID',
`process_id` int(11) DEFAULT NULL COMMENT '流程ID',
`node_id` int(11) DEFAULT NULL COMMENT '节点ID',
`auditor_id` int(11) DEFAULT NULL COMMENT '审核人ID',
`auditor_name` varchar(64) DEFAULT NULL COMMENT '审核人姓名',
`autitor_act` varchar(16) DEFAULT NULL COMMENT '审核动作标识',
`check_info` varchar(255) DEFAULT NULL COMMENT '审核说明',
`check_date` datetime DEFAULT NULL COMMENT '操作时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='现场审核表';
-- ----------------------------
-- Table structure for live_scene_live_info
-- ----------------------------
DROP TABLE IF EXISTS `live_scene_live_info`;
CREATE TABLE `live_scene_live_info` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`scene_id` int(11) DEFAULT NULL COMMENT '现场ID',
`user_id` int(11) DEFAULT NULL COMMENT '人员ID',
`push_url` varchar(255) DEFAULT NULL COMMENT '推流地址',
`push_state` smallint(6) DEFAULT NULL COMMENT '推流状态',
`push_start` datetime DEFAULT NULL COMMENT '推流开始时间',
`push_end` datetime DEFAULT NULL COMMENT '推流结束时间',
`play_url_rmtp` varchar(255) DEFAULT NULL COMMENT 'RMTP播流地址',
`play_url_hls` varchar(255) DEFAULT NULL COMMENT 'HLS播流地址',
`play_url_flv` varchar(255) DEFAULT NULL COMMENT 'FLV播流地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='现场直播信息表';
-- ----------------------------
-- 20190120 TROY 现场表 表结构调整
-- ----------------------------
ALTER TABLE `live_scene`
ADD COLUMN `direct_start` datetime NULL COMMENT '导播台开始时间',
ADD COLUMN `direct_end` datetime NULL COMMENT '导播台结束时间',
ADD COLUMN `caster_id` int NULL COMMENT '导播台ID';
-- ----------------------------
-- Table structure for `live_caster`
-- ----------------------------
DROP TABLE IF EXISTS `live_caster`;
CREATE TABLE `live_caster` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`caster_id` varchar(64) DEFAULT NULL COMMENT '导播台Id',
`caster_name` varchar(64) DEFAULT NULL COMMENT '导播台名称',
`norm_type` smallint(6) DEFAULT NULL COMMENT '导播台规格类型',
`expire_time` datetime DEFAULT NULL COMMENT '导播台过期时间',
`scene_id` int(11) DEFAULT NULL COMMENT '现场ID',
`original_rtmp_url` varchar(255) DEFAULT NULL COMMENT '原画RTMP播放路径',
`original_m3u8_url` varchar(255) DEFAULT NULL COMMENT '原画M3U8播放路径',
`original_flv_url` varchar(255) DEFAULT NULL COMMENT '原画FLV播放路径',
`data_state` smallint(6) DEFAULT NULL COMMENT '数据状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='导播台信息表';

View File

@ -0,0 +1,23 @@
DROP TABLE IF EXISTS `live_scene_live_info_ext`;
CREATE TABLE `live_scene_live_info_ext` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`info_id` int(11) DEFAULT NULL COMMENT '现场Id',
`push_url` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '推流地址',
`play_url_rmtp` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'RMTP播流地址',
`play_url_hls` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'HLS播流地址',
`play_url_flv` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'FLV播流地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
ALTER TABLE `live_scene_live_info`
ADD COLUMN `info_name` varchar(128) NULL ,
ADD COLUMN `info_type` smallint(6) NULL ,
ADD COLUMN `push_domain` varchar(255) NULL ,
ADD COLUMN `live_domain` varchar(255) NULL ,
ADD COLUMN `app_name` varchar(255) NULL ,
ADD COLUMN `stream_name` varchar(255) NULL ,
DROP COLUMN `push_url`,
DROP COLUMN `play_url_rmtp`,
DROP COLUMN `play_url_hls`,
DROP COLUMN `play_url_flv`;

View File

@ -0,0 +1,26 @@
CREATE TABLE `live_video_transcoding` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`request_id` varchar(255) DEFAULT NULL COMMENT '请求id',
`task_id` varchar(255) DEFAULT NULL COMMENT '任务id',
`task_status` char(1) DEFAULT NULL COMMENT '任务状态(0:增在处理1处理完成)',
`del_flag` char(1) DEFAULT NULL COMMENT '删除标志',
`operate_id` varchar(255) DEFAULT NULL COMMENT '操作人',
`video_url` varchar(255) DEFAULT NULL COMMENT '转码前的url',
`format_video_url` varchar(255) DEFAULT NULL COMMENT '转码后的url',
`create_date` datetime DEFAULT NULL COMMENT '入库时间',
`update_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `live_video_transcoding_ext` (
`id` int(11) NOT NULL,
`request_params` text DEFAULT NULL COMMENT '后台请求的参数',
`request_ali_params` text DEFAULT NULL COMMENT '请求阿里的参数',
`response_ali_params` text DEFAULT NULL COMMENT '阿里响应的数据',
`operater` char(1) DEFAULT NULL COMMENT '操作方式0添加1删除2查询'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `live_video_transcoding` ADD COLUMN `upload_state` CHAR(1) COMMENT '上传状态,0代表失败,1代表成功';
ALTER TABLE `live_video_transcoding_ext` ADD COLUMN `create_date` DATETIME COMMENT '操作时间';

View File

@ -0,0 +1,39 @@
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Version : 50709
Source Host : localhost:3306
Source Database : aijinan
Target Server Type : MYSQL
Target Server Version : 50709
File Encoding : 65001
Date: 2019-01-29 15:21:34
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `live_video_transcoding_message`
-- ----------------------------
DROP TABLE IF EXISTS `live_video_transcoding_message`;
CREATE TABLE `live_video_transcoding_message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`authorization` varchar(255) DEFAULT NULL COMMENT '此次推送请求的签名',
`request_id` varchar(255) DEFAULT NULL COMMENT '此次推送消息的 Request 编号',
`signing_cert_url` varchar(255) DEFAULT NULL COMMENT '签名证书的地址Base64编码过',
`message_id` varchar(255) DEFAULT NULL COMMENT '此次推送消息的 MessageId',
`message_tag` varchar(255) DEFAULT NULL COMMENT '此次推送消息的消息标签',
`job_id` varchar(255) DEFAULT NULL COMMENT '任务id',
`trans_request_id` varchar(255) DEFAULT NULL COMMENT '转码请求的requestId',
`type` varchar(64) DEFAULT NULL COMMENT '类型',
`state` varchar(64) DEFAULT NULL COMMENT '状态',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of live_video_transcoding_message
-- ----------------------------

323
db/mssql.sql Normal file
View File

@ -0,0 +1,323 @@
-- 只提供了Quartz相关SQL其他表结构需要自行转换
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_CALENDARS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_LOCKS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_JOB_DETAILS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPROP_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
DROP TABLE [dbo].[QRTZ_TRIGGERS]
GO
CREATE TABLE [dbo].[QRTZ_CALENDARS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[CALENDAR_NAME] [VARCHAR] (200) NOT NULL ,
[CALENDAR] [IMAGE] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
[TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
[CRON_EXPRESSION] [VARCHAR] (120) NOT NULL ,
[TIME_ZONE_ID] [VARCHAR] (80)
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[ENTRY_ID] [VARCHAR] (95) NOT NULL ,
[TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
[TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
[INSTANCE_NAME] [VARCHAR] (200) NOT NULL ,
[FIRED_TIME] [BIGINT] NOT NULL ,
[SCHED_TIME] [BIGINT] NOT NULL ,
[PRIORITY] [INTEGER] NOT NULL ,
[STATE] [VARCHAR] (16) NOT NULL,
[JOB_NAME] [VARCHAR] (200) NULL ,
[JOB_GROUP] [VARCHAR] (200) NULL ,
[IS_NONCONCURRENT] [VARCHAR] (1) NULL ,
[REQUESTS_RECOVERY] [VARCHAR] (1) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[TRIGGER_GROUP] [VARCHAR] (200) NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[INSTANCE_NAME] [VARCHAR] (200) NOT NULL ,
[LAST_CHECKIN_TIME] [BIGINT] NOT NULL ,
[CHECKIN_INTERVAL] [BIGINT] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_LOCKS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[LOCK_NAME] [VARCHAR] (40) NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[JOB_NAME] [VARCHAR] (200) NOT NULL ,
[JOB_GROUP] [VARCHAR] (200) NOT NULL ,
[DESCRIPTION] [VARCHAR] (250) NULL ,
[JOB_CLASS_NAME] [VARCHAR] (250) NOT NULL ,
[IS_DURABLE] [VARCHAR] (1) NOT NULL ,
[IS_NONCONCURRENT] [VARCHAR] (1) NOT NULL ,
[IS_UPDATE_DATA] [VARCHAR] (1) NOT NULL ,
[REQUESTS_RECOVERY] [VARCHAR] (1) NOT NULL ,
[JOB_DATA] [IMAGE] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
[TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
[REPEAT_COUNT] [BIGINT] NOT NULL ,
[REPEAT_INTERVAL] [BIGINT] NOT NULL ,
[TIMES_TRIGGERED] [BIGINT] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
[TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
[STR_PROP_1] [VARCHAR] (512) NULL,
[STR_PROP_2] [VARCHAR] (512) NULL,
[STR_PROP_3] [VARCHAR] (512) NULL,
[INT_PROP_1] [INT] NULL,
[INT_PROP_2] [INT] NULL,
[LONG_PROP_1] [BIGINT] NULL,
[LONG_PROP_2] [BIGINT] NULL,
[DEC_PROP_1] [NUMERIC] (13,4) NULL,
[DEC_PROP_2] [NUMERIC] (13,4) NULL,
[BOOL_PROP_1] [VARCHAR] (1) NULL,
[BOOL_PROP_2] [VARCHAR] (1) NULL,
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
[TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
[BLOB_DATA] [IMAGE] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[QRTZ_TRIGGERS] (
[SCHED_NAME] [VARCHAR] (120) NOT NULL ,
[TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
[TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
[JOB_NAME] [VARCHAR] (200) NOT NULL ,
[JOB_GROUP] [VARCHAR] (200) NOT NULL ,
[DESCRIPTION] [VARCHAR] (250) NULL ,
[NEXT_FIRE_TIME] [BIGINT] NULL ,
[PREV_FIRE_TIME] [BIGINT] NULL ,
[PRIORITY] [INTEGER] NULL ,
[TRIGGER_STATE] [VARCHAR] (16) NOT NULL ,
[TRIGGER_TYPE] [VARCHAR] (8) NOT NULL ,
[START_TIME] [BIGINT] NOT NULL ,
[END_TIME] [BIGINT] NULL ,
[CALENDAR_NAME] [VARCHAR] (200) NULL ,
[MISFIRE_INSTR] [SMALLINT] NULL ,
[JOB_DATA] [IMAGE] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[CALENDAR_NAME]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[ENTRY_ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[TRIGGER_GROUP]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[INSTANCE_NAME]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[LOCK_NAME]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[JOB_NAME],
[JOB_GROUP]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_SIMPROP_TRIGGERS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD
CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY CLUSTERED
(
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD
CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
(
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) REFERENCES [dbo].[QRTZ_TRIGGERS] (
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON DELETE CASCADE
GO
ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD
CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
(
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) REFERENCES [dbo].[QRTZ_TRIGGERS] (
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON DELETE CASCADE
GO
ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD
CONSTRAINT [FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
(
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) REFERENCES [dbo].[QRTZ_TRIGGERS] (
[SCHED_NAME],
[TRIGGER_NAME],
[TRIGGER_GROUP]
) ON DELETE CASCADE
GO
ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD
CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY
(
[SCHED_NAME],
[JOB_NAME],
[JOB_GROUP]
) REFERENCES [dbo].[QRTZ_JOB_DETAILS] (
[SCHED_NAME],
[JOB_NAME],
[JOB_GROUP]
)
GO

365
db/mysql.sql Normal file
View File

@ -0,0 +1,365 @@
-- 菜单
CREATE TABLE `sys_menu` (
`menu_id` bigint NOT NULL AUTO_INCREMENT,
`parent_id` bigint COMMENT '父菜单ID一级菜单为0',
`name` varchar(50) COMMENT '菜单名称',
`url` varchar(200) COMMENT '菜单URL',
`perms` varchar(500) COMMENT '授权(多个用逗号分隔user:list,user:create)',
`type` int COMMENT '类型 0目录 1菜单 2按钮',
`icon` varchar(50) COMMENT '菜单图标',
`order_num` int COMMENT '排序',
PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单管理';
-- 系统用户
CREATE TABLE `sys_user` (
`user_id` bigint NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '用户名',
`password` varchar(100) COMMENT '密码',
`salt` varchar(20) COMMENT '',
`email` varchar(100) COMMENT '邮箱',
`mobile` varchar(100) COMMENT '手机号',
`status` tinyint COMMENT '状态 0禁用 1正常',
`create_user_id` bigint(20) COMMENT '创建者ID',
`create_time` datetime COMMENT '创建时间',
PRIMARY KEY (`user_id`),
UNIQUE INDEX (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统用户';
-- 系统用户Token
CREATE TABLE `sys_user_token` (
`user_id` bigint(20) NOT NULL,
`token` varchar(100) NOT NULL COMMENT 'token',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`user_id`),
UNIQUE KEY `token` (`token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统用户Token';
-- 系统验证码
CREATE TABLE `sys_captcha` (
`uuid` char(36) NOT NULL COMMENT 'uuid',
`code` varchar(6) NOT NULL COMMENT '验证码',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
PRIMARY KEY (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统验证码';
-- 角色
CREATE TABLE `sys_role` (
`role_id` bigint NOT NULL AUTO_INCREMENT,
`role_name` varchar(100) COMMENT '角色名称',
`remark` varchar(100) COMMENT '备注',
`create_user_id` bigint(20) COMMENT '创建者ID',
`create_time` datetime COMMENT '创建时间',
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色';
-- 用户与角色对应关系
CREATE TABLE `sys_user_role` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` bigint COMMENT '用户ID',
`role_id` bigint COMMENT '角色ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户与角色对应关系';
-- 角色与菜单对应关系
CREATE TABLE `sys_role_menu` (
`id` bigint NOT NULL AUTO_INCREMENT,
`role_id` bigint COMMENT '角色ID',
`menu_id` bigint COMMENT '菜单ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色与菜单对应关系';
-- 系统配置信息
CREATE TABLE `sys_config` (
`id` bigint NOT NULL AUTO_INCREMENT,
`key` varchar(50) COMMENT 'key',
`value` varchar(2000) COMMENT 'value',
`status` tinyint DEFAULT 1 COMMENT '状态 0隐藏 1显示',
`remark` varchar(500) COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE INDEX (`key`)
) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8 COMMENT='系统配置信息表';
-- 系统日志
CREATE TABLE `sys_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(50) COMMENT '用户名',
`operation` varchar(50) COMMENT '用户操作',
`method` varchar(200) COMMENT '请求方法',
`params` varchar(5000) COMMENT '请求参数',
`time` bigint NOT NULL COMMENT '执行时长(毫秒)',
`ip` varchar(64) COMMENT 'IP地址',
`create_date` datetime COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8 COMMENT='系统日志';
-- 初始数据
INSERT INTO `sys_user` (`user_id`, `username`, `password`, `salt`, `email`, `mobile`, `status`, `create_user_id`, `create_time`) VALUES ('1', 'admin', '9ec9750e709431dad22365cabc5c625482e574c74adaebba7dd02f1129e4ce1d', 'YzcmCZNvbXocrsz9dm8e', 'root@renren.io', '13612345678', '1', '1', '2016-11-11 11:11:11');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('1', '0', '系统管理', NULL, NULL, '0', 'fa fa-cog', '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('2', '1', '管理员列表', 'modules/sys/user.html', NULL, '1', 'fa fa-user', '1');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('3', '1', '角色管理', 'modules/sys/role.html', NULL, '1', 'fa fa-user-secret', '2');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('4', '1', '菜单管理', 'modules/sys/menu.html', NULL, '1', 'fa fa-th-list', '3');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('5', '1', 'SQL监控', 'druid/sql.html', NULL, '1', 'fa fa-bug', '4');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('15', '2', '查看', NULL, 'sys:user:list,sys:user:info', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('16', '2', '新增', NULL, 'sys:user:save,sys:role:select', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('17', '2', '修改', NULL, 'sys:user:update,sys:role:select', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('18', '2', '删除', NULL, 'sys:user:delete', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('19', '3', '查看', NULL, 'sys:role:list,sys:role:info', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('20', '3', '新增', NULL, 'sys:role:save,sys:menu:list', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('21', '3', '修改', NULL, 'sys:role:update,sys:menu:list', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('22', '3', '删除', NULL, 'sys:role:delete', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('23', '4', '查看', NULL, 'sys:menu:list,sys:menu:info', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('24', '4', '新增', NULL, 'sys:menu:save,sys:menu:select', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('25', '4', '修改', NULL, 'sys:menu:update,sys:menu:select', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('26', '4', '删除', NULL, 'sys:menu:delete', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('27', '1', '参数管理', 'modules/sys/config.html', 'sys:config:list,sys:config:info,sys:config:save,sys:config:update,sys:config:delete', '1', 'fa fa-sun-o', '6');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('29', '1', '系统日志', 'modules/sys/log.html', 'sys:log:list', '1', 'fa fa-file-text-o', '7');
-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 云存储服务相关SQL如果不使用该功能则不用执行下面SQL -------------------------------------------------------------------------------------------------------------
-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 文件上传
CREATE TABLE `sys_oss` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`url` varchar(200) COMMENT 'URL地址',
`create_date` datetime COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=`InnoDB` DEFAULT CHARACTER SET utf8 COMMENT='文件上传';
INSERT INTO `sys_config` (`key`, `value`, `status`, `remark`) VALUES ('CLOUD_STORAGE_CONFIG_KEY', '{\"aliyunAccessKeyId\":\"\",\"aliyunAccessKeySecret\":\"\",\"aliyunBucketName\":\"\",\"aliyunDomain\":\"\",\"aliyunEndPoint\":\"\",\"aliyunPrefix\":\"\",\"qcloudBucketName\":\"\",\"qcloudDomain\":\"\",\"qcloudPrefix\":\"\",\"qcloudSecretId\":\"\",\"qcloudSecretKey\":\"\",\"qiniuAccessKey\":\"NrgMfABZxWLo5B-YYSjoE8-AZ1EISdi1Z3ubLOeZ\",\"qiniuBucketName\":\"ios-app\",\"qiniuDomain\":\"http://7xqbwh.dl1.z0.glb.clouddn.com\",\"qiniuPrefix\":\"upload\",\"qiniuSecretKey\":\"uIwJHevMRWU0VLxFvgy0tAcOdGqasdtVlJkdy6vV\",\"type\":1}', '0', '云存储配置信息');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('30', '1', '文件上传', 'modules/oss/oss.html', 'sys:oss:all', '1', 'fa fa-file-image-o', '6');
-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- APP接口相关SQL如果不使用该功能则不用执行下面SQL -------------------------------------------------------------------------------------------------------------
-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 用户表
CREATE TABLE `tb_user` (
`user_id` bigint NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '用户名',
`mobile` varchar(20) NOT NULL COMMENT '手机号',
`password` varchar(64) COMMENT '密码',
`create_time` datetime COMMENT '创建时间',
PRIMARY KEY (`user_id`),
UNIQUE INDEX (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户';
-- 账号13612345678 密码admin
INSERT INTO `tb_user` (`username`, `mobile`, `password`, `create_time`) VALUES ('mark', '13612345678', '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918', '2017-03-23 22:37:41');
-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 定时任务相关表结构如果不使用该功能则不用执行下面SQL -------------------------------------------------------------------------------------------------------------
-- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- 初始化菜单数据
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('6', '1', '定时任务', 'modules/job/schedule.html', NULL, '1', 'fa fa-tasks', '5');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('7', '6', '查看', NULL, 'sys:schedule:list,sys:schedule:info', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('8', '6', '新增', NULL, 'sys:schedule:save', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('9', '6', '修改', NULL, 'sys:schedule:update', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('10', '6', '删除', NULL, 'sys:schedule:delete', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('11', '6', '暂停', NULL, 'sys:schedule:pause', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('12', '6', '恢复', NULL, 'sys:schedule:resume', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('13', '6', '立即执行', NULL, 'sys:schedule:run', '2', NULL, '0');
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) VALUES ('14', '6', '日志列表', NULL, 'sys:schedule:log', '2', NULL, '0');
-- 定时任务
CREATE TABLE `schedule_job` (
`job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务id',
`bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean名称',
`method_name` varchar(100) DEFAULT NULL COMMENT '方法名',
`params` varchar(2000) DEFAULT NULL COMMENT '参数',
`cron_expression` varchar(100) DEFAULT NULL COMMENT 'cron表达式',
`status` tinyint(4) DEFAULT NULL COMMENT '任务状态 0正常 1暂停',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`job_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时任务';
-- 定时任务日志
CREATE TABLE `schedule_job_log` (
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志id',
`job_id` bigint(20) NOT NULL COMMENT '任务id',
`bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean名称',
`method_name` varchar(100) DEFAULT NULL COMMENT '方法名',
`params` varchar(2000) DEFAULT NULL COMMENT '参数',
`status` tinyint(4) NOT NULL COMMENT '任务状态 0成功 1失败',
`error` varchar(2000) DEFAULT NULL COMMENT '失败信息',
`times` int(11) NOT NULL COMMENT '耗时(单位:毫秒)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`log_id`),
KEY `job_id` (`job_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时任务日志';
INSERT INTO `schedule_job` (`bean_name`, `method_name`, `params`, `cron_expression`, `status`, `remark`, `create_time`) VALUES ('testTask', 'test', 'renren', '0 0/30 * * * ?', '0', '有参数测试', '2016-12-01 23:16:46');
INSERT INTO `schedule_job` (`bean_name`, `method_name`, `params`, `cron_expression`, `status`, `remark`, `create_time`) VALUES ('testTask', 'test2', NULL, '0 0/30 * * * ?', '1', '无参数测试', '2016-12-03 14:55:56');
-- quartz自带表结构
CREATE TABLE QRTZ_JOB_DETAILS(
SCHED_NAME VARCHAR(120) NOT NULL,
JOB_NAME VARCHAR(200) NOT NULL,
JOB_GROUP VARCHAR(200) NOT NULL,
DESCRIPTION VARCHAR(250) NULL,
JOB_CLASS_NAME VARCHAR(250) NOT NULL,
IS_DURABLE VARCHAR(1) NOT NULL,
IS_NONCONCURRENT VARCHAR(1) NOT NULL,
IS_UPDATE_DATA VARCHAR(1) NOT NULL,
REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
JOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
JOB_NAME VARCHAR(200) NOT NULL,
JOB_GROUP VARCHAR(200) NOT NULL,
DESCRIPTION VARCHAR(250) NULL,
NEXT_FIRE_TIME BIGINT(13) NULL,
PREV_FIRE_TIME BIGINT(13) NULL,
PRIORITY INTEGER NULL,
TRIGGER_STATE VARCHAR(16) NOT NULL,
TRIGGER_TYPE VARCHAR(8) NOT NULL,
START_TIME BIGINT(13) NOT NULL,
END_TIME BIGINT(13) NULL,
CALENDAR_NAME VARCHAR(200) NULL,
MISFIRE_INSTR SMALLINT(2) NULL,
JOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
REPEAT_COUNT BIGINT(7) NOT NULL,
REPEAT_INTERVAL BIGINT(12) NOT NULL,
TIMES_TRIGGERED BIGINT(10) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_CRON_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
CRON_EXPRESSION VARCHAR(120) NOT NULL,
TIME_ZONE_ID VARCHAR(80),
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_SIMPROP_TRIGGERS
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
STR_PROP_1 VARCHAR(512) NULL,
STR_PROP_2 VARCHAR(512) NULL,
STR_PROP_3 VARCHAR(512) NULL,
INT_PROP_1 INT NULL,
INT_PROP_2 INT NULL,
LONG_PROP_1 BIGINT NULL,
LONG_PROP_2 BIGINT NULL,
DEC_PROP_1 NUMERIC(13,4) NULL,
DEC_PROP_2 NUMERIC(13,4) NULL,
BOOL_PROP_1 VARCHAR(1) NULL,
BOOL_PROP_2 VARCHAR(1) NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_BLOB_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
BLOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_CALENDARS (
SCHED_NAME VARCHAR(120) NOT NULL,
CALENDAR_NAME VARCHAR(200) NOT NULL,
CALENDAR BLOB NOT NULL,
PRIMARY KEY (SCHED_NAME,CALENDAR_NAME))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_FIRED_TRIGGERS (
SCHED_NAME VARCHAR(120) NOT NULL,
ENTRY_ID VARCHAR(95) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
INSTANCE_NAME VARCHAR(200) NOT NULL,
FIRED_TIME BIGINT(13) NOT NULL,
SCHED_TIME BIGINT(13) NOT NULL,
PRIORITY INTEGER NOT NULL,
STATE VARCHAR(16) NOT NULL,
JOB_NAME VARCHAR(200) NULL,
JOB_GROUP VARCHAR(200) NULL,
IS_NONCONCURRENT VARCHAR(1) NULL,
REQUESTS_RECOVERY VARCHAR(1) NULL,
PRIMARY KEY (SCHED_NAME,ENTRY_ID))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_SCHEDULER_STATE (
SCHED_NAME VARCHAR(120) NOT NULL,
INSTANCE_NAME VARCHAR(200) NOT NULL,
LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
CHECKIN_INTERVAL BIGINT(13) NOT NULL,
PRIMARY KEY (SCHED_NAME,INSTANCE_NAME))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE QRTZ_LOCKS (
SCHED_NAME VARCHAR(120) NOT NULL,
LOCK_NAME VARCHAR(40) NOT NULL,
PRIMARY KEY (SCHED_NAME,LOCK_NAME))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);
CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP);
CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP);
CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME);
CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE);
CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME);
CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME);
CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);
CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);

188
db/oracle.sql Normal file
View File

@ -0,0 +1,188 @@
-- 只提供了Quartz相关SQL其他表结构需要自行转换
delete from qrtz_fired_triggers;
delete from qrtz_simple_triggers;
delete from qrtz_simprop_triggers;
delete from qrtz_cron_triggers;
delete from qrtz_blob_triggers;
delete from qrtz_triggers;
delete from qrtz_job_details;
delete from qrtz_calendars;
delete from qrtz_paused_trigger_grps;
delete from qrtz_locks;
delete from qrtz_scheduler_state;
drop table qrtz_calendars;
drop table qrtz_fired_triggers;
drop table qrtz_blob_triggers;
drop table qrtz_cron_triggers;
drop table qrtz_simple_triggers;
drop table qrtz_simprop_triggers;
drop table qrtz_triggers;
drop table qrtz_job_details;
drop table qrtz_paused_trigger_grps;
drop table qrtz_locks;
drop table qrtz_scheduler_state;
CREATE TABLE qrtz_job_details
(
SCHED_NAME VARCHAR2(120) NOT NULL,
JOB_NAME VARCHAR2(200) NOT NULL,
JOB_GROUP VARCHAR2(200) NOT NULL,
DESCRIPTION VARCHAR2(250) NULL,
JOB_CLASS_NAME VARCHAR2(250) NOT NULL,
IS_DURABLE VARCHAR2(1) NOT NULL,
IS_NONCONCURRENT VARCHAR2(1) NOT NULL,
IS_UPDATE_DATA VARCHAR2(1) NOT NULL,
REQUESTS_RECOVERY VARCHAR2(1) NOT NULL,
JOB_DATA BLOB NULL,
CONSTRAINT QRTZ_JOB_DETAILS_PK PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
);
CREATE TABLE qrtz_triggers
(
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
JOB_NAME VARCHAR2(200) NOT NULL,
JOB_GROUP VARCHAR2(200) NOT NULL,
DESCRIPTION VARCHAR2(250) NULL,
NEXT_FIRE_TIME NUMBER(13) NULL,
PREV_FIRE_TIME NUMBER(13) NULL,
PRIORITY NUMBER(13) NULL,
TRIGGER_STATE VARCHAR2(16) NOT NULL,
TRIGGER_TYPE VARCHAR2(8) NOT NULL,
START_TIME NUMBER(13) NOT NULL,
END_TIME NUMBER(13) NULL,
CALENDAR_NAME VARCHAR2(200) NULL,
MISFIRE_INSTR NUMBER(2) NULL,
JOB_DATA BLOB NULL,
CONSTRAINT QRTZ_TRIGGERS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
CONSTRAINT QRTZ_TRIGGER_TO_JOBS_FK FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
);
CREATE TABLE qrtz_simple_triggers
(
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
REPEAT_COUNT NUMBER(7) NOT NULL,
REPEAT_INTERVAL NUMBER(12) NOT NULL,
TIMES_TRIGGERED NUMBER(10) NOT NULL,
CONSTRAINT QRTZ_SIMPLE_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
CONSTRAINT QRTZ_SIMPLE_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_cron_triggers
(
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
CRON_EXPRESSION VARCHAR2(120) NOT NULL,
TIME_ZONE_ID VARCHAR2(80),
CONSTRAINT QRTZ_CRON_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
CONSTRAINT QRTZ_CRON_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_simprop_triggers
(
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
STR_PROP_1 VARCHAR2(512) NULL,
STR_PROP_2 VARCHAR2(512) NULL,
STR_PROP_3 VARCHAR2(512) NULL,
INT_PROP_1 NUMBER(10) NULL,
INT_PROP_2 NUMBER(10) NULL,
LONG_PROP_1 NUMBER(13) NULL,
LONG_PROP_2 NUMBER(13) NULL,
DEC_PROP_1 NUMERIC(13,4) NULL,
DEC_PROP_2 NUMERIC(13,4) NULL,
BOOL_PROP_1 VARCHAR2(1) NULL,
BOOL_PROP_2 VARCHAR2(1) NULL,
CONSTRAINT QRTZ_SIMPROP_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
CONSTRAINT QRTZ_SIMPROP_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_blob_triggers
(
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
BLOB_DATA BLOB NULL,
CONSTRAINT QRTZ_BLOB_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
CONSTRAINT QRTZ_BLOB_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_calendars
(
SCHED_NAME VARCHAR2(120) NOT NULL,
CALENDAR_NAME VARCHAR2(200) NOT NULL,
CALENDAR BLOB NOT NULL,
CONSTRAINT QRTZ_CALENDARS_PK PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
);
CREATE TABLE qrtz_paused_trigger_grps
(
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
CONSTRAINT QRTZ_PAUSED_TRIG_GRPS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_fired_triggers
(
SCHED_NAME VARCHAR2(120) NOT NULL,
ENTRY_ID VARCHAR2(95) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
INSTANCE_NAME VARCHAR2(200) NOT NULL,
FIRED_TIME NUMBER(13) NOT NULL,
SCHED_TIME NUMBER(13) NOT NULL,
PRIORITY NUMBER(13) NOT NULL,
STATE VARCHAR2(16) NOT NULL,
JOB_NAME VARCHAR2(200) NULL,
JOB_GROUP VARCHAR2(200) NULL,
IS_NONCONCURRENT VARCHAR2(1) NULL,
REQUESTS_RECOVERY VARCHAR2(1) NULL,
CONSTRAINT QRTZ_FIRED_TRIGGER_PK PRIMARY KEY (SCHED_NAME,ENTRY_ID)
);
CREATE TABLE qrtz_scheduler_state
(
SCHED_NAME VARCHAR2(120) NOT NULL,
INSTANCE_NAME VARCHAR2(200) NOT NULL,
LAST_CHECKIN_TIME NUMBER(13) NOT NULL,
CHECKIN_INTERVAL NUMBER(13) NOT NULL,
CONSTRAINT QRTZ_SCHEDULER_STATE_PK PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
);
CREATE TABLE qrtz_locks
(
SCHED_NAME VARCHAR2(120) NOT NULL,
LOCK_NAME VARCHAR2(40) NOT NULL,
CONSTRAINT QRTZ_LOCKS_PK PRIMARY KEY (SCHED_NAME,LOCK_NAME)
);
create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY);
create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP);
create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP);
create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP);
create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME);
create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP);
create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE);
create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME);
create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME);
create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP);
create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP);
create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP);

186
db/postgresql.sql Normal file
View File

@ -0,0 +1,186 @@
-- 只提供了Quartz相关SQL其他表结构需要自行转换
drop table qrtz_fired_triggers;
DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS;
DROP TABLE QRTZ_SCHEDULER_STATE;
DROP TABLE QRTZ_LOCKS;
drop table qrtz_simple_triggers;
drop table qrtz_cron_triggers;
drop table qrtz_simprop_triggers;
DROP TABLE QRTZ_BLOB_TRIGGERS;
drop table qrtz_triggers;
drop table qrtz_job_details;
drop table qrtz_calendars;
CREATE TABLE qrtz_job_details
(
SCHED_NAME VARCHAR(120) NOT NULL,
JOB_NAME VARCHAR(200) NOT NULL,
JOB_GROUP VARCHAR(200) NOT NULL,
DESCRIPTION VARCHAR(250) NULL,
JOB_CLASS_NAME VARCHAR(250) NOT NULL,
IS_DURABLE BOOL NOT NULL,
IS_NONCONCURRENT BOOL NOT NULL,
IS_UPDATE_DATA BOOL NOT NULL,
REQUESTS_RECOVERY BOOL NOT NULL,
JOB_DATA BYTEA NULL,
PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
);
CREATE TABLE qrtz_triggers
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
JOB_NAME VARCHAR(200) NOT NULL,
JOB_GROUP VARCHAR(200) NOT NULL,
DESCRIPTION VARCHAR(250) NULL,
NEXT_FIRE_TIME BIGINT NULL,
PREV_FIRE_TIME BIGINT NULL,
PRIORITY INTEGER NULL,
TRIGGER_STATE VARCHAR(16) NOT NULL,
TRIGGER_TYPE VARCHAR(8) NOT NULL,
START_TIME BIGINT NOT NULL,
END_TIME BIGINT NULL,
CALENDAR_NAME VARCHAR(200) NULL,
MISFIRE_INSTR SMALLINT NULL,
JOB_DATA BYTEA NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
);
CREATE TABLE qrtz_simple_triggers
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
REPEAT_COUNT BIGINT NOT NULL,
REPEAT_INTERVAL BIGINT NOT NULL,
TIMES_TRIGGERED BIGINT NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_cron_triggers
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
CRON_EXPRESSION VARCHAR(120) NOT NULL,
TIME_ZONE_ID VARCHAR(80),
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_simprop_triggers
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
STR_PROP_1 VARCHAR(512) NULL,
STR_PROP_2 VARCHAR(512) NULL,
STR_PROP_3 VARCHAR(512) NULL,
INT_PROP_1 INT NULL,
INT_PROP_2 INT NULL,
LONG_PROP_1 BIGINT NULL,
LONG_PROP_2 BIGINT NULL,
DEC_PROP_1 NUMERIC(13,4) NULL,
DEC_PROP_2 NUMERIC(13,4) NULL,
BOOL_PROP_1 BOOL NULL,
BOOL_PROP_2 BOOL NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_blob_triggers
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
BLOB_DATA BYTEA NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_calendars
(
SCHED_NAME VARCHAR(120) NOT NULL,
CALENDAR_NAME VARCHAR(200) NOT NULL,
CALENDAR BYTEA NOT NULL,
PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
);
CREATE TABLE qrtz_paused_trigger_grps
(
SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
);
CREATE TABLE qrtz_fired_triggers
(
SCHED_NAME VARCHAR(120) NOT NULL,
ENTRY_ID VARCHAR(95) NOT NULL,
TRIGGER_NAME VARCHAR(200) NOT NULL,
TRIGGER_GROUP VARCHAR(200) NOT NULL,
INSTANCE_NAME VARCHAR(200) NOT NULL,
FIRED_TIME BIGINT NOT NULL,
SCHED_TIME BIGINT NOT NULL,
PRIORITY INTEGER NOT NULL,
STATE VARCHAR(16) NOT NULL,
JOB_NAME VARCHAR(200) NULL,
JOB_GROUP VARCHAR(200) NULL,
IS_NONCONCURRENT BOOL NULL,
REQUESTS_RECOVERY BOOL NULL,
PRIMARY KEY (SCHED_NAME,ENTRY_ID)
);
CREATE TABLE qrtz_scheduler_state
(
SCHED_NAME VARCHAR(120) NOT NULL,
INSTANCE_NAME VARCHAR(200) NOT NULL,
LAST_CHECKIN_TIME BIGINT NOT NULL,
CHECKIN_INTERVAL BIGINT NOT NULL,
PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
);
CREATE TABLE qrtz_locks
(
SCHED_NAME VARCHAR(120) NOT NULL,
LOCK_NAME VARCHAR(40) NOT NULL,
PRIMARY KEY (SCHED_NAME,LOCK_NAME)
);
create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY);
create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP);
create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP);
create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP);
create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME);
create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP);
create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE);
create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME);
create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME);
create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP);
create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP);
create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP);
commit;

77
db/scene_troy_190119.sql Normal file
View File

@ -0,0 +1,77 @@
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50534
Source Host : localhost:3306
Source Database : aijinan
Target Server Type : MYSQL
Target Server Version : 50534
File Encoding : 65001
Date: 2019-01-19 14:52:16
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for live_scene
-- ----------------------------
DROP TABLE IF EXISTS `live_scene`;
CREATE TABLE `live_scene` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`title` varchar(255) DEFAULT NULL COMMENT '现场标题',
`scene_type` smallint(6) DEFAULT NULL COMMENT '现场类型',
`title_image` varchar(255) DEFAULT NULL COMMENT '标题图',
`live_desc` varchar(255) DEFAULT NULL COMMENT '现场简介',
`live_start` datetime DEFAULT NULL COMMENT '直播时间',
`live_position` varchar(255) DEFAULT NULL COMMENT '直播地点',
`live_state` smallint(6) DEFAULT NULL COMMENT '直播状态',
`scene_mark` varchar(255) DEFAULT NULL COMMENT '现场备注',
`scene_state` smallint(6) DEFAULT NULL COMMENT '现场状态',
`direct_state` smallint(6) DEFAULT NULL COMMENT '导播状态',
`process_id` int(11) DEFAULT NULL COMMENT '流程ID',
`scene_sign` varchar(64) DEFAULT NULL COMMENT '现场唯一标识',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`creator_id` int(11) DEFAULT NULL COMMENT '创建人',
`update_date` datetime DEFAULT NULL COMMENT '修改时间',
`updator_id` int(11) DEFAULT NULL COMMENT '修改人',
`delete_flag` smallint(6) DEFAULT NULL COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='现场表';
-- ----------------------------
-- Table structure for live_scene_check
-- ----------------------------
DROP TABLE IF EXISTS `live_scene_check`;
CREATE TABLE `live_scene_check` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`scene_id` int(11) DEFAULT NULL COMMENT '现场ID',
`process_id` int(11) DEFAULT NULL COMMENT '流程ID',
`node_id` int(11) DEFAULT NULL COMMENT '节点ID',
`auditor_id` int(11) DEFAULT NULL COMMENT '审核人ID',
`auditor_name` varchar(64) DEFAULT NULL COMMENT '审核人姓名',
`autitor_act` varchar(16) DEFAULT NULL COMMENT '审核动作标识',
`check_info` varchar(255) DEFAULT NULL COMMENT '审核说明',
`check_date` datetime DEFAULT NULL COMMENT '操作时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='现场审核表';
-- ----------------------------
-- Table structure for live_scene_live_info
-- ----------------------------
DROP TABLE IF EXISTS `live_scene_live_info`;
CREATE TABLE `live_scene_live_info` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`scene_id` int(11) DEFAULT NULL COMMENT '现场ID',
`user_id` int(11) DEFAULT NULL COMMENT '人员ID',
`push_url` varchar(255) DEFAULT NULL COMMENT '推流地址',
`push_state` smallint(6) DEFAULT NULL COMMENT '推流状态',
`push_start` datetime DEFAULT NULL COMMENT '推流开始时间',
`push_end` datetime DEFAULT NULL COMMENT '推流结束时间',
`play_url_rmtp` varchar(255) DEFAULT NULL COMMENT 'RMTP播流地址',
`play_url_hls` varchar(255) DEFAULT NULL COMMENT 'HLS播流地址',
`play_url_flv` varchar(255) DEFAULT NULL COMMENT 'FLV播流地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='现场直播信息表';

23
db/video.sql Normal file
View File

@ -0,0 +1,23 @@
DROP TABLE IF EXISTS `video`;
CREATE TABLE `video` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title_img` varchar(64) DEFAULT NULL COMMENT '标题图',
`title` varchar(255) DEFAULT NULL COMMENT '标题',
`file_size` varchar(64) DEFAULT NULL COMMENT '文件大小',
`duration_time` varchar(64) DEFAULT NULL COMMENT '时长',
`publish_channel` varchar(64) DEFAULT NULL COMMENT '发布渠道',
`create_method` varchar(64) DEFAULT NULL COMMENT '创建方式',
`status` tinyint(1) DEFAULT '0' COMMENT '视频的状态(0草稿1审核中2成品)',
`video_type` varchar(64) DEFAULT NULL COMMENT '视频的类型',
`date` date DEFAULT NULL COMMENT '时间',
`server_video_path` varchar(64) DEFAULT NULL COMMENT '服务器的视频路径',
`digest` varchar(255) DEFAULT NULL COMMENT '摘要',
`opinion` varchar(255) DEFAULT NULL COMMENT '审核意见',
`create_date` date DEFAULT NULL COMMENT '创建日期',
`create_user` int(4) DEFAULT NULL COMMENT '创建人',
`update_date` date DEFAULT NULL COMMENT '修改日期',
`update_user` tinyint(4) DEFAULT NULL COMMENT '修改人',
`is_delete` tinyint(1) DEFAULT '0' COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

22
db/weiyan_20190119.sql Normal file
View File

@ -0,0 +1,22 @@
DROP TABLE IF EXISTS `live_report`;
CREATE TABLE `live_report` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`scene_id` int(11) NOT NULL COMMENT '现场ID',
`report_type` int(4) NOT NULL COMMENT '报道类型 1视频 2音频 3图文 4文字',
`title` varchar(300) DEFAULT NULL COMMENT '报道标题',
`user_id` int(11) DEFAULT NULL COMMENT '报道记者ID',
`img_list` varchar(512) DEFAULT NULL COMMENT '图片路径,多张用,分割',
`media_url` varchar(512) DEFAULT NULL COMMENT '视频、音频回看URL地址',
`content` text COMMENT '报道内容',
`create_id` int(11) DEFAULT NULL COMMENT '创建人',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`is_delete` tinyint(1) DEFAULT 0 COMMENT '是否删除 0未删除 1 删除',
`is_release` tinyint(1) DEFAULT 0 COMMENT '是否发布 0未发布 1 已发布',
`release_user` int(11) DEFAULT NULL COMMENT '发布人',
`release_date` varchar(25) DEFAULT NULL COMMENT '发布时间',
`last_update_user` int(11) DEFAULT NULL COMMENT '最后操作人',
`last_update_date` datetime DEFAULT NULL COMMENT '最后操作时间',
PRIMARY KEY (`id`),
KEY `INDEX_id` (`scene_id`),
KEY `INDEX_S` (`id`,`scene_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT '直播报道';

16
db/weiyan_20190215.sql Normal file
View File

@ -0,0 +1,16 @@
DROP TABLE IF EXISTS `live_comment`;
CREATE TABLE `live_comment` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`source` int(4) NOT NULL COMMENT '评论来源 1用户 2后台 3第三方',
`text` varchar(500) DEFAULT NULL COMMENT '评论内容',
`scene_id` int(11) DEFAULT NULL COMMENT '现场ID',
`create_id` int(11) DEFAULT NULL COMMENT '评论人',
`create_date` datetime DEFAULT NULL COMMENT '评论时间',
`is_delete` tinyint(1) DEFAULT 0 COMMENT '是否删除 0未删除 1 删除',
`is_release` tinyint(1) DEFAULT 0 COMMENT '是否发布 0未发布 1 已发布',
`release_user` int(11) DEFAULT NULL COMMENT '发布人',
`release_date` datetime DEFAULT NULL COMMENT '发布时间',
`last_update_user` int(11) DEFAULT NULL COMMENT '最后操作人',
`last_update_date` datetime DEFAULT NULL COMMENT '最后操作时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT '现场评论';

16
db/weiyan_20190220.sql Normal file
View File

@ -0,0 +1,16 @@
DROP TABLE IF EXISTS `live_scene_count`;
CREATE TABLE `live_scene_count` (
`scene_id` int(11) NOT NULL,
`views` int(11) NOT NULL DEFAULT '0' COMMENT '总访问数',
`views_show` int(11) NOT NULL DEFAULT '0' COMMENT '前端显示访问数',
`views_month` int(11) NOT NULL DEFAULT '0' COMMENT '月访问数',
`views_week` int(11) NOT NULL DEFAULT '0' COMMENT '周访问数',
`views_day` int(11) NOT NULL DEFAULT '0' COMMENT '日访问数',
`comments` int(11) NOT NULL DEFAULT '0' COMMENT '总评论数',
`comments_show` int(11) NOT NULL DEFAULT '0' COMMENT '前端显示评论数',
`comments_month` int(11) NOT NULL DEFAULT '0' COMMENT '月评论数',
`comments_week` smallint(6) NOT NULL DEFAULT '0' COMMENT '周评论数',
`comments_day` smallint(6) NOT NULL DEFAULT '0' COMMENT '日评论数',
`last_update_time` datetime DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`scene_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='现场直播计数表';

4
db/weiyan_20190222.sql Normal file
View File

@ -0,0 +1,4 @@
ALTER TABLE `live_report`
ADD COLUMN `file_duration` bigint NULL DEFAULT 0 COMMENT '音视频时长',
ADD COLUMN `file_size` bigint NULL DEFAULT 0 COMMENT '文件大小';

3
db/weiyan_20190227.sql Normal file
View File

@ -0,0 +1,3 @@
ALTER TABLE `live_report`
ADD COLUMN `is_top` tinyint(1) NULL DEFAULT 0 COMMENT '是否置顶 0未置顶 1 置顶' AFTER `is_release`,
ADD COLUMN `priority` tinyint(4) NULL DEFAULT 0 COMMENT '排序,数字越大,排序越靠前' AFTER `is_top`;

4
db/weiyan_20190305.sql Normal file
View File

@ -0,0 +1,4 @@
ALTER TABLE `sys_user`
ADD COLUMN `gender` tinyint(1) NULL DEFAULT NULL COMMENT '性别 0:女 1:男' AFTER `mobile`,
ADD COLUMN `user_img` varchar(255) NULL DEFAULT NULL COMMENT '用户头像' AFTER `gender`,
ADD COLUMN `intro` varchar(255) NULL DEFAULT NULL COMMENT '用户介绍' AFTER `user_img`;

9
db/weiyan_20190308.sql Normal file
View File

@ -0,0 +1,9 @@
ALTER TABLE `live_scene_live_info`
ADD COLUMN `priority` tinyint(4) NULL DEFAULT 0 COMMENT '排序,数字越大,排序越靠前';
ALTER TABLE `live_scene_record`
ADD COLUMN `priority` tinyint(4) NULL DEFAULT 0 COMMENT '排序,数字越大,排序越靠前';
ALTER TABLE `live_scene`
ADD COLUMN `is_top` tinyint(1) NULL DEFAULT 0 COMMENT '是否置顶 0未置顶 1 置顶',
ADD COLUMN `priority` tinyint(4) NULL DEFAULT 0 COMMENT '排序,数字越大,排序越靠前';

28
db/weiyan_20190312.sql Normal file
View File

@ -0,0 +1,28 @@
DROP TABLE IF EXISTS `live_multimedia`;
CREATE TABLE `live_multimedia` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`title` varchar(200) DEFAULT NULL COMMENT '标题',
`media_type` int(11) DEFAULT NULL COMMENT '素材类型 1视频 2语音 3图片',
`request_id` varchar(100) DEFAULT NULL COMMENT '请求ID',
`cate_id` varchar(100) DEFAULT NULL COMMENT '视频分类ID。',
`media_size` int(11) DEFAULT '0' COMMENT '素材资源大小,单位:字节。',
`media_duration` float(11,0) DEFAULT '0' COMMENT '源文件时长 ,单位:秒',
`media_width` int(11) DEFAULT '0' COMMENT '源文件宽 ,源片为纯音频不会该字段',
`media_height` int(11) DEFAULT '0' COMMENT '源文件高 ,源片为纯音频不会有该字段',
`media_bitrate` varchar(255) DEFAULT NULL COMMENT '源文件码率 ,单位:Kbps',
`media_fps` varchar(255) DEFAULT NULL COMMENT '源文件帧率 ,每秒多少帧,源片为纯音频不会有该字段',
`media_snapshots` varchar(1000) DEFAULT NULL COMMENT '视频快照',
`ori_file_name` varchar(255) DEFAULT NULL,
`cover_url` varchar(1000) DEFAULT NULL COMMENT '视频封面图',
`tags` varchar(600) DEFAULT NULL COMMENT '标签 单个标签不超过32字节,最多不超过16个标签,多个用","分隔。',
`media_id` varchar(50) DEFAULT NULL COMMENT '媒资ID',
`media_url` varchar(200) DEFAULT NULL COMMENT '媒资地址。如果配置了CDN域名则返回CDN地址否则为OSS地址。',
`description` varchar(1000) DEFAULT NULL COMMENT '素材描述。',
`state` smallint(1) DEFAULT '0' COMMENT '状态 0 上传中 1上传成功 2 上传失败',
`create_date` datetime DEFAULT NULL COMMENT '创建日期',
`creator_id` int(11) DEFAULT NULL COMMENT '创建人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
`last_update_user` int(11) DEFAULT NULL COMMENT '修改人',
`is_delete` smallint(1) DEFAULT '0' COMMENT '是否删除 0 未删除 1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='素材信息';

3
db/weiyan_20190320.sql Normal file
View File

@ -0,0 +1,3 @@
ALTER TABLE `live_multimedia`
ADD COLUMN `media_source` smallint(2) NULL COMMENT '视频来源 1直播录制 2 素材上传' AFTER `media_type`;

18
db/weiyan_20190328.sql Normal file
View File

@ -0,0 +1,18 @@
DROP TABLE IF EXISTS `live_channel`;
CREATE TABLE `live_channel` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '栏目数据ID',
`name` varchar(200) DEFAULT NULL COMMENT '栏目名称',
`identify` varchar(200) DEFAULT NULL COMMENT '栏目标识',
`priority` int(11) DEFAULT NULL COMMENT '排序,数字越大,排序越靠前',
`is_display` smallint(1) DEFAULT '1' COMMENT '是否显示 0 不显示 1显示',
`create_date` datetime DEFAULT NULL COMMENT '创建日期',
`creator_id` int(11) DEFAULT NULL COMMENT '创建人',
`last_update_date` datetime DEFAULT NULL COMMENT '修改时间',
`last_update_user` int(11) DEFAULT NULL COMMENT '修改人',
`is_delete` smallint(1) DEFAULT '0' COMMENT '是否删除 0 未删除 1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='现场栏目信息';
ALTER TABLE `live_scene`
ADD COLUMN `channel_id` int(11) NULL COMMENT '栏目ID' AFTER `id`;

16
db/weiyan_20190423.sql Normal file
View File

@ -0,0 +1,16 @@
ALTER TABLE `live_scene`
ADD COLUMN `auditor_id` int(11) NULL DEFAULT NULL COMMENT '实际审核人Id',
ADD COLUMN `audit_date` datetime NULL DEFAULT NULL COMMENT '审核时间',
ADD COLUMN `channels_name` varchar(255) NULL DEFAULT NULL COMMENT '栏目名称(多选)';
DROP TABLE IF EXISTS `live_scene_channel`;
CREATE TABLE `live_scene_channel` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`scene_id` int(11) NOT NULL,
`channel_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='现场与栏目对应关系';
insert into live_scene_channel(scene_id,channel_id) select id,channel_id from live_scene bean where bean.channel_id is not NULL;
update live_scene a SET a.channels_name=(SELECT c.`name` FROM live_channel as c where c.id=a.channel_id)

25
db/weiyan_20200410.sql Normal file
View File

@ -0,0 +1,25 @@
DROP TABLE IF EXISTS `live_task_allocation`;
CREATE TABLE `live_task_allocation` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据ID',
`uri` varchar(500) DEFAULT NULL COMMENT '语音url',
`text` varchar(500) DEFAULT NULL COMMENT '语音内容',
`duration_time` int(11) DEFAULT NULL COMMENT '语音时长',
`reporter_id` int(11) DEFAULT NULL COMMENT '记者ID',
`create_id` int(11) DEFAULT NULL COMMENT '创建人',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`is_delete` tinyint(1) DEFAULT 0 COMMENT '是否删除 0未删除 1 删除',
`is_read` tinyint(1) DEFAULT 0 COMMENT '是否发布 0 未读 1 已读',
`read_date` datetime DEFAULT NULL COMMENT '阅读时间',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT '任务分配';
ALTER TABLE `live_task_allocation`
ADD COLUMN `task_id` varchar(20) NULL DEFAULT NULL COMMENT 'taskId' AFTER `id`;
ALTER TABLE `live_task_allocation`
MODIFY COLUMN `reporter_id` varchar(500) NULL DEFAULT NULL COMMENT '记者ID' AFTER `duration_time`;
ALTER TABLE `live_report`
ADD COLUMN `related_report` varchar(512) NULL DEFAULT NULL COMMENT '相关报道' AFTER `tenant_id`;

8
db/weiyan_20210115.sql Normal file
View File

@ -0,0 +1,8 @@
ALTER TABLE `live_scene_live_info`
MODIFY COLUMN `info_type` smallint(6) NULL DEFAULT NULL COMMENT '类型,1:记者2直播间,3第三方拉流' AFTER `info_name`,
ADD COLUMN `pull_start` datetime NULL COMMENT '拉流开始时间' AFTER `tenant_id`,
ADD COLUMN `pull_end` datetime NULL COMMENT '拉流结束时间' AFTER `pull_start`;
ALTER TABLE `live_scene_live_info_ext`
ADD COLUMN `pull_url` varchar(500) NULL COMMENT '拉流地址' AFTER `tenant_id`;

231
pom-war.xml Normal file
View File

@ -0,0 +1,231 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.poly</groupId>
<artifactId>ifs</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<description>war包对应的pom打war包执行【mvn clean package -f pom-war.xml】</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<mybatisplus.spring.boot.version>1.0.5</mybatisplus.spring.boot.version>
<mybatisplus.version>2.1.9</mybatisplus.version>
<mysql.version>5.1.38</mysql.version>
<druid.version>1.1.3</druid.version>
<quartz.version>2.3.0</quartz.version>
<commons.lang.version>2.6</commons.lang.version>
<commons.fileupload.version>1.3.1</commons.fileupload.version>
<commons.io.version>2.5</commons.io.version>
<commons.codec.version>1.10</commons.codec.version>
<commons.configuration.version>1.10</commons.configuration.version>
<shiro.version>1.3.2</shiro.version>
<jwt.version>0.7.0</jwt.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>
<swagger.version>2.2.2</swagger.version>
<joda.time.version>2.9.9</joda.time.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>${mybatisplus.spring.boot.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${quartz.version}</version>
<exclusions>
<exclusion>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons.lang.version}</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons.codec.version}</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>${commons.configuration.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<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>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda.time.version}</version>
</dependency>
</dependencies>
<build>
<finalName>${artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<!-- 跳过单元测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>

431
pom.xml Normal file
View File

@ -0,0 +1,431 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.poly</groupId>
<artifactId>platform</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<description>pluralism-media</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<mybatisplus.spring.boot.version>2.1.9</mybatisplus.spring.boot.version>
<mybatisplus.version>2.1.9</mybatisplus.version>
<mysql.version>5.1.38</mysql.version>
<druid.version>1.1.3</druid.version>
<quartz.version>2.3.0</quartz.version>
<commons.lang.version>2.6</commons.lang.version>
<commons.fileupload.version>1.3.1</commons.fileupload.version>
<commons.io.version>2.5</commons.io.version>
<commons.codec.version>1.10</commons.codec.version>
<commons.configuration.version>1.10</commons.configuration.version>
<shiro.version>1.3.2</shiro.version>
<jwt.version>0.7.0</jwt.version>
<kaptcha.version>0.0.9</kaptcha.version>
<qiniu.version>[7.2.0, 7.2.99]</qiniu.version>
<aliyun.oss.version>3.10.2</aliyun.oss.version>
<qcloud.cos.version>4.4</qcloud.cos.version>
<swagger.version>2.9.2</swagger.version>
<joda.time.version>2.9.9</joda.time.version>
<lucene.version>7.7.0</lucene.version>
<t-io.version>0.0.9-tio-http</t-io.version>
<!--wagon plugin 配置-->
<service-path>/work/platform</service-path>
<pack-name>${project.artifactId}-${project.version}.jar</pack-name>
<remote-addr>192.168.1.10:22</remote-addr>
<remote-username>root</remote-username>
<remote-passwd>123456</remote-passwd>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-devtools</artifactId>-->
<!--<optional>true</optional>-->
<!--</dependency>-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatisplus.spring.boot.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${quartz.version}</version>
<exclusions>
<exclusion>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons.lang.version}</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons.codec.version}</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>${commons.configuration.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<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>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda.time.version}</version>
</dependency>
<dependency>
<groupId>org.t-io</groupId>
<artifactId>tio-http-common</artifactId>
<version>${t-io.version}</version>
</dependency>
<dependency>
<groupId>jave</groupId>
<artifactId>jave</artifactId>
<scope>system</scope>
<version>1.0.2</version>
<systemPath>${project.basedir}/lib/jave-1.0.2.jar</systemPath>
</dependency>
<!--Lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>
<!--ali sdk-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>4.3.14.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>4.2.4.RELEASE</version>
<scope>provided</scope>
</dependency>
<!---->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-mts</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-live</artifactId>
<version>3.7.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>
<!--vod-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-vod</artifactId>
<version>2.15.11</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-vod-upload</artifactId>
<scope>system</scope>
<version>1.4.13</version>
<systemPath>${project.basedir}/lib/aliyun-java-vod-upload-1.4.13.jar</systemPath>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20170516</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
<!-- lucene -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>com.github.tencentyun</groupId>
<artifactId>tls-sig-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.jianggujin</groupId>
<artifactId>IKAnalyzer-lucene</artifactId>
<version>8.0.0</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<!-- 跳过单元测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<fromFile>target/${pack-name}</fromFile>
<url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url>
<commands>
<!-- Kill Old Process -->
<command>pkill -f ${pack-name}</command>
<command>rm -f ${service-path}/platform.log</command>
<!-- Restart jar packagewrite result into platform.log -->
<command>
<![CDATA[nohup java -jar ${service-path}/${pack-name} --spring.profiles.active=test > ${service-path}/platform.log 2>&1 & ]]></command>
<command><![CDATA[netstat -nptl]]></command>
<command><![CDATA[ps -ef | grep java | grep -v grep]]></command>
</commands>
<!-- 运行命令 mvn clean package wagon:upload-single wagon:sshexec-->
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.14</version>
<!--<executions>-->
<!--<execution>-->
<!--<phase>package</phase>-->
<!--<goals>-->
<!--<goal>build</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<configuration>
<imageName>renren/fast</imageName>
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<!-- 运行命令 mvn clean package docker:build 打包并生成docker镜像 -->
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>

View File

@ -0,0 +1,42 @@
package com.platform;
import com.platform.datasources.DynamicDataSourceConfig;
import java.util.concurrent.TimeUnit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@Import({DynamicDataSourceConfig.class})
@EnableAsync
public class PlatformApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(PlatformApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(PlatformApplication.class);
}
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
// factory.setPort(9000);
factory.setSessionTimeout(1, TimeUnit.DAYS);
// factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/notfound.html"));
return factory;
}
}

View File

@ -0,0 +1,87 @@
package com.platform.autoconfigure.live;
import com.platform.plugs.live.config.*;
import com.platform.plugs.common.rpc.DefaultRequestParams;
import com.platform.plugs.common.rpc.Profile;
import com.platform.plugs.live.LiveClient;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Author TONG
* @Date 2019/2/18 14:23
**/
@Configuration
@ConditionalOnClass({LiveClient.class})
@EnableConfigurationProperties({LiveProperties.class})
public class LiveAutoConfiguration {
private final LiveProperties properties;
private LiveClient liveClient;
public LiveAutoConfiguration(LiveProperties properties) {
this.properties = properties;
}
@Bean
@ConditionalOnMissingBean
public LiveClient liveClient() {
this.liveClient = createLiveClient();
return liveClient;
}
private LiveClient createLiveClient() {
this.liveClient = new LiveClient(
new Profile(properties.getCommon().getRegionId(), properties.getAccount().getAccessKeyId(), properties.getAccount().getSecret()),
new DefaultRequestParams(properties.getCommon().getDomain(), properties.getCommon().getVersion()));
LiveProperties.LiveRecord liveRecord = properties.getRecord();
// LiveRecordConfig liveRecordConfig = new LiveRecordConfig(
// liveRecord.getDomainName(), liveRecord.getOssBucket(), liveRecord.getOssEndpoint(),
// liveRecord.getRecordFormat().getRecordFormat(), liveRecord.getRecordFormat().getOssRecordPrefix() + liveRecord.getRecordFormat().getOssObjectPrefix(), null,
// liveRecord.getOnDemand(), liveRecord.getRecordFormat().getCycleDuration());
LiveRecordConfig liveRecordConfig = new LiveRecordConfig(
liveRecord.getDomainName(), liveRecord.getVodTranscodeGroupIdMp4(), liveRecord.getVodTranscodeGroupIdMp3(), liveRecord.getVodRecordCategory(), liveRecord.getRecordFormat().getCycleDuration());
this.liveClient.configLiveRecord(liveRecordConfig);
LiveProperties.LiveDomains domains = properties.getDomains();
LiveStreamConfig liveStreamConfig = new LiveStreamConfig(
domains.getPush().getDomainName(), domains.getPush().getKey(),
domains.getLive().getDomainName(), domains.getLive().getKey());
if(domains.getPush().getAuthTime() != null)
liveStreamConfig.setPushAuthTime(domains.getPush().getAuthTime());
if(domains.getLive().getAuthTime() != null)
liveStreamConfig.setLiveAuthTime(domains.getLive().getAuthTime());
this.liveClient.configLiveStream(liveStreamConfig);
LiveProperties.LiveCaster caster = properties.getCaster();
String ossObjectPrefix = liveRecord.getRecordFormat().getOssRecordPrefix() + (liveRecord.getRecordFormat().getOssObjectPrefix().replaceAll("Escaped", ""));
LiveCasterConfig liveCasterConfig = new LiveCasterConfig(
domains.getLive().getDomainName(), caster.getCasterTemplate(), caster.getLiveTemplateIds(),
liveRecord.getOssBucket(), liveRecord.getOssEndpoint(), liveRecord.getRecordFormat().getRecordFormat(),
ossObjectPrefix, null, liveRecord.getRecordFormat().getCycleDuration());
this.liveClient.configLiveCaster(liveCasterConfig);
LiveUploadToVoDConfig liveUploadToVoDConfig = new LiveUploadToVoDConfig(properties.getAccount().getAccessKeyId(),properties.getAccount().getSecret(),domains.getMedia().getDomainName(), domains.getMedia().getBucket(), domains.getMedia().getEndpoint(), domains.getMedia().getApiRegionId());
this.liveClient.configLiveUploadToVoD(liveUploadToVoDConfig);
LiveTransCodeConfig liveTransCodeConfig = new LiveTransCodeConfig(properties.getAccount().getAccessKeyId(), properties.getAccount().getSecret(), properties.getCommon().getRegionId());
this.liveClient.configLiveTransCode(liveTransCodeConfig);
// LiveAudioConfig liveAudioConfig = new LiveAudioConfig(properties.getAudio().getRecognition().getAppKey(), properties.getAudio().getRecognition().getRegionId(), properties.getAudio().getRecognition().getEndpointName(),
// properties.getAudio().getRecognition().getProduct(), properties.getAudio().getRecognition().getDomainName(), properties.getAudio().getRecognition().getApiVersion(), properties.getAudio().getRecognition().getPostRequestAction(),
// properties.getAudio().getRecognition().getGetRequestAction(), properties.getAccount().getAccessKeyId(), properties.getAccount().getSecret(), properties.getAudio().getRecognition().getCallbackDomainName());
// this.liveClient.configLiveAudio(liveAudioConfig);
LivePullStreamConfig livePullStreamConfig = new LivePullStreamConfig(domains.getLive().getDomainName(), properties.getAccount().getAccessKeyId(),properties.getAccount().getSecret(), properties.getCommon().getRegionId());
this.liveClient.configLivePullStream(livePullStreamConfig);
return this.liveClient;
}
}

View File

@ -0,0 +1,334 @@
package com.platform.autoconfigure.live;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.ArrayList;
import java.util.List;
/**
* 直播配置
*
* @Author TONG
* @Date 2019/2/18 11:39
**/
@ConfigurationProperties("zkdx.live")
@Data
public class LiveProperties {
/**
* 直播账号配置
*/
private final LiveAccount account = new LiveAccount();
/**
* 直播基础配置
*/
private final LiveCommon common = new LiveCommon();
/**
* 直播域名
*/
private final LiveDomains domains = new LiveDomains();
/**
* 直播录制配置
*/
private final LiveRecord record = new LiveRecord();
/**
* 导播台配置
*/
private final LiveCaster caster = new LiveCaster();
/**
* 语音配置
*/
private final LiveAudio audio = new LiveAudio();
/**
* 微信配置
*/
private final LiveWeixin weixin = new LiveWeixin();
/**
* 转码模板
*/
private List<Template> templates;
/**
* 图片压缩
* */
private final CompressImage compressImage = new CompressImage();
@Data
public static class LiveAccount {
private String accessKeyId;
private String secret;
}
@Data
public static class LiveCommon {
private String regionId = "cn-shanghai";
private String domain = "live.aliyuncs.com";
private String version = "2017-03-21";
}
@Data
public static class LiveDomains {
/**
* 推流域名
*/
private Domain push = new Domain();
/**
* 播流域名
*/
private Domain live = new Domain();
/**
* 煤资库
*
* @author weiyan 20190311
*/
private Media media = new Media();
}
@Data
public static class LiveAudio{
/*
* 语音识别
* @author weiyan 20200408
*/
private Recognition recognition = new Recognition();
}
@Data
public static class LiveWeixin {
private String appId;
private String appSecret;
}
@Data
public static class LiveCaster {
/**
* 输出模板lp_ud: 超清 lp_hd: 高清 lp_sd: 标清 lp_ld: 流畅
*/
private String casterTemplate = "lp_ud";
/**
* 转码输出模板 lld: 流畅 lsd: 标清 lhd: 高清 lud: 超清
*/
private List<String> liveTemplateIds = new ArrayList<>();
public void setLiveTemplateIds(List<String> liveTemplateIds) {
if (liveTemplateIds != null && liveTemplateIds.size() > 0)
this.liveTemplateIds = liveTemplateIds;
else {
switch (this.casterTemplate) {
case "lp_ud":
liveTemplateIds.add("lld");
liveTemplateIds.add("lsd");
liveTemplateIds.add("lhd");
liveTemplateIds.add("lud");
break;
case "lp_hd":
liveTemplateIds.add("lld");
liveTemplateIds.add("lsd");
liveTemplateIds.add("lhd");
break;
case "lp_sd":
liveTemplateIds.add("lld");
liveTemplateIds.add("lsd");
break;
case "lp_ld":
liveTemplateIds.add("lld");
break;
default:
break;
}
}
}
}
@Data
public static class Domain {
/**
* 域名名称
*/
private String domainName;
/**
* URL鉴权key
*/
private String key;
/**
* URL鉴权时间, 默认30分钟
*/
private Integer authTime = 30 * 60;
}
@Data
public static class Media {
/**
* 域名名称
*/
private String domainName;
/**
* 煤资库Bucket名称
*/
private String bucket;
/**
* 煤资库Endpoint域名
*/
private String endpoint;
/**
* 点播服务接入点
*/
private String apiRegionId;
/**
* 模板组ID
*/
private String templateGroupId;
public String getTemplateGroupId() {
return templateGroupId;
}
}
@Data
public static class LiveRecord {
/**
* 加速域名
*/
private String domainName;
/**
* 视频转码模板ID
*/
private String vodTranscodeGroupIdMp4;
/**
* 音频转码模板ID
*/
private String vodTranscodeGroupIdMp3;
/**
* 录制默认分类
*/
private String vodRecordCategory;
/**
* OssBucket名称
*/
private String ossBucket;
/**
* 媒资库Bucket名称
*/
private String mediaBucket;
/**
* OssEndpoint域名
* oss-cn-shanghai.aliyuncs.com
*/
private String ossEndpoint = "oss-cn-shanghai.aliyuncs.com";
/**
* 按需录制
* 0表示关闭
* 1表示通过HTTP回调方式,使用1方式时候需要设置OnDemandCallback否则默认不录制
* 2表示通过推流参数方式
*/
private Integer onDemand;
/**
* 直播录制格式
*/
private final LiveRecordFormat recordFormat = new LiveRecordFormat();
}
@Data
public static class LiveRecordFormat {
/**
* 周期录制时长单位不填则默认为 6 小时
*/
private Integer cycleDuration = 60 * 60 * 6;
/**
* 格式目前支持 m3u8flvmp4 周期录制
*/
private String recordFormat = "mp4";
/**
* OSS 存储的录制文件名
* live-record/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}
*/
private String ossObjectPrefix = "/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}";
/**
* 更细后生成回顾地址
*/
private String ossRecordPrefix = "live-record";
}
@Data
public static class Template {
/**
* 模板名称
*/
String templateName;
/**
* 模板id
*/
String templateId;
/**
* 分辨率
*/
String wide;
/**
* 分辨率
*/
String high;
}
@Data
public static class CompressImage{
/**
* 图片等比压缩
* */
String geometricFormat;
/**
* 图片强制宽高压缩
* */
String mandatoryFormat;
}
@Data
public static class Recognition{
/**
* 管控台项目的appkey
*/
String appKey;
/**
* 服务接入点
*/
String regionId;
/**
* 服务总结点
*/
String endpointName;
/**
* 产品名称
*/
String product;
/**
* 域名
*/
String domainName;
/**
* API的版本号
*/
String apiVersion;
/**
* post提交的action
*/
String postRequestAction;
/**
* get提交的action
*/
String getRequestAction;
/**
* 回调域名
* */
String callbackDomainName;
}
}

View File

@ -0,0 +1,18 @@
package com.platform.common.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 系统日志注解
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SysLog {
String value() default "";
}

View File

@ -0,0 +1,36 @@
package com.platform.common.aspect;
import com.platform.common.exception.RRException;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
* Redis切面处理类
*/
@Aspect
@Configuration
public class RedisAspect {
private Logger logger = LoggerFactory.getLogger(getClass());
//是否开启redis缓存 true开启 false关闭
@Value("${spring.redis.open: false}")
private boolean open;
@Around("execution(* com.platform.common.utils.RedisUtils.*(..))")
public Object around(ProceedingJoinPoint point) throws Throwable {
Object result = null;
if(open){
try{
result = point.proceed();
}catch (Exception e){
logger.error("redis error", e);
throw new RRException("Redis服务异常");
}
}
return result;
}
}

View File

@ -0,0 +1,108 @@
package com.platform.common.aspect;
import com.google.gson.Gson;
import com.platform.common.annotation.SysLog;
import com.platform.common.utils.HttpContextUtils;
import com.platform.common.utils.IPUtils;
import com.platform.modules.live.constants.SceneConstants;
import com.platform.modules.sys.entity.SysLogEntity;
import com.platform.modules.sys.entity.SysUserEntity;
import com.platform.modules.sys.service.SysLogService;
import org.apache.shiro.SecurityUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Method;
import java.util.Date;
/**
* 系统日志切面处理类
*/
@Aspect
@Component
public class SysLogAspect {
@Autowired
private SysLogService sysLogService;
@Pointcut("@annotation(com.platform.common.annotation.SysLog)")
public void logPointCut() {
}
@Around("logPointCut()")
public Object around(ProceedingJoinPoint point) throws Throwable {
long beginTime = System.currentTimeMillis();
//执行方法
Object result = point.proceed();
//执行时长(毫秒)
long time = System.currentTimeMillis() - beginTime;
//保存日志
saveSysLog(point, time);
return result;
}
private void saveSysLog(ProceedingJoinPoint joinPoint, long time) {
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method = signature.getMethod();
SysLogEntity sysLog = new SysLogEntity();
SysLog syslog = method.getAnnotation(SysLog.class);
if(syslog != null){
//注解上的描述
sysLog.setOperation(syslog.value());
}
//请求的方法名
String className = joinPoint.getTarget().getClass().getName();
String methodName = signature.getName();
sysLog.setMethod(className + "." + methodName + "()");
//请求的参数
Object[] args = joinPoint.getArgs();
try{
String params = new Gson().toJson(args[0]);
sysLog.setParams(params);
}catch (Exception e){
}
//获取request
HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
//设置IP地址
sysLog.setIp(IPUtils.getIpAddr(request));
//用户名
String username = SecurityUtils.getSubject().getPrincipal()==null ? null : ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername();
if(className=="com.platform.modules.qk.controller.CloudClipsController" || className.equals("com.platform.modules.qk.controller.CloudClipsController")){
username = "趣看";
}else if("com.platform.modules.live.controller.LiveNotifyController".equals(className)){
username = "阿里云";
// try {
Object liveNotifyControllerNotifyMsg = request.getAttribute(SceneConstants.LIVENOTIFY_REQUESTMSG);
if(liveNotifyControllerNotifyMsg != null)
sysLog.setParams(liveNotifyControllerNotifyMsg.toString());
// } catch (IOException e) {
// e.printStackTrace();
// }
}
sysLog.setUsername(username);
sysLog.setTime(time);
sysLog.setCreateDate(new Date());
//保存系统日志
sysLogService.insert(sysLog);
}
}

View File

@ -0,0 +1,51 @@
package com.platform.common.exception;
/**
* 自定义异常
*/
public class RRException extends RuntimeException {
private static final long serialVersionUID = 1L;
private String msg;
private int code = 500;
public RRException(String msg) {
super(msg);
this.msg = msg;
}
public RRException(String msg, Throwable e) {
super(msg, e);
this.msg = msg;
}
public RRException(String msg, int code) {
super(msg);
this.msg = msg;
this.code = code;
}
public RRException(String msg, int code, Throwable e) {
super(msg, e);
this.msg = msg;
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
}

View File

@ -0,0 +1,47 @@
package com.platform.common.exception;
import com.platform.common.utils.R;
import org.apache.shiro.authz.AuthorizationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* 异常处理器
*/
@RestControllerAdvice
public class RRExceptionHandler {
private Logger logger = LoggerFactory.getLogger(getClass());
/**
* 处理自定义异常
*/
@ExceptionHandler(RRException.class)
public R handleRRException(RRException e){
R r = new R();
r.put("code", e.getCode());
r.put("msg", e.getMessage());
return r;
}
@ExceptionHandler(DuplicateKeyException.class)
public R handleDuplicateKeyException(DuplicateKeyException e){
logger.error(e.getMessage(), e);
return R.error("数据库中已存在该记录");
}
@ExceptionHandler(AuthorizationException.class)
public R handleAuthorizationException(AuthorizationException e){
logger.error(e.getMessage(), e);
return R.error("没有权限,请联系管理员授权");
}
@ExceptionHandler(Exception.class)
public R handleException(Exception e){
logger.error(e.getMessage(), e);
return R.error();
}
}

View File

@ -0,0 +1,15 @@
package com.platform.common.utils;
/**
* 系统参数相关Key
*/
public class ConfigConstant {
/**
* 云存储配置KEY
*/
public final static String CLOUD_STORAGE_CONFIG_KEY = "CLOUD_STORAGE_CONFIG_KEY";
/**
* 现场计数器清除时间
*/
public static final String SCENE_COUNT_CLEAR_TIME = "SCENE_COUNT_CLEAR_TIME";
}

View File

@ -0,0 +1,95 @@
package com.platform.common.utils;
/**
* 常量
*/
public class Constant {
/** 超级管理员ID */
public static final int SUPER_ADMIN = 1;
// public static final String DEFAULT_TENENT_COLUMN = "tenant_id";
public static final String REDIS_SYS_TENANT_ENTITY = "sys:tenant:entity";
public static final String REDIS_LOCATION_REPORT = "app:location:report";
/**
* 菜单类型
*/
public enum MenuType {
/**
* 目录
*/
CATALOG(0),
/**
* 菜单
*/
MENU(1),
/**
* 按钮
*/
BUTTON(2);
private int value;
MenuType(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
/**
* 定时任务状态
*/
public enum ScheduleStatus {
/**
* 正常
*/
NORMAL(0),
/**
* 暂停
*/
PAUSE(1);
private int value;
ScheduleStatus(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
/**
* 云服务商
*/
public enum CloudService {
/**
* 七牛云
*/
QINIU(1),
/**
* 阿里云
*/
ALIYUN(2),
/**
* 腾讯云
*/
QCLOUD(3);
private int value;
CloudService(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
}

View File

@ -0,0 +1,161 @@
package com.platform.common.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ConverterUtils {
/**
* <将obj转换为string如果obj为null则返回defaultVal>
*
* @param obj 需要转换为string的对象
* @param defaultVal 默认值
* @return obj转换为string
*/
public static String parseString(Object obj, String defaultVal){
return (obj != null) ? obj.toString() : defaultVal;
}
/**
* <将obj转换为string默认为空>
*
* @param obj 需要转换为string的对象
* @return 将对象转换为string的字符串
*/
public static String parseString(Object obj){
return parseString(obj, "");
}
/**
* <将对象转换为int>
*
* @param obj 需要转换为int的对象
* @param defaultVal 默认值
* @return obj转换成的int值
*/
public static Integer parseInt(Object obj, Integer defaultVal) {
try
{
return (obj != null) ? Integer.parseInt(parseString(obj, "0")) : defaultVal;
}catch(Exception e)
{
}
return defaultVal;
}
/**
* <将对象转换为int>
*
* @param obj 需要转换为int的对象
* @param defaultVal 默认值
* @return obj转换成的int值
*/
public static Integer parseInt(Object obj)
{
return parseInt(obj, 0);
}
/**
* <将对象转换为Integer>
*
* @param obj 需要转换为Integer的对象
* @return obj转换成的Integer值
*/
public static Integer parseInteger(Object obj)
{
return parseInt(obj, null);
}
/**
* <将对象转换为int>
*
* @param obj 需要转换为int的对象
* @param defaultVal 默认值
* @return obj转换成的int值
*/
public static Float parseFloat(Object obj, float defaultVal)
{
return (obj != null) ? Float.parseFloat(parseString(obj, "0")) : defaultVal;
}
/**
* <将对象转换为Float>
*
* @param obj 需要转换为Float的对象
* @return obj转换成的Float值
*/
public static Float parseFloat(Object obj)
{
return parseFloat(obj, 0);
}
/**
* <将obj转换为long>
*
* @param obj 需要转换的对象
* @param defaultVal 默认值
* @return 如果obj为空则返回默认不为空则返回转换后的long结果
*/
public static Long parseLong(Object obj, long defaultVal)
{
return (obj != null) ? Long.parseLong(parseString(obj)) : defaultVal;
}
/**
* <将obj转换为long>
*
* @param obj 需要转换的对象
* @return 如果obj为空则返回默认的0l不为空则返回转换后的long结果
*/
public static Long parseLong(Object obj)
{
return parseLong(obj, 0l);
}
/**
* 将object转换为double类型如果出错则返回 defaultVal
* @param obj 需要转换的对象
* @param defaultVal 默认值
* @return 转换后的结果
*/
public static Double parseDouble(Object obj,Double defaultVal)
{
try
{
return Double.parseDouble(obj.toString());
}
catch(Exception e)
{
return defaultVal;
}
}
/**
* 将object转换为double类型如果出错则返回 0d
* @param obj 需要转换的对象
* @return 转换后的结果
*/
public static double parseDouble(Object obj)
{
return parseDouble(obj,0d);
}
/**
* <将List<Object>转换为List<Map<String, Object>>>
*
* @param list 需要转换的list
* @return 转换的结果
*/
@SuppressWarnings("unchecked")
public static List<Map<String, Object>> converterForMapList(List<Object> list)
{
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
for (Object tempObj : list)
{
result.add((HashMap<String, Object>)tempObj);
}
return result;
}
}

View File

@ -0,0 +1,180 @@
package com.platform.common.utils;
import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 日期处理
*/
public class DateUtils {
/** 时间格式(yyyy-MM-dd) */
public final static String DATE_PATTERN = "yyyy-MM-dd";
/** 时间格式(yyyy-MM-dd HH:mm:ss) */
public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
/** 时间格式(yyyy-MM-dd HH:mm:ss) */
public final static String DATE_TIME_SHORT_PATTERN = "MM-dd HH:mm";
/** 时间格式(yyyy-MM-dd HH:mm) */
public final static String DATE_TIME_MINUTE_PATTERN = "yyyy-MM-dd HH:mm";
/**
* 日期格式化 日期格式为yyyy-MM-dd
* @param date 日期
* @return 返回yyyy-MM-dd格式日期
*/
public static String format(Date date) {
return format(date, DATE_PATTERN);
}
/**
* 日期格式化 日期格式为yyyy-MM-dd
* @param date 日期
* @param pattern 格式DateUtils.DATE_TIME_PATTERN
* @return 返回yyyy-MM-dd格式日期
*/
public static String format(Date date, String pattern) {
if(date != null){
SimpleDateFormat df = new SimpleDateFormat(pattern);
return df.format(date);
}
return null;
}
/**
* 字符串转换成日期
* @param strDate 日期字符串
* @param pattern 日期的格式DateUtils.DATE_TIME_PATTERN
*/
public static Date stringToDate(String strDate, String pattern) {
if (StringUtils.isBlank(strDate)){
return null;
}
DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern);
return fmt.parseLocalDateTime(strDate).toDate();
}
/**
* 根据周数获取开始日期结束日期
* @param week 周期 0本周-1上周-2上上周1下周2下下周
* @return 返回date[0]开始日期date[1]结束日期
*/
public static Date[] getWeekStartAndEnd(int week) {
DateTime dateTime = new DateTime();
LocalDate date = new LocalDate(dateTime.plusWeeks(week));
date = date.dayOfWeek().withMinimumValue();
Date beginDate = date.toDate();
Date endDate = date.plusDays(6).toDate();
return new Date[]{beginDate, endDate};
}
/**
* 对日期的进行加/
*
* @param date 日期
* @param seconds 秒数负数为减
* @return /减几秒后的日期
*/
public static Date addDateSeconds(Date date, int seconds) {
DateTime dateTime = new DateTime(date);
return dateTime.plusSeconds(seconds).toDate();
}
/**
* 对日期的分钟进行加/
*
* @param date 日期
* @param minutes 分钟数负数为减
* @return /减几分钟后的日期
*/
public static Date addDateMinutes(Date date, int minutes) {
DateTime dateTime = new DateTime(date);
return dateTime.plusMinutes(minutes).toDate();
}
/**
* 对日期的小时进行加/
*
* @param date 日期
* @param hours 小时数负数为减
* @return /减几小时后的日期
*/
public static Date addDateHours(Date date, int hours) {
DateTime dateTime = new DateTime(date);
return dateTime.plusHours(hours).toDate();
}
/**
* 对日期的进行加/
*
* @param date 日期
* @param days 天数负数为减
* @return /减几天后的日期
*/
public static Date addDateDays(Date date, int days) {
DateTime dateTime = new DateTime(date);
return dateTime.plusDays(days).toDate();
}
/**
* 对日期的进行加/
*
* @param date 日期
* @param weeks 周数负数为减
* @return /减几周后的日期
*/
public static Date addDateWeeks(Date date, int weeks) {
DateTime dateTime = new DateTime(date);
return dateTime.plusWeeks(weeks).toDate();
}
/**
* 对日期的进行加/
*
* @param date 日期
* @param months 月数负数为减
* @return /减几月后的日期
*/
public static Date addDateMonths(Date date, int months) {
DateTime dateTime = new DateTime(date);
return dateTime.plusMonths(months).toDate();
}
/**
* 对日期的进行加/
*
* @param date 日期
* @param years 年数负数为减
* @return /减几年后的日期
*/
public static Date addDateYears(Date date, int years) {
DateTime dateTime = new DateTime(date);
return dateTime.plusYears(years).toDate();
}
/**
* (Unix时间戳)类型转换为日期时间格式字符串
* @param format
* @param unixTime
* @return
* @throws ParseException
*/
public static Date unixTimeToDate(SimpleDateFormat format, Integer unixTime) throws ParseException {
if (unixTime == null) {
return null;
}
if (format == null) {
format = new SimpleDateFormat(DATE_TIME_PATTERN);
}
Long time = new Long(unixTime)*1000;
String date = format.format(time);
return format.parse(date);
}
}

View File

@ -0,0 +1,193 @@
package com.platform.common.utils;
import java.security.Key;
import java.security.Security;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.crypto.Cipher;
public class DesUtils {
/** 字符串默认键值 */
private static String strDefaultKey = "national";
/** 加密工具 */
private Cipher encryptCipher = null;
/** 解密工具 */
private Cipher decryptCipher = null;
public static String thirdTypeSceneReport = "scene_report";
public static String thirdTypeScene = "scene";
public static String thirdTypeGetScene = "get_scene";
public static String thirdTypeGetSceneReport = "get_scene_report";
/**
* 将byte数组转换为表示16进制值的字符串 byte[]{8,18}转换为0813 和public static byte[]
* hexStr2ByteArr(String strIn) 互为可逆的转换过程
*
* @param arrB
* 需要转换的byte数组
* @return 转换后的字符串
* @throws Exception
* 本方法不处理任何异常所有异常全部抛出
*/
public static String byteArr2HexStr(byte[] arrB) throws Exception {
int iLen = arrB.length;
// 每个byte用两个字符才能表示所以字符串的长度是数组长度的两倍
StringBuffer sb = new StringBuffer(iLen * 2);
for (int i = 0; i < iLen; i++) {
int intTmp = arrB[i];
// 把负数转换为正数
while (intTmp < 0) {
intTmp = intTmp + 256;
}
// 小于0F的数需要在前面补0
if (intTmp < 16) {
sb.append("0");
}
sb.append(Integer.toString(intTmp, 16));
}
return sb.toString();
}
/**
* 将表示16进制值的字符串转换为byte数组 和public static String byteArr2HexStr(byte[] arrB)
* 互为可逆的转换过程
*
* @param strIn
* 需要转换的字符串
* @return 转换后的byte数组
* @throws Exception
* 本方法不处理任何异常所有异常全部抛出
* @author <a href="mailto:leo841001@163.com">LiGuoQing</a>
*/
public static byte[] hexStr2ByteArr(String strIn) throws Exception {
byte[] arrB = strIn.getBytes();
int iLen = arrB.length;
// 两个字符表示一个字节所以字节数组长度是字符串长度除以2
byte[] arrOut = new byte[iLen / 2];
for (int i = 0; i < iLen; i = i + 2) {
String strTmp = new String(arrB, i, 2);
arrOut[i / 2] = (byte) Integer.parseInt(strTmp, 16);
}
return arrOut;
}
/**
* 默认构造方法使用默认密钥
*
* @throws Exception
*/
public DesUtils() throws Exception {
this(strDefaultKey);
}
/**
* 指定密钥构造方法
*
* @param strKey
* 指定的密钥
* @throws Exception
*/
public DesUtils(String strKey) throws Exception {
Security.addProvider(new com.sun.crypto.provider.SunJCE());
Key key = getKey(strKey.getBytes());
encryptCipher = Cipher.getInstance("DES");
encryptCipher.init(Cipher.ENCRYPT_MODE, key);
decryptCipher = Cipher.getInstance("DES");
decryptCipher.init(Cipher.DECRYPT_MODE, key);
}
/**
* 加密字节数组
*
* @param arrB
* 需加密的字节数组
* @return 加密后的字节数组
* @throws Exception
*/
public byte[] encrypt(byte[] arrB) throws Exception {
return encryptCipher.doFinal(arrB);
}
/**
* 加密字符串
*
* @param strIn
* 需加密的字符串
* @return 加密后的字符串
* @throws Exception
*/
public String encrypt(String strIn) throws Exception {
return byteArr2HexStr(encrypt(strIn.getBytes()));
}
/**
* 解密字节数组
*
* @param arrB
* 需解密的字节数组
* @return 解密后的字节数组
* @throws Exception
*/
public byte[] decrypt(byte[] arrB) throws Exception {
return decryptCipher.doFinal(arrB);
}
/**
* 解密字符串
*
* @param strIn
* 需解密的字符串
* @return 解密后的字符串
* @throws Exception
*/
public String decrypt(String strIn) throws Exception {
return new String(decrypt(hexStr2ByteArr(strIn)));
}
/**
* 从指定字符串生成密钥密钥所需的字节数组长度为8位 不足8位时后面补0超出8位只取前8位
*
* @param arrBTmp
* 构成该字符串的字节数组
* @return 生成的密钥
* @throws java.lang.Exception
*/
private Key getKey(byte[] arrBTmp) throws Exception {
// 创建一个空的8位字节数组默认值为0
byte[] arrB = new byte[8];
// 将原始字节数组转换为8位
for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {
arrB[i] = arrBTmp[i];
}
// 生成密钥
Key key = new javax.crypto.spec.SecretKeySpec(arrB, "DES");
return key;
}
public static String encryptThirdType(String thirdType) {
if(thirdType == null)
return null;
try {
DateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
String voteIdCode = thirdType + "|" + df.format(new Date());
DesUtils des = new DesUtils("leemenz");// 自定义密钥
return des.encrypt(voteIdCode);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

View File

@ -0,0 +1,232 @@
package com.platform.common.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
import org.apache.commons.lang3.StringUtils;
/**
* 文件的工具类
*
* @author yikaihong
*/
public class FileUtils {
public static String BASE_PATH = "/data/pluralism/media/";
// public static String BASE_PATH = "D:/pluralism/media/";
public static String PAGE_PATH = "/data/pluralism/page/";
/**
* 创建文件名称
*
* @return
*/
public static String createFileName() {
return UUID.randomUUID().toString().replaceAll("-", "");
}
/**
* 获取文件后缀名称
*
* @param file
* @return
*/
public static String getSuffix(File file) {
if (file == null) {
return null;
}
String fileName = file.getName();
return fileName.substring(fileName.lastIndexOf(".") + 1);
}
/**
* 获取文件的后缀
*
* @param fileName
* @return
*/
public static String getSuffix(String fileName) {
if(StringUtils.isEmpty(fileName)){
return null;
}
return fileName.substring(fileName.lastIndexOf(".") + 1);
}
/**
* 文件复制
*
* @param source
* @param target
*/
public static void copy(File source, File target) {
if (source == null || target == null) {
return;
}
if (!target.getParentFile().exists()) {
target.getParentFile().mkdirs();
}
if (target.isDirectory() && !target.exists()) {
target.mkdir();
}
if (target.isFile() && !target.exists()) {
try {
target.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(source);
out = new FileOutputStream(target);
byte[] byteArray = new byte[1024];
int length = 0;
while ((length = in.read(byteArray)) != -1) {
out.write(byteArray, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 文件复制
*
* @param source
* @param targetPath
*/
public static void copy(File source, String targetPath) {
if (source == null || StringUtils.isEmpty(targetPath)) {
return;
}
File target = new File(targetPath);
if (!target.getParentFile().exists()) {
target.getParentFile().mkdirs();
}
if (target.isDirectory() && !target.exists()) {
target.mkdir();
}
if (target.isFile() && !target.exists()) {
try {
target.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(source);
out = new FileOutputStream(target);
byte[] byteArray = new byte[1024];
int length = 0;
while ((length = in.read(byteArray)) != -1) {
out.write(byteArray, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 文件复制
*
* @param source
* @param targetPath
*/
public static void copy(InputStream source, String targetPath) {
if (source == null || StringUtils.isEmpty(targetPath)) {
return;
}
System.out.println(targetPath);
File target = new File(targetPath);
if (!target.getParentFile().exists()) {
target.getParentFile().mkdirs();
}
if (target.isDirectory() && !target.exists()) {
target.mkdir();
}
if (target.isFile() && !target.exists()) {
try {
target.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
OutputStream out = null;
try {
out = new FileOutputStream(target);
byte[] byteArray = new byte[1024];
int length = 0;
while ((length = source.read(byteArray)) != -1) {
out.write(byteArray, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (source != null) {
try {
source.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

View File

@ -0,0 +1,524 @@
package com.platform.common.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.lang.StringUtils;
import javax.net.ssl.*;
/**
* HttpClientHelper
*/
public class HttpClientHelper {
/**
* @Description:使用HttpURLConnection发送post请求
*/
public static String sendPost(String urlParam, Map<String, Object> params, String charset,boolean isProxy) {
StringBuffer resultBuffer = null;
// 构建请求参数
String sbParams = buildingParams(params);
HttpURLConnection con = null;
OutputStreamWriter osw = null;
BufferedReader br = null;
// 发送请求
try {
URL url = new URL(urlParam);
con = (HttpURLConnection) url.openConnection();
if(isProxy){
InetSocketAddress addr = new InetSocketAddress("47.93.4.104",80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
con = (HttpURLConnection) url.openConnection(proxy);
}
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
if (sbParams != null && sbParams.length() > 0) {
osw = new OutputStreamWriter(con.getOutputStream(), charset);
osw.write(sbParams.substring(0, sbParams.length() - 1));
osw.flush();
}
// 读取返回内容
resultBuffer = new StringBuffer();
int contentLength = Integer.parseInt(con.getHeaderField("Content-Length"));
if (contentLength > 0) {
br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
String temp;
while ((temp = br.readLine()) != null) {
resultBuffer.append(temp);
}
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (osw != null) {
try {
osw.close();
} catch (IOException e) {
osw = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
br = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
}
return resultBuffer.toString();
}
/**
* @Description:使用HttpURLConnection发送get请求
*/
public static String sendGet(String urlParam, Map<String, Object> params, String charset,boolean isProxy) {
StringBuffer resultBuffer = null;
// 构建请求参数
String sbParams = buildingParams(params);
HttpURLConnection con = null;
BufferedReader br = null;
try {
URL url = null;
if (sbParams != null && sbParams.length() > 0) {
url = new URL(urlParam + "?" + sbParams.substring(0, sbParams.length() - 1));
} else {
url = new URL(urlParam);
}
con = (HttpURLConnection) url.openConnection();
if(isProxy){
InetSocketAddress addr = new InetSocketAddress("47.93.4.104",80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
con = (HttpURLConnection) url.openConnection(proxy);
}
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.connect();
resultBuffer = new StringBuffer();
br = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
String temp;
while ((temp = br.readLine()) != null) {
resultBuffer.append(temp);
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
br = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
}
return resultBuffer.toString();
}
public static void sendGetAndSaveFile(String urlParam, Map<String, Object> params, String fileSavePath,boolean isProxy) {
// 构建请求参数
String sbParams = buildingParams(params);
HttpURLConnection con = null;
BufferedReader br = null;
FileOutputStream os = null;
try {
URL url = null;
if (sbParams != null && sbParams.length() > 0) {
url = new URL(urlParam + (urlParam.indexOf("?")>-1 ? "&" : "?") + sbParams.substring(0, sbParams.length() - 1));
} else {
url = new URL(urlParam);
}
con = (HttpURLConnection) url.openConnection();
if(isProxy){
InetSocketAddress addr = new InetSocketAddress("47.93.4.104",80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
con = (HttpURLConnection) url.openConnection(proxy);
}
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.connect();
InputStream is = con.getInputStream();
File outFile=new File(fileSavePath);
if (!outFile.getParentFile().exists())
outFile.getParentFile().mkdirs();
os = new FileOutputStream(fileSavePath);
byte buf[] = new byte[1024];
int count = 0;
while ((count = is.read(buf)) != -1) {
os.write(buf, 0, count);
}
os.flush();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
os = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
br = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
}
}
/**
* 读取文件内容
* @param urlParam
* @param isProxy
*/
public static String sendGetAndGetFileContent(String urlParam,boolean isProxy) {
if(urlParam.startsWith("https://")){
return sendHttpsGetAndGetFileContent(urlParam,isProxy);
}
HttpURLConnection con = null;
BufferedReader br = null;
FileOutputStream os = null;
InputStreamReader isReader = null;
BufferedReader reader = null;
StringBuffer buffer = new StringBuffer();
try {
URL url = new URL(urlParam);
con = (HttpURLConnection) url.openConnection();
if(isProxy){
InetSocketAddress addr = new InetSocketAddress("47.93.4.104",80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
con = (HttpURLConnection) url.openConnection(proxy);
}
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.connect();
int HttpResult = con.getResponseCode();
if(HttpResult != HttpURLConnection.HTTP_OK) {
System.out.print("无法连接到");
} else {
isReader = new InputStreamReader(con.getInputStream(),"UTF-8");
reader = new BufferedReader(isReader);
String line; // 用来保存每行读取的内容
line = reader.readLine(); // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line).append("\n");
line = reader.readLine(); // 读取下一行
}
isReader.close();
reader.close();
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
os = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
br = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
if (isReader != null) {
try {
isReader.close();
} catch (IOException e) {
isReader = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
reader = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
}
return buffer.toString();
}
/**
* 读取文件内容
* @param urlParam
* @param isProxy
*/
public static String sendHttpsGetAndGetFileContent(String urlParam,boolean isProxy) {
if(urlParam.startsWith("http://")){
return sendGetAndGetFileContent(urlParam,isProxy);
}
HttpsURLConnection con = null;
BufferedReader br = null;
FileOutputStream os = null;
InputStreamReader isReader = null;
BufferedReader reader = null;
StringBuffer buffer = new StringBuffer();
try {
URL url = new URL(urlParam);
con = (HttpsURLConnection) url.openConnection();
// 创建SSLContext对象并使用我们指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();
con.setSSLSocketFactory(ssf);
if(isProxy){
InetSocketAddress addr = new InetSocketAddress("47.93.4.104",80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
con = (HttpsURLConnection) url.openConnection(proxy);
}
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.connect();
int HttpResult = con.getResponseCode();
if(HttpResult != HttpURLConnection.HTTP_OK) {
System.out.print("无法连接到");
} else {
isReader = new InputStreamReader(con.getInputStream(),"UTF-8");
reader = new BufferedReader(isReader);
String line; // 用来保存每行读取的内容
line = reader.readLine(); // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line).append("\n");
line = reader.readLine(); // 读取下一行
}
isReader.close();
reader.close();
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
os = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
br = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
if (isReader != null) {
try {
isReader.close();
} catch (IOException e) {
isReader = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
reader = null;
throw new RuntimeException(e);
} finally {
if (con != null) {
con.disconnect();
con = null;
}
}
}
}
return buffer.toString();
}
// 构建请求参数
public static String buildingParams(Map<String, Object> params){
StringBuffer sbParams = new StringBuffer();
if (params != null && params.size() > 0) {
for (Entry<String, Object> entry : params.entrySet()) {
if(StringUtils.isBlank(entry.getKey()) || entry.getValue()==null){
continue;
}
sbParams.append(entry.getKey());
sbParams.append("=");
sbParams.append(entry.getValue());
sbParams.append("&");
}
}
return sbParams.toString();
}
public static void main(String[] args) {
// int page = 1;
// int pageSize = 10;
// String keyword = "交通";
// Long startTime = null;
// Long endTime = null;
// String latlng = null;
// Integer precision = null; // 经纬度点方圆多少公里1,5,10,15,20,30,50,100,150,200,300)默认值是5
// Integer order = null; // 视频列表排序0匹配度,1时间降序,2时间升序,3播放数,4点赞数)默认值是0
// Boolean originWork = null; // 是否为快手用户本人手机原创拍摄
// String operatorId = "1";
// String paramList = String.format("page=%d&count=%d&keyword=%s&startTime=%d&endTime=%d&latlng=%s&precision=%d&order=%d&originWork=%s&operatorId=%s&secret=%s",
// page, pageSize, keyword, startTime, endTime, latlng, precision, order, originWork,operatorId, "e85fdba04bf261e");
// String md5Str = DigestUtils.md5Hex(paramList);
// Map<String, Object> params = new HashMap<String, Object>();
// params.put("page", page);
// params.put("count", pageSize);
// params.put("keyword", " ");
// params.put("operatorId", 1);
// params.put("signature", md5Str);
// String result_json = HttpClientHelper.sendPost("http://lc.test.gifshow.com/rest/n/partner/xinhua/search",params,"UTF-8");
// System.out.println(md5Str);
// System.out.println(result_json);
//
// System.out.println(MapUtils.json2map(result_json));
// String BASE_PATH = ClassUtils.getDefaultClassLoader().getResource("").getPath().substring(1) + File.separator + "kuaishou/";
//// String BASE_PATH = "c:\\kuaishou"+ File.separator + VideoUtils.getDateDir() + File.separator ;
// String newFilePath = FileUtils.BASE_PATH + "11111111.mp4";
// System.out.println(newFilePath);
// Map<String, Object> params = new HashMap<String, Object>();
// params.put("page", 1);
// params.put("count", 10);
// params.put("keyword", " ");
// params.put("operatorId", 1);
//
// HttpClientHelper.sendGetAndSaveFile(url, params, newFilePath,false);
String url = "https://hhtestlive.zhongkedongxin.com/caster/a65223a812504cfea858edf241f93255.m3u8?auth_key=1618455146-0-0-473ebb9ef6c40a3147c90a2cd0a444ba&aliyunols=on&lhs_start_human_s_8=20210412105226&lhs_vodend_human_s_8=20210412113337";
System.out.println(HttpClientHelper.sendGetAndGetFileContent(url,false));
// Map<String, Object> map = new HashMap<String, Object>();
// map.put("page", 1);
// map.put("count", 10);
// System.out.println(sendPost("http://lc.test.gifshow.com/rest/n/partner/xinhua/search", map, "utf-8"));
//
}
}
class MyX509TrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}

View File

@ -0,0 +1,24 @@
package com.platform.common.utils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
public class HttpContextUtils {
public static HttpServletRequest getHttpServletRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}
public static String getDomain(){
HttpServletRequest request = getHttpServletRequest();
StringBuffer url = request.getRequestURL();
return url.delete(url.length() - request.getRequestURI().length(), url.length()).toString();
}
public static String getOrigin(){
HttpServletRequest request = getHttpServletRequest();
return request.getHeader("Origin");
}
}

View File

@ -0,0 +1,64 @@
package com.platform.common.utils;
import com.alibaba.druid.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.InetAddress;
import javax.servlet.http.HttpServletRequest;
/**
* IP地址
*/
public class IPUtils {
private static Logger logger = LoggerFactory.getLogger(IPUtils.class);
/**
* 获取IP地址
*
* 使用Nginx等反向代理软件 则不能通过request.getRemoteAddr()获取IP地址
* 如果使用了多级反向代理的话X-Forwarded-For的值并不止一个而是一串IP地址X-Forwarded-For中第一个非unknown的有效IP字符串则为真实IP地址
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = null;
try {
ip = request.getHeader("x-forwarded-for");
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (StringUtils.isEmpty(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP");
}
if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if(ip.equals("127.0.0.1") || ip.equals("0:0:0:0:0:0:0:1")){
//根据网卡取本机配置的IP
InetAddress inet = InetAddress.getLocalHost();
ip= inet.getHostAddress();
}
} catch (Exception e) {
logger.error("IPUtils ERROR ", e);
}
// //使用代理则获取第一个IP地址
// if(StringUtils.isEmpty(ip) && ip.length() > 15) {
// if(ip.indexOf(",") > 0) {
// ip = ip.substring(0, ip.indexOf(","));
// }
// }
return ip;
}
}

View File

@ -0,0 +1,57 @@
package com.platform.common.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* Map工具类
*/
public class MapUtils extends HashMap<String, Object> {
@Override
public MapUtils put(String key, Object value) {
super.put(key, value);
return this;
}
public static Map<String, Object> json2map(String jsonStr) {
Map<String, Object> map = new HashMap<>();
jsonStr = jsonStr.replaceAll("null", "\"\"");
if(StringUtils.isNotBlank(jsonStr)){
//最外层解析
JSONObject json = JSONObject.fromObject(jsonStr);
if(json==null || json.isNullObject()){
return null;
}
for (Object k : json.keySet()) {
Object v = json.get(k);
//如果内层还是数组的话继续解析
if((v instanceof JSONArray)) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Iterator<JSONObject> it = ((JSONArray) v).iterator();
while (it.hasNext()) {
JSONObject json2 = it.next();
Map<String, Object> m = json2map(json2.toString());
if(m!=null && m.size()>0){
list.add(m);
}
}
map.put(k.toString(), list);
}else{
map.put(k.toString(), (v==null || v.equals(null)) ? "":v);
}
}
return map;
}else{
return null;
}
}
}

View File

@ -0,0 +1,90 @@
package com.platform.common.utils;
import com.baomidou.mybatisplus.plugins.Page;
import java.io.Serializable;
import java.util.List;
/**
* 分页工具类
*/
public class PageUtils implements Serializable {
private static final long serialVersionUID = 1L;
//总记录数
private int totalCount;
//每页记录数
private int pageSize;
//总页数
private int totalPage;
//当前页数
private int currPage;
//列表数据
private List<?> list;
/**
* 分页
* @param list 列表数据
* @param totalCount 总记录数
* @param pageSize 每页记录数
* @param currPage 当前页数
*/
public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) {
this.list = list;
this.totalCount = totalCount;
this.pageSize = pageSize;
this.currPage = currPage;
this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
}
/**
* 分页
*/
public PageUtils(Page<?> page) {
this.list = page.getRecords();
this.totalCount = page.getTotal();
this.pageSize = page.getSize();
this.currPage = page.getCurrent();
this.totalPage = page.getPages();
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getCurrPage() {
return currPage;
}
public void setCurrPage(int currPage) {
this.currPage = currPage;
}
public List<?> getList() {
return list;
}
public void setList(List<?> list) {
this.list = list;
}
}

View File

@ -0,0 +1,71 @@
package com.platform.common.utils;
import com.baomidou.mybatisplus.plugins.Page;
import com.platform.common.xss.SQLFilter;
import org.apache.commons.lang.StringUtils;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 查询参数
*/
public class Query<T> extends LinkedHashMap<String, Object> {
private static final long serialVersionUID = 1L;
/**
* mybatis-plus分页参数
*/
private Page<T> page;
/**
* 当前页码
*/
private int currPage = 1;
/**
* 每页条数
*/
private int limit = 10;
public Query(Map<String, Object> params){
this.putAll(params);
//分页参数
if(params.get("page") != null){
currPage = Integer.parseInt((String)params.get("page"));
}
if(params.get("limit") != null){
limit = Integer.parseInt((String)params.get("limit"));
}
this.put("offset", (currPage - 1) * limit);
this.put("page", currPage);
this.put("limit", limit);
//防止SQL注入因为sidxorder是通过拼接SQL实现排序的会有SQL注入风险
String sidx = SQLFilter.sqlInject((String)params.get("sidx"));
String order = SQLFilter.sqlInject((String)params.get("order"));
this.put("sidx", sidx);
this.put("order", order);
//mybatis-plus分页
this.page = new Page<>(currPage, limit);
//排序
if(StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)){
this.page.setOrderByField(sidx);
this.page.setAsc("ASC".equalsIgnoreCase(order));
}
}
public Page<T> getPage() {
return page;
}
public int getCurrPage() {
return currPage;
}
public int getLimit() {
return limit;
}
}

View File

@ -0,0 +1,54 @@
package com.platform.common.utils;
import org.apache.http.HttpStatus;
import java.util.HashMap;
import java.util.Map;
/**
* 返回数据
*/
public class R extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public R() {
put("code", 0);
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(Map<String, Object> map) {
R r = new R();
r.putAll(map);
return r;
}
public static R ok() {
return new R();
}
public R put(String key, Object value) {
super.put(key, value);
return this;
}
}

View File

@ -0,0 +1,77 @@
package com.platform.common.utils;
/**
* Redis的Key
*
* @author weiyan
*
* @date 2019-02-20
*/
public class RedisContants {
/**
* 现场计数数所有
*/
public static final String SCENE_COUNT = "_scene_count_";
/**
* 现场浏览数所有
*/
public static final String SCENE_COUNT_VIEWS = "_scene_count_views_";
/**
* 现场浏览数显示
*/
public static final String SCENE_COUNT_VIEWS_SHOW = "_scene_count_views_show_";
/**
* 现场浏览数增加
*/
public static final String SCENE_COUNT_VIEWS_ADD = "_scene_count_views_add_";
/**
* 现场评论数所有
*/
public static final String SCENE_COUNT_COMMENTS = "_scene_count_comments_";
/**
* 现场评论数显示
*/
public static final String SCENE_COUNT_COMMENT_SHOW = "_scene_count_comment_show_";
/**
* 现场评论数增加
*/
public static final String SCENE_COUNT_COMMENT_ADD = "_scene_count_comment_add_";
/**
* 现场栏目所有
*/
public static final String CHANNEL_LIST = "_channel_list_";
/**
* 记者在线状态
*/
public static final String REPORTER_ONLINE_LIST = "_reporter_online_list_";
/**
* 记者状态
*/
public static final String REPORTER_STATE = "_reporter_state_";
/**
* 记者
*/
public static final String REPORTER_ONLINE = "online_list_";
/**
* 记者推流状态
* */
public static final String REPORTER_PUSH_STATE = "_reporter_push_state_";
/**
* 直播监控数据统计
* */
public static final String LIVE_STATISTIC = "_live_statistic_";
/**
* 拖动排序用户操作标识
* */
public static final String DRAG_SORT = "_drag_sort_";
/**
* 自动开关播现场
* */
public static final String AUTO_LIVE_SCENE = "_auto_live_scene_";
}

View File

@ -0,0 +1,51 @@
package com.platform.common.utils;
/**
* Redis所有Keys
*/
public class RedisKeys {
public static String getSysConfigKey(String key){
return "sys:config:" + key;
}
/**
* 获取用户哈希key
* @return
*/
public static String getSysUserKey() {
return "sys:user:cache";
}
/**
* 获取用户哈希值
* @param field
* @return
*/
public static String getSysUserFeild(Long field) {
return "sys:user:" + field;
}
/**
* 获取现场Key值
* @return
*/
public static String getSceneKey() {
return "live:scene:scene";
}
/**
* 获取对外用户key值
* @return
*/
public static String getForeignUserToken(String token) {
return "foreign:user:token:"+token;
}
/**
* 获取上传视频资源分块key值
*/
public static String getUploadMediaKey() {
return "media:chunk:";
}
}

View File

@ -0,0 +1,182 @@
package com.platform.common.utils;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.SetOperations;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Component;
import com.google.gson.Gson;
/**
* Redis工具类
*/
@Component
public class RedisUtils {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private ValueOperations<String, String> valueOperations;
@Autowired
private HashOperations<String, String, Object> hashOperations;
@Autowired
private ListOperations<String, Object> listOperations;
@Autowired
private SetOperations<String, Object> setOperations;
@Autowired
private ZSetOperations<String, Object> zSetOperations;
/** 默认过期时长,单位:秒 */
public final static long DEFAULT_EXPIRE = 60 * 60 * 24;
/** 不设置过期时长 */
public final static long NOT_EXPIRE = -1;
private final static Gson gson = new Gson();
public Set<String> keys(String key) {
return redisTemplate.keys(key);
}
public boolean hasKey(String key) {
return redisTemplate.hasKey(key);
}
public void set(String key, Object value, long expire){
valueOperations.set(key, toJson(value));
if(expire != NOT_EXPIRE){
redisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
}
public void set(String key, Object value){
set(key, value, DEFAULT_EXPIRE);
}
public <T> T get(String key, Class<T> clazz, long expire) {
String value = valueOperations.get(key);
if(expire != NOT_EXPIRE){
redisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
return value == null ? null : fromJson(value, clazz);
}
public <T> T get(String key, Class<T> clazz) {
return get(key, clazz, NOT_EXPIRE);
}
public String get(String key, long expire) {
String value = valueOperations.get(key);
if(expire != NOT_EXPIRE){
redisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
return value;
}
public String get(String key) {
return get(key, NOT_EXPIRE);
}
public void delete(String key) {
redisTemplate.delete(key);
}
/**
* 从hash中删除指定的存储
* @param String key
* @param String field 存储的名字
* */
public void hdel(String key, String field) {
redisTemplate.opsForHash().delete(key,field);
}
/**
* 将数据放入set缓存
* @param key
* @param field
* @param value
*/
public void hset(String key, String field, Object value){
hashOperations.put(key, field, toJson(value));
}
public void hset(String key, String field, Object value, long expire){
hashOperations.put(key, field, toJson(value));
if(expire != NOT_EXPIRE){
redisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
}
public void hsetall(String key, Map<String, Object> map, long expire) {
hashOperations.putAll(key, map);
if(expire != NOT_EXPIRE){
redisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
}
public <T> T hget(String key, String field, Class<T> clazz, long expire) {
Object value = hashOperations.get(key, field);
if(expire != NOT_EXPIRE){
redisTemplate.expire(key, expire, TimeUnit.SECONDS);
}
return value == null ? null : fromJson(toJson(value),clazz);
}
public <T> T hget(String key, String field, Class<T> clazz) {
Object value = hget(key,field);
return value == null ? null : fromJson(toJson(value),clazz);
}
public Object hget(String key, String field) {
return hashOperations.get(key, field);
}
public Map<String, Object> hentries(String key) {
return hashOperations.entries(key);
}
public Set<String> hkeys(String key) {
Set<String> set = hashOperations.keys(key);
return set;
}
public List<Object> hmget(String key, List<String> fields) {
return hashOperations.multiGet(key, fields);
}
public long hlen(String key) {
return hashOperations.size(key);
}
/**
* 判断hash中指定的存储是否存在
* @param String key
* @param String field 存储的名字
* @return true存在false不存在
* */
public boolean hexists(String key, String field) {
boolean s = hashOperations.hasKey(key, field);
return s;
}
/**
* Object转成JSON数据
*/
private String toJson(Object object){
if(object instanceof Integer || object instanceof Long || object instanceof Float ||
object instanceof Double || object instanceof Boolean || object instanceof String){
return String.valueOf(object);
}
return gson.toJson(object);
}
/**
* JSON数据转成Object
*/
private <T> T fromJson(String json, Class<T> clazz){
return gson.fromJson(json, clazz);
}
}

View File

@ -0,0 +1,581 @@
package com.platform.common.utils;
import java.util.*;
/**
* 敏感词库工具<br>
* 每个敏感词库独立使用对象加对象锁初始化增加删除
*
* @author Anine
* @date 2019/3/11
*/
public class SensitiveWordUtil {
/**
* 敏感词匹配规则最小匹配规则敏感词库["中国","中国人"]语句"我是中国人"匹配结果我是[中国]
*/
private static final int MinMatchTYpe = 1;
/**
* 敏感词匹配规则最大匹配规则敏感词库["中国","中国人"]语句"我是中国人"匹配结果我是[中国人]
*/
private static final int MaxMatchType = 2;
/**
* 敏感词集合
*/
private HashMap sensitiveWordMap = new HashMap();
/**
* 停顿符集合
*/
private HashSet<String> stopWords = new HashSet<>();
/**
* 初始化敏感词工具敏感词库停顿符库
*
* @param sensitiveWordSet
* 敏感词库
*/
public synchronized void init(Set<String> sensitiveWordSet, HashSet<String> stopWords) {
initSensitiveWordMap(sensitiveWordSet);
initStopWords(stopWords);
}
/**
* 初始化敏感词工具敏感词库及对应的替换词库停顿符库
*
* @param sensitiveWords
* 敏感词库
* @param stopWords
* 停顿符库
*/
public synchronized void init(Map<String, String> sensitiveWords, Set<String> stopWords) {
initSensitiveWordMap(sensitiveWords);
initStopWords(stopWords);
}
/**
* 初始化停顿符库
*
* @param words
* 停顿符库
*/
private synchronized void initStopWords(Set<String> words) {
stopWords = new HashSet<>();
if (words != null && words.size() > 0) {
for (String s : words) {
if (s != null && s.length() == 1) {
stopWords.add(convert(s));
}
}
}
}
/**
* 初始化敏感词库及对应的替换词库构建DFA算法模型
*
* @param sensitiveWordSet
* 敏感词库
*/
@SuppressWarnings("unchecked")
private synchronized void initSensitiveWordMap(Set<String> sensitiveWordSet) {
// 初始化敏感词容器减少扩容操作
sensitiveWordMap = new HashMap(sensitiveWordSet.size());
String key;
Map nowMap;
// 迭代sensitiveWordSet
if (sensitiveWordSet.size() > 0) {
for (String sensitiveWord : sensitiveWordSet) {
// 关键字
key = convert(sensitiveWord);
nowMap = sensitiveWordMap;
for (int i = 0; i < key.length(); i++) {
// 转换成char型
char keyChar = key.charAt(i);
// 如果存在该key直接赋值用于下一个循环获取
nowMap = sensitiveWordMapInit(nowMap, keyChar);
if (i == key.length() - 1) {
// 最后一个
nowMap.put("isEnd", "1");
}
}
}
}
}
/**
* 初始化敏感词库构建DFA算法模型,包含对应的替换字符串
*
* @param sensitiveWords
* 敏感词库
*/
@SuppressWarnings("unchecked")
private synchronized void initSensitiveWordMap(Map<String, String> sensitiveWords) {
sensitiveWordMap = new HashMap(sensitiveWords.size());
String key;
String replaceWord;
if (sensitiveWords.size() > 0) {
for (String sensitiveWord : sensitiveWords.keySet()) {
key = convert(sensitiveWord);
replaceWord = convert(sensitiveWords.get(sensitiveWord));
addSensitiveWordAndReplaceWord(key, replaceWord);
}
}
}
/**
* 判断文字是否包含敏感字符
*
* @param txt
* 文字
* @param matchType
* 匹配规则 1最小匹配规则2最大匹配规则
* @return 若包含返回true否则返回false
*/
public boolean contains(String txt, int matchType) {
boolean flag = false;
for (int i = 0; i < txt.length(); i++) {
// 判断是否包含敏感字符
int matchFlag = checkSensitiveWord(txt, i, matchType);
if (matchFlag > 0) {
// 大于0存在返回true
flag = true;
}
}
return flag;
}
/**
* 判断文字是否包含敏感字符默认为最大匹配规则
*
* @param txt
* 文字
* @return 若包含返回true否则返回false
*/
public boolean contains(String txt) {
return contains(txt, MaxMatchType);
}
/**
* 获取文字中的敏感词
*
* @param txt
* 文字
* @param matchType
* 匹配规则 1最小匹配规则2最大匹配规则
* @return 敏感词集合
*/
private Set<String> getSensitiveWord(String txt, int matchType) {
Set<String> sensitiveWordList = new HashSet<>();
for (int i = 0; i < txt.length(); i++) {
// 判断是否包含敏感字符
int length = checkSensitiveWord(txt, i, matchType);
if (length > 0) {
// 存在,加入list中
sensitiveWordList.add(txt.substring(i, i + length));
// 减1的原因是因为for会自增
i = i + length - 1;
}
}
return sensitiveWordList;
}
/**
* 获取文字中的敏感词,默认为最大匹配规则
*
* @param txt
* 文字
* @return 敏感词集合
*/
public Set<String> getSensitiveWord(String txt) {
return getSensitiveWord(txt, MaxMatchType);
}
/**
* 替换敏感字字符
*
* @param txt
* 文本
* @param replaceChar
* 替换的字符匹配的敏感词以字符逐个替换 语句我爱中国人 敏感词中国人替换字符* 替换结果我爱***
* @param matchType
* 敏感词匹配规则 1最小匹配规则2最大匹配规则
* @return 替换后的文本
*/
public String replaceSensitiveWord(String txt, char replaceChar, int matchType) {
String resultTxt = txt;
// 获取所有的敏感词
Set<String> set = getSensitiveWord(txt, matchType);
Iterator<String> iterator = set.iterator();
String word;
String replaceString;
while (iterator.hasNext()) {
word = iterator.next();
replaceString = getReplaceChars(replaceChar, word.length());
resultTxt = resultTxt.replaceAll(word, replaceString);
}
return resultTxt;
}
/**
* 替换敏感字字符默认使用最大匹配规则
*
* @param txt
* 文本
* @param replaceChar
* 替换的字符匹配的敏感词以字符逐个替换 语句我爱中国人 敏感词中国人替换字符* 替换结果我爱***
* @return 替换后的文本
*/
public String replaceSensitiveWord(String txt, char replaceChar) {
return replaceSensitiveWord(txt, replaceChar, MaxMatchType);
}
/**
* 替换敏感字字符
*
* @param txt
* 文本
* @param replaceStr
* 替换的字符串匹配的敏感词以字符逐个替换 语句我爱中国人 敏感词中国人替换字符串[屏蔽]替换结果我爱[屏蔽]
* @param matchType
* 敏感词匹配规则1最小匹配规则2最大匹配规则
* @return 替换后的文本
*/
public String replaceSensitiveWord(String txt, String replaceStr, int matchType) {
String resultTxt = txt;
// 获取所有的敏感词
Set<String> set = getSensitiveWord(txt, matchType);
Iterator<String> iterator = set.iterator();
String word;
while (iterator.hasNext()) {
word = iterator.next();
resultTxt = resultTxt.replaceAll(word, replaceStr);
}
return resultTxt;
}
/**
* 替换敏感字字符默认使用最大匹配规则
*
* @param txt
* 文本
* @param replaceStr
* 替换的字符串匹配的敏感词以字符逐个替换 语句我爱中国人 敏感词中国人替换字符串[屏蔽]替换结果我爱[屏蔽]
* @return 替换后的文本
*/
public String replaceSensitiveWord(String txt, String replaceStr) {
return replaceSensitiveWord(txt, replaceStr, MaxMatchType);
}
/**
* 使用敏感词集合内部替换词替换敏感词
*
* @param txt
* 文本
* @param matchType
* 敏感词匹配规则1最小匹配规则2最大匹配规则
* @return 替换后的文本
*/
public String replaceSensitiveWord(String txt, int matchType) {
// txt转换
StringBuilder text = new StringBuilder(txt);
StringBuilder test = new StringBuilder(convert(txt));
for (int i = 0; i < test.length(); i++) {
int j;
// 敏感词结束标识位用于敏感词只有1位的情况
boolean flag = false;
// 匹配标识数默认为0
int matchFlag = 0;
char word;
Map nowMap = sensitiveWordMap;
String replaceWord;
if (nowMap.containsKey(test.charAt(i))) {
matchFlag++;
Object replace = null;
// 上一个字符
char previous = test.charAt(i);
// 上一个map
Map previousMap;
for (j = i; j < test.length(); j++) {
word = test.charAt(j);
// 获取指定key
previousMap = nowMap;
nowMap = (Map) nowMap.get(word);
if (nowMap != null) {
// 存在则判断是否为最后一个
// 找到相应key匹配标识+1
previous = word;
matchFlag++;
// 如果为最后一个匹配规则,结束循环返回匹配标识数
if ("1".equals(nowMap.get("isEnd"))) {
// 结束标志位为true
flag = true;
replace = nowMap.get("replaceWord");
// 最小规则直接返回,最大规则还需继续查找
if (MinMatchTYpe == matchType) {
break;
}
}
} else {
// 不存在判断是否为停顿符
if (stopWords.contains(word + "")) {
matchFlag++;
nowMap = previousMap;
continue;
}
// 判断是否重复
if (i != j && word == previous) {
matchFlag++;
nowMap = previousMap;
continue;
}
break;
}
}
if (matchFlag > 0 && flag) {
replaceWord = String.valueOf(replace);
test.replace(i, j, replaceWord);
text.replace(i, j, replaceWord);
i = i + replaceWord.length() - 1;
}
}
}
return text.toString();
}
/**
* 使用敏感词集合内部替换词替换敏感词 默认使用最大匹配规则
*
* @param txt
* 文本
* @return 替换后的文本
*/
public String replaceSensitiveWord(String txt) {
return replaceSensitiveWord(txt, MaxMatchType);
}
/**
* 获取替换字符串
*
* @param replaceChar
* 替换字符
* @param length
* 长度
* @return 替换字符串
*/
public String getReplaceChars(char replaceChar, int length) {
StringBuilder resultReplace = new StringBuilder(String.valueOf(replaceChar));
for (int i = 1; i < length; i++) {
resultReplace.append(replaceChar);
}
return resultReplace.toString();
}
/**
* 检查文字某个位置字符开始是否为敏感词开头检查规则如下<br>
*
* @param txt
* 文本
* @param beginIndex
* 开始位置
* @param matchType
* 匹配规则
* @return 如果存在则返回敏感词字符的长度不存在返回0
*/
private int checkSensitiveWord(String txt, int beginIndex, int matchType) {
// txt转换
txt = convert(txt);
// 敏感词结束标识位用于敏感词只有1位的情况
boolean flag = false;
// 匹配标识数默认为0
int matchFlag = 0;
char word;
Map nowMap = sensitiveWordMap;
char previous = txt.charAt(beginIndex);
// 上一个map
Map previousMap;
for (int i = beginIndex; i < txt.length(); i++) {
word = txt.charAt(i);
// 获取指定key
previousMap = nowMap;
nowMap = (Map) nowMap.get(word);
if (nowMap != null) {
// 存在则判断是否为最后一个
// 找到相应key匹配标识+1
previous = word;
matchFlag++;
// 如果为最后一个匹配规则,结束循环返回匹配标识数
if ("1".equals(nowMap.get("isEnd"))) {
// 结束标志位为true
flag = true;
// 最小规则直接返回,最大规则还需继续查找
if (MinMatchTYpe == matchType) {
break;
}
}
} else {
// 不存在判断是否为停顿符
if (stopWords.contains(word + "")) {
matchFlag++;
nowMap = previousMap;
continue;
}
// 判断是否重复
if (i != beginIndex && word == previous) {
matchFlag++;
nowMap = previousMap;
continue;
}
break;
}
}
if (matchFlag < 2 || !flag) {
// 长度必须大于等于1为词
matchFlag = 0;
}
return matchFlag;
}
/**
* 大写转化为小写 全角转化为半角
*
* @param src
* 字符串
* @return 转化后的字符串
*/
private static String convert(String src) {
String s = StringKit.toBj(src);
return s.toLowerCase();
}
/**
* map 迭代
*
* @param nowMap
* 当前map
* @param keyChar
* 字符
* @return 字符的map
*/
@SuppressWarnings("unchecked")
private static Map sensitiveWordMapInit(Map nowMap, char keyChar) {
// 库中获取关键字
Object wordMap = nowMap.get(keyChar);
Map<String, String> newWorMap;
if (wordMap != null) {
nowMap = (Map) wordMap;
} else {
// 不存在则则构建一个map同时将isEnd设置为0因为他不是最后一个
newWorMap = new HashMap<>();
// 不是最后一个
newWorMap.put("isEnd", "0");
nowMap.put(keyChar, newWorMap);
nowMap = newWorMap;
}
return nowMap;
}
/**
* 敏感词库增加敏感词-替换词
*
* @param sensitiveWord
* 敏感词
* @param replaceWord
* 替换词
*/
@SuppressWarnings("unchecked")
public void addSensitiveWordAndReplaceWord(String sensitiveWord, String replaceWord) {
if (sensitiveWord == null) {
return;
}
if (replaceWord == null) {
replaceWord = getReplaceChars('*', sensitiveWord.length());
}
Map nowMap = sensitiveWordMap;
sensitiveWord = convert(sensitiveWord);
replaceWord = convert(replaceWord);
for (int i = 0; i < sensitiveWord.length(); i++) {
char keyChar = sensitiveWord.charAt(i);
nowMap = sensitiveWordMapInit(nowMap, keyChar);
if (i == sensitiveWord.length() - 1) {
nowMap.put("isEnd", "1");
nowMap.put("replaceWord", replaceWord);
}
}
}
/**
* 敏感词库删除
*
* @param sensitiveWord
* 敏感词
*/
@SuppressWarnings("unchecked")
public void deleteSensitive(String sensitiveWord) {
if (sensitiveWord == null) {
return;
}
sensitiveWord = convert(sensitiveWord);
Map nowMap = sensitiveWordMap;
for (int i = 0; i < sensitiveWord.length(); i++) {
char keyChar = sensitiveWord.charAt(i);
nowMap = sensitiveWordMapInit(nowMap, keyChar);
if (nowMap == null) {
return;
}
if (i == sensitiveWord.length() - 1) {
nowMap.put("isEnd", 0);
}
}
}
/**
* 增加停顿符
*
* @param stopWord
* 停顿符
*/
public void addStopWord(String stopWord) {
if (stopWord != null && stopWord.length() == 1) {
stopWords.add(convert(stopWord));
}
}
/**
* 删除停顿符
*
* @param oriStopWord
* 停顿符
*/
public void deleteStopWord(String oriStopWord) {
stopWords.remove(convert(oriStopWord));
}
public static void main(String[] args) {
SensitiveWordUtil sensitiveWordUtil = new SensitiveWordUtil();
Map<String, String> map = new HashMap<>();
map.put("4567", "22");
map.put("456", "22");
map.put("Ea", "22");
Set<String> stopWords = new HashSet<>();
stopWords.add("@");
sensitiveWordUtil.init(map, stopWords);
String txt = "123@45@6789146044@5@61E@a32eA";
System.out.println("文本:" + txt);
String result = sensitiveWordUtil.replaceSensitiveWord(txt);
System.out.println("敏感词:" + sensitiveWordUtil.getSensitiveWord(txt).toString());
System.out.println("替换结果:" + result);
}
}

View File

@ -0,0 +1,51 @@
package com.platform.common.utils;
import com.platform.modules.sys.entity.SysUserEntity;
import com.platform.common.exception.RRException;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
/**
* Shiro工具类
*/
public class ShiroUtils {
public static Session getSession() {
return SecurityUtils.getSubject().getSession();
}
public static Subject getSubject() {
return SecurityUtils.getSubject();
}
public static SysUserEntity getUserEntity() {
return (SysUserEntity) (SecurityUtils.getSubject() == null ? null : SecurityUtils.getSubject().getPrincipal());
}
public static Long getUserId() {
return getUserEntity() == null? 0L :getUserEntity().getUserId();
}
public static void setSessionAttribute(Object key, Object value) {
getSession().setAttribute(key, value);
}
public static Object getSessionAttribute(Object key) {
return getSession().getAttribute(key);
}
public static boolean isLogin() {
return SecurityUtils.getSubject().getPrincipal() != null;
}
public static String getKaptcha(String key) {
Object kaptcha = getSessionAttribute(key);
if (kaptcha == null) {
throw new RRException("验证码已失效");
}
getSession().removeAttribute(key);
return kaptcha.toString();
}
}

View File

@ -0,0 +1,41 @@
package com.platform.common.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* Spring Context 工具类
*/
@Component
public class SpringContextUtils implements ApplicationContextAware {
public static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SpringContextUtils.applicationContext = applicationContext;
}
public static Object getBean(String name) {
return applicationContext.getBean(name);
}
public static <T> T getBean(String name, Class<T> requiredType) {
return applicationContext.getBean(name, requiredType);
}
public static boolean containsBean(String name) {
return applicationContext.containsBean(name);
}
public static boolean isSingleton(String name) {
return applicationContext.isSingleton(name);
}
public static Class<? extends Object> getType(String name) {
return applicationContext.getType(name);
}
}

View File

@ -0,0 +1,82 @@
package com.platform.common.utils;
import org.apache.commons.lang.StringUtils;
public class StringKit {
public static Integer[] convertStrToInt(String str, String regex) {
if (StringUtils.isBlank(str) || StringUtils.isBlank(regex))
return new Integer[0];
String[] strs = str.split(regex);
if (strs == null || strs.length <= 0)
return new Integer[0];
Integer[] result = new Integer[strs.length];
for (int i = 0; i < strs.length; i++) {
result[i] = Integer.valueOf(strs[i]);
}
return result;
}
/**
* 判断字符是否英文半角字符或标点<br>
* 32~126
*
* @param c
* 字符
* @return 是否为半角字符
*/
private static Boolean IsBjChar(char c) {
int i = (int) c;
return i >= 32 && i <= 126;
}
/**
* 判断字符是否为全角字符<br>
* 全角字符-65248 = 半角字符<br>
* 全角空格除外
*
* @param c
* 字符
* @return 是否为全角字符
*/
private static Boolean IsQjChar(char c) {
if (c == '\u3000') {
return true;
}
int i = (int) c - 65248;
if (i < 32) {
return false;
}
return IsBjChar((char) i);
}
/**
* 将字符串转为半角字符串
*
* @param src
* 字符串
* @return 半角字符串
*/
static String toBj(String src) {
if (StringUtils.isBlank(src)) {
return src;
}
char[] s = src.toCharArray();
StringBuilder sb = new StringBuilder(s.length);
for (char value : s) {
if (value == '\u3000') {
sb.append('\u0020');
} else if (IsQjChar(value)) {
sb.append((char)((int) value - 65248));
} else {
sb.append(value);
}
}
return sb.toString();
}
}

View File

@ -0,0 +1,30 @@
package com.platform.common.utils;
public class ThirdConstant {
// public static String KS_SECRET = "e85fdba04bf261e";
//
// public static String QUERY_URL="http://lc.test.gifshow.com/rest/n/partner/xinhua/search";
//
// public static String REPORT_DOWNLOAD_URL="http://lc.test.gifshow.com/rest/n/partner/xinhua/reportDownload";
public static String KS_SECRET = "45c015971b47ee82";
public static String QUERY_URL="https://promotion-partner.gifshow.com/rest/n/partner/xinhua/search";
public static String REPORT_DOWNLOAD_URL="https://promotion-partner.gifshow.com/rest/n/partner/xinhua/reportDownload";
public static String KS_MEDIA_URL="kuaishou";
public static String QK_MEDIA_URL="qukan";
public static String SCENE_PAGE_URL="http://v.xhsnews.cn/third/scene/pull.jspx";
public static String GET_SCENE_URL="http://v.xhsnews.cn/third/getSceneById.jspx";
public static String SCENE_REPRORT_PAGE_URL="http://v.xhsnews.cn/third/scene/report/pull.jspx";
public static String GET_SCENE_REPRORT_URL="http://v.xhsnews.cn/third/scene/getReportById.jspx";
}

View File

@ -0,0 +1,22 @@
package com.platform.common.validator;
import com.platform.common.exception.RRException;
import org.apache.commons.lang.StringUtils;
/**
* 数据校验
*/
public abstract class Assert {
public static void isBlank(String str, String message) {
if (StringUtils.isBlank(str)) {
throw new RRException(message);
}
}
public static void isNull(Object object, String message) {
if (object == null) {
throw new RRException(message);
}
}
}

View File

@ -0,0 +1,39 @@
package com.platform.common.validator;
import com.platform.common.exception.RRException;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
/**
* hibernate-validator校验工具类
*
* 参考文档http://docs.jboss.org/hibernate/validator/5.4/reference/en-US/html_single/
*/
public class ValidatorUtils {
private static Validator validator;
static {
validator = Validation.buildDefaultValidatorFactory().getValidator();
}
/**
* 校验对象
* @param object 待校验对象
* @param groups 待校验的组
* @throws RRException 校验不通过则报RRException异常
*/
public static void validateEntity(Object object, Class<?>... groups)
throws RRException {
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);
if (!constraintViolations.isEmpty()) {
StringBuilder msg = new StringBuilder();
for(ConstraintViolation<Object> constraint: constraintViolations){
msg.append(constraint.getMessage()).append("<br>");
}
throw new RRException(msg.toString());
}
}
}

View File

@ -0,0 +1,7 @@
package com.platform.common.validator.group;
/**
* 新增数据 Group
*/
public interface AddGroup {
}

View File

@ -0,0 +1,7 @@
package com.platform.common.validator.group;
/**
* 阿里云
*/
public interface AliyunGroup {
}

View File

@ -0,0 +1,11 @@
package com.platform.common.validator.group;
import javax.validation.GroupSequence;
/**
* 定义校验顺序如果AddGroup组失败则UpdateGroup组不会再校验
*/
@GroupSequence({AddGroup.class, UpdateGroup.class})
public interface Group {
}

View File

@ -0,0 +1,7 @@
package com.platform.common.validator.group;
/**
* 腾讯云
*/
public interface QcloudGroup {
}

View File

@ -0,0 +1,7 @@
package com.platform.common.validator.group;
/**
* 七牛
*/
public interface QiniuGroup {
}

View File

@ -0,0 +1,9 @@
package com.platform.common.validator.group;
/**
* 更新数据 Group
*/
public interface UpdateGroup {
}

Some files were not shown because too many files have changed in this diff Show More