This commit is contained in:
Jerry Yan 2025-01-11 02:00:41 +08:00
parent f693f036df
commit ad9e91cd7a
11 changed files with 36 additions and 20 deletions

View File

@ -0,0 +1,8 @@
package com.ycwl.basic.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface IgnoreLogReq {
}

View File

@ -1,10 +1,12 @@
package com.ycwl.basic.aspectj; package com.ycwl.basic.aspectj;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.ycwl.basic.annotation.IgnoreLogReq;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -13,6 +15,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
@ -35,6 +38,12 @@ public class RequestParameterAspectj {
@Around("classPackage()") @Around("classPackage()")
public Object parameterPoint(ProceedingJoinPoint joinPoint) throws Throwable { public Object parameterPoint(ProceedingJoinPoint joinPoint) throws Throwable {
// 方法有 IgnoreLogReq 注解时不执行
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method callMethod = signature.getMethod();
if (callMethod.isAnnotationPresent(IgnoreLogReq.class)) {
return joinPoint.proceed();
}
final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); final ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (requestAttributes != null) { if (requestAttributes != null) {
final HttpServletRequest request = requestAttributes.getRequest(); final HttpServletRequest request = requestAttributes.getRequest();

View File

@ -1,5 +1,6 @@
package com.ycwl.basic.controller.mobile; package com.ycwl.basic.controller.mobile;
import com.ycwl.basic.annotation.IgnoreLogReq;
import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.goods.VideoTaskReq; import com.ycwl.basic.model.mobile.goods.VideoTaskReq;
import com.ycwl.basic.model.mobile.goods.VideoTaskStatusVO; import com.ycwl.basic.model.mobile.goods.VideoTaskStatusVO;
@ -25,11 +26,13 @@ public class AppTaskController {
private TaskService taskService; private TaskService taskService;
@GetMapping("/face/{faceId}") @GetMapping("/face/{faceId}")
@IgnoreLogReq
public ApiResponse<VideoTaskStatusVO> getTaskStatusByFaceId(@PathVariable("faceId") Long faceId) { public ApiResponse<VideoTaskStatusVO> getTaskStatusByFaceId(@PathVariable("faceId") Long faceId) {
JwtInfo worker = JwtTokenUtil.getWorker(); JwtInfo worker = JwtTokenUtil.getWorker();
return goodsService.getTaskStatusByFaceId(worker.getUserId(), faceId); return goodsService.getTaskStatusByFaceId(worker.getUserId(), faceId);
} }
@GetMapping("/scenic/{scenicId}") @GetMapping("/scenic/{scenicId}")
@IgnoreLogReq
public ApiResponse<VideoTaskStatusVO> getAllTaskStatusByScenicId(@PathVariable("scenicId") Long scenicId) { public ApiResponse<VideoTaskStatusVO> getAllTaskStatusByScenicId(@PathVariable("scenicId") Long scenicId) {
JwtInfo worker = JwtTokenUtil.getWorker(); JwtInfo worker = JwtTokenUtil.getWorker();
return goodsService.getTaskStatusByScenicId(worker.getUserId(), scenicId); return goodsService.getTaskStatusByScenicId(worker.getUserId(), scenicId);
@ -43,6 +46,7 @@ public class AppTaskController {
*/ */
@ApiOperation("查询用户当前景区的具体模版视频合成任务状态 1 合成中 2 合成成功 ") @ApiOperation("查询用户当前景区的具体模版视频合成任务状态 1 合成中 2 合成成功 ")
@GetMapping("/face/{faceId}/template/{templateId}") @GetMapping("/face/{faceId}/template/{templateId}")
@IgnoreLogReq
public ApiResponse<VideoTaskStatusVO> getTemplateTaskStatus(@PathVariable("faceId") Long faceId, @PathVariable("templateId") Long templateId) { public ApiResponse<VideoTaskStatusVO> getTemplateTaskStatus(@PathVariable("faceId") Long faceId, @PathVariable("templateId") Long templateId) {
JwtInfo worker = JwtTokenUtil.getWorker(); JwtInfo worker = JwtTokenUtil.getWorker();
return goodsService.getTaskStatusByTemplateId(worker.getUserId(), faceId, templateId); return goodsService.getTaskStatusByTemplateId(worker.getUserId(), faceId, templateId);

View File

@ -1,5 +1,6 @@
package com.ycwl.basic.controller.task; package com.ycwl.basic.controller.task;
import com.ycwl.basic.annotation.IgnoreLogReq;
import com.ycwl.basic.annotation.IgnoreToken; import com.ycwl.basic.annotation.IgnoreToken;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO; import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import com.ycwl.basic.model.task.req.TaskReqVo; import com.ycwl.basic.model.task.req.TaskReqVo;
@ -24,6 +25,7 @@ public class TaskTaskController {
@Autowired @Autowired
private TaskService taskService; private TaskService taskService;
@IgnoreLogReq
@PostMapping("/sync") @PostMapping("/sync")
public ApiResponse<TaskSyncRespVo> sync(@RequestBody TaskReqVo req) { public ApiResponse<TaskSyncRespVo> sync(@RequestBody TaskReqVo req) {
TaskSyncRespVo respVo = taskService.handleSyncTask(req); TaskSyncRespVo respVo = taskService.handleSyncTask(req);

View File

@ -3,6 +3,7 @@ package com.ycwl.basic.controller.viid;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.ycwl.basic.annotation.IgnoreLogReq;
import com.ycwl.basic.annotation.IgnoreToken; import com.ycwl.basic.annotation.IgnoreToken;
import com.ycwl.basic.mapper.DeviceMapper; import com.ycwl.basic.mapper.DeviceMapper;
import com.ycwl.basic.mapper.FaceSampleMapper; import com.ycwl.basic.mapper.FaceSampleMapper;
@ -100,10 +101,11 @@ public class ViidController {
* @param request 请求 * @param request 请求
* @return 返回 * @return 返回
*/ */
@IgnoreLogReq
@RequestMapping(value = "/System/Keepalive", method = RequestMethod.POST) @RequestMapping(value = "/System/Keepalive", method = RequestMethod.POST)
public VIIDBaseResp keepalive(@RequestBody KeepaliveReq req, HttpServletRequest request) { public VIIDBaseResp keepalive(@RequestBody KeepaliveReq req, HttpServletRequest request) {
DeviceIdObject keepaliveObject = req.getKeepaliveObject(); DeviceIdObject keepaliveObject = req.getKeepaliveObject();
log.info("对方发送的心跳的信息:{}", keepaliveObject); // log.info("对方发送的心跳的信息:{}", keepaliveObject);
String deviceId = keepaliveObject.getDeviceId(); String deviceId = keepaliveObject.getDeviceId();
DeviceEntity device = deviceMapper.getByDeviceNo(deviceId); DeviceEntity device = deviceMapper.getByDeviceNo(deviceId);
@ -124,7 +126,7 @@ public class ViidController {
device.setKeepaliveAt(new Date()); device.setKeepaliveAt(new Date());
deviceMapper.updateEntity(device); deviceMapper.updateEntity(device);
} }
log.info("已经解析过的心跳信息:{}", keepaliveObject); // log.info("已经解析过的心跳信息:{}", keepaliveObject);
return new VIIDBaseResp( return new VIIDBaseResp(
new ResponseStatusObject(deviceId, "/VIID/System/UnRegister", "0", "注销成功", sdfTime.format(new Date())) new ResponseStatusObject(deviceId, "/VIID/System/UnRegister", "0", "注销成功", sdfTime.format(new Date()))

View File

@ -32,4 +32,5 @@ public class ContentPageVO {
private String templateCoverUrl; private String templateCoverUrl;
@ApiModelProperty("是否购买0未购买1已购买") @ApiModelProperty("是否购买0未购买1已购买")
private Integer isBuy; private Integer isBuy;
private BigDecimal duration;
} }

View File

@ -27,7 +27,7 @@ public class FaceSampleEntity {
* 样本ID * 样本ID
*/ */
private Long sourceId; private Long sourceId;
private float score; private Float score;
/** /**
* 人脸照片 * 人脸照片
*/ */

View File

@ -4,5 +4,5 @@ import lombok.Data;
@Data @Data
public class AddFaceSampleRespVo { public class AddFaceSampleRespVo {
private float score; private Float score;
} }

View File

@ -23,6 +23,7 @@ import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
import com.ycwl.basic.model.pc.source.req.SourceReqQuery; import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
import com.ycwl.basic.model.pc.source.resp.SourceRespVO; import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity; import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.repository.ScenicRepository;
import com.ycwl.basic.service.mobile.AppScenicService; import com.ycwl.basic.service.mobile.AppScenicService;
import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.repository.TemplateRepository;
@ -120,6 +121,8 @@ public class AppScenicServiceImpl implements AppScenicService {
if (!memberVideoEntityList.isEmpty()) { if (!memberVideoEntityList.isEmpty()) {
contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy()); contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy());
contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId()); contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId());
VideoRespVO videoMapperById = videoMapper.getById(contentPageVO.getContentId());
contentPageVO.setDuration(videoMapperById.getDuration());
contentPageVO.setLockType(-1); contentPageVO.setLockType(-1);
} else { } else {
contentPageVO.setContentType(0); contentPageVO.setContentType(0);

View File

@ -142,6 +142,7 @@ public class VideoPieceGetter {
log.warn("没有可用的文件"); log.warn("没有可用的文件");
return; return;
} }
log.info("查询到可用的文件: {}", listByDtRange);
long offset = faceSample.getCreateAt().getTime() - cutPre.multiply(BigDecimal.valueOf(1000)).longValue() - listByDtRange.get(0).getCreateTime().getTime(); long offset = faceSample.getCreateAt().getTime() - cutPre.multiply(BigDecimal.valueOf(1000)).longValue() - listByDtRange.get(0).getCreateTime().getTime();
FfmpegTask ffmpegTask = new FfmpegTask(); FfmpegTask ffmpegTask = new FfmpegTask();
ffmpegTask.setFileList(listByDtRange); ffmpegTask.setFileList(listByDtRange);

View File

@ -36,7 +36,6 @@ public class XSSHttpServletRequestWrapper extends HttpServletRequestWrapper {
*/ */
public XSSHttpServletRequestWrapper(HttpServletRequest request) { public XSSHttpServletRequestWrapper(HttpServletRequest request) {
super(request); super(request);
logger.info("---xss XSSHttpServletRequestWrapper created-----");
this.request = request; this.request = request;
reqBody = getBodyString(); reqBody = getBodyString();
} }
@ -55,12 +54,9 @@ public class XSSHttpServletRequestWrapper extends HttpServletRequestWrapper {
*/ */
@Override @Override
public String getParameter(String name) { public String getParameter(String name) {
logger.info("---xss XSSHttpServletRequestWrapper work getParameter-----");
String parameter = request.getParameter(name); String parameter = request.getParameter(name);
if (StringUtils.isNotBlank(parameter)) { if (StringUtils.isNotBlank(parameter)) {
logger.info("----filter before--name:{}--value:{}----", name, parameter);
parameter = StringEscapeUtils.escapeHtml4(parameter); parameter = StringEscapeUtils.escapeHtml4(parameter);
logger.info("----filter after--name:{}--value:{}----", name, parameter);
} }
return parameter; return parameter;
} }
@ -73,16 +69,9 @@ public class XSSHttpServletRequestWrapper extends HttpServletRequestWrapper {
*/ */
@Override @Override
public String[] getParameterValues(String name) { public String[] getParameterValues(String name) {
logger.info("---xss XSSHttpServletRequestWrapper work getParameterValues-----");
String[] parameterValues = request.getParameterValues(name); String[] parameterValues = request.getParameterValues(name);
if (parameterValues != null && parameterValues.length > 0) { if (parameterValues != null && parameterValues.length > 0) {
if (!CollectionUtil.isEmpty(Arrays.asList(parameterValues))) { if (!CollectionUtil.isEmpty(Arrays.asList(parameterValues))) {
// @Belief_7 指正 这种方式不能更改parameterValues里面的值要换成下面👇的写法
//for (String value : parameterValues) {
// logger.info("----filter before--name:{}--value:{}----", name, value);
// value = StringEscapeUtils.escapeHtml4(value);
// logger.info("----filter after--name:{}--value:{}----", name, value);
// }
for (int i = 0; i < parameterValues.length; i++) for (int i = 0; i < parameterValues.length; i++)
{ {
parameterValues[i] = StringEscapeUtils.escapeHtml4(parameterValues[i]); parameterValues[i] = StringEscapeUtils.escapeHtml4(parameterValues[i]);
@ -98,15 +87,14 @@ public class XSSHttpServletRequestWrapper extends HttpServletRequestWrapper {
*/ */
@Override @Override
public Map<String, String[]> getParameterMap() { public Map<String, String[]> getParameterMap() {
logger.info("---xss XSSHttpServletRequestWrapper work getParameterMap-----");
Map<String, String[]> map = request.getParameterMap(); Map<String, String[]> map = request.getParameterMap();
if (map != null && !map.isEmpty()) { if (map != null && !map.isEmpty()) {
for (String[] value : map.values()) { for (String[] value : map.values()) {
/*循环所有的value*/ /*循环所有的value*/
for (String str : value) { for (String str : value) {
logger.info("----filter before--value:{}----", str, str); logger.info("----filter before--value:{}----", str);
str = StringEscapeUtils.escapeHtml4(str); str = StringEscapeUtils.escapeHtml4(str);
logger.info("----filter after--value:{}----", str, str); logger.info("----filter after--value:{}----", str);
} }
} }
} }
@ -120,7 +108,6 @@ public class XSSHttpServletRequestWrapper extends HttpServletRequestWrapper {
*/ */
@Override @Override
public BufferedReader getReader() throws IOException { public BufferedReader getReader() throws IOException {
logger.info("---xss XSSHttpServletRequestWrapper work getReader-----");
return new BufferedReader(new InputStreamReader(getInputStream())); return new BufferedReader(new InputStreamReader(getInputStream()));
} }
@ -130,7 +117,6 @@ public class XSSHttpServletRequestWrapper extends HttpServletRequestWrapper {
*/ */
@Override @Override
public ServletInputStream getInputStream() throws IOException { public ServletInputStream getInputStream() throws IOException {
logger.info("---xss XSSHttpServletRequestWrapper work getInputStream-----");
/*创建字节数组输入流*/ /*创建字节数组输入流*/
final ByteArrayInputStream bais = new ByteArrayInputStream(reqBody.getBytes(StandardCharsets.UTF_8)); final ByteArrayInputStream bais = new ByteArrayInputStream(reqBody.getBytes(StandardCharsets.UTF_8));
return new ServletInputStream() { return new ServletInputStream() {