Commit 2d9f74df by 陈健智

事件互动量更新增加表头格式校验

parent ee34af4c
...@@ -77,8 +77,7 @@ public class AppToolsetController { ...@@ -77,8 +77,7 @@ public class AppToolsetController {
@LogRecord(description = "工具库-本品事件影响力更新") @LogRecord(description = "工具库-本品事件影响力更新")
public ResponseResult primaryEventUpdate(@RequestParam MultipartFile file, public ResponseResult primaryEventUpdate(@RequestParam MultipartFile file,
@RequestParam Boolean extraCompute){ @RequestParam Boolean extraCompute){
toolsetService.primaryEventUpdate(file, extraCompute); return toolsetService.primaryEventUpdate(file, extraCompute);
return ResponseResult.success();
} }
@ApiOperation("工具库-事件影响力更新-竞品更新") @ApiOperation("工具库-事件影响力更新-竞品更新")
......
...@@ -6,6 +6,7 @@ import com.zhiwei.brandkbs2.easyexcel.dto.UploadBytedanceEventDTO; ...@@ -6,6 +6,7 @@ import com.zhiwei.brandkbs2.easyexcel.dto.UploadBytedanceEventDTO;
import com.zhiwei.brandkbs2.pojo.BytedanceCustomEventUpdateTaskData; import com.zhiwei.brandkbs2.pojo.BytedanceCustomEventUpdateTaskData;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -26,6 +27,23 @@ public class BytedanceEventListener extends AnalysisEventListener<UploadBytedanc ...@@ -26,6 +27,23 @@ public class BytedanceEventListener extends AnalysisEventListener<UploadBytedanc
this.data = data; this.data = data;
} }
/**
* 表头格式校验
* @param headMap
* @param context
*/
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
if (!"序号".equals(headMap.get(0)) || !"平台类型".equals(headMap.get(1)) || !"发布平台".equals(headMap.get(2))
|| !"渠道".equals(headMap.get(3)) || !"时间".equals(headMap.get(4)) || !"标题".equals(headMap.get(5))
|| !"文本".equals(headMap.get(6)) || !"地址".equals(headMap.get(7)) || !"命中词".equals(headMap.get(8))
|| !"情感倾向".equals(headMap.get(9)) || !"事件标签".equals(headMap.get(10)) || !"在看".equals(headMap.get(11))
|| !"阅读".equals(headMap.get(12)) || !"点赞".equals(headMap.get(13)) || !"评论".equals(headMap.get(14))
|| !"转发".equals(headMap.get(15))) {
throw new IllegalArgumentException("表格格式有误-计算失败");
}
}
@Override @Override
public void invoke(UploadBytedanceEventDTO dto, AnalysisContext context) { public void invoke(UploadBytedanceEventDTO dto, AnalysisContext context) {
BytedanceCustomEventUpdateTaskData taskData = new BytedanceCustomEventUpdateTaskData(); BytedanceCustomEventUpdateTaskData taskData = new BytedanceCustomEventUpdateTaskData();
......
...@@ -76,7 +76,7 @@ public interface ToolsetService { ...@@ -76,7 +76,7 @@ public interface ToolsetService {
* @param file excel文件 * @param file excel文件
* @param extraCompute 是否计算实时传播力与传播影响力 * @param extraCompute 是否计算实时传播力与传播影响力
*/ */
void primaryEventUpdate(MultipartFile file, Boolean extraCompute); ResponseResult primaryEventUpdate(MultipartFile file, Boolean extraCompute);
/** /**
* 竞品事件影响力计算 * 竞品事件影响力计算
......
...@@ -368,19 +368,27 @@ public class ToolsetServiceImpl implements ToolsetService { ...@@ -368,19 +368,27 @@ public class ToolsetServiceImpl implements ToolsetService {
} }
@Override @Override
public void primaryEventUpdate(MultipartFile file, Boolean extraCompute) { public ResponseResult primaryEventUpdate(MultipartFile file, Boolean extraCompute) {
BytedanceCustomEventUpdateTask task = BytedanceCustomEventUpdateTask.createTaskPrimary(extraCompute); BytedanceCustomEventUpdateTask task = BytedanceCustomEventUpdateTask.createTaskPrimary(extraCompute);
bytedanceCustomEventUpdateTaskDao.insertOne(task); bytedanceCustomEventUpdateTaskDao.insertOne(task);
List<BytedanceCustomEventUpdateTaskData> data = new ArrayList<>(); List<BytedanceCustomEventUpdateTaskData> data = new ArrayList<>();
// excel信息提取 try {
ReadExcelDTO<UploadBytedanceEventDTO> readExcel = new ReadExcelDTO<>(); // excel信息提取
readExcel.setClazz(UploadBytedanceEventDTO.class); ReadExcelDTO<UploadBytedanceEventDTO> readExcel = new ReadExcelDTO<>();
readExcel.setAnalysisEventListener(new BytedanceEventListener(task.getId(), data)); readExcel.setClazz(UploadBytedanceEventDTO.class);
EasyExcelUtil.read(file, readExcel); readExcel.setAnalysisEventListener(new BytedanceEventListener(task.getId(), data));
EasyExcelUtil.readWithoutTryCatch(file, readExcel);
}catch (Exception e){
if (Objects.equals("表格格式有误-计算失败", e.getMessage())){
return ResponseResult.failure(e.getMessage());
}
log.error("主品牌事件影响力计算表格读取出错-", e);
return ResponseResult.failure("计算失败");
}
// 更新处理进度 // 更新处理进度
resetProcessSchedule(task.getId(), data.size()); resetProcessSchedule(task.getId(), data.size());
ApplicationProjectListener.getThreadPool().execute(() -> processEventUpdate(data, task, extraCompute)); ApplicationProjectListener.getThreadPool().execute(() -> processEventUpdate(data, task, extraCompute));
return ResponseResult.success();
} }
@Override @Override
......
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