From e1023b6ea8615602dfe3ac0e48e7b9536890168f Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 4 Jan 2026 12:15:52 +0800 Subject: [PATCH] =?UTF-8?q?refactor(stats):=20=E7=A7=BB=E9=99=A4=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E8=BF=BD=E8=B8=AA=E6=A8=A1=E5=9D=97=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 StatsBiz 业务类 - 移除 TraceController 控制器及其接口实现 - 删除 AddTraceReq 数据传输对象 - 移除 StatsEntity 和 StatsRecordEntity 实体类 - 移除 StatsInterceptor 拦截器 - 删除 StatsMapper 和 StatsRecordMapper 数据访问接口 - 移除 StatsService 服务接口及 StatsServiceImpl 实现类 - 删除 StatsUtil 工具类 --- .../com/ycwl/basic/config/WebMvcConfig.java | 6 -- .../com/ycwl/basic/stats/biz/StatsBiz.java | 7 -- .../stats/controller/TraceController.java | 46 ------------- .../com/ycwl/basic/stats/dto/AddTraceReq.java | 10 --- .../ycwl/basic/stats/entity/StatsEntity.java | 18 ----- .../basic/stats/entity/StatsRecordEntity.java | 20 ------ .../stats/interceptor/StatsInterceptor.java | 65 ------------------- .../ycwl/basic/stats/mapper/StatsMapper.java | 9 --- .../basic/stats/mapper/StatsRecordMapper.java | 9 --- .../basic/stats/service/StatsService.java | 9 --- .../stats/service/impl/StatsServiceImpl.java | 53 --------------- .../com/ycwl/basic/stats/util/StatsUtil.java | 9 --- 12 files changed, 261 deletions(-) delete mode 100644 src/main/java/com/ycwl/basic/stats/biz/StatsBiz.java delete mode 100644 src/main/java/com/ycwl/basic/stats/controller/TraceController.java delete mode 100644 src/main/java/com/ycwl/basic/stats/dto/AddTraceReq.java delete mode 100644 src/main/java/com/ycwl/basic/stats/entity/StatsEntity.java delete mode 100644 src/main/java/com/ycwl/basic/stats/entity/StatsRecordEntity.java delete mode 100644 src/main/java/com/ycwl/basic/stats/interceptor/StatsInterceptor.java delete mode 100644 src/main/java/com/ycwl/basic/stats/mapper/StatsMapper.java delete mode 100644 src/main/java/com/ycwl/basic/stats/mapper/StatsRecordMapper.java delete mode 100644 src/main/java/com/ycwl/basic/stats/service/StatsService.java delete mode 100644 src/main/java/com/ycwl/basic/stats/service/impl/StatsServiceImpl.java delete mode 100644 src/main/java/com/ycwl/basic/stats/util/StatsUtil.java diff --git a/src/main/java/com/ycwl/basic/config/WebMvcConfig.java b/src/main/java/com/ycwl/basic/config/WebMvcConfig.java index 39f48bc1..f319ea9c 100644 --- a/src/main/java/com/ycwl/basic/config/WebMvcConfig.java +++ b/src/main/java/com/ycwl/basic/config/WebMvcConfig.java @@ -3,7 +3,6 @@ package com.ycwl.basic.config; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.ycwl.basic.interceptor.AuthInterceptor; -import com.ycwl.basic.stats.interceptor.StatsInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -25,11 +24,8 @@ import java.util.List; */ @Configuration public class WebMvcConfig implements WebMvcConfigurer { - @Autowired private AuthInterceptor authInterceptor; - @Autowired - private StatsInterceptor statsInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { @@ -37,8 +33,6 @@ public class WebMvcConfig implements WebMvcConfigurer { // 拦截除指定接口外的所有请求,通过判断 注解 来决定是否需要做登录验证 .addPathPatterns("/**") .excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/api-docs", "/doc.html/**", "/error", "/"); - registry.addInterceptor(statsInterceptor) - .addPathPatterns("/api/mobile/**"); } /** diff --git a/src/main/java/com/ycwl/basic/stats/biz/StatsBiz.java b/src/main/java/com/ycwl/basic/stats/biz/StatsBiz.java deleted file mode 100644 index c823eafb..00000000 --- a/src/main/java/com/ycwl/basic/stats/biz/StatsBiz.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.ycwl.basic.stats.biz; - -import org.springframework.stereotype.Component; - -@Component -public class StatsBiz { -} diff --git a/src/main/java/com/ycwl/basic/stats/controller/TraceController.java b/src/main/java/com/ycwl/basic/stats/controller/TraceController.java deleted file mode 100644 index 311c5062..00000000 --- a/src/main/java/com/ycwl/basic/stats/controller/TraceController.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.ycwl.basic.stats.controller; - -import com.ycwl.basic.annotation.IgnoreToken; -import com.ycwl.basic.stats.dto.AddTraceReq; -import com.ycwl.basic.stats.service.StatsService; -import com.ycwl.basic.stats.util.StatsUtil; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; - -@RestController -@RequestMapping("/trace/v1") -public class TraceController { - @Autowired - private StatsService statsService; - @IgnoreToken - @PostMapping("/start") - public void startTrace(HttpServletRequest request, HttpServletResponse response) { - String traceId = request.getHeader("traceId"); - if (traceId == null || traceId.isEmpty()) { - traceId = StatsUtil.createUuid(); - response.setHeader("Set-TraceId", traceId); - } - statsService.addStats(traceId, null); - } - - @IgnoreToken - @PostMapping("/add") - public void addTrace(HttpServletRequest request, HttpServletResponse response, @RequestBody AddTraceReq req) { - String traceId = request.getHeader("traceId"); - if (traceId == null || traceId.isEmpty()) { - traceId = StatsUtil.createUuid(); - response.setHeader("Set-TraceId", traceId); - } - if (StringUtils.isEmpty(req.getParams())) { - req.setParams(null); - } - statsService.addRecord(traceId, req.getAction(), req.getIdentifier(), req.getParams()); - } -} diff --git a/src/main/java/com/ycwl/basic/stats/dto/AddTraceReq.java b/src/main/java/com/ycwl/basic/stats/dto/AddTraceReq.java deleted file mode 100644 index 739a9e0c..00000000 --- a/src/main/java/com/ycwl/basic/stats/dto/AddTraceReq.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.ycwl.basic.stats.dto; - -import lombok.Data; - -@Data -public class AddTraceReq { - private String action; - private String identifier; - private String params; -} diff --git a/src/main/java/com/ycwl/basic/stats/entity/StatsEntity.java b/src/main/java/com/ycwl/basic/stats/entity/StatsEntity.java deleted file mode 100644 index 73f57296..00000000 --- a/src/main/java/com/ycwl/basic/stats/entity/StatsEntity.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ycwl.basic.stats.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.util.Date; - -@Data -@TableName("t_stats") -public class StatsEntity { - @TableId(value = "id", type = IdType.AUTO) - private Long id; - private String traceId; - private Long memberId; - private Date createTime; -} diff --git a/src/main/java/com/ycwl/basic/stats/entity/StatsRecordEntity.java b/src/main/java/com/ycwl/basic/stats/entity/StatsRecordEntity.java deleted file mode 100644 index a545256f..00000000 --- a/src/main/java/com/ycwl/basic/stats/entity/StatsRecordEntity.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ycwl.basic.stats.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.util.Date; - -@Data -@TableName("t_stats_record") -public class StatsRecordEntity { - @TableId(value = "id", type = IdType.AUTO) - private Long id; - private String traceId; - private String action; - private String identifier; - private String params; - private Date createTime; -} diff --git a/src/main/java/com/ycwl/basic/stats/interceptor/StatsInterceptor.java b/src/main/java/com/ycwl/basic/stats/interceptor/StatsInterceptor.java deleted file mode 100644 index e0e605b7..00000000 --- a/src/main/java/com/ycwl/basic/stats/interceptor/StatsInterceptor.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.ycwl.basic.stats.interceptor; - -import com.ycwl.basic.annotation.IgnoreLogReq; -import com.ycwl.basic.constant.BaseContextHandler; -import com.ycwl.basic.stats.service.StatsService; -import com.ycwl.basic.stats.util.StatsUtil; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Component; -import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.HandlerInterceptor; -import org.springframework.web.servlet.ModelAndView; - -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import java.util.Date; -import java.util.HashSet; - -@Component -public class StatsInterceptor implements HandlerInterceptor { - @Lazy - @Autowired - private StatsService statsService; - - // 在请求处理前执行 - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - if (!(handler instanceof HandlerMethod)) { - return true; - } -// HandlerMethod handlerMethod = (HandlerMethod) handler; -// request.setAttribute("startTime", System.currentTimeMillis()); -// String requestURI = request.getRequestURI(); -// String method = request.getMethod(); - String traceId = request.getHeader("traceId"); - if (StringUtils.isEmpty(traceId)) { - return true; -// traceId = StatsUtil.createUuid(); -// response.setHeader("Set-TraceId", traceId); -// statsService.addStats(traceId, null); - } -// if (handlerMethod.getMethodAnnotation(IgnoreLogReq.class) == null) { -// statsService.addRecord(traceId, "REQUEST",method + " " + requestURI, null); -// } - if (StringUtils.isNotEmpty(BaseContextHandler.getUserId())) { - statsService.updateStats(traceId, Long.valueOf(BaseContextHandler.getUserId())); - } - // 返回 true 继续后续流程,false 终止请求 - return true; - } - - // 控制器方法执行后,渲染视图前 - @Override - public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { - } - - // 请求完全完成后执行(无论是否异常) - @Override - public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { -// long startTime = (Long) request.getAttribute("startTime"); -// long endTime = System.currentTimeMillis(); -// System.out.println("【AfterCompletion】请求结束,耗时:" + (endTime - startTime) + "ms"); - } -} diff --git a/src/main/java/com/ycwl/basic/stats/mapper/StatsMapper.java b/src/main/java/com/ycwl/basic/stats/mapper/StatsMapper.java deleted file mode 100644 index 0475309d..00000000 --- a/src/main/java/com/ycwl/basic/stats/mapper/StatsMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.ycwl.basic.stats.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ycwl.basic.stats.entity.StatsEntity; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface StatsMapper extends BaseMapper { -} diff --git a/src/main/java/com/ycwl/basic/stats/mapper/StatsRecordMapper.java b/src/main/java/com/ycwl/basic/stats/mapper/StatsRecordMapper.java deleted file mode 100644 index 9d679055..00000000 --- a/src/main/java/com/ycwl/basic/stats/mapper/StatsRecordMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.ycwl.basic.stats.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ycwl.basic.stats.entity.StatsRecordEntity; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface StatsRecordMapper extends BaseMapper { -} diff --git a/src/main/java/com/ycwl/basic/stats/service/StatsService.java b/src/main/java/com/ycwl/basic/stats/service/StatsService.java deleted file mode 100644 index cb47cb5d..00000000 --- a/src/main/java/com/ycwl/basic/stats/service/StatsService.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.ycwl.basic.stats.service; - -public interface StatsService { - void addStats(String traceId, Long memberId); - - void updateStats(String traceId, Long memberId); - - void addRecord(String traceId, String action, String identifier, String params); -} diff --git a/src/main/java/com/ycwl/basic/stats/service/impl/StatsServiceImpl.java b/src/main/java/com/ycwl/basic/stats/service/impl/StatsServiceImpl.java deleted file mode 100644 index 92c53f4a..00000000 --- a/src/main/java/com/ycwl/basic/stats/service/impl/StatsServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.ycwl.basic.stats.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.ycwl.basic.stats.entity.StatsEntity; -import com.ycwl.basic.stats.entity.StatsRecordEntity; -import com.ycwl.basic.stats.mapper.StatsMapper; -import com.ycwl.basic.stats.mapper.StatsRecordMapper; -import com.ycwl.basic.stats.service.StatsService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Service; - -import java.util.Date; - -@Service -public class StatsServiceImpl implements StatsService { - @Lazy - @Autowired - private StatsMapper statsMapper; - - @Lazy - @Autowired - private StatsRecordMapper statsRecordMapper; - - @Override - public void addStats(String traceId, Long memberId) { - StatsEntity entity = new StatsEntity(); - entity.setTraceId(traceId); - entity.setMemberId(memberId); - entity.setCreateTime(new Date()); - statsMapper.insert(entity); - } - - @Override - public void updateStats(String traceId, Long memberId) { - StatsEntity entity = new StatsEntity(); - entity.setMemberId(memberId); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(StatsEntity::getTraceId, traceId); - statsMapper.update(entity, queryWrapper); - } - - @Override - public void addRecord(String traceId, String action, String identifier, String params) { - StatsRecordEntity entity = new StatsRecordEntity(); - entity.setTraceId(traceId); - entity.setAction(action); - entity.setIdentifier(identifier); - entity.setParams(params); - entity.setCreateTime(new Date()); - statsRecordMapper.insert(entity); - } -} diff --git a/src/main/java/com/ycwl/basic/stats/util/StatsUtil.java b/src/main/java/com/ycwl/basic/stats/util/StatsUtil.java deleted file mode 100644 index 616c759d..00000000 --- a/src/main/java/com/ycwl/basic/stats/util/StatsUtil.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.ycwl.basic.stats.util; - -import java.util.UUID; - -public class StatsUtil { - public static String createUuid() { - return UUID.randomUUID().toString().replace("-", ""); - } -}