Commit 604939f7 by shenjunjie

Merge branch 'feature' into 'dev'

Feature

See merge request !430
parents 9a9e285f 2cecf0aa
......@@ -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("非人工项目-方案设置-获取方案详情")
......
......@@ -86,7 +86,7 @@ public class ChannelEsDao extends EsClientDao {
BulkResponse bulkResponse = retryTemplate.execute(context -> {
try {
return channelEsClient.bulk(bulkRequest, RequestOptions.DEFAULT);
} catch (IOException ignored) {
} catch (Exception ignored) {
return null;
}
});
......
......@@ -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.nonNull(body) && !body.isEmpty() && !body.getBoolean("status")){
log.info(id + "-删除快搜订阅任务失败,接口返回信息-" + body.toJSONString());
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();
}
......
......@@ -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.interactionUpdate.url=https://zhiwei-middleware.zhiweidata.com/interact/insertData
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
......@@ -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.interactionUpdate.url=https://zhiwei-middleware.zhiweidata.com/interact/insertData
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
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
#\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