提交 59ad9772 作者: 布红亮

事件分析-关联事件查询时添加区分正式测试数据,热度统计添加区分正式测试数据

上级 10291c67
package com.zzsn.event.config.interceptor;
import com.zzsn.event.util.RequestUtil;
import com.zzsn.event.util.TenantHelper;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CustomInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 获取请求头数据 区分测试和正式
String tenant = RequestUtil.getTenantByRequest(request);
TenantHelper.setTenant(tenant);
// 返回 true 继续处理请求,返回 false 则中断请求
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
TenantHelper.getInstance().close();
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
...@@ -13,10 +13,16 @@ public class WebMvcConfig implements WebMvcConfigurer { ...@@ -13,10 +13,16 @@ public class WebMvcConfig implements WebMvcConfigurer {
public UserInfoInterceptor userInfoInterceptor() { public UserInfoInterceptor userInfoInterceptor() {
return new UserInfoInterceptor(); return new UserInfoInterceptor();
} }
@Bean
public CustomInterceptor customInterceptor() {
return new CustomInterceptor();
}
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(userInfoInterceptor()).addPathPatterns("/**").excludePathPatterns("/third/api/saveEvent") registry.addInterceptor(userInfoInterceptor()).addPathPatterns("/**").excludePathPatterns("/third/api/saveEvent")
.excludePathPatterns("/loginBS"); .excludePathPatterns("/loginBS");
registry.addInterceptor(customInterceptor()).addPathPatterns("/**").excludePathPatterns("/third/api/saveEvent")
.excludePathPatterns("/loginBS");
} }
} }
...@@ -267,7 +267,7 @@ public interface EventMapper extends BaseMapper<Event> { ...@@ -267,7 +267,7 @@ public interface EventMapper extends BaseMapper<Event> {
* @author lkg * @author lkg
* @date 2024/4/12 * @date 2024/4/12
*/ */
List<EventVO> eventList(@Param("eventIdList") List<String> eventIdList); List<EventVO> eventList(@Param("eventIdList") List<String> eventIdList, @Param("tenant")String tenant);
/** /**
* 专题绑定关键词数量 * 专题绑定关键词数量
......
...@@ -648,7 +648,7 @@ ...@@ -648,7 +648,7 @@
</select> </select>
<select id="eventList" resultType="com.zzsn.event.vo.EventVO"> <select id="eventList" resultType="com.zzsn.event.vo.EventVO">
select t.id,t.event_name from event t where 1=1 select t.id,t.event_name from event t where 1=1 and t.tenant = #{tenant}
<if test="eventIdList != null and eventIdList.size()>0"> <if test="eventIdList != null and eventIdList.size()>0">
and t.id in and t.id in
<foreach collection="eventIdList" open="(" separator="," close=")" item="item"> <foreach collection="eventIdList" open="(" separator="," close=")" item="item">
......
...@@ -14,10 +14,7 @@ import com.zzsn.event.enums.CodePrefixEnum; ...@@ -14,10 +14,7 @@ import com.zzsn.event.enums.CodePrefixEnum;
import com.zzsn.event.es.EsService; import com.zzsn.event.es.EsService;
import com.zzsn.event.mapper.EventMapper; import com.zzsn.event.mapper.EventMapper;
import com.zzsn.event.service.*; import com.zzsn.event.service.*;
import com.zzsn.event.util.CodeGenerateUtil; import com.zzsn.event.util.*;
import com.zzsn.event.util.CronUtil;
import com.zzsn.event.util.DateUtil;
import com.zzsn.event.util.HanlpUtil;
import com.zzsn.event.util.tree.Node; import com.zzsn.event.util.tree.Node;
import com.zzsn.event.util.tree.TreeUtil; import com.zzsn.event.util.tree.TreeUtil;
import com.zzsn.event.util.user.UserUtil; import com.zzsn.event.util.user.UserUtil;
...@@ -398,7 +395,8 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements ...@@ -398,7 +395,8 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
@Override @Override
public List<EventVO> eventList(List<String> eventIdList) { public List<EventVO> eventList(List<String> eventIdList) {
return baseMapper.eventList(eventIdList); String tenant = TenantHelper.getInstance().getTenant();
return baseMapper.eventList(eventIdList, tenant);
} }
@Override @Override
......
...@@ -56,8 +56,25 @@ public class EventHotTask { ...@@ -56,8 +56,25 @@ public class EventHotTask {
@Scheduled(cron = "0 0 0/3 * * ?") @Scheduled(cron = "0 0 0/3 * * ?")
public void hot() { public void hot() {
LambdaQueryWrapper<Event> queryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<Event> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(Event::getFacePublic,1).eq(Event::getPublishStatus,1); queryWrapper.eq(Event::getFacePublic,1).eq(Event::getPublishStatus,1)
.eq(Event::getTenant,"prod");
List<Event> list = eventService.list(queryWrapper); List<Event> list = eventService.list(queryWrapper);
// 正式环境数据热度计算
hotHandler(list);
// 测试环境数据
LambdaQueryWrapper<Event> testWrapper = Wrappers.lambdaQuery(Event.class).eq(Event::getFacePublic, 1).eq(Event::getPublishStatus, 1)
.eq(Event::getTenant, "test");
list = eventService.list(testWrapper);
// 测试环境热度计算
hotHandler(list);
}
/**
* 专题热度计算
* @param list 专题
*/
public void hotHandler(List<Event> list) {
List<HotVO> countList = new ArrayList<>(); List<HotVO> countList = new ArrayList<>();
for (Event event : list) { for (Event event : list) {
CompletableFuture<HotVO> async = CompletableFuture.supplyAsync(() -> { CompletableFuture<HotVO> async = CompletableFuture.supplyAsync(() -> {
......
package com.zzsn.event.util;
public final class TenantHelper implements AutoCloseable {
// test or pro
private static final ThreadLocal<String> CONTEXT = new ThreadLocal();
private static final TenantHelper HELPER = new TenantHelper();
private TenantHelper() {
}
public static TenantHelper getInstance() {
return HELPER;
}
@Override
public void close() throws Exception {
CONTEXT.remove();
}
public String getTenant() {
return (String)CONTEXT.get();
}
public static void setTenant(String tenant) {
CONTEXT.set(tenant);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论