Commit 8372f018 by shenjunjie

Merge branch 'feature' into 'dev'

Feature

See merge request !38
parents a17d6c42 73a6eb67
package com.zhiwei.brandkbs2.aop;
import com.zhiwei.brandkbs2.auth.UserThreadLocal;
import com.zhiwei.brandkbs2.common.GenericAttribute;
import com.zhiwei.brandkbs2.dao.BehaviorDao;
import com.zhiwei.brandkbs2.pojo.Behavior;
import com.zhiwei.brandkbs2.service.UserService;
import com.zhiwei.brandkbs2.util.Tools;
import com.zhiwei.middleware.auth.util.JwtUtil;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.HandlerMapping;
import javax.annotation.Resource;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.*;
import static java.util.Objects.nonNull;
/**
* @author cjz
* @ClassName AopLogRecord
* @Description 接口访问日志记录
* @date 2022-09-13 15:25
*/
@Aspect
@Component
public class AopLogRecord {
@Value("${jwt.key}")
private String jwtKey;
@Resource(name = "userServiceImpl")
private UserService userService;
@Resource(name = "behaviorDao")
private BehaviorDao behaviorDao;
private static final List<String> URL_PATTERNS = Arrays.asList("/getNewAll", "/getNew", "/schedule");
@Before("execution(public * com..controller..*Controller.*(..)) && !execution(* com..controller..BaseController.*(..))")
private void beforeLog(JoinPoint joinPoint) throws UnknownHostException {
long now = System.currentTimeMillis();
// RequestContextHolder是持有上下文的Request容器
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
// 获取request对象
HttpServletRequest request = Objects.requireNonNull(requestAttributes).getRequest();
// webRequest拿路径的uri和request拿的uri有区别
NativeWebRequest webRequest = new ServletWebRequest(request);
Object webRequestAttribute = webRequest.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST);
if (filterUrl(webRequestAttribute)) {
// controller接口信息
String httpMethod = request.getMethod();
String uri = request.getRequestURI();
String methodName = joinPoint.getSignature().getName();
if (!(Tools.isNullOrUndefined(request.getHeader(jwtKey)) || Tools.isNullOrUndefined(request.getHeader("pid")))) {
// 用户信息
String userId = JwtUtil.unsign(request.getHeader(jwtKey), Map.class).get(GenericAttribute.USER_ID).toString();
String projectId = request.getHeader("pid");
String nickName = userService.queryUserInfo(userId, projectId).getNickname();
// 请求地址和服务器地址
String severAddress = InetAddress.getLocalHost().getHostAddress();
String ipAddress = Tools.getIpAddress(request);
// 接口传参信息
List<Map<String, Object>> requestArguments = getRequestArguments(joinPoint);
Behavior behavior = Behavior.createBehaviorNew(userId, nickName, projectId, uri, methodName, httpMethod, requestArguments, now, now, severAddress, ipAddress);
String collectionName = behaviorDao.generateCollectionName();
behaviorDao.insertOneWithoutId(behavior, collectionName);
}
}
}
private List<Map<String, Object>> getRequestArguments(JoinPoint joinPoint) {
List<Map<String, Object>> arguments = new ArrayList<>();
// 获取参数名
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
String[] parameterNames = methodSignature.getParameterNames();
// 获取参数值
for (int i = 0; i < joinPoint.getArgs().length; i++) {
// 过滤HttpServletRequest参数
if (joinPoint.getArgs()[i] instanceof ServletRequest) {
continue;
}
// formdata文件类型判断
if (joinPoint.getArgs()[i] instanceof MultipartFile) {
Map<String, Object> fileMap = new HashMap<>();
fileMap.put("name", parameterNames[i]);
MultipartFile file = (MultipartFile) joinPoint.getArgs()[i];
// 文件名
fileMap.put("value", file.getOriginalFilename());
arguments.add(fileMap);
continue;
}
// 参数pathId、param、body
Map<String, Object> parameterMap = new HashMap<>();
parameterMap.put("name", parameterNames[i]);
parameterMap.put("value", String.valueOf(joinPoint.getArgs()[i]));
arguments.add(parameterMap);
}
return arguments;
}
/**
* url过滤
* @param attribute url
* @return
*/
private boolean filterUrl(Object attribute){
if (!nonNull(attribute)) {
return false;
}
String requestURI = String.valueOf(attribute);
for (String urlPattern : URL_PATTERNS) {
if (requestURI.contains(urlPattern)) {
return false;
}
}
return true;
}
}
......@@ -178,7 +178,7 @@ public class ArticleController extends BaseController {
requestMap.add("projectId", projectService.getProjectByContendId(UserThreadLocal.getProjectId(), contendId).getBrandLinkedGroupId());
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(requestMap, getHeadersForm());
HttpEntity<JSONObject> entity = restTemplate.exchange(yuqingInterface + "/upload/form", HttpMethod.POST, requestEntity, JSONObject.class);
behaviorService.pushBehavior(OPERATION, "上传表格", request);
behaviorService.pushBehaviorOld(OPERATION, "上传表格", request);
return ResponseResult.convertFromYuQingInterface(entity.getBody(), null);
} catch (Exception e) {
log.error("稿件上传-上传表格异常", e);
......
......@@ -53,7 +53,7 @@ public class CustomTagController extends BaseController {
public ResponseResult addCustomTag(@ApiIgnore @RequestBody JSONObject json) {
customTagService.addCustomTag(json.getString("tagName"), parseArray(json.getString("sonTagNames"), String.class));
// 添加用户行为
behaviorService.pushBehavior(OPERATION, "添加自定义标签", request);
behaviorService.pushBehaviorOld(OPERATION, "添加自定义标签", request);
return ResponseResult.success();
}
......@@ -66,7 +66,7 @@ public class CustomTagController extends BaseController {
String tagId = json.getString("tagId");
customTagService.updateCustomTag(tagName, sonTagNames, tagId);
// 添加用户行为
behaviorService.pushBehavior(OPERATION, "修改自定义标签", request);
behaviorService.pushBehaviorOld(OPERATION, "修改自定义标签", request);
return ResponseResult.success();
}
......@@ -77,7 +77,7 @@ public class CustomTagController extends BaseController {
public ResponseResult deleteCustomTag(@PathVariable String tagId) {
customTagService.deleteCustomTagByTagId(tagId);
// 添加用户行为
behaviorService.pushBehavior(OPERATION, "删除自定义标签", request);
behaviorService.pushBehaviorOld(OPERATION, "删除自定义标签", request);
return ResponseResult.success();
}
}
......@@ -108,7 +108,7 @@ public class EventController extends BaseController {
@PutMapping("/update")
public ResponseResult updateEvent(@RequestBody EventVO eventVO) {
eventService.updateEvent(eventVO);
behaviorService.pushBehavior(OPERATION, "修改事件信息:" + eventVO.getId(), request);
behaviorService.pushBehaviorOld(OPERATION, "修改事件信息:" + eventVO.getId(), request);
return ResponseResult.success();
}
......@@ -116,7 +116,7 @@ public class EventController extends BaseController {
@PutMapping("/updateFirst")
public ResponseResult updateEventFirst(@RequestBody EventDataDTO eventDataDTO) {
eventService.updateEventFirst(eventDataDTO);
behaviorService.pushBehavior(OPERATION, "修改事件首发信息:" + eventDataDTO.getEventId(), request);
behaviorService.pushBehaviorOld(OPERATION, "修改事件首发信息:" + eventDataDTO.getEventId(), request);
return ResponseResult.success();
}
......@@ -125,7 +125,7 @@ public class EventController extends BaseController {
@PostMapping("/analyze")
public ResponseResult analysisEvents(@RequestBody JSONObject info) {
eventService.analysisEvents(info.getJSONArray("eventIds").toJavaList(String.class));
behaviorService.pushBehavior(OPERATION, "批量更新事件", request);
behaviorService.pushBehaviorOld(OPERATION, "批量更新事件", request);
return ResponseResult.success();
}
......@@ -134,7 +134,7 @@ public class EventController extends BaseController {
@PutMapping("/end/{eventId}")
public ResponseResult endEvent(@PathVariable("eventId") String eventId) {
eventService.endEvent(eventId);
behaviorService.pushBehavior(OPERATION, "结束事件:" + eventId, request);
behaviorService.pushBehaviorOld(OPERATION, "结束事件:" + eventId, request);
return ResponseResult.success();
}
......@@ -143,7 +143,7 @@ public class EventController extends BaseController {
@DeleteMapping("/delete/{eventId}")
public ResponseResult deleteEvent(@PathVariable("eventId") String eventId) {
String title = eventService.deleteEvent(eventId);
behaviorService.pushBehavior(OPERATION, "删除事件:" + title, request);
behaviorService.pushBehaviorOld(OPERATION, "删除事件:" + title, request);
return ResponseResult.success();
}
......@@ -154,7 +154,7 @@ public class EventController extends BaseController {
String id = info.getString("id");
String eventId = info.getString("eventId");
String title = eventService.deleteEventData(id, eventId);
behaviorService.pushBehavior(OPERATION, "删除事件单条数据,eventId:" + eventId + ",数据id:" + id + ",事件标题:" + title, request);
behaviorService.pushBehaviorOld(OPERATION, "删除事件单条数据,eventId:" + eventId + ",数据id:" + id + ",事件标题:" + title, request);
return ResponseResult.success();
}
......@@ -225,7 +225,7 @@ public class EventController extends BaseController {
String contendId = null == info.getString("contendId") ? "0" : info.getString("contendId");
List<YqEventDTO> yqEventList = info.getJSONArray("list").toJavaList(YqEventDTO.class);
eventService.addYqEvents(contendId, yqEventList);
behaviorService.pushBehavior(OPERATION, "批量导入舆情事件数据", request);
behaviorService.pushBehaviorOld(OPERATION, "批量导入舆情事件数据", request);
return ResponseResult.success();
}
......@@ -233,7 +233,7 @@ public class EventController extends BaseController {
@PutMapping("/upload/yqAll")
public ResponseResult addEventAllByYq(@RequestBody YqEventSearchVO yqEventSearchVO) {
eventService.addYqEventAll(yqEventSearchVO);
behaviorService.pushBehavior(OPERATION, "全部导入舆情事件数据", request);
behaviorService.pushBehaviorOld(OPERATION, "全部导入舆情事件数据", request);
return ResponseResult.success();
}
......@@ -244,7 +244,7 @@ public class EventController extends BaseController {
@Auth(role = RoleEnum.SUPER_ADMIN)
public ResponseResult addEventsByFile(@RequestParam(value = "contendId", defaultValue = "0") String contendId, @RequestParam("fileUrl") String fileUrl) {
eventService.addFileEvents(contendId, fileUrl);
behaviorService.pushBehavior(OPERATION, "文件上传事件", request);
behaviorService.pushBehaviorOld(OPERATION, "文件上传事件", request);
return ResponseResult.success();
}
......@@ -254,7 +254,7 @@ public class EventController extends BaseController {
@PostMapping(value = "/data/upload", headers = "content-type=multipart/form-data")
public ResponseResult uploadEventDatas(@RequestParam(value = "contendId", defaultValue = "0") String contendId, @RequestParam("file") MultipartFile file) {
eventService.uploadEventDatas(contendId, file);
behaviorService.pushBehavior(OPERATION, "事件数据上传", request);
behaviorService.pushBehaviorOld(OPERATION, "事件数据上传", request);
return ResponseResult.success();
}
......
......@@ -76,7 +76,7 @@ public class ProjectController extends BaseController {
@PostMapping("/add")
public ResponseResult addProject(@RequestBody ProjectVO projectVO) {
ProjectService.addProject(projectVO);
behaviorService.pushBehavior(OPERATION, "添加项目配置:" + projectVO.getId(), request);
behaviorService.pushBehaviorOld(OPERATION, "添加项目配置:" + projectVO.getId(), request);
return ResponseResult.success();
}
......@@ -93,7 +93,7 @@ public class ProjectController extends BaseController {
@PutMapping("/update")
public ResponseResult updateProject(@RequestBody ProjectVO projectVO) {
ProjectService.updateProject(projectVO);
behaviorService.pushBehavior(OPERATION, "修改项目:" + projectVO.getId(), request);
behaviorService.pushBehaviorOld(OPERATION, "修改项目:" + projectVO.getId(), request);
return ResponseResult.success();
}
......@@ -102,7 +102,7 @@ public class ProjectController extends BaseController {
@DeleteMapping("/delete/{pid}")
public ResponseResult deleteProject(@PathVariable("pid") String pid) {
ProjectService.deleteProject(pid, UserThreadLocal.getProjectId());
behaviorService.pushBehavior(OPERATION, "删除项目:" + pid, request);
behaviorService.pushBehaviorOld(OPERATION, "删除项目:" + pid, request);
return ResponseResult.success();
}
......@@ -112,7 +112,7 @@ public class ProjectController extends BaseController {
public ResponseResult switchProjectShow(@PathVariable String pid) {
boolean result = ProjectService.switchProjectShow(pid);
if (result) {
behaviorService.pushBehavior(OPERATION, "切换项目展示状态:" + pid, request);
behaviorService.pushBehaviorOld(OPERATION, "切换项目展示状态:" + pid, request);
return ResponseResult.success();
} else {
return ResponseResult.failure("启动状态下的项目,不允许调整展示状态");
......@@ -124,7 +124,7 @@ public class ProjectController extends BaseController {
@PutMapping("/switch/projectStart/{pid}")
public ResponseResult switchProjectStart(@PathVariable String pid) {
ProjectService.switchProjectStart(pid);
behaviorService.pushBehavior(OPERATION, "切换项目状态:" + pid, request);
behaviorService.pushBehaviorOld(OPERATION, "切换项目状态:" + pid, request);
return ResponseResult.success();
}
......@@ -139,7 +139,7 @@ public class ProjectController extends BaseController {
@PostMapping(value = "/upload/img", headers = "content-type=multipart/form-data")
public ResponseResult uploadImg(@RequestParam("file") MultipartFile file) {
ResponseResult responseResult = Tools.uploadFile(file, brandkbsImgPath, brandkbsImageUrl);
behaviorService.pushBehavior(OPERATION, "图片上传", request);
behaviorService.pushBehaviorOld(OPERATION, "图片上传", request);
return responseResult;
}
......
......@@ -78,7 +78,7 @@ public class UserController extends BaseController {
@PostMapping("/add")
public ResponseResult addUser(@RequestBody UserDTO userDTO) {
UserService.addUser(userDTO);
behaviorService.pushBehavior(OPERATION, "添加用户:" + userDTO.getId(), request);
behaviorService.pushBehaviorOld(OPERATION, "添加用户:" + userDTO.getId(), request);
return ResponseResult.success();
}
......@@ -90,7 +90,7 @@ public class UserController extends BaseController {
@Auth(role = RoleEnum.ADMIN)
public ResponseResult deleteUser(@RequestParam(value = "uid") String userId, @RequestParam(value = "pid") String pid) {
UserService.deleteUser(userId, pid);
behaviorService.pushBehavior(OPERATION, "删除用户:" + userId, request);
behaviorService.pushBehaviorOld(OPERATION, "删除用户:" + userId, request);
return ResponseResult.success();
}
......@@ -98,7 +98,7 @@ public class UserController extends BaseController {
@PutMapping("/update")
public ResponseResult updateUser(@RequestBody UserDTO userDTO) {
UserService.updateUser(userDTO);
behaviorService.pushBehavior(OPERATION, "编辑用户:" + userDTO, request);
behaviorService.pushBehaviorOld(OPERATION, "编辑用户:" + userDTO, request);
return ResponseResult.success();
}
......@@ -121,7 +121,7 @@ public class UserController extends BaseController {
@Auth(role = RoleEnum.SUPER_ADMIN)
public ResponseResult addSuperAdmin(@RequestBody UserDTO userDTO) {
UserService.addSuperAdmin(userDTO);
behaviorService.pushBehavior(OPERATION, "添加超级管理员:" + userDTO.getId(), request);
behaviorService.pushBehaviorOld(OPERATION, "添加超级管理员:" + userDTO.getId(), request);
return ResponseResult.success();
}
......@@ -132,7 +132,7 @@ public class UserController extends BaseController {
@Auth(role = RoleEnum.SUPER_ADMIN)
public ResponseResult deleteSuperAdmin(@RequestParam(value = "uid") String userId) {
UserService.deleteSuperAdmin(userId);
behaviorService.pushBehavior(OPERATION, "删除超级管理员:" + userId, request);
behaviorService.pushBehaviorOld(OPERATION, "删除超级管理员:" + userId, request);
return ResponseResult.success();
}
......
......@@ -129,10 +129,12 @@ public class AppSearchController extends BaseController {
public ResponseResult searchWholeNetwork(@RequestBody SearchFilterDTO dto) {
long time = DateUtils.addDays(Tools.truncDate(new Date(), Constant.DAY_PATTERN), -89).getTime();
if (time > dto.getStartTime()) {
// 仅对查商业数据库时限制时间,查舆情库时本质上无时间限制
return ResponseResult.failure("仅能搜索近3个月内信息");
}
Period periodDay = new Period(dto.getStartTime(), dto.getEndTime(), PeriodType.days());
if (periodDay.getDays() > 30) {
// 仅对查商业数据库时限制时间,查舆情库时本质上无时间限制
return ResponseResult.failure("时间跨度不能超过30天");
}
return ResponseResult.success(markDataService.searchWholeNetwork(dto));
......
package com.zhiwei.brandkbs2.enmus;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
......@@ -33,6 +35,8 @@ public enum EmotionEnum {
private final int state;
private final String name;
public static final List<String> EMOTION_LIST = Arrays.asList(POSITIVE.getName(), NEUTRAL.getName(), NEGATIVE.getName());
public static final String EMOTION_LABEL_KEY = "情感倾向";
public static final String POSITIVE_LABEL = "正面";
public static final String NEUTRAL_LABEL = "中性";
......
package com.zhiwei.brandkbs2.model;
package com.zhiwei.brandkbs2.enmus.response;
import com.zhiwei.brandkbs2.model.ResultCode;
/**
* @author lxj
......
package com.zhiwei.brandkbs2.enmus.response;
import com.zhiwei.brandkbs2.model.ResultCode;
/**
* @ClassName: ReportCodeEnum
* @Description ReportCodeEnum
* @author: sjj
* @date: 2022-09-15 14:13
*/
public enum ReportCodeEnum implements ResultCode {
/**
* 该类型报告已存在
*/
REPORT_TYPE_EXIST_ERROR(false, 1101, "该类型报告已存在", 200);
/**
* 操作是否成功
*/
final boolean success;
/**
* 操作代码
*/
final int code;
/**
* 提示信息
*/
final String message;
/**
* 聚合状态码
*/
final int aggCode;
ReportCodeEnum(boolean success, int code, String message, int aggCode) {
this.success = success;
this.code = code;
this.message = message;
this.aggCode = aggCode;
}
@Override
public boolean success() {
return success;
}
@Override
public int code() {
return code;
}
@Override
public String message() {
return message;
}
@Override
public int aggCode() {
return aggCode;
}
}
......@@ -3,6 +3,9 @@ package com.zhiwei.brandkbs2.pojo;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
import java.util.Map;
/**
* @ClassName: Behavior
* @Description 用户行为实体类
......@@ -12,7 +15,6 @@ import lombok.Setter;
@Getter
@Setter
public class Behavior extends AbstractBaseMongo {
/**
* 用户ID
*/
......@@ -43,6 +45,36 @@ public class Behavior extends AbstractBaseMongo {
*/
private boolean backstage;
/**
* nickName
*/
private String nickName;
/**
* uri 访问路径
*/
private String uri;
/**
* 方法名
*/
private String methodName;
/**
* method HTTP 方法
*/
private String httpMethod;
/**
* 方法传入参数
*/
private List<Map<String, Object>> arguments;
/**
* 更新时间
*/
private Long updateTime;
/**
* 服务器地址
*/
private String severAddress;
@Getter
public static class Operation {
......@@ -54,4 +86,20 @@ public class Behavior extends AbstractBaseMongo {
this.backstage = backstage;
}
}
public static Behavior createBehaviorNew(String userId, String nickName, String projectId, String uri, String methodName, String httpMethod,
List<Map<String, Object>> requestArguments, Long CTime, Long updateTime, String severAddress, String clientAddress){
Behavior behavior = new Behavior();
behavior.setUserId(userId);
behavior.setNickName(nickName);
behavior.setProjectId(projectId);
behavior.setUri(uri);
behavior.setMethodName(methodName);
behavior.setHttpMethod(httpMethod);
behavior.setArguments(requestArguments);
behavior.setCTime(CTime);
behavior.setUpdateTime(updateTime);
behavior.setSeverAddress(severAddress);
behavior.setIp(clientAddress);
return behavior;
}
}
......@@ -22,13 +22,13 @@ public class MarkSearchDTO {
* 页码
*/
@ApiModelProperty("页码")
private int page;
private Integer page;
/**
* 大小
*/
@ApiModelProperty("每页记录数")
private int pageSize;
private Integer pageSize;
// postFilter
@ApiModelProperty(value = "项目id")
......
......@@ -21,7 +21,7 @@ public interface BehaviorService {
* @param module 操作模块
* @param request 请求
*/
void pushBehavior(Behavior.Operation operation, String module, HttpServletRequest request);
void pushBehaviorOld(Behavior.Operation operation, String module, HttpServletRequest request);
/**
* 分页查询用户行为列表
......
......@@ -52,7 +52,7 @@ public class BehaviorServiceImpl implements BehaviorService {
private com.zhiwei.brandkbs2.util.MongoUtil mongoUtil;
@Override
public void pushBehavior(Behavior.Operation operation, String module, HttpServletRequest request) {
public void pushBehaviorOld(Behavior.Operation operation, String module, HttpServletRequest request) {
try {
String userId = UserThreadLocal.getUserId();
String projectId = UserThreadLocal.getProjectId();
......
......@@ -124,7 +124,7 @@ public class ChannelServiceImpl implements ChannelService {
result.put("source", channel.getSource());
result.put("articleCount", channel.getArticleCount());
result.put("eventCount", channel.getEventCount());
result.put("emotion", channel.getEmotion());
result.put("emotion", EmotionEnum.state2Name(channel.getEmotion()));
result.put("emotionIndex", channel.getEmotionIndex());
result.put("experienceLevel", ExperienceEnum.getValueFromDataBaseName(channel.getExperienceLevel()));
result.put("lastTime", channel.getLastTime());
......@@ -1433,8 +1433,8 @@ public class ChannelServiceImpl implements ChannelService {
}
// 添加模糊匹配
channelDao.addKeywordFuzz(query, keyword, "source");
// 添加排序 TODO 2
// channelDao.addSort(query, sorter);
// 添加排序
channelDao.addSort(query, sorter);
return query;
}
......
......@@ -24,7 +24,7 @@ import com.zhiwei.brandkbs2.enmus.ImportantChannelEnum;
import com.zhiwei.brandkbs2.exception.ExceptionCast;
import com.zhiwei.brandkbs2.listener.ApplicationProjectListener;
import com.zhiwei.brandkbs2.model.CommonCodeEnum;
import com.zhiwei.brandkbs2.model.EventCodeEnum;
import com.zhiwei.brandkbs2.enmus.response.EventCodeEnum;
import com.zhiwei.brandkbs2.pojo.*;
import com.zhiwei.brandkbs2.pojo.dto.EventDataDTO;
import com.zhiwei.brandkbs2.pojo.dto.EventSearchDTO;
......@@ -547,10 +547,13 @@ public class EventServiceImpl implements EventService {
}
query.addCriteria(volumeCriteria);
}
mongoUtil.start(eventSearchDTO.getPage(), eventSearchDTO.getPageSize(), query);
// 总数
long total = eventDao.count(query);
mongoUtil.start(eventSearchDTO.getPage(), eventSearchDTO.getPageSize(), query);
// 排序
if (eventSearchDTO.getSorter().isEmpty()) {
eventSearchDTO.setSorter(JSONObject.parseObject("{\"startTime\":\"descend\"}"));
}
eventDao.addSort(query, eventSearchDTO.getSorter().toJSONString());
// 数据
List<Event> eventList = eventDao.findList(query);
......
......@@ -165,6 +165,7 @@ public class MarkDataServiceImpl implements MarkDataService {
ProjectVO project = projectService.getProjectVOById(UserThreadLocal.getProjectId());
List<ExportAppYuqingDTO> returnList = new ArrayList<>();
defaultMarkSearch(markSearchDTO);
markSearchDTO.setPageSize(null);
Pair<SearchHits[], Map<String, Long>> hitsAndCounts = searchMarkHitsAndCount(markSearchDTO, false);
for (SearchHits searchHits : hitsAndCounts.getLeft()) {
List<ExportAppYuqingDTO> collect = Arrays.stream(searchHits.getHits()).map(SearchHit::getSourceAsMap).map(ExportAppYuqingDTO::createFromEsMap).collect(Collectors.toList());
......@@ -620,8 +621,10 @@ public class MarkDataServiceImpl implements MarkDataService {
}
helper.setSort(sort);
// from size
if (null != dto.getPageSize()) {
helper.setFrom((dto.getPage() - 1) * dto.getPageSize());
helper.setSize(dto.getPageSize());
}
// HighlightBuilder ???
return helper;
}
......@@ -1473,6 +1476,11 @@ public class MarkDataServiceImpl implements MarkDataService {
searchHelper.setPostFilter(filter);
searchHelper.setSort(SortBuilders.fieldSort("time").order(SortOrder.ASC));
searchHelper.setSize(1);
SearchHits hits = esClientDao.searchResponse(searchHelper).getHits();
if (0 == hits.getHits().length) {
log.info("getYuqingMarkFirstTime-debug:{}", searchHelper.getQuery());
return 1609430400000L;
}
return Long.parseLong(esClientDao.searchResponse(searchHelper).getHits().getAt(0).getSourceAsMap().get("time") + "");
}
......
......@@ -12,6 +12,7 @@ import com.zhiwei.brandkbs2.dao.ReportDao;
import com.zhiwei.brandkbs2.dao.ReportSettingsDao;
import com.zhiwei.brandkbs2.enmus.EmotionEnum;
import com.zhiwei.brandkbs2.enmus.ReportTypeEnum;
import com.zhiwei.brandkbs2.enmus.response.ReportCodeEnum;
import com.zhiwei.brandkbs2.exception.ExceptionCast;
import com.zhiwei.brandkbs2.listener.ApplicationProjectListener;
import com.zhiwei.brandkbs2.model.CommonCodeEnum;
......@@ -95,7 +96,7 @@ public class ReportServiceImpl implements ReportService {
}
ReportSettingsDTO reportSettingsDTO = ReportSettingsDTO.createFromReportSettings(settings);
if (!CollectionUtils.isEmpty(reportSettingsDTO.getContendIds())) {
reportSettingsDTO.setContendBrandNames(reportSettingsDTO.getContendIds().stream().map(contendId -> projectService.getProjectByLinkedGroupId(contendId).getBrandName()).collect(Collectors.toList()));
reportSettingsDTO.setContendBrandNames(reportSettingsDTO.getContendIds().stream().map(contendId -> projectService.getProjectByContendId(UserThreadLocal.getProjectId(), contendId).getBrandName()).collect(Collectors.toList()));
}
res.put(key, reportSettingsDTO);
}
......@@ -116,7 +117,7 @@ public class ReportServiceImpl implements ReportService {
// 已存在类型
if (originSettings.containsKey(type)) {
if (null == reportSettings.getId() || !originSettings.get(type).getId().equals(reportSettings.getId())) {
ExceptionCast.cast(CommonCodeEnum.INVALID_PARAM);
ExceptionCast.cast(ReportCodeEnum.REPORT_TYPE_EXIST_ERROR);
}
reportSettingsDao.updateOne(reportSettings);
return;
......
......@@ -228,7 +228,7 @@ public class UserServiceImpl implements UserService {
userOldDao.updateOneByIdWithField(userOld.getId(), Update.update("bindUser", true));
return projectServiceImpl.getProjectListByUser(user, true);
}
List<UserProjectOldDaoImpl.UserProjectOld> userProjects = userProjectOldDao.findList(new Query(Criteria.where("userId").is(user.getId())));
List<UserProjectOldDaoImpl.UserProjectOld> userProjects = userProjectOldDao.findList(new Query(Criteria.where("userId").is(userOld.getId())));
if (userProjects.isEmpty()) {
ExceptionCast.cast(CommonCodeEnum.FAIL);
}
......
......@@ -13,6 +13,7 @@ import com.zhiwei.brandkbs2.common.GenericAttribute;
import com.zhiwei.brandkbs2.common.GlobalPojo;
import com.zhiwei.brandkbs2.config.Constant;
import com.zhiwei.brandkbs2.easyexcel.dto.UploadKeywordDTO;
import com.zhiwei.brandkbs2.enmus.EmotionEnum;
import com.zhiwei.brandkbs2.model.ResponseResult;
import com.zhiwei.brandkbs2.pojo.BaseMap;
import com.zhiwei.qbjc.bean.pojo.common.MessagePlatform;
......@@ -389,7 +390,10 @@ public class Tools {
}
for (Map<String, Object> cacheMap : cacheMaps) {
if ("情感倾向".equals(String.valueOf(cacheMap.get("group_name")))) {
return String.valueOf(cacheMap.get("name"));
String emotionName = String.valueOf(cacheMap.get("name"));
if (EmotionEnum.EMOTION_LIST.contains(emotionName)) {
return emotionName;
}
}
}
return null;
......@@ -928,4 +932,13 @@ public class Tools {
return null;
}
/**
* 判断header中是否为空值
*
* @param o
* @return
*/
public static boolean isNullOrUndefined(Object o) {
return (isEmpty(o) || Objects.equals("undefined", o));
}
}
\ 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