Files
FrameTour-BE/src/main/java/com/ycwl/basic/stats/controller/TraceController.java

47 lines
1.7 KiB
Java

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 javax.servlet.http.HttpServletRequest;
import javax.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());
}
}