Commit 4ebf9bce by liuyu

Merge branch 'release' into 'master'

Release

See merge request !59
parents fd50cd03 675ef7e9
package com.zhiwei.middleware.automatic.server.dubbo.service; package com.zhiwei.middleware.automatic.server.dubbo.service;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.base.entity.subclass.mark.MarkInfo; import com.zhiwei.base.entity.subclass.mark.MarkInfo;
import com.zhiwei.middleware.automatic.server.pojo.MarkInfoMulti; import com.zhiwei.middleware.automatic.server.pojo.MarkInfoMulti;
import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo; import com.zhiwei.middleware.automatic.server.pojo.PageVO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -71,4 +72,13 @@ public interface AutoMaticService { ...@@ -71,4 +72,13 @@ public interface AutoMaticService {
* @return 返回值 * @return 返回值
*/ */
Map<String, Object> compareWithTemplateTileOL(String project, String title); Map<String, Object> compareWithTemplateTileOL(String project, String title);
/**
* 分页查询模板声量统计详细数据
* @param templateId
* @param startTime
* @param endTime
* @return
*/
PageVO<JSONObject> getTemplateSumData(String templateId, Long startTime, Long endTime);
} }
package com.zhiwei.middleware.automatic.server.pojo;
import java.io.Serializable;
import java.util.List;
public class PageVO <T> implements Serializable {
int index;
int pageSize;
long total;
List<T> list;
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public PageVO (int index, int pageSize, long total, List<T> t) {
this.index = index;
this.pageSize = pageSize;
this.total = total;
this.list = t;
}
}
package com.zhiwei.middleware.automatic.server.pojo; package com.zhiwei.middleware.automatic.server.pojo;
import com.alibaba.fastjson.JSONObject;
public class TemplateRecord { public class TemplateRecord {
/** /**
* id * id
...@@ -14,6 +16,16 @@ public class TemplateRecord { ...@@ -14,6 +16,16 @@ public class TemplateRecord {
private String esId; private String esId;
private String url;
private String pt;
private String source;
private String realSource;
private String time;
/** /**
* 特征值 * 特征值
*/ */
...@@ -26,13 +38,28 @@ public class TemplateRecord { ...@@ -26,13 +38,28 @@ public class TemplateRecord {
public TemplateRecord() {} public TemplateRecord() {}
public TemplateRecord(String templateId, String esId, String mupdate) { public TemplateRecord(String templateId, String esId, String url, String pt, String source, String realSource, String time, String mupdate) {
this.templateId = templateId; this.templateId = templateId;
this.mupdate = mupdate; this.mupdate = mupdate;
this.esId = esId; this.esId = esId;
this.url = url;
this.pt = pt;
this.source = source;
this.realSource = realSource;
this.time = time;
this.createAt = System.currentTimeMillis(); this.createAt = System.currentTimeMillis();
} }
public JSONObject toJson() {
JSONObject json = new JSONObject();
json.put("url", url);
json.put("pt", pt);
json.put("source", source);
json.put("realSource", realSource);
json.put("time", time);
return json;
}
public String getId() { public String getId() {
return id; return id;
} }
...@@ -72,4 +99,44 @@ public class TemplateRecord { ...@@ -72,4 +99,44 @@ public class TemplateRecord {
public void setEsId(String esId) { public void setEsId(String esId) {
this.esId = esId; this.esId = esId;
} }
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getPt() {
return pt;
}
public void setPt(String pt) {
this.pt = pt;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getRealSource() {
return realSource;
}
public void setRealSource(String realSource) {
this.realSource = realSource;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
} }
package com.zhiwei.middleware.automatic.server.dubbo.service; package com.zhiwei.middleware.automatic.server.dubbo.service;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.base.entity.subclass.mark.MarkInfo; import com.zhiwei.base.entity.subclass.mark.MarkInfo;
import com.zhiwei.middleware.automatic.server.pojo.MarkInfoMulti; import com.zhiwei.middleware.automatic.server.pojo.MarkInfoMulti;
import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo; import com.zhiwei.middleware.automatic.server.pojo.PageVO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -76,4 +77,17 @@ public interface AutoMaticService { ...@@ -76,4 +77,17 @@ public interface AutoMaticService {
*/ */
Map<String, Object> compareWithTemplateTileOL(String project, String title); Map<String, Object> compareWithTemplateTileOL(String project, String title);
/**
* 分页查询模板声量统计详细数据
* @param templateId 模板id
* @return page
*/
PageVO<JSONObject> getTemplateDaySumData(int page, int pageSize, String templateId);
/**
* 分页查询模板声量统计详细数据
* @param templateId 模板id
* @return page
*/
PageVO<JSONObject> getTemplateTotalSumData(int page, int pageSize, String templateId);
} }
...@@ -5,9 +5,10 @@ import com.zhiwei.base.entity.subclass.mark.MarkInfo; ...@@ -5,9 +5,10 @@ import com.zhiwei.base.entity.subclass.mark.MarkInfo;
import com.zhiwei.middleware.automatic.server.common.GenericAttribute; import com.zhiwei.middleware.automatic.server.common.GenericAttribute;
import com.zhiwei.middleware.automatic.server.core.TaskManager; import com.zhiwei.middleware.automatic.server.core.TaskManager;
import com.zhiwei.middleware.automatic.server.dubbo.service.AutoMaticService; import com.zhiwei.middleware.automatic.server.dubbo.service.AutoMaticService;
import com.zhiwei.middleware.automatic.server.mission.AsyncTask;
import com.zhiwei.middleware.automatic.server.pojo.AutoTask; import com.zhiwei.middleware.automatic.server.pojo.AutoTask;
import com.zhiwei.middleware.automatic.server.pojo.MarkInfoMulti; import com.zhiwei.middleware.automatic.server.pojo.MarkInfoMulti;
import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo; import com.zhiwei.middleware.automatic.server.pojo.PageVO;
import com.zhiwei.middleware.automatic.server.pojo.enums.TaskType; import com.zhiwei.middleware.automatic.server.pojo.enums.TaskType;
import com.zhiwei.middleware.automatic.server.service.TemplateTitleService; import com.zhiwei.middleware.automatic.server.service.TemplateTitleService;
import com.zhiwei.middleware.automatic.server.util.RedissonUtil; import com.zhiwei.middleware.automatic.server.util.RedissonUtil;
...@@ -92,4 +93,14 @@ public class AutoMaticServiceImpl implements AutoMaticService { ...@@ -92,4 +93,14 @@ public class AutoMaticServiceImpl implements AutoMaticService {
public Map<String, Object> compareWithTemplateTileOL(String project, String title) { public Map<String, Object> compareWithTemplateTileOL(String project, String title) {
return templateTitleService.compareWithTemplateTileOL(project, title); return templateTitleService.compareWithTemplateTileOL(project, title);
} }
@Override
public PageVO<JSONObject> getTemplateDaySumData(int page, int pageSize,String templateId) {
return templateTitleService.getTemplateSumData(page, pageSize, templateId, AsyncTask.DAY_START_TIME, AsyncTask.DAY_END_TIME);
}
@Override
public PageVO<JSONObject> getTemplateTotalSumData(int page, int pageSize,String templateId) {
return templateTitleService.getTemplateSumData(page, pageSize, templateId, null, null);
}
} }
package com.zhiwei.middleware.automatic.server.mission; package com.zhiwei.middleware.automatic.server.mission;
import com.zhiwei.middleware.automatic.server.common.GenericAttribute;
import com.zhiwei.qbjc.bean.pojo.common.Project; import com.zhiwei.qbjc.bean.pojo.common.Project;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Calendar;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -13,6 +15,9 @@ public class AsyncTask { ...@@ -13,6 +15,9 @@ public class AsyncTask {
private final MongoTemplate hangZhouMongo; private final MongoTemplate hangZhouMongo;
public static Long DAY_START_TIME;
public static Long DAY_END_TIME;
public AsyncTask(@Qualifier("hangzhouMongoTemplate") MongoTemplate hangZhouMongo) { public AsyncTask(@Qualifier("hangzhouMongoTemplate") MongoTemplate hangZhouMongo) {
this.hangZhouMongo = hangZhouMongo; this.hangZhouMongo = hangZhouMongo;
...@@ -21,4 +26,14 @@ public class AsyncTask { ...@@ -21,4 +26,14 @@ public class AsyncTask {
public List<String> findAllGroup() { public List<String> findAllGroup() {
return hangZhouMongo.findAll(Project.class).stream().map(Project::getProjectName).collect(Collectors.toList()); return hangZhouMongo.findAll(Project.class).stream().map(Project::getProjectName).collect(Collectors.toList());
} }
public void initDayTime() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
DAY_START_TIME = calendar.getTimeInMillis();
DAY_END_TIME = DAY_START_TIME + GenericAttribute.DAY_TIME;
}
} }
...@@ -24,5 +24,6 @@ public class InitTask { ...@@ -24,5 +24,6 @@ public class InitTask {
public void init () { public void init () {
GlobalPojo.ALL_GROUP = asyncTask.findAllGroup(); GlobalPojo.ALL_GROUP = asyncTask.findAllGroup();
asyncTask.initDayTime();
} }
} }
...@@ -78,6 +78,7 @@ public class ScheduledMission { ...@@ -78,6 +78,7 @@ public class ScheduledMission {
@Async("autMarkExecutor") @Async("autMarkExecutor")
public void templateDayClear() { public void templateDayClear() {
try { try {
asyncTask.initDayTime();
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
// 聚合1天,文章时间和标注时间都在1天内 // 聚合1天,文章时间和标注时间都在1天内
calendar.add(Calendar.DAY_OF_MONTH, -1); calendar.add(Calendar.DAY_OF_MONTH, -1);
......
package com.zhiwei.middleware.automatic.server.service; package com.zhiwei.middleware.automatic.server.service;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.middleware.automatic.server.pojo.PageVO;
import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo; import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo;
import java.util.List; import java.util.List;
...@@ -63,4 +65,13 @@ public interface TemplateTitleService { ...@@ -63,4 +65,13 @@ public interface TemplateTitleService {
* @return 返回值 * @return 返回值
*/ */
Map<String, Object> compareWithTemplateTileOL(String project, String title); Map<String, Object> compareWithTemplateTileOL(String project, String title);
/**
* 分页查询模板声量统计详细数据
* @param templateId 模板id
* @param startTime 开始时间
* @param endTime 结束时间
* @return page
*/
PageVO<JSONObject> getTemplateSumData(int page, int pageSize, String templateId, Long startTime, Long endTime);
} }
package com.zhiwei.middleware.automatic.server.service.impl; package com.zhiwei.middleware.automatic.server.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.zhiwei.middleware.automatic.server.common.GenericAttribute; import com.zhiwei.middleware.automatic.server.common.GenericAttribute;
import com.zhiwei.middleware.automatic.server.dao.TemplateRecordDao; import com.zhiwei.middleware.automatic.server.dao.TemplateRecordDao;
import com.zhiwei.middleware.automatic.server.pojo.PageVO;
import com.zhiwei.middleware.automatic.server.service.TemplateTitleService; import com.zhiwei.middleware.automatic.server.service.TemplateTitleService;
import com.zhiwei.middleware.automatic.server.pojo.TemplateRecord; import com.zhiwei.middleware.automatic.server.pojo.TemplateRecord;
import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo; import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo;
...@@ -12,6 +14,7 @@ import com.zhiwei.middleware.automatic.server.util.Tools; ...@@ -12,6 +14,7 @@ import com.zhiwei.middleware.automatic.server.util.Tools;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -24,8 +27,6 @@ public class TemplateTitleServiceImpl implements TemplateTitleService { ...@@ -24,8 +27,6 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
private static final Logger log = LogManager.getLogger(TemplateTitleServiceImpl.class); private static final Logger log = LogManager.getLogger(TemplateTitleServiceImpl.class);
private final static String COUNT_KEY = "count";
private final RedissonUtil redissonUtil; private final RedissonUtil redissonUtil;
private final TemplateRecordDao templateRecordDao; private final TemplateRecordDao templateRecordDao;
...@@ -189,6 +190,22 @@ public class TemplateTitleServiceImpl implements TemplateTitleService { ...@@ -189,6 +190,22 @@ public class TemplateTitleServiceImpl implements TemplateTitleService {
return res; return res;
} }
@Override
public PageVO<JSONObject> getTemplateSumData(int page, int pageSize, String templateId, Long startTime, Long endTime) {
int skip = (page - 1) * pageSize;
Criteria criteria = Criteria.where("templateId").is(templateId);
if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
criteria.and("createAt").gte(startTime).lt(endTime);
}
Query query = new Query(criteria)
.skip(skip).limit(pageSize).with(Sort.by(Sort.Direction.DESC, "_id"));
long count = templateRecordDao.count(query);
if (count == 0) {
return new PageVO<>(skip, pageSize, count, Collections.emptyList());
}
return new PageVO<>(skip, pageSize, count, templateRecordDao.findTemplateRecord(query).stream().map(TemplateRecord::toJson).collect(Collectors.toList()));
}
private Map<String, TemplateTitleVo> getTemplateTitleByProject(String key, String project) { private Map<String, TemplateTitleVo> getTemplateTitleByProject(String key, String project) {
Map<String, String> mapValue = redissonUtil.getMapValue(Tools.assembleKey(key, project)); Map<String, String> mapValue = redissonUtil.getMapValue(Tools.assembleKey(key, project));
......
package com.zhiwei.middleware.automatic.son.config; package com.zhiwei.middleware.automatic.son.config;
import java.util.Set; import com.zhiwei.qbjc.bean.pojo.common.MessagePlatform;
import java.util.List;
public class GlobalPojo { public class GlobalPojo {
public static List<MessagePlatform> MESSAGE_PLATFORM;
} }
package com.zhiwei.middleware.automatic.son.mission; package com.zhiwei.middleware.automatic.son.mission;
import com.zhiwei.qbjc.bean.pojo.common.MessagePlatform;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class AsyncTask { public class AsyncTask {
private final MongoTemplate mongoTemplate;
public AsyncTask(@Qualifier("markerMongoTemplate") MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
public List<MessagePlatform> getMessagePlatform() {
return mongoTemplate.findAll(MessagePlatform.class);
}
} }
package com.zhiwei.middleware.automatic.son.mission;
public class InitTask {
}
package com.zhiwei.middleware.automatic.son.mission; package com.zhiwei.middleware.automatic.son.mission;
import com.zhiwei.middleware.automatic.son.config.GlobalPojo;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class StartTask { public class StartTask {
private final AsyncTask asyncTask;
public StartTask(AsyncTask asyncTask) {
this.asyncTask = asyncTask;
}
@PostConstruct
public void start() {
GlobalPojo.MESSAGE_PLATFORM = asyncTask.getMessagePlatform();
}
} }
...@@ -12,6 +12,7 @@ import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo; ...@@ -12,6 +12,7 @@ import com.zhiwei.middleware.automatic.server.pojo.TemplateTitleVo;
import com.zhiwei.middleware.automatic.server.pojo.enums.TaskType; import com.zhiwei.middleware.automatic.server.pojo.enums.TaskType;
import com.zhiwei.middleware.automatic.server.pojo.enums.TemplateStatus; import com.zhiwei.middleware.automatic.server.pojo.enums.TemplateStatus;
import com.zhiwei.middleware.automatic.server.util.RedissonUtil; import com.zhiwei.middleware.automatic.server.util.RedissonUtil;
import com.zhiwei.middleware.automatic.son.config.GlobalPojo;
import com.zhiwei.middleware.automatic.son.dao.TemplateRecordDao; import com.zhiwei.middleware.automatic.son.dao.TemplateRecordDao;
import com.zhiwei.middleware.automatic.son.dao.TemplateTempRecord; import com.zhiwei.middleware.automatic.son.dao.TemplateTempRecord;
import com.zhiwei.middleware.automatic.son.dubbo.DubboHandler; import com.zhiwei.middleware.automatic.son.dubbo.DubboHandler;
...@@ -20,6 +21,8 @@ import com.zhiwei.middleware.automatic.son.task.BaseTaskTypePair; ...@@ -20,6 +21,8 @@ import com.zhiwei.middleware.automatic.son.task.BaseTaskTypePair;
import com.zhiwei.middleware.automatic.son.util.CosineSimilarity; import com.zhiwei.middleware.automatic.son.util.CosineSimilarity;
import com.zhiwei.middleware.automatic.son.util.MarkInfoUtil; import com.zhiwei.middleware.automatic.son.util.MarkInfoUtil;
import com.zhiwei.middleware.automatic.son.util.Tools; import com.zhiwei.middleware.automatic.son.util.Tools;
import com.zhiwei.qbjc.bean.pojo.common.MessagePlatform;
import com.zhiwei.qbjc.bean.tools.BeanTools;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
...@@ -27,7 +30,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; ...@@ -27,7 +30,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service("TaskServiceCommon") @Service("TaskServiceCommon")
...@@ -241,7 +243,8 @@ public class TaskServiceCommon extends BaseTaskTypePair<TaskServiceCommon.TaskCo ...@@ -241,7 +243,8 @@ public class TaskServiceCommon extends BaseTaskTypePair<TaskServiceCommon.TaskCo
templateTitleVo.refreshMark(); templateTitleVo.refreshMark();
String id = sourceObj.getString("_id"); String id = sourceObj.getString("_id");
// // 特征值记录 // // 特征值记录
templateTitleService.insertTemplateRecord(new TemplateRecord(templateTitleVo.getId(), id, updates[0])); templateTitleService.insertTemplateRecord(new TemplateRecord(templateTitleVo.getId(), id, getUrl(markInfo), getPlatform(markInfo),
sourceObj.getString("source"), sourceObj.getString("real_source"), Tools.TIME_FORMAT.format(sourceObj.getLong("time")), updates[0]));
// 测试环境临时添加,用于对比 // 测试环境临时添加,用于对比
templateRecordDao.tempRecord(new TemplateTempRecord(templateTitleVo.getId(), templateTitleVo.getTemplateTitle(), group, getUrl(markInfo), templateRecordDao.tempRecord(new TemplateTempRecord(templateTitleVo.getId(), templateTitleVo.getTemplateTitle(), group, getUrl(markInfo),
id, templateTitleVo.getMtag())); id, templateTitleVo.getMtag()));
...@@ -253,6 +256,15 @@ public class TaskServiceCommon extends BaseTaskTypePair<TaskServiceCommon.TaskCo ...@@ -253,6 +256,15 @@ public class TaskServiceCommon extends BaseTaskTypePair<TaskServiceCommon.TaskCo
return false; return false;
} }
/**
* @return boolean
*/
private String getPlatform(MarkInfo markInfo) {
MessagePlatform messagePlatform = BeanTools.filterPlatform(GlobalPojo.MESSAGE_PLATFORM, markInfo.getSourceObj().getInteger("c5"),
markInfo.getSourceObj().getInteger("foreign"));
return Objects.nonNull(messagePlatform) ? messagePlatform.getName() : "未知";
}
private String getUrl(MarkInfo markInfo) { private String getUrl(MarkInfo markInfo) {
switch (markInfo.getTypeB()) { switch (markInfo.getTypeB()) {
case COMPLETE: case COMPLETE:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment