Commit c56c8759 by shenjunjie

Merge branch 'feature' into 'release'

Feature

See merge request !432
parents 829098dd 2ad027ed
......@@ -324,8 +324,7 @@ public class AppArticleController extends BaseController {
@ApiOperation("非人工项目-方案设置-删除方案")
@DeleteMapping("/non-manual/plan/delete/{id}")
public ResponseResult deleteNonManualProjectPlan(@PathVariable String id) {
markDataService.deleteNonManualProjectPlan(id);
return ResponseResult.success();
return markDataService.deleteNonManualProjectPlan(id);
}
@ApiOperation("非人工项目-方案设置-获取方案详情")
......
......@@ -103,12 +103,14 @@ public class ChannelIndex extends AbstractBaseMongo {
return res;
}
List<Map<String, Object>> cacheMaps = (List<Map<String, Object>>) sourceAsMap.get(GenericAttribute.ES_BRANDKBS_CACHE_MAPS);
List<String> manualProjectIds = GlobalPojo.PROJECT_MAP.entrySet().stream().filter(entry -> entry.getValue().isManual()).map(Map.Entry::getKey).collect(Collectors.toList());
// 非人工项目
List<String> nonManualProjectIds =
GlobalPojo.PROJECT_MAP.entrySet().stream().filter(entry ->!entry.getValue().isManual()).map(Map.Entry::getKey).collect(Collectors.toList());
for (Map<String, Object> cacheMap : cacheMaps) {
String projectId = String.valueOf(cacheMap.get("project_id"));
String contendId = String.valueOf(cacheMap.get("contend_id"));
// 剔除非人工项目
if(manualProjectIds.contains(projectId)){
if(nonManualProjectIds.contains(projectId)){
continue;
}
ChannelIndex channelIndex = new ChannelIndex(projectId, contendId, messagePlatform.getName(), realSource, source);
......
......@@ -60,6 +60,11 @@ public class NonManualProjectPlan extends AbstractBaseMongo{
*/
private String submitter;
/**
* 快搜订阅服务任务id
*/
private String IStarShineSubjectTaskId;
public NonManualProjectPlan(NonManualProjectPlanDTO dto){
this.id = dto.getId();
this.projectId = UserThreadLocal.getProjectId();
......
......@@ -406,7 +406,7 @@ public interface MarkDataService {
* 删除非人工项目方案
* @param id
*/
void deleteNonManualProjectPlan(String id);
ResponseResult deleteNonManualProjectPlan(String id);
/**
* 获取非人工项目方案详情
......
......@@ -70,6 +70,9 @@ import org.joda.time.PeriodType;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
......@@ -103,6 +106,15 @@ public class MarkDataServiceImpl implements MarkDataService {
@Value("${whole.search.url}")
private String wholeSearchUrl;
@Value("${istarshine.subject.addTask.url}")
private String addIStarShineSubjectTaskUrl;
@Value("${istarshine.subject.deleteTask.url}")
private String deleteIStarShineSubjectTaskUrl;
@Value("${istarshine.subject.updateTask.url}")
private String updateIStarShineSubjectTaskUrl;
@Resource(name = "restTemplate")
private RestTemplate restTemplate;
......@@ -1711,14 +1723,27 @@ public class MarkDataServiceImpl implements MarkDataService {
if (nonManualProjectPlanDao.count(new Query(Criteria.where("projectId").is(UserThreadLocal.getProjectId()))) >= 5) {
return ResponseResult.failure("超过方案数量上限5");
}
// 同时添加快搜订阅任务
String iStarShineSubjectTaskId = addIStarShineSubjectTask(dto);
if (Objects.isNull(iStarShineSubjectTaskId)){
return ResponseResult.failure("添加方案失败");
}
NonManualProjectPlan plan = new NonManualProjectPlan(dto);
plan.setIStarShineSubjectTaskId(iStarShineSubjectTaskId);
nonManualProjectPlanDao.insertOne(plan);
return ResponseResult.success();
}
@Override
public void deleteNonManualProjectPlan(String id) {
public ResponseResult deleteNonManualProjectPlan(String id) {
String iStarShineSubjectTaskId = nonManualProjectPlanDao.findOneById(id).getIStarShineSubjectTaskId();
JSONObject body = restTemplate.getForEntity(deleteIStarShineSubjectTaskUrl, JSONObject.class, iStarShineSubjectTaskId, UserThreadLocal.getNickname()).getBody();
if (Objects.isNull(body) || body.isEmpty() || !body.getBoolean("status")){
log.info(id + "-删除快搜订阅任务失败,接口返回信息-" + body);
return ResponseResult.failure("删除失败");
}
nonManualProjectPlanDao.deleteOneById(id);
return ResponseResult.success();
}
@Override
......@@ -1731,7 +1756,81 @@ public class MarkDataServiceImpl implements MarkDataService {
NonManualProjectPlan existPlan = nonManualProjectPlanDao.findOneById(dto.getId());
NonManualProjectPlan plan = new NonManualProjectPlan(dto);
plan.setCTime(existPlan.getCTime());
plan.setIStarShineSubjectTaskId(existPlan.getIStarShineSubjectTaskId());
ResponseResult responseResult = updateIStarShineSubjectTask(dto);
if (!responseResult.isStatus()){
return responseResult;
}
nonManualProjectPlanDao.updateOne(plan);
return responseResult;
}
/**
* 添加快搜订阅任务,非人工项目方案的创建、删除、修改的同时,也要同时对该任务进行操作
* 详见知微tapd-【istatshine-service(外部数据api)】-【外部数据-快搜-订阅-服务接口文档】
* @param dto
* @return
*/
private String addIStarShineSubjectTask(NonManualProjectPlanDTO dto){
JSONObject param = new JSONObject();
param.put("creatUser", UserThreadLocal.getNickname());
param.put("groupId", UserThreadLocal.getProjectId());
param.put("projectName", "品见");
param.put("groupName", projectService.getProjectById(UserThreadLocal.getProjectId()).getProjectName());
param.put("taskType", dto.getLasting() ? "永久" : "临时");
param.put("taskName", dto.getName() + "_" + System.currentTimeMillis());
param.put("crawlerWord", Tools.canonicalKeyword(dto.getKeyword()));
param.put("filterWord", Tools.canonicalKeyword(dto.getFilterWord()));
if (!dto.getLasting() && Objects.nonNull(dto.getEndTime())) {
param.put("stopTime", dto.getEndTime());
}
param.put("filterWtype", String.join(",", dto.getType()));
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> request = new HttpEntity<>(param.toJSONString(), httpHeaders);
JSONObject body = restTemplate.postForEntity(addIStarShineSubjectTaskUrl, request, JSONObject.class).getBody();
if (Objects.isNull(body) || body.isEmpty() || !body.getBoolean("status")){
log.info(JSONObject.toJSONString(dto) + "-添加快搜订阅任务失败" + body);
return null;
}
JSONObject data = body.getJSONObject("data");
if (Objects.isNull(data) || data.isEmpty()){
log.info(JSONObject.toJSONString(dto) + "-添加快搜订阅任务失败" + body);
return null;
}
return data.getString("id");
}
/**
* 修改快搜订阅任务
* @param dto
* @return
*/
private ResponseResult updateIStarShineSubjectTask(NonManualProjectPlanDTO dto){
NonManualProjectPlan plan = nonManualProjectPlanDao.findOneById(dto.getId());
String iStarShineSubjectTaskId = plan.getIStarShineSubjectTaskId();
JSONObject param = new JSONObject();
param.put("id", iStarShineSubjectTaskId);
param.put("taskType", dto.getLasting() ? "永久" : "临时");
param.put("crawlerWord", Tools.canonicalKeyword(dto.getKeyword()));
param.put("filterWord", Tools.canonicalKeyword(dto.getFilterWord()));
if (!dto.getLasting() && Objects.nonNull(dto.getEndTime())) {
param.put("stopTime", dto.getEndTime());
}
param.put("filterWtype", String.join(",", dto.getType()));
param.put("taskName", dto.getName() + "_" + System.currentTimeMillis());
param.put("groupName", projectService.getProjectById(UserThreadLocal.getProjectId()).getProjectName());
param.put("isKsSubject", true);
param.put("updateTime", System.currentTimeMillis());
param.put("updateUser", UserThreadLocal.getNickname());
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> request = new HttpEntity<>(param.toJSONString(), httpHeaders);
JSONObject body = restTemplate.postForEntity(updateIStarShineSubjectTaskUrl, request, JSONObject.class).getBody();
if (Objects.isNull(body) || body.isEmpty() || Boolean.FALSE.equals(body.getBooleanValue("status"))){
log.info(JSONObject.toJSONString(plan) + "-修改快搜订阅任务失败-" + body);
return ResponseResult.failure("修改失败");
}
return ResponseResult.success();
}
......@@ -1781,14 +1880,10 @@ public class MarkDataServiceImpl implements MarkDataService {
* @return
*/
private int getWordCount(String word){
if (Objects.isNull(word)){
if (StringUtils.isBlank(word)){
return 0;
}
int count = 0;
for (String s : word.split("\\|")) {
count += s.split(" ").length;
}
return count;
return word.split("\\|").length;
}
@Override
......
......@@ -1325,7 +1325,7 @@ public class Tools {
}
/**
* 丨处理
* 丨处理, 丨|| 三者有所区别
*
* @param str
* @return
......@@ -1335,6 +1335,10 @@ public class Tools {
if (str.split("[\\u4e28]+").length > 1) {
str = str.replaceAll("[\\u4e28]+", "|");
}
// |替换
if (str.split("[\\uff5c]+").length > 1){
str = str.replaceAll("[\\uff5c]+", "|");
}
return Arrays.stream(str.split("[\\u007c]+")).filter(StringUtils::isNotBlank).collect(Collectors.joining("|"));
}
}
\ No newline at end of file
......@@ -127,4 +127,8 @@ wx.getuserphonenumber=https://api.weixin.qq.com/wxa/business/getuserphonenumber?
toolset.articleSummary.url=https://zhiweidata.xyz/api/front/chat-swagger
toolset.articleInfo.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/match?url={1}&projectId={2}&submitter={3}
toolset.interactionUpdate.url=https://zhiwei-middleware.zhiweidata.com/interact/insertData
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch
\ No newline at end of file
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch
#\u5916\u90E8\u6570\u636E-\u5FEB\u641C\u8BA2\u9605\u670D\u52A1\u63A5\u53E3
istarshine.subject.addTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/addIStarShineSubjectTask
istarshine.subject.deleteTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/deleteIStarShineSubjectTask?taskId={1}&updateUserName={2}
istarshine.subject.updateTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/updateIStarShineSubjectTask
\ No newline at end of file
......@@ -32,7 +32,9 @@ mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
mongo.socketTimeout=120000
mongo.slaveOk=true
# \u6D4B\u8BD5
#primary.uri=mongodb://rsync:rsync1q2w3e4r@115.236.59.88:30001/brandkbs2?authSource=admin
# \u7EBF\u4E0A
primary.uri=mongodb://brandkbs2:3vh65l$i6qQA@202.107.192.94:17152/brandkbs2?authSource=admin
secondary.uri=mongodb://qbjcuser:qbjc1q2w3e4r@202.107.192.94:17152/qbjc?authSource=admin
......@@ -48,7 +50,7 @@ es.clusterNodesHotES=202.107.192.94:29400
es.clusterNameHotES=hot-new-es
es.usernameHotES=elastic
es.passwordHotES=qWxZRW42OHkuOhmF5AXX
es.index.test = false
es.index.test=false
#channel-index
channel.index.registry=zookeeper://192.168.0.11:2181?backup=192.168.0.30:2181,192.168.0.35:2181
......@@ -131,4 +133,8 @@ wx.getuserphonenumber=https://api.weixin.qq.com/wxa/business/getuserphonenumber?
toolset.articleSummary.url=https://zhiweidata.xyz/api/front/chat-swagger
toolset.articleInfo.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/match?url={1}&projectId={2}&submitter={3}
toolset.interactionUpdate.url=https://zhiwei-middleware.zhiweidata.com/interact/insertData
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch
\ No newline at end of file
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch
#\u5916\u90E8\u6570\u636E-\u5FEB\u641C\u8BA2\u9605\u670D\u52A1\u63A5\u53E3
istarshine.subject.addTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/addIStarShineSubjectTask
istarshine.subject.deleteTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/deleteIStarShineSubjectTask?taskId={1}&updateUserName={2}
istarshine.subject.updateTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/updateIStarShineSubjectTask
\ No newline at end of file
......@@ -127,4 +127,8 @@ wx.getuserphonenumber=https://api.weixin.qq.com/wxa/business/getuserphonenumber?
toolset.articleSummary.url=https://zhiweidata.xyz/api/front/chat-swagger
toolset.articleInfo.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/match?url={1}&projectId={2}&submitter={3}
toolset.interactionUpdate.url=https://zhiwei-middleware.zhiweidata.com/interact/insertData
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch
\ No newline at end of file
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch
#\u5916\u90E8\u6570\u636E-\u5FEB\u641C\u8BA2\u9605\u670D\u52A1\u63A5\u53E3
istarshine.subject.addTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/addIStarShineSubjectTask
istarshine.subject.deleteTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/deleteIStarShineSubjectTask?taskId={1}&updateUserName={2}
istarshine.subject.updateTask.url=https://istarshine-service.zhiweidata.com/istarshine/subject/updateIStarShineSubjectTask
\ No newline at end of file
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