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 { ...@@ -324,8 +324,7 @@ public class AppArticleController extends BaseController {
@ApiOperation("非人工项目-方案设置-删除方案") @ApiOperation("非人工项目-方案设置-删除方案")
@DeleteMapping("/non-manual/plan/delete/{id}") @DeleteMapping("/non-manual/plan/delete/{id}")
public ResponseResult deleteNonManualProjectPlan(@PathVariable String id) { public ResponseResult deleteNonManualProjectPlan(@PathVariable String id) {
markDataService.deleteNonManualProjectPlan(id); return markDataService.deleteNonManualProjectPlan(id);
return ResponseResult.success();
} }
@ApiOperation("非人工项目-方案设置-获取方案详情") @ApiOperation("非人工项目-方案设置-获取方案详情")
......
...@@ -103,12 +103,14 @@ public class ChannelIndex extends AbstractBaseMongo { ...@@ -103,12 +103,14 @@ public class ChannelIndex extends AbstractBaseMongo {
return res; return res;
} }
List<Map<String, Object>> cacheMaps = (List<Map<String, Object>>) sourceAsMap.get(GenericAttribute.ES_BRANDKBS_CACHE_MAPS); 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) { for (Map<String, Object> cacheMap : cacheMaps) {
String projectId = String.valueOf(cacheMap.get("project_id")); String projectId = String.valueOf(cacheMap.get("project_id"));
String contendId = String.valueOf(cacheMap.get("contend_id")); String contendId = String.valueOf(cacheMap.get("contend_id"));
// 剔除非人工项目 // 剔除非人工项目
if(manualProjectIds.contains(projectId)){ if(nonManualProjectIds.contains(projectId)){
continue; continue;
} }
ChannelIndex channelIndex = new ChannelIndex(projectId, contendId, messagePlatform.getName(), realSource, source); ChannelIndex channelIndex = new ChannelIndex(projectId, contendId, messagePlatform.getName(), realSource, source);
......
...@@ -60,6 +60,11 @@ public class NonManualProjectPlan extends AbstractBaseMongo{ ...@@ -60,6 +60,11 @@ public class NonManualProjectPlan extends AbstractBaseMongo{
*/ */
private String submitter; private String submitter;
/**
* 快搜订阅服务任务id
*/
private String IStarShineSubjectTaskId;
public NonManualProjectPlan(NonManualProjectPlanDTO dto){ public NonManualProjectPlan(NonManualProjectPlanDTO dto){
this.id = dto.getId(); this.id = dto.getId();
this.projectId = UserThreadLocal.getProjectId(); this.projectId = UserThreadLocal.getProjectId();
......
...@@ -406,7 +406,7 @@ public interface MarkDataService { ...@@ -406,7 +406,7 @@ public interface MarkDataService {
* 删除非人工项目方案 * 删除非人工项目方案
* @param id * @param id
*/ */
void deleteNonManualProjectPlan(String id); ResponseResult deleteNonManualProjectPlan(String id);
/** /**
* 获取非人工项目方案详情 * 获取非人工项目方案详情
......
...@@ -70,6 +70,9 @@ import org.joda.time.PeriodType; ...@@ -70,6 +70,9 @@ import org.joda.time.PeriodType;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
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.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
...@@ -103,6 +106,15 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -103,6 +106,15 @@ public class MarkDataServiceImpl implements MarkDataService {
@Value("${whole.search.url}") @Value("${whole.search.url}")
private String wholeSearchUrl; 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") @Resource(name = "restTemplate")
private RestTemplate restTemplate; private RestTemplate restTemplate;
...@@ -1711,14 +1723,27 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -1711,14 +1723,27 @@ public class MarkDataServiceImpl implements MarkDataService {
if (nonManualProjectPlanDao.count(new Query(Criteria.where("projectId").is(UserThreadLocal.getProjectId()))) >= 5) { if (nonManualProjectPlanDao.count(new Query(Criteria.where("projectId").is(UserThreadLocal.getProjectId()))) >= 5) {
return ResponseResult.failure("超过方案数量上限5"); return ResponseResult.failure("超过方案数量上限5");
} }
// 同时添加快搜订阅任务
String iStarShineSubjectTaskId = addIStarShineSubjectTask(dto);
if (Objects.isNull(iStarShineSubjectTaskId)){
return ResponseResult.failure("添加方案失败");
}
NonManualProjectPlan plan = new NonManualProjectPlan(dto); NonManualProjectPlan plan = new NonManualProjectPlan(dto);
plan.setIStarShineSubjectTaskId(iStarShineSubjectTaskId);
nonManualProjectPlanDao.insertOne(plan); nonManualProjectPlanDao.insertOne(plan);
return ResponseResult.success(); return ResponseResult.success();
} }
@Override @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); nonManualProjectPlanDao.deleteOneById(id);
return ResponseResult.success();
} }
@Override @Override
...@@ -1731,7 +1756,81 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -1731,7 +1756,81 @@ public class MarkDataServiceImpl implements MarkDataService {
NonManualProjectPlan existPlan = nonManualProjectPlanDao.findOneById(dto.getId()); NonManualProjectPlan existPlan = nonManualProjectPlanDao.findOneById(dto.getId());
NonManualProjectPlan plan = new NonManualProjectPlan(dto); NonManualProjectPlan plan = new NonManualProjectPlan(dto);
plan.setCTime(existPlan.getCTime()); plan.setCTime(existPlan.getCTime());
plan.setIStarShineSubjectTaskId(existPlan.getIStarShineSubjectTaskId());
ResponseResult responseResult = updateIStarShineSubjectTask(dto);
if (!responseResult.isStatus()){
return responseResult;
}
nonManualProjectPlanDao.updateOne(plan); 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(); return ResponseResult.success();
} }
...@@ -1781,14 +1880,10 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -1781,14 +1880,10 @@ public class MarkDataServiceImpl implements MarkDataService {
* @return * @return
*/ */
private int getWordCount(String word){ private int getWordCount(String word){
if (Objects.isNull(word)){ if (StringUtils.isBlank(word)){
return 0; return 0;
} }
int count = 0; return word.split("\\|").length;
for (String s : word.split("\\|")) {
count += s.split(" ").length;
}
return count;
} }
@Override @Override
......
...@@ -1325,7 +1325,7 @@ public class Tools { ...@@ -1325,7 +1325,7 @@ public class Tools {
} }
/** /**
* 丨处理 * 丨处理, 丨|| 三者有所区别
* *
* @param str * @param str
* @return * @return
...@@ -1335,6 +1335,10 @@ public class Tools { ...@@ -1335,6 +1335,10 @@ public class Tools {
if (str.split("[\\u4e28]+").length > 1) { if (str.split("[\\u4e28]+").length > 1) {
str = str.replaceAll("[\\u4e28]+", "|"); 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("|")); return Arrays.stream(str.split("[\\u007c]+")).filter(StringUtils::isNotBlank).collect(Collectors.joining("|"));
} }
} }
\ No newline at end of file
...@@ -128,3 +128,7 @@ toolset.articleSummary.url=https://zhiweidata.xyz/api/front/chat-swagger ...@@ -128,3 +128,7 @@ 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.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.interactionUpdate.url=https://zhiwei-middleware.zhiweidata.com/interact/insertData
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch 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 ...@@ -32,7 +32,9 @@ mongo.autoConnectRetry=true
mongo.socketKeepAlive=true mongo.socketKeepAlive=true
mongo.socketTimeout=120000 mongo.socketTimeout=120000
mongo.slaveOk=true mongo.slaveOk=true
# \u6D4B\u8BD5
#primary.uri=mongodb://rsync:rsync1q2w3e4r@115.236.59.88:30001/brandkbs2?authSource=admin #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 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 secondary.uri=mongodb://qbjcuser:qbjc1q2w3e4r@202.107.192.94:17152/qbjc?authSource=admin
...@@ -48,7 +50,7 @@ es.clusterNodesHotES=202.107.192.94:29400 ...@@ -48,7 +50,7 @@ es.clusterNodesHotES=202.107.192.94:29400
es.clusterNameHotES=hot-new-es es.clusterNameHotES=hot-new-es
es.usernameHotES=elastic es.usernameHotES=elastic
es.passwordHotES=qWxZRW42OHkuOhmF5AXX es.passwordHotES=qWxZRW42OHkuOhmF5AXX
es.index.test = false es.index.test=false
#channel-index #channel-index
channel.index.registry=zookeeper://192.168.0.11:2181?backup=192.168.0.30:2181,192.168.0.35:2181 channel.index.registry=zookeeper://192.168.0.11:2181?backup=192.168.0.30:2181,192.168.0.35:2181
...@@ -132,3 +134,7 @@ toolset.articleSummary.url=https://zhiweidata.xyz/api/front/chat-swagger ...@@ -132,3 +134,7 @@ 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.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.interactionUpdate.url=https://zhiwei-middleware.zhiweidata.com/interact/insertData
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch 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
...@@ -128,3 +128,7 @@ toolset.articleSummary.url=https://zhiweidata.xyz/api/front/chat-swagger ...@@ -128,3 +128,7 @@ 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.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.interactionUpdate.url=https://zhiwei-middleware.zhiweidata.com/interact/insertData
toolset.interactionResult.url=https://zhiwei-middleware.zhiweidata.com/interact/findDataBatch 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