Commit 01ebd406 by shenjunjie

Merge branch 'release' into 'master'

Release

See merge request !408
parents fe647996 641180ae
...@@ -56,13 +56,18 @@ public class AopDownloadTask { ...@@ -56,13 +56,18 @@ public class AopDownloadTask {
downloadTaskService.updateDownloadTask(taskId, 100, DownloadTask.Status.FAILED.getName(), null); downloadTaskService.updateDownloadTask(taskId, 100, DownloadTask.Status.FAILED.getName(), null);
ExceptionCast.cast(CommonCodeEnum.FAIL, "下载异常", e); ExceptionCast.cast(CommonCodeEnum.FAIL, "下载异常", e);
} }
ResponseResult responseResult = (ResponseResult) proceed;
// 更新下载任务 // 更新下载任务
if (method.getAnnotation(com.zhiwei.brandkbs2.aop.DownloadTask.class).entity()){ if (responseResult.isStatus()) {
fileAddress = JSONObject.parseObject(((ResponseResult) proceed).getData().toString()).getString("filePath"); if (method.getAnnotation(com.zhiwei.brandkbs2.aop.DownloadTask.class).entity()) {
fileAddress = JSONObject.parseObject(responseResult.getData().toString()).getString("filePath");
} else {
fileAddress = ((ResponseResult) proceed).getData().toString();
}
downloadTaskService.updateDownloadTask(taskId, 100, DownloadTask.Status.FINISH.getName(), fileAddress);
}else { }else {
fileAddress = ((ResponseResult) proceed).getData().toString(); downloadTaskService.updateDownloadTask(taskId, 100, DownloadTask.Status.FAILED.getName(), null);
} }
downloadTaskService.updateDownloadTask(taskId, 100, DownloadTask.Status.FINISH.getName(), fileAddress);
return proceed; return proceed;
} }
} }
...@@ -14,10 +14,7 @@ import com.zhiwei.brandkbs2.pojo.vo.ProjectVO; ...@@ -14,10 +14,7 @@ import com.zhiwei.brandkbs2.pojo.vo.ProjectVO;
import com.zhiwei.brandkbs2.service.*; import com.zhiwei.brandkbs2.service.*;
import com.zhiwei.brandkbs2.util.Tools; import com.zhiwei.brandkbs2.util.Tools;
import com.zhiwei.middleware.mark.vo.MarkerTag; import com.zhiwei.middleware.mark.vo.MarkerTag;
import io.swagger.annotations.Api; import io.swagger.annotations.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -207,6 +204,17 @@ public class ProjectController extends BaseController { ...@@ -207,6 +204,17 @@ public class ProjectController extends BaseController {
return ResponseResult.success(eventTags); return ResponseResult.success(eventTags);
} }
@ApiOperation("获取项目模块配置-工具库-字节事件影响力详情")
@ApiImplicitParams({@ApiImplicitParam(name = "page", value = "页码", required = false, defaultValue = "1", paramType = "query", dataType = "int"),
@ApiImplicitParam(name = "size", value = "每页记录数", required = false, defaultValue = "10", paramType = "query", dataType = "int"),
@ApiImplicitParam(name = "type", value = "详情类型", required = true, defaultValue = "", paramType = "query", dataType = "string")})
@GetMapping("/bytedance/info")
public ResponseResult getToolsetBytedanceCustomInfo(@RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
@ApiParam(name = "type", value = "重要媒体|平台权重|渠道影响力") @RequestParam(value = "type") String type) {
return ResponseResult.success(ProjectService.getToolsetBytedanceCustomInfo(page, pageSize, type));
}
@ApiOperation("产品公告-新建公告") @ApiOperation("产品公告-新建公告")
@PostMapping("/notice/add") @PostMapping("/notice/add")
public ResponseResult addNoticeInfo(@RequestBody NoticeInfoDTO noticeInfoDTO){ public ResponseResult addNoticeInfo(@RequestBody NoticeInfoDTO noticeInfoDTO){
......
...@@ -66,6 +66,9 @@ public class AppDownloadController extends BaseController { ...@@ -66,6 +66,9 @@ public class AppDownloadController extends BaseController {
@Resource(name = "markDataServiceImpl") @Resource(name = "markDataServiceImpl")
MarkDataService markDataService; MarkDataService markDataService;
@Resource(name = "toolsetServiceImpl")
private ToolsetService toolsetService;
@Value("${qbjc.interface.url}") @Value("${qbjc.interface.url}")
private String yuqingInterface; private String yuqingInterface;
...@@ -498,6 +501,41 @@ public class AppDownloadController extends BaseController { ...@@ -498,6 +501,41 @@ public class AppDownloadController extends BaseController {
return ResponseResult.success(filePath); return ResponseResult.success(filePath);
} }
@ApiOperation("工具库-事件影响力更新-模板下载")
@GetMapping("/event-update/template")
@DownloadTask(taskName = "事件影响力更新模板下载", description = "事件影响力更新模板")
public ResponseResult downloadEventUpdateTemplate(){
List<List<String>> head = new ArrayList<>();
head.add(Collections.singletonList("平台类型"));
head.add(Collections.singletonList("渠道名称"));
head.add(Collections.singletonList("链接"));
head.add(Collections.singletonList("事件名"));
head.add(Collections.singletonList("微博转发"));
head.add(Collections.singletonList("微博评论"));
head.add(Collections.singletonList("微博点赞"));
head.add(Collections.singletonList("微信阅读"));
head.add(Collections.singletonList("微信在看"));
// excel写入至指定路径
String projectName = projectService.getProjectById(UserThreadLocal.getProjectId()).getProjectName();
String filePath = EasyExcelUtil.generateExcelFilePath(brandkbsFilePath, projectName, UserThreadLocal.getNickname(), "事件更新模板");
EasyExcelUtil.dynamicHeadWrite(filePath, "模板", head, Collections.emptyList());
return ResponseResult.success(filePath);
}
@ApiOperation("工具库-事件影响力更新-本品更新结果下载")
@GetMapping("/event-update/result")
@DownloadTask(taskName = "本品更新结果下载", description = "本品更新结果")
public ResponseResult downloadPrimaryComputeResult(@RequestParam(name = "taskId") String taskId){
return ResponseResult.success(toolsetService.downloadPrimaryComputeResult(taskId));
}
@ApiOperation("工具库-事件影响力更新-本品报错数据下载")
@GetMapping("/event-update/error-data")
@DownloadTask(taskName = "报错数据下载", description = "报错数据")
public ResponseResult downloadPrimaryErrorData(@RequestParam(name = "taskId") String taskId){
return ResponseResult.success(toolsetService.downloadPrimaryErrorData(taskId));
}
private HttpHeaders getHeaders() { private HttpHeaders getHeaders() {
HttpHeaders httpHeaders = new HttpHeaders(); HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.set("token", token); httpHeaders.set("token", token);
......
...@@ -71,4 +71,77 @@ public class AppToolsetController { ...@@ -71,4 +71,77 @@ public class AppToolsetController {
@ApiParam(name = "type", value = "关键词|文章") @RequestParam String type){ @ApiParam(name = "type", value = "关键词|文章") @RequestParam String type){
return toolsetService.getHighWord(file, type); return toolsetService.getHighWord(file, type);
} }
@ApiOperation("工具库-事件影响力更新-本品更新")
@PostMapping("/event-update/primary")
@LogRecord(description = "工具库-本品事件影响力更新")
public ResponseResult primaryEventUpdate(@RequestParam MultipartFile file,
@RequestParam Boolean extraCompute){
toolsetService.primaryEventUpdate(file, extraCompute);
return ResponseResult.success();
}
@ApiOperation("工具库-事件影响力更新-竞品更新")
@GetMapping("/event-update/contend")
@LogRecord(description = "工具库-竞品事件影响力更新")
public ResponseResult contendEventUpdate(@RequestParam(name = "keyword") String keyword,
@RequestParam(name = "startTime") Long startTime,
@RequestParam(name = "endTime") Long endTime){
toolsetService.contendEventUpdate(keyword, startTime, endTime);
return ResponseResult.success();
}
@ApiOperation("工具库-事件影响力更新-本品补充更新")
@PostMapping("/event-update/primary/additional")
public ResponseResult eventAdditionalUpdate(@RequestParam MultipartFile file,
@RequestParam String taskId){
toolsetService.eventAdditionalUpdate(file, taskId);
return ResponseResult.success();
}
@ApiOperation("工具库-事件影响力更新-轮询事件更新处理状态")
@GetMapping("/event-update/schedule")
public ResponseResult scheduleProcessStatus(){
return ResponseResult.success(toolsetService.scheduleProcessStatus());
}
@ApiOperation("工具库-事件影响力更新-本品更新结果")
@GetMapping("/event-update/primary/result")
public ResponseResult getPrimaryComputeResult(@RequestParam(name = "taskId") String taskId,
@RequestParam(name = "page") int page,
@RequestParam(name = "pageSize") int pageSize){
return ResponseResult.success(toolsetService.getPrimaryComputeResult(taskId, page, pageSize));
}
@ApiOperation("工具库-事件影响力更新-竞品更新结果")
@PutMapping("/event-update/contend/result/{taskId}")
public ResponseResult getContendComputeResult(@PathVariable String taskId){
return ResponseResult.success(toolsetService.getContendComputeResult(taskId));
}
@ApiOperation("工具库-事件影响力更新-历史记录")
@GetMapping("/event-update/history")
public ResponseResult getEventUpdateTaskList(@RequestParam(name = "page") int page,
@RequestParam(name = "pageSize") int pageSize){
return ResponseResult.success(toolsetService.getEventUpdateTaskList(page, pageSize));
}
@ApiOperation("工具库-事件影响力更新-取消任务")
@PutMapping("/event-update/cancel/{taskId}")
public ResponseResult cancelTask(@PathVariable String taskId){
toolsetService.cancelTask(taskId);
return ResponseResult.success();
}
@ApiOperation("工具库-事件影响力更新-获取是否有未读任务信息")
@GetMapping("/event-update/getRead")
public ResponseResult getIfUnread(){
return ResponseResult.success(toolsetService.getIfUnread());
}
@ApiOperation("工具库-获取项目工具库功能显示列表")
@GetMapping("/show-list")
public ResponseResult getProjectToolsetShowList(){
return ResponseResult.success(toolsetService.getProjectToolsetShowList());
}
} }
package com.zhiwei.brandkbs2.dao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomChannel;
import org.springframework.data.mongodb.core.query.Query;
/**
* @ClassName: BytedanceCustomChannelDao
* @Description BytedanceCustomChannelDao
* @author: cjz
* @date: 2023-10-13 15:43
*/
public interface BytedanceCustomChannelDao extends BaseMongoDao<BytedanceCustomChannel>{
boolean exist(Query query);
}
package com.zhiwei.brandkbs2.dao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomChannelInfluence;
import org.springframework.data.mongodb.core.query.Query;
/**
* @ClassName: BytedanceCustomChannelInfluenceDao
* @Description BytedanceCustomChannelInfluenceDao
* @author: cjz
* @date: 2023-10-13 15:45
*/
public interface BytedanceCustomChannelInfluenceDao extends BaseMongoDao<BytedanceCustomChannelInfluence>{
BytedanceCustomChannelInfluence findOne(Query query);
}
package com.zhiwei.brandkbs2.dao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomEventUpdateTask;
import org.springframework.data.mongodb.core.query.Query;
/**
* @ClassName: BytedanceCustomEventUpdateTaskDao
* @Description BytedanceCustomEventUpdateTaskDao
* @author: cjz
* @date: 2023-10-17 09:30
*/
public interface BytedanceCustomEventUpdateTaskDao extends BaseMongoDao<BytedanceCustomEventUpdateTask>{
BytedanceCustomEventUpdateTask findOne(Query query);
}
package com.zhiwei.brandkbs2.dao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomEventUpdateTaskData;
/**
* @ClassName: BytedanceCustomEventUpdateTaskDataDao
* @Description BytedanceCustomEventUpdateTaskDataDao
* @author: cjz
* @date: 2023-10-24 13:30
*/
public interface BytedanceCustomEventUpdateTaskDataDao extends BaseMongoDao<BytedanceCustomEventUpdateTaskData> {
}
package com.zhiwei.brandkbs2.dao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomPlatformWeight;
/**
* @ClassName: BytedanceCustomChannelWeightDao
* @Description BytedanceCustomChannelWeightDao
* @author: cjz
* @date: 2023-10-13 15:47
*/
public interface BytedanceCustomPlatformWeightDao extends BaseMongoDao<BytedanceCustomPlatformWeight>{
}
package com.zhiwei.brandkbs2.dao.impl;
import com.zhiwei.brandkbs2.dao.BytedanceCustomChannelDao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomChannel;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
/**
* @ClassName: BytedanceCustomChannelDaoImpl
* @Description BytedanceCustomChannelDaoImpl
* @author: cjz
* @date: 2023-10-13 15:44
*/
@Component("bytedanceCustomChannelDao")
public class BytedanceCustomChannelDaoImpl extends BaseMongoDaoImpl<BytedanceCustomChannel> implements BytedanceCustomChannelDao {
private static final String COLLECTION_NAME = "brandkbs_bytedance_custom_channel";
public BytedanceCustomChannelDaoImpl() {
super(COLLECTION_NAME);
}
@Override
public boolean exist(Query query) {
return mongoTemplate.exists(query, BytedanceCustomChannel.class);
}
}
package com.zhiwei.brandkbs2.dao.impl;
import com.zhiwei.brandkbs2.dao.BytedanceCustomChannelInfluenceDao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomChannelInfluence;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
/**
* @ClassName: BytedanceCustomChannelInfluenceDaoImpl
* @Description BytedanceCustomChannelInfluenceDaoImpl
* @author: cjz
* @date: 2023-10-13 15:46
*/
@Component("bytedanceCustomChannelInfluenceDao")
public class BytedanceCustomChannelInfluenceDaoImpl extends BaseMongoDaoImpl<BytedanceCustomChannelInfluence> implements BytedanceCustomChannelInfluenceDao {
private static final String COLLECTION_NAME = "brandkbs_bytedance_custom_channel_influence";
public BytedanceCustomChannelInfluenceDaoImpl() {
super(COLLECTION_NAME);
}
@Override
public BytedanceCustomChannelInfluence findOne(Query query) {
return mongoTemplate.findOne(query, BytedanceCustomChannelInfluence.class, COLLECTION_NAME);
}
}
package com.zhiwei.brandkbs2.dao.impl;
import com.zhiwei.brandkbs2.dao.BytedanceCustomEventUpdateTaskDao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomEventUpdateTask;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
/**
* @ClassName: BytedanceCustomEventUpdateTaskDaoImpl
* @Description BytedanceCustomEventUpdateTaskDaoImpl
* @author: cjz
* @date: 2023-10-17 09:31
*/
@Component("bytedanceCustomEventUpdateTaskDao")
public class BytedanceCustomEventUpdateTaskDaoImpl extends BaseMongoDaoImpl<BytedanceCustomEventUpdateTask> implements BytedanceCustomEventUpdateTaskDao {
private static final String COLLECTION_NAME = "brandkbs_bytedance_custom_event_task";
public BytedanceCustomEventUpdateTaskDaoImpl() {
super(COLLECTION_NAME);
}
@Override
public BytedanceCustomEventUpdateTask findOne(Query query) {
return mongoTemplate.findOne(query, BytedanceCustomEventUpdateTask.class, COLLECTION_NAME);
}
}
package com.zhiwei.brandkbs2.dao.impl;
import com.zhiwei.brandkbs2.dao.BytedanceCustomEventUpdateTaskDataDao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomEventUpdateTaskData;
import org.springframework.stereotype.Component;
/**
* @ClassName: BytedanceCustomEventUpdateTaskDataDaoImpl
* @Description BytedanceCustomEventUpdateTaskDataDaoImpl
* @author: cjz
* @date: 2023-10-24 13:31
*/
@Component("bytedanceCustomEventUpdateTaskDataDao")
public class BytedanceCustomEventUpdateTaskDataDaoImpl extends BaseMongoDaoImpl<BytedanceCustomEventUpdateTaskData> implements BytedanceCustomEventUpdateTaskDataDao {
private static final String COLLECTION_NAME = "brandkbs_bytedance_custom_event_task_data";
public BytedanceCustomEventUpdateTaskDataDaoImpl() {
super(COLLECTION_NAME);
}
}
package com.zhiwei.brandkbs2.dao.impl;
import com.zhiwei.brandkbs2.dao.BytedanceCustomPlatformWeightDao;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomPlatformWeight;
import org.springframework.stereotype.Component;
/**
* @ClassName: BytedanceCustomChannelWeightDaoImpl
* @Description BytedanceCustomChannelWeightDaoImpl
* @author: cjz
* @date: 2023-10-13 15:49
*/
@Component("BytedanceCustomPlatformWeightDao")
public class BytedanceCustomPlatformWeightDaoImpl extends BaseMongoDaoImpl<BytedanceCustomPlatformWeight> implements BytedanceCustomPlatformWeightDao {
private static final String COLLECTION_NAME = "brandkbs_bytedance_custom_platform_weight";
public BytedanceCustomPlatformWeightDaoImpl() {
super(COLLECTION_NAME);
}
}
package com.zhiwei.brandkbs2.easyexcel.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.ToString;
/**
* @author cjz
* @version 1.0
* @description 导出字节时间影响力更新结果
* @date 2023/9/14 15:31
*/
@Data
@ToString
public class ExportBytedanceEventComputeResultDTO {
@ExcelProperty("事件名")
private String name;
@ExcelProperty("影响力指数")
private Double inf;
@ExcelProperty("实时传播力")
private Double RMI;
@ExcelProperty("传播影响力")
private Double finalInf;
}
package com.zhiwei.brandkbs2.easyexcel.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* @author cjz
* @version 1.0
* @description 解析字节定制事件影响力更新上传文件
* @date 2023/10/16 09:45
*/
@Data
public class UploadBytedanceEventDTO {
@ExcelProperty("平台类型")
private String platform;
@ExcelProperty("渠道名称")
private String channel;
@ExcelProperty("链接")
private String url;
@ExcelProperty("事件名")
private String eventName;
@ExcelProperty("微博转发")
private Integer weiboForward;
@ExcelProperty("微博评论")
private Integer weiboComment;
@ExcelProperty("微博点赞")
private Integer weiboLike;
@ExcelProperty("微信阅读")
private Integer wechatRead;
@ExcelProperty("微信在看")
private Integer wechatReading;
}
package com.zhiwei.brandkbs2.easyexcel.listener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.zhiwei.brandkbs2.easyexcel.dto.UploadBytedanceEventDTO;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomEventUpdateTaskData;
import com.zhiwei.brandkbs2.util.Tools;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @ClassName: BytedanceEventListener
* @Description 字节事件上传监听类
* @author: cjz
* @date: 2023-10-16 09:50
*/
public class BytedanceEventListener extends AnalysisEventListener<UploadBytedanceEventDTO> {
private String taskId;
private List<BytedanceCustomEventUpdateTaskData> data;
public BytedanceEventListener(String taskId, List<BytedanceCustomEventUpdateTaskData> data){
this.taskId = taskId;
this.data = data;
}
@Override
public void invoke(UploadBytedanceEventDTO dto, AnalysisContext context) {
BytedanceCustomEventUpdateTaskData taskData = new BytedanceCustomEventUpdateTaskData();
taskData.setTaskId(taskId);
taskData.setEventName(dto.getEventName());
taskData.setChannel(dto.getChannel());
taskData.setPlatform(dto.getPlatform());
taskData.setUrl(dto.getUrl());
taskData.setWeiboComment(dto.getWeiboComment());
taskData.setWeiboForward(dto.getWeiboForward());
taskData.setWeiboLike(dto.getWeiboLike());
taskData.setWechatRead(dto.getWechatRead());
taskData.setWechatReading(dto.getWechatReading());
data.add(taskData);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
}
package com.zhiwei.brandkbs2.pojo;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName: BytedanceCustomChannel
* @Description 字节定制重要媒体匹配
* @author: cjz
* @date: 2023-10-13 15:11
*/
@Getter
@Setter
public class BytedanceCustomChannel extends AbstractBaseMongo{
/**
* 渠道名
*/
private String channel;
}
package com.zhiwei.brandkbs2.pojo;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName: BytedanceCustomChannel
* @Description 字节定制指定渠道影响力
* @author: cjz
* @date: 2023-10-13 15:12
*/
@Getter
@Setter
public class BytedanceCustomChannelInfluence extends AbstractBaseMongo{
/**
* 平台
*/
private String platform;
/**
* 渠道
*/
private String channel;
/**
* 影响力
*/
private double influence;
}
package com.zhiwei.brandkbs2.pojo;
import com.zhiwei.brandkbs2.auth.UserThreadLocal;
import com.zhiwei.brandkbs2.easyexcel.dto.UploadBytedanceEventDTO;
import lombok.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @ClassName: BytedanceCustomEventInfluenceTask
* @Description 字节定制事件影响力计算rw
* @author: cjz
* @date: 2023-10-16 15:12
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class BytedanceCustomEventUpdateTask extends AbstractBaseMongo{
/**
* 类型 primary|contend
*/
private String type;
/**
* 任务状态
*/
private String taskStatus;
/**
* 处理状态
*/
private String processStatus;
/**
* 是否计算实时传播力与传播影响力
*/
private Boolean extraCompute;
/**
* 事件信息
*/
private List<EventInfo> eventInfo;
/**
* 事件数据
*/
// private Map<String, List<UploadBytedanceEventDTO>> eventData;
/**
* 报错数据
*/
private List<BytedanceCustomEventUpdateTaskData> errorData;
/**
* 竞品影响力指数
*/
private Double contendInfluence;
/**
* 是否已读
*/
private Boolean read;
/**
* 是否取消任务
*/
private Boolean cancel;
/**
* 项目id
*/
private String projectId;
private String userId;
private String nickName;
private Long cTime;
private Long uTime;
@Data
@NoArgsConstructor
public static class EventInfo{
/**
* 事件名
*/
private String name;
/**
* 影响力指数
*/
private Double influence;
/**
* 实时传播力
*/
private Double RMI;
/**
* 传播影响力
*/
private Double finalInfluence;
}
@Getter
public enum TaskStatus{
FINISH("finish", "已完成"),
CALCULATING("calculating", "进行中"),
ERROR("error", "出错"),
MANUAL_CANCEL("manualCancel", "手动取消任务");
private final String status;
private final String description;
TaskStatus(String status, String description){
this.status = status;
this.description = description;
}
}
@Getter
public enum ProcessStatus{
CHANNEL_MATCH("channelMatch", "渠道匹配"),
INTERACTION_UPDATE("interactionUpdate", "互动量更新"),
INFLUENCE_COMPUTE("influenceCompute", "影响力计算"),
QUERY_YUQING("queryYuqing", "舆情库采集"),
FINISH("finish", "计算完成");
private final String status;
private final String description;
ProcessStatus(String status, String description){
this.status = status;
this.description = description;
}
}
public static BytedanceCustomEventUpdateTask createTaskPrimary(Boolean extraCompute){
BytedanceCustomEventUpdateTask task = new BytedanceCustomEventUpdateTask();
task.setType("primary");
task.setTaskStatus(TaskStatus.CALCULATING.getStatus());
task.setProcessStatus(ProcessStatus.CHANNEL_MATCH.getStatus());
task.setExtraCompute(extraCompute);
task.setEventInfo(new ArrayList<>());
task.setErrorData(new ArrayList<>());
task.setCancel(false);
task.setProjectId(UserThreadLocal.getProjectId());
task.setUserId(UserThreadLocal.getUserId());
task.setNickName(UserThreadLocal.getNickname());
task.setRead(false);
task.setCTime(System.currentTimeMillis());
task.setUTime(System.currentTimeMillis());
return task;
}
public static BytedanceCustomEventUpdateTask createTaskContend(){
BytedanceCustomEventUpdateTask task = new BytedanceCustomEventUpdateTask();
task.setType("contend");
task.setTaskStatus(TaskStatus.CALCULATING.getStatus());
task.setProcessStatus(ProcessStatus.QUERY_YUQING.getStatus());
task.setExtraCompute(false);
task.setEventInfo(null);
task.setErrorData(null);
task.setCancel(false);
task.setProjectId(UserThreadLocal.getProjectId());
task.setUserId(UserThreadLocal.getUserId());
task.setNickName(UserThreadLocal.getNickname());
task.setRead(false);
task.setCTime(System.currentTimeMillis());
task.setUTime(System.currentTimeMillis());
return task;
}
}
package com.zhiwei.brandkbs2.pojo;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @ClassName: BytedanceCustomEventInfluenceTask
* @Description 字节定制事件影响力计算rw
* @author: cjz
* @date: 2023-10-16 15:12
*/
@Getter
@Setter
@NoArgsConstructor
public class BytedanceCustomEventUpdateTaskData extends AbstractBaseMongo {
private String taskId;
private String platform;
private String channel;
private String url;
private String eventName;
private Integer weiboForward;
private Integer weiboComment;
private Integer weiboLike;
private Integer wechatRead;
private Integer wechatReading;
}
package com.zhiwei.brandkbs2.pojo;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName: BytedanceCustomChannel
* @Description 字节定制平台指标权重
* @author: cjz
* @date: 2023-10-13 15:15
*/
@Getter
@Setter
public class BytedanceCustomPlatformWeight extends AbstractBaseMongo{
/**
* 类型
*/
private String type;
/**
* 权重
*/
private double weight;
}
...@@ -5,9 +5,7 @@ import lombok.Getter; ...@@ -5,9 +5,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.Map;
/** /**
* @author sjj * @author sjj
...@@ -41,6 +39,11 @@ public class Project extends AbstractProject { ...@@ -41,6 +39,11 @@ public class Project extends AbstractProject {
private List<Integer> moduleShowList; private List<Integer> moduleShowList;
/** /**
* 工具库功能入口展示列表(目前有:摘要提取,互动量更新,词云,字节影响力计算,其中前三者默认开启)
*/
private List<String> toolsetShowList;
/**
* 重要渠道文件路径 * 重要渠道文件路径
*/ */
private String channelFileUrl; private String channelFileUrl;
...@@ -120,6 +123,7 @@ public class Project extends AbstractProject { ...@@ -120,6 +123,7 @@ public class Project extends AbstractProject {
projectVO.setContendList(this.getContendList()); projectVO.setContendList(this.getContendList());
// 模块配置 // 模块配置
projectVO.setModuleShowList(this.getModuleShowList()); projectVO.setModuleShowList(this.getModuleShowList());
projectVO.setToolsetShowList(this.getToolsetShowList());
projectVO.setChannelFileUrl(this.getChannelFileUrl()); projectVO.setChannelFileUrl(this.getChannelFileUrl());
projectVO.setNegativeChannelParams(this.getNegativeChannelParams()); projectVO.setNegativeChannelParams(this.getNegativeChannelParams());
projectVO.setPositiveChannelParams(this.getPositiveChannelParams()); projectVO.setPositiveChannelParams(this.getPositiveChannelParams());
......
...@@ -11,6 +11,7 @@ import lombok.Data; ...@@ -11,6 +11,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -94,6 +95,12 @@ public class ProjectVO { ...@@ -94,6 +95,12 @@ public class ProjectVO {
*/ */
@ApiModelProperty("舆情数据源(模块展示列表(1:标注库 2:大库))") @ApiModelProperty("舆情数据源(模块展示列表(1:标注库 2:大库))")
private List<Integer> moduleShowList; private List<Integer> moduleShowList;
/**
* 工具库功能入口展示列表(目前有:摘要提取,互动量更新,词云,字节影响力计算,其中前三者默认开启)
*/
@ApiModelProperty("工具库功能入口展示列表(目前有:摘要提取,互动量更新,词云,字节影响力计算,其中前三者默认开启)")
private List<String> toolsetShowList;
/** /**
* 黑渠道对应组 * 黑渠道对应组
*/ */
...@@ -152,6 +159,7 @@ public class ProjectVO { ...@@ -152,6 +159,7 @@ public class ProjectVO {
} }
}).collect(Collectors.toList())); }).collect(Collectors.toList()));
project.setModuleShowList(this.getModuleShowList()); project.setModuleShowList(this.getModuleShowList());
project.setToolsetShowList(this.getToolsetShowList());
project.setChannelFileUrl(this.getChannelFileUrl()); project.setChannelFileUrl(this.getChannelFileUrl());
project.setNegativeChannelParams((this.getNegativeChannelParams())); project.setNegativeChannelParams((this.getNegativeChannelParams()));
project.setPositiveChannelParams((this.getPositiveChannelParams())); project.setPositiveChannelParams((this.getPositiveChannelParams()));
......
...@@ -141,4 +141,12 @@ public interface ProjectService { ...@@ -141,4 +141,12 @@ public interface ProjectService {
*/ */
List<String> getHighlightKeyword(String projectId); List<String> getHighlightKeyword(String projectId);
/**
* 获取工具库-事件影响力更新详情
* @param page
* @param pageSize
* @param type
* @return
*/
PageVO<JSONObject> getToolsetBytedanceCustomInfo(int page, int pageSize, String type);
} }
...@@ -2,6 +2,7 @@ package com.zhiwei.brandkbs2.service; ...@@ -2,6 +2,7 @@ package com.zhiwei.brandkbs2.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.zhiwei.brandkbs2.model.ResponseResult; import com.zhiwei.brandkbs2.model.ResponseResult;
import com.zhiwei.brandkbs2.pojo.vo.PageVO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
...@@ -69,4 +70,88 @@ public interface ToolsetService { ...@@ -69,4 +70,88 @@ public interface ToolsetService {
* @return * @return
*/ */
ResponseResult getHighWord(MultipartFile file, String type); ResponseResult getHighWord(MultipartFile file, String type);
/**
* 本品事件影响力计算
* @param file excel文件
* @param extraCompute 是否计算实时传播力与传播影响力
*/
void primaryEventUpdate(MultipartFile file, Boolean extraCompute);
/**
* 竞品事件影响力计算
* @param keyword 关键词
* @param startTime 开始时间
* @param endTime 结束时间
*/
void contendEventUpdate(String keyword, Long startTime, Long endTime);
/**
* 本品事件影响力补充更新
* @param file excel文件
* @param taskId 任务id
*/
void eventAdditionalUpdate(MultipartFile file, String taskId);
/**
* 轮询事件更新处理状态
* @return
*/
JSONObject scheduleProcessStatus();
/**
* 获取本品更新结果
* @param taskId 任务id
* @param page 页码
* @param pageSize 每页数据量
* @return
*/
PageVO<JSONObject> getPrimaryComputeResult(String taskId, int page, int pageSize);
/**
* 获取竞品更新结果
* @param taskId 任务id
* @return
*/
double getContendComputeResult(String taskId);
/**
* 本品更新结果下载
* @param taskId 任务id
* @return
*/
String downloadPrimaryComputeResult(String taskId);
/**
* 本品报错数据下载
* @param taskId 任务id
* @return
*/
String downloadPrimaryErrorData(String taskId);
/**
* 获取字节定制影响力更新历史记录
* @param page 页码
* @param pageSize 每页数据量
* @return
*/
PageVO<JSONObject> getEventUpdateTaskList(int page, int pageSize);
/**
* 获取是否有未读任务信息
* @return
*/
Boolean getIfUnread();
/**
* 取消任务
* @param taskId 任务id
*/
void cancelTask(String taskId);
/**
* 获取项目工具库功能显示列表
* @return
*/
List<String> getProjectToolsetShowList();
} }
...@@ -1510,15 +1510,23 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -1510,15 +1510,23 @@ public class MarkDataServiceImpl implements MarkDataService {
@Override @Override
public ResponseResult markInteractionUpdate(MarkSearchDTO dto) { public ResponseResult markInteractionUpdate(MarkSearchDTO dto) {
Pair<String, List<ExportAppYuqingDTO>> pair = downloadList(dto, esSearchService::searchMarkHitsAndCount); List<BaseMap> list = new ArrayList<>();
assert pair != null; dto.setProjectId(UserThreadLocal.getProjectId());
List<ExportAppYuqingDTO> list = pair.getRight(); try {
SearchHits[] searchHits = esSearchService.searchMarkHitsAndCount(dto, true).getLeft();
for (SearchHits searchHit : searchHits) {
List<BaseMap> baseMaps = Arrays.stream(searchHit.getHits()).map(SearchHit::getSourceAsMap).map(Tools::getBaseFromEsMap).collect(Collectors.toList());
list.addAll(baseMaps);
}
} catch (IOException e) {
ExceptionCast.cast(CommonCodeEnum.FAIL, "es查询异常");
}
// 互动量更新剩余可用次数 // 互动量更新剩余可用次数
int interactionBalance = projectService.getProjectById(UserThreadLocal.getProjectId()).getInteractionBalance(); int interactionBalance = projectService.getProjectById(UserThreadLocal.getProjectId()).getInteractionBalance();
if (interactionBalance - list.size() < 0){ if (interactionBalance - list.size() < 0){
return ResponseResult.failure("剩余可用次数不足"); return ResponseResult.failure("剩余可用次数不足");
} }
Map<String, String> map = list.stream().collect(Collectors.toMap(ExportAppYuqingDTO::getUrl, ExportAppYuqingDTO::getPlatform, (v1, v2) -> v1)); Map<String, String> map = list.stream().collect(Collectors.toMap(BaseMap::getUrl, BaseMap::getPlatform, (v1, v2) -> v1));
// 分割map,list里每个map.size为100,目前品见最大链接限制为100,见知微tapd-wiki《互动量更新中间件使用》说明 // 分割map,list里每个map.size为100,目前品见最大链接限制为100,见知微tapd-wiki《互动量更新中间件使用》说明
List<Map<String, String>> mapList = Tools.splitMap(map, 100); List<Map<String, String>> mapList = Tools.splitMap(map, 100);
AtomicInteger id = new AtomicInteger(0); AtomicInteger id = new AtomicInteger(0);
...@@ -1537,7 +1545,7 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -1537,7 +1545,7 @@ public class MarkDataServiceImpl implements MarkDataService {
} }
} }
Map<Object, JSONObject> urlMap = result.stream().collect(Collectors.toMap(jsonObject -> jsonObject.get("url"), o -> o)); Map<Object, JSONObject> urlMap = result.stream().collect(Collectors.toMap(jsonObject -> jsonObject.get("url"), o -> o));
List<ExportInteractionUpdateDTO> exportList = list.stream().map(ExportAppYuqingDTO::getUrl) List<ExportInteractionUpdateDTO> exportList = list.stream().map(BaseMap::getUrl)
.map(url -> ExportInteractionUpdateDTO.createWithPlatform(String.valueOf(id.incrementAndGet()), map, urlMap, url)) .map(url -> ExportInteractionUpdateDTO.createWithPlatform(String.valueOf(id.incrementAndGet()), map, urlMap, url))
.collect(Collectors.toList()); .collect(Collectors.toList());
// excel输出到指定路径 // excel输出到指定路径
...@@ -1556,10 +1564,16 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -1556,10 +1564,16 @@ public class MarkDataServiceImpl implements MarkDataService {
@Override @Override
public Long interactionUpdatePrediction(MarkSearchDTO dto) { public Long interactionUpdatePrediction(MarkSearchDTO dto) {
try { try {
defaultMarkSearch(dto); String projectId = UserThreadLocal.getProjectId();
dto.setPageSize(null); String contendId = Constant.PRIMARY_CONTEND_ID;
Pair<SearchHits[], Map<String, Long>> hitsAndCounts = esSearchService.searchMarkHitsAndCount(dto, false); BoolQueryBuilder postFilter = EsQueryTools.assembleCacheMapsQuery(projectId, contendId, dto.getPoliticsLevel(), dto.getField(), dto.getRegion(), dto.getMainBodyType(), dto.getChannelEmotion());
return hitsAndCounts.getLeft()[0].getTotalHits().value; // time
postFilter.must(QueryBuilders.rangeQuery(dto.getTimeType()).gte(dto.getStartTime()).lt(dto.getEndTime()));
// platform
if (CollectionUtils.isNotEmpty(dto.getPlatforms())) {
postFilter.must(EsQueryTools.assemblePlatformQuery(Tools.getPlatformByIds(dto.getPlatforms())));
}
return esClientDao.count(postFilter);
}catch (Exception e){ }catch (Exception e){
ExceptionCast.cast(CommonCodeEnum.FAIL, "es查询异常"); ExceptionCast.cast(CommonCodeEnum.FAIL, "es查询异常");
} }
......
...@@ -5,9 +5,7 @@ import com.zhiwei.brandkbs2.auth.UserThreadLocal; ...@@ -5,9 +5,7 @@ import com.zhiwei.brandkbs2.auth.UserThreadLocal;
import com.zhiwei.brandkbs2.common.GenericAttribute; import com.zhiwei.brandkbs2.common.GenericAttribute;
import com.zhiwei.brandkbs2.common.GlobalPojo; import com.zhiwei.brandkbs2.common.GlobalPojo;
import com.zhiwei.brandkbs2.config.Constant; import com.zhiwei.brandkbs2.config.Constant;
import com.zhiwei.brandkbs2.dao.EventMiddlewareDao; import com.zhiwei.brandkbs2.dao.*;
import com.zhiwei.brandkbs2.dao.ProjectDao;
import com.zhiwei.brandkbs2.dao.UserDao;
import com.zhiwei.brandkbs2.enmus.response.ProjectCodeEnum; import com.zhiwei.brandkbs2.enmus.response.ProjectCodeEnum;
import com.zhiwei.brandkbs2.exception.ExceptionCast; import com.zhiwei.brandkbs2.exception.ExceptionCast;
import com.zhiwei.brandkbs2.model.CommonCodeEnum; import com.zhiwei.brandkbs2.model.CommonCodeEnum;
...@@ -70,6 +68,15 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -70,6 +68,15 @@ public class ProjectServiceImpl implements ProjectService {
@Resource(name = "eventMiddlewareDao") @Resource(name = "eventMiddlewareDao")
private EventMiddlewareDao eventMiddlewareDao; private EventMiddlewareDao eventMiddlewareDao;
@Resource(name = "bytedanceCustomChannelDao")
private BytedanceCustomChannelDao bytedanceCustomChannelDao;
@Resource(name = "bytedanceCustomChannelInfluenceDao")
private BytedanceCustomChannelInfluenceDao bytedanceCustomChannelInfluenceDao;
@Resource(name = "BytedanceCustomPlatformWeightDao")
private BytedanceCustomPlatformWeightDao bytedanceCustomPlatformWeightDao;
@Value("${jwt.key}") @Value("${jwt.key}")
private String jwtKey; private String jwtKey;
...@@ -433,6 +440,41 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -433,6 +440,41 @@ public class ProjectServiceImpl implements ProjectService {
return Objects.requireNonNull(project).getHighlightKeyword(); return Objects.requireNonNull(project).getHighlightKeyword();
} }
@Override
public PageVO<JSONObject> getToolsetBytedanceCustomInfo(int page, int size, String type) {
Query query = new Query();
long channelTotal = bytedanceCustomChannelDao.count(query);
long channelWeightTotal = bytedanceCustomPlatformWeightDao.count(query);
long channelInfluenceTotal = bytedanceCustomChannelInfluenceDao.count(query);
query.limit(size);
query.skip((long) (page - 1) * size);
switch (type){
case "重要媒体":
return PageVO.createPageVo(channelTotal, page, size, bytedanceCustomChannelDao.findList(query).stream().map(data ->{
JSONObject jsonObject = new JSONObject();
jsonObject.put("channel", data.getChannel());
return jsonObject;
}).collect(Collectors.toList()));
case "平台权重":
return PageVO.createPageVo(channelWeightTotal, page, size, bytedanceCustomPlatformWeightDao.findList(query).stream().map(data ->{
JSONObject jsonObject = new JSONObject();
jsonObject.put("type", data.getType());
jsonObject.put("weight", data.getWeight());
return jsonObject;
}).collect(Collectors.toList()));
case "渠道影响力":
return PageVO.createPageVo(channelInfluenceTotal, page, size, bytedanceCustomChannelInfluenceDao.findList(query).stream().map(data ->{
JSONObject jsonObject = new JSONObject();
jsonObject.put("platform", data.getPlatform());
jsonObject.put("channel", data.getChannel());
jsonObject.put("influence", data.getInfluence());
return jsonObject;
}).collect(Collectors.toList()));
default:
return PageVO.createPageVo(0, page, size, Collections.emptyList());
}
}
/** /**
* 获取舆情对应项目的情感标签 * 获取舆情对应项目的情感标签
* @param brandName * @param brandName
......
application.name = brandkbs2 application.name = brandkbs2
server.port=8888 server.port=8888
spring.flyway.encoding=UTF-8 spring.flyway.encoding=UTF-8
#\u5355\u4E2A\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u8BBE\u7F6E
spring.servlet.multipart.max-file-size=10MB
#\u603B\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u8BBE\u7F6E
spring.servlet.multipart.max-request-size=20MB
server.servlet.context-path=/brandkbs server.servlet.context-path=/brandkbs
#jwt #jwt
jwt.key=Token jwt.key=Token
...@@ -73,6 +77,7 @@ qbjc.platform.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/platfo ...@@ -73,6 +77,7 @@ qbjc.platform.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/platfo
qbjc.userCenter.url=https://login.zhiweidata.com/plogin/center qbjc.userCenter.url=https://login.zhiweidata.com/plogin/center
qbjc.userCenter.token=AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr qbjc.userCenter.token=AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr
qbjc.channel.application.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-application qbjc.channel.application.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-application
qbjc.channel.influence=https://yuqing.test.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-influence?platform={1}&channel={2}
#\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3 #\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3
crisis.search.url=https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3} crisis.search.url=https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3}
crisis.searchTags.url=https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4} crisis.searchTags.url=https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4}
...@@ -80,7 +85,7 @@ crisis.top3.url=https://crisis.zhiweidata.com/app/brandkbs/event/online-top3 ...@@ -80,7 +85,7 @@ crisis.top3.url=https://crisis.zhiweidata.com/app/brandkbs/event/online-top3
crisis.searchCriteria.url=https://crisis.zhiweidata.com/app/brandkbs/condition crisis.searchCriteria.url=https://crisis.zhiweidata.com/app/brandkbs/condition
crisis.list.url=https://crisis.zhiweidata.com/app/brandkbs/crisisList?page={1}&size={2}&startTime={3}&endTime={4}&category={5} crisis.list.url=https://crisis.zhiweidata.com/app/brandkbs/crisisList?page={1}&size={2}&startTime={3}&endTime={4}&category={5}
crisis.share.url=https://crisis.zhiweidata.com/app/brandkbs/share/{1} crisis.share.url=https://crisis.zhiweidata.com/app/brandkbs/share/{1}
crisis.event.url =https://crisis.zhiweidata.com/event/{1}/general?share={2} crisis.event.url=https://crisis.zhiweidata.com/event/{1}/general?share={2}
#\u70ED\u70B9\u5E93\u5916\u90E8\u63A5\u53E3 #\u70ED\u70B9\u5E93\u5916\u90E8\u63A5\u53E3
trends.longTimeInListSearchByInner.url=https://trends.zhiweidata.com/hotSearchTrend/inner/longTimeInListSearchByInner?sortType={1}&type={2}&day={3} trends.longTimeInListSearchByInner.url=https://trends.zhiweidata.com/hotSearchTrend/inner/longTimeInListSearchByInner?sortType={1}&type={2}&day={3}
trends.findHotSearchESDataInTimeByInner.url=https://hotsearch-manage.zhiweidata.com/hotsearch/hotSearch/findHotSearchESDataInTimeByInner?limit={1}&page={2}&type={3}&word={4} trends.findHotSearchESDataInTimeByInner.url=https://hotsearch-manage.zhiweidata.com/hotsearch/hotSearch/findHotSearchESDataInTimeByInner?limit={1}&page={2}&type={3}&word={4}
......
application.name = brandkbs2 application.name = brandkbs2
server.port=8888 server.port=8888
spring.flyway.encoding=UTF-8 spring.flyway.encoding=UTF-8
#\u5355\u4E2A\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u8BBE\u7F6E
spring.servlet.multipart.max-file-size=10MB
#\u603B\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u8BBE\u7F6E
spring.servlet.multipart.max-request-size=20MB
server.servlet.context-path=/brandkbs server.servlet.context-path=/brandkbs
#jwt #jwt
jwt.key=Token jwt.key=Token
jwt.hour=120 jwt.hour=120
#\u8DEF\u5F84\u5B58\u653E #\u8DEF\u5F84\u5B58\u653E
brandkbs.file.url=E:\\work3\\brandkbs3\\ brandkbs.file.url=D:\\ExcelTest\\
brandkbs.img.url=E:\\work\\brandkbs2\\img\\ brandkbs.img.url=D:\\ExcelTest\\
brandkbs.head.url=E:\\work\\brandkbs2\\head\\ brandkbs.head.url=D:\\ExcelTest\\
brandkbs.image.url=https://brandkbs.zhiweidata.com/brandkbs/images/ brandkbs.image.url=https://brandkbs.zhiweidata.com/brandkbs/images/
#\u56FE\u7247\u8D44\u6E90\u8DEF\u5F84 #\u56FE\u7247\u8D44\u6E90\u8DEF\u5F84
cbs.imagesPath=file:${brandkbs.img.url},file:${brandkbs.head.url} cbs.imagesPath=file:${brandkbs.img.url},file:${brandkbs.head.url}
...@@ -76,6 +80,7 @@ qbjc.platform.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/platfo ...@@ -76,6 +80,7 @@ qbjc.platform.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/platfo
qbjc.userCenter.url=http://login.zhiweidata.top/plogin/center qbjc.userCenter.url=http://login.zhiweidata.top/plogin/center
qbjc.userCenter.token=AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr qbjc.userCenter.token=AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr
qbjc.channel.application.url=http://192.168.0.79:11000/qbjcbackPhoenix/interface/middleware/channel-application qbjc.channel.application.url=http://192.168.0.79:11000/qbjcbackPhoenix/interface/middleware/channel-application
qbjc.channel.influence=https://yuqing.test.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-influence?platform={1}&channel={2}
#\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3 #\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3
crisis.search.url=https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3} crisis.search.url=https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3}
crisis.searchTags.url=https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4} crisis.searchTags.url=https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4}
...@@ -83,7 +88,7 @@ crisis.top3.url=https://crisis.zhiweidata.com/app/brandkbs/event/online-top3 ...@@ -83,7 +88,7 @@ crisis.top3.url=https://crisis.zhiweidata.com/app/brandkbs/event/online-top3
crisis.searchCriteria.url=https://crisis.zhiweidata.com/app/brandkbs/condition crisis.searchCriteria.url=https://crisis.zhiweidata.com/app/brandkbs/condition
crisis.list.url=https://crisis.zhiweidata.com/app/brandkbs/crisisList?page={1}&size={2}&startTime={3}&endTime={4}&category={5} crisis.list.url=https://crisis.zhiweidata.com/app/brandkbs/crisisList?page={1}&size={2}&startTime={3}&endTime={4}&category={5}
crisis.share.url=https://crisis.zhiweidata.com/app/brandkbs/share/{1} crisis.share.url=https://crisis.zhiweidata.com/app/brandkbs/share/{1}
crisis.event.url =https://crisis.zhiweidata.com/event/{1}/general?share={2} crisis.event.url=https://crisis.zhiweidata.com/event/{1}/general?share={2}
#\u70ED\u70B9\u5E93\u5916\u90E8\u63A5\u53E3 #\u70ED\u70B9\u5E93\u5916\u90E8\u63A5\u53E3
trends.longTimeInListSearchByInner.url=https://trends.zhiweidata.com/hotSearchTrend/inner/longTimeInListSearchByInner?sortType={1}&type={2}&day={3} trends.longTimeInListSearchByInner.url=https://trends.zhiweidata.com/hotSearchTrend/inner/longTimeInListSearchByInner?sortType={1}&type={2}&day={3}
trends.findHotSearchESDataInTimeByInner.url=https://hotsearch-manage.zhiweidata.com/hotsearch/hotSearch/findHotSearchESDataInTimeByInner?limit={1}&page={2}&type={3}&word={4} trends.findHotSearchESDataInTimeByInner.url=https://hotsearch-manage.zhiweidata.com/hotsearch/hotSearch/findHotSearchESDataInTimeByInner?limit={1}&page={2}&type={3}&word={4}
......
application.name = brandkbs2 application.name = brandkbs2
server.port=8888 server.port=8888
spring.flyway.encoding=UTF-8 spring.flyway.encoding=UTF-8
#\u5355\u4E2A\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u8BBE\u7F6E
spring.servlet.multipart.max-file-size=10MB
#\u603B\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u8BBE\u7F6E
spring.servlet.multipart.max-request-size=20MB
server.servlet.context-path=/brandkbs server.servlet.context-path=/brandkbs
#jwt #jwt
jwt.key=Token jwt.key=Token
...@@ -73,6 +77,7 @@ qbjc.platform.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/platfo ...@@ -73,6 +77,7 @@ qbjc.platform.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/platfo
qbjc.userCenter.url=https://login.zhiweidata.com/plogin/center qbjc.userCenter.url=https://login.zhiweidata.com/plogin/center
qbjc.userCenter.token=AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr qbjc.userCenter.token=AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr
qbjc.channel.application.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-application qbjc.channel.application.url=https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-application
qbjc.channel.influence=https://yuqing.test.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-influence?platform={1}&channel={2}
#\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3 #\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3
crisis.search.url=https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3} crisis.search.url=https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3}
crisis.searchTags.url=https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4} crisis.searchTags.url=https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4}
...@@ -80,7 +85,7 @@ crisis.top3.url=https://crisis.zhiweidata.com/app/brandkbs/event/online-top3 ...@@ -80,7 +85,7 @@ crisis.top3.url=https://crisis.zhiweidata.com/app/brandkbs/event/online-top3
crisis.searchCriteria.url=https://crisis.zhiweidata.com/app/brandkbs/condition crisis.searchCriteria.url=https://crisis.zhiweidata.com/app/brandkbs/condition
crisis.list.url=https://crisis.zhiweidata.com/app/brandkbs/crisisList?page={1}&size={2}&startTime={3}&endTime={4}&category={5} crisis.list.url=https://crisis.zhiweidata.com/app/brandkbs/crisisList?page={1}&size={2}&startTime={3}&endTime={4}&category={5}
crisis.share.url=https://crisis.zhiweidata.com/app/brandkbs/share/{1} crisis.share.url=https://crisis.zhiweidata.com/app/brandkbs/share/{1}
crisis.event.url =https://crisis.zhiweidata.com/event/{1}/general?share={2} crisis.event.url=https://crisis.zhiweidata.com/event/{1}/general?share={2}
#\u70ED\u70B9\u5E93\u5916\u90E8\u63A5\u53E3 #\u70ED\u70B9\u5E93\u5916\u90E8\u63A5\u53E3
trends.longTimeInListSearchByInner.url=https://trends.zhiweidata.com/hotSearchTrend/inner/longTimeInListSearchByInner?sortType={1}&type={2}&day={3} trends.longTimeInListSearchByInner.url=https://trends.zhiweidata.com/hotSearchTrend/inner/longTimeInListSearchByInner?sortType={1}&type={2}&day={3}
trends.findHotSearchESDataInTimeByInner.url=https://hotsearch-manage.zhiweidata.com/hotsearch/hotSearch/findHotSearchESDataInTimeByInner?limit={1}&page={2}&type={3}&word={4} trends.findHotSearchESDataInTimeByInner.url=https://hotsearch-manage.zhiweidata.com/hotsearch/hotSearch/findHotSearchESDataInTimeByInner?limit={1}&page={2}&type={3}&word={4}
......
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