提交 9cb29731 作者: chenshiqiang

add dispatch

上级 ab59950c
package com.zzsn.event;
import com.zzsn.event.config.TaskExecutor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class EventAnalysisApplication {
......@@ -9,5 +11,9 @@ public class EventAnalysisApplication {
public static void main(String[] args) {
SpringApplication.run(EventAnalysisApplication.class, args);
}
@Bean
public TaskExecutor schedulerRunner() {
return new TaskExecutor();
}
}
package com.zzsn.event.config;
import com.zzsn.event.service.IEventService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@Slf4j
@Component
public class TaskExecutor implements CommandLineRunner {
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
private final Integer PERIOD=1;
@Autowired
private IEventService eventService;
@Override
public void run(String... args)throws Exception {
scheduledExecutorService.scheduleAtFixedRate(()->{
eventService.compute();
},5,PERIOD, TimeUnit.SECONDS);
log.info("简易版定时任务启动成功!{}{}执行一次",PERIOD,TimeUnit.HOURS);
}
}
package com.zzsn.event.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzsn.event.entity.Event;
import com.zzsn.event.service.IEventService;
import com.zzsn.event.util.ObjectUtil;
import com.zzsn.event.util.RestUtil;
import com.zzsn.event.vo.InfoSourceVo;
import com.zzsn.event.vo.Result;
import com.zzsn.event.vo.SubjectKeywordsMap;
import com.zzsn.event.vo.SubjectPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import netscape.javascript.JSObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
......@@ -28,6 +36,8 @@ import java.util.Arrays;
public class EventController {
@Autowired
private IEventService eventService;
@Value(("${enterprise-service.url:}"))
private String ENTERPRISE_URL;
/**
* 分页列表查询
......@@ -116,5 +126,74 @@ public class EventController {
}
/**
* 专题信息源绑定
*/
@PostMapping("/infoSourceBind")
public Object infoSourceBind(@RequestBody SubjectPage subjectPage) {
try {
JSONObject params = ObjectUtil.objectToJSONObject(subjectPage);;
String url = ENTERPRISE_URL + "enterpriseData/getYearReportList";
return RestUtil.post(url, null, params);
} catch (Exception e) {
return null;
}
}
/**
* 查询信息源组的绑定列表
*
*/
@GetMapping("/bindList")
public Object bindList(InfoSourceVo infoSourceVo,
@RequestParam(name="ynBind") Integer ynBind,
@RequestParam(name="groupId") String groupId,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
String url = ENTERPRISE_URL + "event/infoSource/bindList";
JSONObject params = ObjectUtil.objectToJSONObject(infoSourceVo);
params.put("ynBind",ynBind);
params.put("groupId",groupId);
params.put("pageNo",pageNo);
params.put("pageSize",pageSize);
return RestUtil.get(url, params);
}
/**
* 关键词类别
*
*/
@GetMapping("/keywordsType/rootListNoPage")
public Object keywordsList(@RequestParam(name = "contain", defaultValue = "false") Boolean contain,
@RequestParam(name = "subjectId", defaultValue = "0") String subjectId) {
String url = ENTERPRISE_URL + "event/keywordsType/rootListNoPage";
JSONObject params = new JSONObject();
params.put("contain",contain);
params.put("subjectId",subjectId);
return RestUtil.get(url, params);
}
/**
* 专题关键词绑定
*/
@PostMapping("/keyWordsBind")
public Object keyWordsBind(@RequestBody SubjectPage subjectPage) {
try {
JSONObject params = ObjectUtil.objectToJSONObject(subjectPage);;
String url = ENTERPRISE_URL + "event/keyWordsBind";
return RestUtil.post(url, null, params);
} catch (Exception e) {
return null;
}
}
/**
* 专题关键词绑定
*/
@PostMapping("/keyWordsEdit")
public Object keyWordsEdit(@RequestBody SubjectKeywordsMap subjectKeywordsMap) {
try {
JSONObject params = ObjectUtil.objectToJSONObject(subjectKeywordsMap);;
String url = ENTERPRISE_URL + "event/keyWords/edit";
return RestUtil.post(url, null, params);
} catch (Exception e) {
return null;
}
}
}
......@@ -96,4 +96,5 @@ public class Event {
@Excel(name = "修改人id", width = 15)
@ApiModelProperty(value = "修改人id")
private String updateBy;
private Integer status=1;
}
......@@ -10,5 +10,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @Version: V1.0
*/
public interface IEventService extends IService<Event> {
/**
* 计算热度
*/
void compute();
}
package com.zzsn.event.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zzsn.event.entity.Event;
import com.zzsn.event.mapper.EventMapper;
import com.zzsn.event.service.IEventService;
......@@ -7,6 +8,8 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
/**
* @Description: 事件
* @Author: jeecg-boot
......@@ -16,4 +19,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements IEventService {
@Override
public void compute() {
//get the events need to compute
List<Event> list = this.list(new LambdaQueryWrapper<Event>().eq(Event::getStatus, 1));
for (Event event : list) {
// latest week data
// latest month data
// latest year data
// data before a year
}
}
}
package com.zzsn.event.util;
import com.alibaba.fastjson.JSONObject;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
/**
* @author lkg
* @date 2023/2/17
*/
public class ObjectUtil {
/**
* 对象转jsonObject
*
* @param obj: 对象
* @author lkg
* @date 2023/2/17
*/
public static JSONObject objectToJSONObject(Object obj) {
JSONObject params = new JSONObject();
if (obj == null) {
return params;
}
Class<?> clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
try {
for (Field field : fields) {
field.setAccessible(true);
if (field.get(obj)!=null) {
params.put(field.getName(), field.get(obj));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return params;
}
/**
* 对象转map
*
* @param obj: 对象
* @author lkg
* @date 2023/2/17
*/
public static Map<String, String> objectToMap(Object obj) {
Map<String, String> map = new HashMap<>();
if (obj == null) {
return map;
}
Class clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
try {
for (Field field : fields) {
field.setAccessible(true);
if(field.get(obj)!=null){
map.put(field.getName(), String.valueOf(field.get(obj)));
}
}
} catch (
Exception e) {
e.printStackTrace();
}
return map;
}
}
package com.zzsn.event.util;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.*;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import java.util.Map;
/**
* 调用 Restful 接口 Util
*
* @author sunjianlei
*/
@Slf4j
public class RestUtil {
private static String domain = null;
public static String path = null;
public static String getPath() {
if (path == null) {
path = SpringContextUtils.getApplicationContext().getEnvironment().getProperty("server.servlet.context-path");
}
return oConvertUtils.getString(path);
}
/**
* RestAPI 调用器
*/
private final static RestTemplate RT;
static {
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setConnectTimeout(100000);
requestFactory.setReadTimeout(100000);
RT = new RestTemplate(requestFactory);
RT.getMessageConverters().add(new XmMappingJackson2HttpMessageConverter());
// 解决乱码问题
RT.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
}
public static RestTemplate getRestTemplate() {
return RT;
}
/**
* 发送 get 请求
*/
public static JSONObject get(String url) {
return getNative(url, null, null).getBody();
}
/**
* 发送 get 请求
*/
public static JSONObject get(String url, JSONObject variables) {
return getNative(url, variables, null).getBody();
}
/**
* 发送 get 请求
*/
public static JSONObject get(String url, JSONObject variables, JSONObject params) {
return getNative(url, variables, params).getBody();
}
/**
* 发送 get 请求,返回原生 ResponseEntity 对象
*/
public static ResponseEntity<JSONObject> getNative(String url, JSONObject variables, JSONObject params) {
return request(url, HttpMethod.GET, variables, params);
}
/**
* 发送 Post 请求
*/
public static JSONObject post(String url) {
return postNative(url, null, null).getBody();
}
/**
* 发送 Post 请求
*/
public static JSONObject post(String url, JSONObject params) {
return postNative(url, null, params).getBody();
}
/**
* 发送 Post 请求
*/
public static JSONObject post(String url, JSONObject variables, JSONObject params) {
return postNative(url, variables, params).getBody();
}
/**
* 发送 POST 请求,返回原生 ResponseEntity 对象
*/
public static ResponseEntity<JSONObject> postNative(String url, JSONObject variables, JSONObject params) {
return request(url, HttpMethod.POST, variables, params);
}
/**
* 发送 put 请求
*/
public static JSONObject put(String url) {
return putNative(url, null, null).getBody();
}
/**
* 发送 put 请求
*/
public static JSONObject put(String url, JSONObject params) {
return putNative(url, null, params).getBody();
}
/**
* 发送 put 请求
*/
public static JSONObject put(String url, JSONObject variables, JSONObject params) {
return putNative(url, variables, params).getBody();
}
/**
* 发送 put 请求,返回原生 ResponseEntity 对象
*/
public static ResponseEntity<JSONObject> putNative(String url, JSONObject variables, JSONObject params) {
return request(url, HttpMethod.PUT, variables, params);
}
/**
* 发送 delete 请求
*/
public static JSONObject delete(String url) {
return deleteNative(url, null, null).getBody();
}
/**
* 发送 delete 请求
*/
public static JSONObject delete(String url, JSONObject variables, JSONObject params) {
return deleteNative(url, variables, params).getBody();
}
/**
* 发送 delete 请求,返回原生 ResponseEntity 对象
*/
public static ResponseEntity<JSONObject> deleteNative(String url, JSONObject variables, JSONObject params) {
return request(url, HttpMethod.DELETE, null, variables, params, JSONObject.class);
}
/**
* 发送请求
*/
public static ResponseEntity<JSONObject> request(String url, HttpMethod method, JSONObject variables, JSONObject params) {
return request(url, method, getHeaderApplicationJson(), variables, params, JSONObject.class);
}
/**
* 发送请求
*
* @param url 请求地址
* @param method 请求方式
* @param headers 请求头 可空
* @param variables 请求url参数 可空
* @param params 请求body参数 可空
* @param responseType 返回类型
* @return ResponseEntity<responseType>
*/
public static <T> ResponseEntity<T> request(String url, HttpMethod method, HttpHeaders headers, JSONObject variables, Object params, Class<T> responseType) {
if (StringUtils.isEmpty(url)) {
throw new RuntimeException("url 不能为空");
}
if (method == null) {
throw new RuntimeException("method 不能为空");
}
if (headers == null) {
headers = new HttpHeaders();
}
// 请求体
String body = "";
if (params != null) {
if (params instanceof JSONObject) {
body = ((JSONObject) params).toJSONString();
} else {
body = params.toString();
}
}
// 拼接 url 参数
if (variables != null && variables.size() > 0) {
url += ("?" + asUrlVariables(variables));
}
// 发送请求
HttpEntity<String> request = new HttpEntity<>(body, headers);
return RT.exchange(url, method, request, responseType);
}
/**
* 获取JSON请求头
*/
public static HttpHeaders getHeaderApplicationJson() {
return getHeader(MediaType.APPLICATION_JSON_UTF8_VALUE);
}
/**
* 获取请求头
*/
public static HttpHeaders getHeader(String mediaType) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType(mediaType));
headers.add("Accept", mediaType);
return headers;
}
/**
* 将 JSONObject 转为 a=1&b=2&c=3...&n=n 的形式
*/
public static String asUrlVariables(JSONObject variables) {
Map<String, Object> source = variables.getInnerMap();
Iterator<String> it = source.keySet().iterator();
StringBuilder urlVariables = new StringBuilder();
while (it.hasNext()) {
String key = it.next();
String value = "";
Object object = source.get(key);
if (object != null) {
if (!StringUtils.isEmpty(object.toString())) {
value = object.toString();
}
}
urlVariables.append("&").append(key).append("=").append(value);
}
// 去掉第一个&
return urlVariables.substring(1);
}
}
package com.zzsn.event.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
@Component
public class SpringContextUtils implements ApplicationContextAware {
/**
* 上下文对象实例
*/
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
applicationContext = applicationContext;
}
/**
* 获取applicationContext
*
* @return
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 获取HttpServletRequest
*/
public static HttpServletRequest getHttpServletRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}
public static String getOrigin(){
HttpServletRequest request = getHttpServletRequest();
return request.getHeader("Origin");
}
/**
* 通过name获取 Bean.
*
* @param name
* @return
*/
public static Object getBean(String name) {
return getApplicationContext().getBean(name);
}
/**
* 通过class获取Bean.
*
* @param clazz
* @param <T>
* @return
*/
public static <T> T getBean(Class<T> clazz) {
return getApplicationContext().getBean(clazz);
}
/**
* 通过name,以及Clazz返回指定的Bean
*
* @param name
* @param clazz
* @param <T>
* @return
*/
public static <T> T getBean(String name, Class<T> clazz) {
return getApplicationContext().getBean(name, clazz);
}
}
package com.zzsn.event.util;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;
/**
*
*
* @author lkg
* @date 2023/5/27
*/
public class XmMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
public XmMappingJackson2HttpMessageConverter() {
List<MediaType> mediaTypeList = new ArrayList<>();
mediaTypeList.add(MediaType.TEXT_HTML);
setSupportedMediaTypes(mediaTypeList);
}
}
package com.zzsn.event.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
public class InfoSourceVo {
/**主键*/
private String id;
/****************************基本信息********************************/
/**信息源编码*/
private String infoSourceCode;
/**信息源名称,微信公众号名称,微博名称*/
private String webSiteName;
/**栏目名称*/
private String siteName;
/**栏目URL,微信公众号URL,微博URL*/
private String siteUri;
/**微博认证方式(1:个人微博 2:官方微博)*/
private String authMode;
/**功能介绍,微博认证描述*/
private String remarks;
/**公众号BIZ*/
private String biz;
/**是否大V*/
private int ynBigV;
/**权威性*/
private String authority;
/**信息源类别ids*/
private String infoSourceTypeId;
private String infoSourceTypeName;
/**信息源性质ids*/
private List<String> infoSourceNatureIds;
private String natureIds;
private String infoSourceNatureNames;
/**信息源组名称*/
private String infoSourceGroupNames;
/**网站重要级别*/
private String siteLevel;
/**国家*/
private String country;
/**地区*/
private String area;
/**语种*/
private String language;
/**是否(境外、公共、翻墙)*/
private String checkedList;
/**历史数据URL*/
private String hisUriExp;
/**历史数据开始时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date hisDateStartTime;
/**历史数据结束时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date hisDateEndTime;
/**是否历史所有数据*/
private String ynHisDataAll;
/**状态*/
private String status;
/****************************列表页********************************/
/**列表页URL*/
private String listUrl;
/**表达式类型*/
private String listExpressionType;
/**匹配资讯的url*/
private String informationUrl;
/**匹配资讯标题*/
private String informationTitle;
/**匹配资讯发布时间*/
private String informationPublishDate;
/**匹配资讯来源*/
private String informationSource;
/**列表信息块位置*/
private String infoBlockPosition;
/**抽取链接定位*/
private String linkLocation;
/**自定义实体*/
private Object extractInfo;
/**爬取深度*/
private Integer crawlDepth;
/**页码url*/
private String pageUrl;
/**匹配页码*/
private String matchPage;
/**开始页码*/
private int pageStart;
/**结束页码*/
private int pageEnd;
/**是否所有页*/
private String ynPageAll;
/**预警标签*/
private List<Map<String,Object>> warningTag;
/****************************详情页********************************/
/**详情页表URL*/
private int detailUrl;
/**表达式类型*/
private String detailExpressionType;
/**匹配详情页标题*/
private String detailExpressionTitle;
private Integer titleExtractionMethodType;
private String titleExtractionMethod;
/**匹配详情页时间*/
private String detailExpressionPublishDate;
private Integer publishDateExtractionMethodType;
private String publishDateExtractionMethod;
/**匹配详情页来源*/
private String detailExpressionSource;
private Integer sourceExtractionMethodType;
private String sourceExtractionMethod;
/**匹配详情页作者*/
private String detailExpressionAuthor;
private Integer authorExtractionMethodType;
private String authorExtractionMethod;
/**匹配详情页摘要*/
private String detailExpressionSummary;
private Integer summaryExtractionMethodType;
private String summaryExtractionMethod;
/**匹配详情页正文*/
private String detailExpressionContent;
private Integer contentExtractionMethodType;
private String contentExtractionMethod;
/**自定义实体*/
private Object detailInfo;
/**是否下载附件*/
private String ynDownload;
/****************************数据页********************************/
/**数据表格页URL*/
private String formUrl;
/**数据表格标题*/
private String formTitle;
/**表达式类型*/
private String formType;
/**数据表格表达式*/
private String dataFormExpression;
/**自定义*/
private Object dataFormInfo;
/**页码URL*/
private String dataPageUrl;
/**页码规则*/
private String dataPageRule;
/**开始页码*/
private int dataPageStart;
/**结束页码*/
private int dataPageEnd;
/**是否所有页码*/
private String ynDataPageAll;
/****************************存储设置********************************/
/**数据类型*/
private int dataType;
/**数据格式*/
private int dataFormat;
/**数据存储方式*/
private int dataStorageMode;
/**数据存储信息*/
private Object dataStorageInfo;
/****************************爬取设置********************************/
/**是否动态爬取*/
private int ynDynamicCrawl;
/**是否需要登陆*/
private int ynLogin;
/**登陆域名*/
private String domainName;
/**登陆链接*/
private String link;
/**登陆账号*/
private String account;
/**登陆密码*/
private String passWord;
/**userAgent*/
private String userAgent;
/**Referer*/
private String referer;
/**cookies*/
private String cookies;
/**headers*/
private String headers;
/**其它参数*/
private String otherInfo;
/****************************爬虫设置********************************/
/**爬虫类别*/
private int crawlType;
/**爬虫名称*/
private String crawlName;
/**爬虫地址*/
private String crawlAddress;
/**参数*/
private Object parameter;
/****************************调度设置********************************/
/**设置方式(1:自由设置 2:cron表达式)*/
private Integer setMode;
/**定时方式(1:时间间隔 2:立即执行)*/
private String timerMode;
/**定时单位(1分;2小时;3日;4月)*/
private String unit;
/**定时数值*/
private Integer space;
/**cron表达式*/
private String cron;
/**说明*/
private String explaination;
/**是否下载*/
private Boolean downLoad;
/**是否立即执行*/
private Boolean execute;
/**验证结果*/
private String verification;
/**所属单位*/
private String company;
/**所属行业*/
private String industry;
/**可信度*/
private String reliability;
/**原创度*/
private String originality;
/**父网站*/
private String parentSite;
/**是否保存快照(1:保存 0:不保存)*/
private String ynSnapshot;
private String sourceId;
/**创建人*/
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**更新人*/
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package com.zzsn.event.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
* @Description: 专题关键词关联表
* @Author: jeecg-boot
* @Date: 2021-12-09
* @Version: V1.0
*/
@Data
@ApiModel(value="subject_keywords_map对象", description="专题关键词关联表")
public class SubjectKeywordsMap implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@ApiModelProperty(value = "主键")
private String id;
/**专题id*/
@Excel(name = "专题id", width = 15)
@ApiModelProperty(value = "专题id")
private String subjectId;
/**关键词组id*/
@Excel(name = "关键词组id", width = 15)
@ApiModelProperty(value = "关键词组id")
private String keywordsId;
/**类别( 1:标题 2:正文 3:全文)*/
private String type;
}
package com.zzsn.event.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.List;
import java.util.Map;
@Data
@ApiModel(value="SubjectPage", description="专题列表页面")
public class SubjectPage {
private String id;
/**项目编码*/
@Excel(name = "专题编码", width = 15)
@ApiModelProperty(value = "专题编码")
private String subjectCode;
/**专题名称*/
@Excel(name = "专题名称", width = 15)
@ApiModelProperty(value = "专题名称")
private String subjectName;
/**绑定的类别*/
@Excel(name = "类别", width = 15)
@ApiModelProperty(value = "类别")
private String subjectTypeId;
private String subjectTypeName;
/**项目id*/
@Excel(name = "项目id", width = 15)
@ApiModelProperty(value = "项目id")
private String projectId;
private String projectName;
/**父级节点*/
@Excel(name = "父级节点", width = 15)
@ApiModelProperty(value = "父级节点")
private String pid;
/**图片策略*/
@Excel(name = "图片策略", width = 15, dicCode = "clb_save_policy")
@ApiModelProperty(value = "图片策略")
private String picturePolicy;
/**网页策略*/
@Excel(name = "网页策略", width = 15, dicCode = "clb_save_policy")
@ApiModelProperty(value = "网页策略")
private String pagePolicy;
/**状态*/
@Excel(name = "状态", width = 15, dicCode = "clb_subject_status")
@ApiModelProperty(value = "状态")
private Integer status = 0;
/**启用时间*/
@Excel(name = "启用时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "启用时间")
private java.util.Date timeEnable;
/**停用时间*/
@Excel(name = "停用时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "停用时间")
private java.util.Date timeDisable;
/**划分专题库*/
@Excel(name = "划分专题库", width = 15, dicCode = "Thematic_Library")
@ApiModelProperty(value = "划分专题库")
private String library;
/**定时单位(1分;2小时;3日;4月)*/
@ApiModelProperty(value = "定时单位")
private String unit;
/**定时数值*/
@ApiModelProperty(value = "定时数值")
private Integer space;
/**cron表达式*/
@ApiModelProperty(value = "cron表达式")
private String cron;
/**是否提取热词*/
@ApiModelProperty(value = "是否提取热词")
private String ynExtractHotWords;
/**版本号*/
@Excel(name = "版本号", width = 15)
@ApiModelProperty(value = "版本号")
private Integer version;
/**是否有子节点*/
@Excel(name = "是否有子节点", width = 15, dicCode = "yn")
@ApiModelProperty(value = "是否有子节点")
private String hasChild;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**信息源数量*/
private Integer infoSourceNum;
/**关键词数量*/
private Integer keyWordsNum;
/**专题信息数量*/
private Integer subjectInfoNum;
/**未审核专题信息数量*/
private Integer unCheckNum;
/**绑定的信息源组list*/
@ApiModelProperty(value = "信息源组list")
private List<String> infoSourceIds;
/**排除的信息源组list*/
@ApiModelProperty(value = "信息源组list")
private List<String> excludeInfoSourceIds;
/**关键词组list*/
@ApiModelProperty(value = "信息源组list")
private List<String> keyWordsIds;
/**搜索引擎list*/
@ApiModelProperty(value = "搜索引擎list")
private List<String> searchEngineIds;
/**是否全部信息源*/
@ApiModelProperty(value = "是否全部信息源")
private Boolean ynAll;
/**绑定的模型ids*/
@ApiModelProperty(value = "绑定的模型ids")
private List<String> modelIds;
/**绑定的模型种类(1:去重模型 2:筛选模型 3:标签模型)*/
@ApiModelProperty(value = "绑定的模型种类(1:去重模型 2:筛选模型 3:标签模型)")
private String type;
private String address;
/**所属客户*/
private String customerId;
private List<Map<String,Object>> warningTag;
/**专题类别(1:通用专题 2:事件专题)*/
private Integer subjectType;
/**专题信息所在es库名称*/
private String esIndex;
/**定向组list*/
private List<String> directionaIds;
/**排序号*/
private Integer sortOrder;
/**企业数据类型[0-研报;1-年报;2-动态;3-公告]*/
private String additionDataType;
private String enterpriseCheck;
/**备注
*/
private String remark;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论