jtoms пре 4 година
родитељ
комит
e83bafa1b6

+ 25 - 0
src/main/java/com/zhiqiyun/open/core/models/sentiment/SentimentSpiderEvent.java

@@ -0,0 +1,25 @@
+package com.zhiqiyun.open.core.models.sentiment;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("sentiment_spider_event")
+public class SentimentSpiderEvent {
+    private Long id;
+    private Long ruleId;
+    private String eventTitle;
+    private String keywords;
+
+    @TableField(updateStrategy = FieldStrategy.NEVER)
+    private Date createdTime;
+    @TableField(updateStrategy = FieldStrategy.NEVER)
+    private Long createdBy;
+
+    private Date updatedTime;
+    private Long updatedBy;
+}

+ 31 - 0
src/main/java/com/zhiqiyun/open/core/models/sentiment/SentimentSpiderResult.java

@@ -0,0 +1,31 @@
+package com.zhiqiyun.open.core.models.sentiment;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zhiqiyun.open.core.typeHandler.FastjsonTypeHandler;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@TableName(value = "sentiment_spider_result", autoResultMap = true)
+public class SentimentSpiderResult {
+    private String id;
+    private Long eventId;
+    private Long siteRuleId;
+    private String url;
+    private String title;
+    private String keywords;
+    private String description;
+
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private List<String> fragments;
+
+    private String bodyText;
+    private String html;
+    @TableField(updateStrategy = FieldStrategy.NEVER)
+    private Date spiderTime;
+    private Date updateTime;
+}

+ 31 - 0
src/main/java/com/zhiqiyun/open/core/models/sentiment/SentimentSpiderRule.java

@@ -0,0 +1,31 @@
+package com.zhiqiyun.open.core.models.sentiment;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zhiqiyun.open.core.typeHandler.FastjsonTypeHandler;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@TableName(value = "sentiment_spider_rule", autoResultMap = true)
+public class SentimentSpiderRule {
+    private Long id;
+    private String siteName;
+    private String urlPatterns;
+
+    @TableField(typeHandler = FastjsonTypeHandler.class)
+    private List<String> startUrls;
+
+    private String xpath;
+
+    @TableField(updateStrategy = FieldStrategy.NEVER)
+    private Date createdTime;
+    @TableField(updateStrategy = FieldStrategy.NEVER)
+    private Long createdBy;
+
+    private Date updatedTime;
+    private Long updatedBy;
+}

+ 1 - 1
src/main/resources/db/migration/V1.1.1__update_place_category.sql

@@ -1,2 +1,2 @@
-ALTER TABLE `liucheng_open`.`place_category`
+ALTER TABLE `place_category`
     ADD COLUMN `icon_image` VARCHAR(200) NULL AFTER `sort_number`;

+ 65 - 0
src/main/resources/db/migration/V1.1.2__sentiment_spider.sql

@@ -0,0 +1,65 @@
+REPLACE
+    INTO `authority_info` (`id`, `parent_id`, `name`, `remark`)
+VALUES (2300, 0, 'sentiment.spider', '舆情监控管理'),
+       (2301, 2300, 'sentiment.spider.event.find', '舆情事件查询'),
+       (2302, 2300, 'sentiment.spider.event.add', '舆情事件添加'),
+       (2303, 2300, 'sentiment.spider.event.edit', '舆情事件修改'),
+       (2304, 2300, 'sentiment.spider.event.delete', '舆情事件删除'),
+       (2305, 2300, 'sentiment.spider.event.start', '启动事件采集'),
+       (2306, 2300, 'sentiment.spider.event.stop', '停止事件采集'),
+       (2307, 2300, 'sentiment.spider.result.find', '采集结果查询'),
+       (2308, 2300, 'sentiment.spider.rule.find', '采集网站规则查询'),
+       (2309, 2300, 'sentiment.spider.rule.add', '采集网站规则添加'),
+       (2310, 2300, 'sentiment.spider.rule.edit', '采集网站规则修改'),
+       (2311, 2300, 'sentiment.spider.rule.delete', '采集网站规则删除');
+
+
+DROP TABLE IF EXISTS `sentiment_spider_site_rule`;
+CREATE TABLE `sentiment_spider_site_rule`
+(
+    `id`           BIGINT(20)  NOT NULL COMMENT 'ID',
+    `site_name`    VARCHAR(50) NOT NULL COMMENT '网站名称',
+    `url_patterns` VARCHAR(50) NOT NULL COMMENT '匹配URL地址',
+    `start_urls`   VARCHAR(50) NOT NULL COMMENT '启动地址',
+    `xpath`        VARCHAR(50) NOT NULL COMMENT '提取内容的xpath',
+    `created_time` DATETIME    NOT NULL COMMENT '创建时间',
+    `created_by`   BIGINT(20)  NOT NULL COMMENT '创建人',
+    `updated_time` DATETIME    NULL DEFAULT NULL COMMENT '修改时间',
+    `updated_by`   BIGINT(20)  NULL DEFAULT NULL COMMENT '修改人',
+    PRIMARY KEY (`id`)
+) COMMENT ='采集网站规则' ENGINE = InnoDB;
+
+DROP TABLE IF EXISTS `sentiment_spider_event`;
+CREATE TABLE `sentiment_spider_event`
+(
+    `id`           BIGINT(20)   NOT NULL COMMENT 'ID',
+    `site_rule_id` BIGINT(20)   NOT NULL COMMENT '采集站点ID',
+    `event_title`  VARCHAR(500) NOT NULL COMMENT '事件名称',
+    `keywords`     VARCHAR(500) NOT NULL COMMENT '匹配关键词',
+    `created_time` DATETIME     NOT NULL COMMENT '创建时间',
+    `created_by`   BIGINT(20)   NOT NULL COMMENT '创建人',
+    `updated_time` DATETIME     NULL DEFAULT NULL COMMENT '修改时间',
+    `updated_by`   BIGINT(20)   NULL DEFAULT NULL COMMENT '修改人',
+    KEY `site_rule_id_index` (`site_rule_id`),
+    PRIMARY KEY (`id`)
+) COMMENT ='舆情事件' ENGINE = InnoDB;
+
+DROP TABLE IF EXISTS `sentiment_spider_result`;
+CREATE TABLE `sentiment_spider_result`
+(
+    `id`           VARCHAR(50)  NOT NULL COMMENT 'ID',
+    `event_id`     BIGINT(20)   NOT NULL COMMENT '舆情事件ID',
+    `site_rule_id` BIGINT(20)   NOT NULL COMMENT '网站规则ID',
+    `url`          VARCHAR(500) NOT NULL COMMENT 'URL地址',
+    `title`        VARCHAR(500) NOT NULL COMMENT '标题',
+    `keywords`     VARCHAR(500) NOT NULL COMMENT '关键词',
+    `description`  VARCHAR(500) NOT NULL COMMENT '描述',
+    `fragments`    LONGTEXT     NOT NULL COMMENT '匹配段落',
+    `body_text`    LONGTEXT     NOT NULL COMMENT '网页文本',
+    `html`         LONGTEXT     NOT NULL COMMENT '全文本HTML',
+    `spider_time`  DATETIME     NOT NULL COMMENT '采集时间',
+    `update_time`  DATETIME     NOT NULL COMMENT '更新采集时间',
+    KEY `event_id_index` (`event_id`),
+    KEY `site_rule_id_index` (`site_rule_id`),
+    PRIMARY KEY (`id`)
+) COMMENT ='舆情采集结果' ENGINE = InnoDB;