Browse Source

补充拦截器

master
kami 1 year ago
parent
commit
c2af15bcb3
  1. 32
      src/main/java/com/biutag/supervisiondata/common/interceptor/CrossDomainInterceptor.java
  2. 40
      src/main/java/com/biutag/supervisiondata/common/interceptor/MyLogInterceptor.java
  3. 34
      src/main/java/com/biutag/supervisiondata/config/SpringInterceptorConfigurer.java
  4. 28
      src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalMapper.java
  5. 16
      src/main/java/com/biutag/supervisiondata/service/PersonalService.java
  6. 49
      src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java

32
src/main/java/com/biutag/supervisiondata/common/interceptor/CrossDomainInterceptor.java

@ -0,0 +1,32 @@
package com.biutag.supervisiondata.common.interceptor;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.AsyncHandlerInterceptor;
/**
* 跨域拦截器
* @author kami
* @since 2020-12-24
*/
@Component
@Slf4j
public class CrossDomainInterceptor implements AsyncHandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, @NotNull Object handler) {
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, OPTIONS, DELETE, PUT");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Origin, Authorization, X-Requested-With, Content-Type, Accept, Key, X-TOKEN, X-OPEN, S-TOKEN,timestamp,requestId");
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
}
return true;
}
}

40
src/main/java/com/biutag/supervisiondata/common/interceptor/MyLogInterceptor.java

@ -0,0 +1,40 @@
package com.biutag.supervisiondata.common.interceptor;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.slf4j.MDC;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import java.util.Optional;
/**
* @author kami
* @version 1.0
* @since 2022/7/8 11:42
*/
@Component
@Slf4j
public class MyLogInterceptor implements HandlerInterceptor {
private static final ThreadLocal<Long> stopwatchThread = new ThreadLocal<>();
@Override
public boolean preHandle(HttpServletRequest request, @NotNull HttpServletResponse response, @NotNull Object handler) {
//如果有上层调用就用上层的ID
String traceId = Optional.ofNullable(request.getHeader("requestId")).orElse(System.nanoTime() + "");
MDC.put("trace_id", traceId);
stopwatchThread.set(System.currentTimeMillis());
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, @NotNull HttpServletResponse response, @NotNull Object handler, Exception ex) {
log.info("{} | 耗时 {}ms", request.getRequestURI(), System.currentTimeMillis() - stopwatchThread.get());
stopwatchThread.remove();
//调用结束后删除
MDC.remove("trace_id");
}
}

34
src/main/java/com/biutag/supervisiondata/config/SpringInterceptorConfigurer.java

@ -0,0 +1,34 @@
package com.biutag.supervisiondata.config;
import com.biutag.supervisiondata.common.interceptor.CrossDomainInterceptor;
import com.biutag.supervisiondata.common.interceptor.MyLogInterceptor;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 拦截器配置器
*
* @author kami
* @since 2020-12-24
*/
@Configuration
public class SpringInterceptorConfigurer implements WebMvcConfigurer {
@Resource
private MyLogInterceptor myLogInterceptor;
@Resource
private CrossDomainInterceptor crossDomainInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myLogInterceptor)
.addPathPatterns("/**");
registry.addInterceptor(crossDomainInterceptor).
addPathPatterns("/**");
}
}

28
src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalMapper.java

@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
@ -13,23 +16,10 @@ import java.util.List;
* @since 1.8
*/
public interface RiskPersonalMapper extends BaseMapper<RiskPersonal> {
@Insert("<script>" +
" update risk_personal set " +
"<if test='item.tags != null'>" +
" tags = #{item.tags}," +
"</if>" +
"<if test='item.item.controlTime != null'>" +
" control_time = #{item.controlTime}, " +
"</if>" +
"<if test='item.controlDepartId != null'>" +
" control_depart_id = #{item.controlDepartId}, " +
"</if>" +
"<if test='item.controlDepartName != null'>" +
" control_depart_name = #{controlDepartName} " +
"</if>" +
" where id = #{item.id}" +
"</script>")
int update(@Param("item") RiskPersonal item);
/**
* 获取上一次最后的入库时间
* @return 最后入库时间
*/
@Select(" select max(create_time) from risk_personal ")
LocalDateTime selectMaxCreateTime();
}

16
src/main/java/com/biutag/supervisiondata/service/PersonalService.java

@ -0,0 +1,16 @@
package com.biutag.supervisiondata.service;
import java.time.LocalDateTime;
/**
* @author kami on 2024-11-25 10:59:37
* @version 0.0.1
* @since 1.8
*/
public interface PersonalService {
/**
* 拉取人员信息
*/
void pullPersonalInfo();
}

49
src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java

@ -0,0 +1,49 @@
package com.biutag.supervisiondata.service.impl;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import com.biutag.supervisiondata.repository.GBaseJJDRepository;
import com.biutag.supervisiondata.repository.RiskPersonalRepository;
import com.biutag.supervisiondata.service.PersonalService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
* @author kami on 2024-11-25 11:01:11
* @version 0.0.1
* @since 1.8
*/
@Slf4j
@Service
@AllArgsConstructor
public class PersonalServiceImpl implements PersonalService {
private final RiskPersonalRepository personalRepository;
private final GBaseJJDRepository gBaseJJDRepository;
@Override
public void pullPersonalInfo() {
LocalDateTime start = personalRepository.getBaseMapper().selectMaxCreateTime();
if(start == null) {
start = LocalDateTime.of(2024, 1,1,0,0,0);
}
LocalDateTime end = LocalDateTime.now();
// 获取接警数据
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectDataToRisk(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")),
end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
log.info("总条数 | {}条", result.size());
List<RiskPersonal> personals = new ArrayList<>();
}
}
Loading…
Cancel
Save