You've already forked FrameTour-BE
47 lines
1.7 KiB
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());
|
|
}
|
|
}
|