diff --git a/src/main/java/com/ycwl/basic/integration/kafka/service/FaceProcessingKafkaService.java b/src/main/java/com/ycwl/basic/integration/kafka/service/FaceProcessingKafkaService.java index 42d98542..72248f89 100644 --- a/src/main/java/com/ycwl/basic/integration/kafka/service/FaceProcessingKafkaService.java +++ b/src/main/java/com/ycwl/basic/integration/kafka/service/FaceProcessingKafkaService.java @@ -12,6 +12,7 @@ import com.ycwl.basic.service.task.TaskFaceService; import com.ycwl.basic.task.DynamicTaskGenerator; import com.ycwl.basic.integration.common.manager.DeviceConfigManager; // 不再需要SnowFlakeUtil,使用外部传入的ID +import com.ycwl.basic.utils.JacksonUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -33,7 +34,6 @@ public class FaceProcessingKafkaService { private static final String ZT_FACE_TOPIC = "zt-face"; - private final ObjectMapper objectMapper; private final FaceSampleMapper faceSampleMapper; private final TaskFaceService taskFaceService; private final ScenicService scenicService; @@ -43,10 +43,10 @@ public class FaceProcessingKafkaService { * 消费外部系统发送的人脸处理消息 * 先保存人脸样本数据,再进行异步人脸识别处理 */ - @KafkaListener(topics = ZT_FACE_TOPIC, groupId = "face-processing-group") + @KafkaListener(topics = ZT_FACE_TOPIC) public void processFaceMessage(String message) { try { - FaceProcessingMessage faceMessage = objectMapper.readValue(message, FaceProcessingMessage.class); + FaceProcessingMessage faceMessage = JacksonUtil.parseObject(message, FaceProcessingMessage.class); log.info("接收到外部人脸处理消息, scenicId: {}, deviceId: {}, faceUrl: {}", faceMessage.getScenicId(), faceMessage.getDeviceId(), faceMessage.getFaceUrl()); @@ -145,7 +145,7 @@ public class FaceProcessingKafkaService { if (addFaceResp != null) { // 更新人脸样本得分和状态 faceSampleMapper.updateScore(faceSampleId, addFaceResp.getScore()); - updateFaceSampleStatus(faceSampleId, 2); // 成功状态 + updateFaceSampleStatus(faceSampleId, 2); log.info("人脸识别处理完成, faceSampleId: {}, score: {}", faceSampleId, addFaceResp.getScore()); @@ -176,8 +176,7 @@ public class FaceProcessingKafkaService { */ private void updateFaceSampleStatus(Long faceSampleId, Integer status) { try { - // TODO: 需要在FaceSampleMapper中添加updateStatus方法 - // faceSampleMapper.updateStatus(faceSampleId, status); + faceSampleMapper.updateStatus(faceSampleId, status); log.info("人脸样本状态已更新, faceSampleId: {}, status: {} (0:初始,1:处理中,2:成功,-1:失败)", faceSampleId, status); } catch (Exception e) { log.error("更新人脸样本状态失败, faceSampleId: {}", faceSampleId, e); diff --git a/src/main/java/com/ycwl/basic/mapper/FaceSampleMapper.java b/src/main/java/com/ycwl/basic/mapper/FaceSampleMapper.java index 8e0edd10..57f6284b 100644 --- a/src/main/java/com/ycwl/basic/mapper/FaceSampleMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/FaceSampleMapper.java @@ -29,4 +29,6 @@ public interface FaceSampleMapper { List listEntityBeforeDate(Long scenicId, Date endDate); void updateScore(Long id, Float score); + + void updateStatus(Long id, Integer status); } diff --git a/src/main/resources/mapper/FaceSampleMapper.xml b/src/main/resources/mapper/FaceSampleMapper.xml index 339850ed..f7fbc04a 100644 --- a/src/main/resources/mapper/FaceSampleMapper.xml +++ b/src/main/resources/mapper/FaceSampleMapper.xml @@ -41,6 +41,11 @@ set score = #{score} where id = #{id} + + update face_sample + set `status` = #{status} + where id = #{id} + delete from face_sample where id = #{id}